/* Noryvella 3.1 — edição renovada. O banco de dados local continua compatível com 3.0. */
:root{--bg:#0c0913;--side:#100c1a;--panel:#1b1428;--panel2:#281c37;--line:#493459;--purple:#bc8aef;--soft:#e3cbff;--txt:#f5edff;--sub:#b3a3c2}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 95% 2%,#271436 0,transparent 32%),#0b0812}.sidebar{background:linear-gradient(180deg,#151022,#0e0a17);border-right:1px solid #382842;width:auto}.layout{grid-template-columns:235px minmax(0,1fr)}.main{max-width:1550px;padding:42px clamp(22px,4.5vw,76px) 70px}.main>section,.main>div{max-width:100%}.top{margin-bottom:31px}.top h1{font-size:clamp(36px,4vw,52px);letter-spacing:-.025em}.top .muted{font-size:14px;margin-top:11px}.top .actions{align-self:end}.brand-button{border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;width:100%}.brand-button:hover .brand-copy{color:#d8b8ff}.nav{gap:7px}.nav button{padding:13px 15px;border-radius:12px;transition:background .18s,transform .18s}.nav button:hover{transform:translateX(3px)}.nav button.active{background:linear-gradient(90deg,#51316c,#261b35);color:#f9f2ff}.eyebrow{color:#c39dec;font-size:10px;letter-spacing:.2em}.btn{border-radius:11px;padding:11px 16px;background:linear-gradient(135deg,#a06adf,#8250c7);box-shadow:0 6px 24px #7546aa16;transition:transform .18s,background .18s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(120deg,#aa74e4,#8c55d0);border-color:#ca9bfc}.btn.danger{background:#43243b;color:#ffc8d8;border-color:#793951}.btn.ghost{border-color:#584469;color:#decced}.card,.tile{border-color:#4a375b;border-radius:19px;background:linear-gradient(150deg,#20182d,#171220)}.card:hover{border-color:#694b86}.card h3{font-size:17px}.card p{line-height:1.65}.chip{background:#37234570;color:#e5c9ff;border-color:#6b4c83}.hero.brand-hero{border-radius:24px;min-height:320px;background:radial-gradient(ellipse at 82% 40%,#6b3a854c,transparent 52%),linear-gradient(125deg,#291839,#130e1d)}.hero-copy h1 em,.welcome-panel h1 em{font-style:normal;color:#cda8ff}.hero-brand-image{max-height:295px}.section-heading{margin:27px 0 20px}.section-heading h2{font-size:27px;margin-top:7px}.home-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.tile{min-height:160px;position:relative;padding:23px;transition:transform .2s,border-color .2s}.tile:hover{transform:translateY(-3px)}.tile strong{font:normal 20px Georgia,serif}.tile .glyph{font-size:29px}.tile-arrow{position:absolute;right:16px;bottom:14px;color:#b88ded}.recent-card,.home-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:23px 26px;margin-top:22px;border:1px solid #644983;border-radius:18px;background:linear-gradient(115deg,#2c1d3f,#191423)}.recent-card h2{margin:10px 0}.recent-card p,.home-bottom p{color:var(--sub)}.home-bottom{margin-top:24px}.home-bottom h3{font:normal 23px Georgia,serif;margin:7px 0}.welcome-screen{min-height:100svh;display:grid;place-items:center;padding:38px 20px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 32%,#43235a 0,#22132f 28%,#080610 72%)}.welcome-screen:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 15% 15%,#d7b7fa 1px,transparent 2px),radial-gradient(circle at 85% 35%,#d7b7fa 1px,transparent 2px),radial-gradient(circle at 50% 80%,#c59cff 1px,transparent 2px);background-size:181px 173px;opacity:.2}.welcome-panel{text-align:center;position:relative;z-index:1;max-width:740px;width:100%;animation:welcome 700ms ease both}.welcome-logo{height:min(36vh,315px);width:min(100%,560px);object-fit:contain;filter:drop-shadow(0 16px 35px #0008)}.welcome-panel h1{font-size:clamp(36px,5.7vw,68px);font-family:Georgia,serif;font-weight:400;line-height:1.14;margin:14px 0 18px}.welcome-panel>p{color:#cbbcd9;font-size:16px;max-width:540px;margin:0 auto 26px}.welcome-enter{font-size:15px;padding:15px 24px;min-width:270px}.welcome-enter span{padding-left:10px}.welcome-panel .welcome-foot{font-size:10px;letter-spacing:.28em;margin-top:37px;color:#9782ad}@keyframes welcome{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
/* Escrita e modo foco */
.writing-layout{grid-template-columns:260px minmax(0,1fr);align-items:start}.chapter-sidebar{position:sticky;top:22px;padding:18px}.chapter-sidebar h3{font:normal 21px Georgia,serif;margin-bottom:9px}.chapter{color:#e5d8ef;text-align:left;line-height:1.4;border-radius:12px;padding:14px 13px}.chapter:hover{border-color:#bd8ff0}.chapter.selected{background:#3b2852;border-color:#c08ff1;box-shadow:inset 3px 0 #d4adff}.writing-sheet{background:#18121f;padding:30px clamp(19px,3.8vw,52px);border-radius:23px;min-width:0}.writing-sheet .line:first-child{padding-bottom:15px;border-bottom:1px solid #3f3050}.writing-fields{max-width:850px;margin:0 auto}.writer{display:block;min-height:520px;max-width:100%;width:100%;padding:30px clamp(18px,4vw,50px);line-height:1.9;font:18px/1.95 Georgia,'Times New Roman',serif;background:#14101b;border:1px solid #42314f;border-radius:13px;resize:vertical;color:#f0eaf5}.writer:focus{background:#1b1325}.writing-sheet #f-chapterTitle{font-size:20px;font-family:Georgia,serif}.focus .layout{display:block!important}.focus .sidebar,.focus .sidepanel,.focus .top,.focus .footer{display:none!important}.focus .main{display:block;width:100%;max-width:1100px;padding:38px 22px;margin:auto}.focus .split{display:block!important}.focus .writing-sheet{max-width:1000px;margin:0 auto;border-radius:24px;padding:24px clamp(18px,4vw,55px)}.focus .writer{min-height:67vh;font-size:19px;padding:36px clamp(15px,5vw,75px);background:#13101a}.focus .writing-fields{max-width:870px}.focus .writing-sheet>.line{padding:7px 0 20px}.focus .writing-sheet .actions .btn{font-size:12px}.focus .form{gap:20px}
/* Rede de personagens e familiares */
.rel-hero,.codex-intro,.timeline-intro{border:1px solid #654a79;background:radial-gradient(circle at 87% 26%,#5e39704c,transparent 48%),linear-gradient(135deg,#2b1b3a,#160f22);border-radius:22px;padding:30px;position:relative;overflow:hidden;margin-bottom:23px}.rel-hero h2,.codex-intro h2,.timeline-intro h2{font:normal clamp(27px,3.2vw,39px) Georgia,serif;margin:9px 0 12px}.rel-hero p,.codex-intro p{color:#cab6d9;max-width:680px}.rel-hero-icon{position:absolute;right:45px;top:10px;font:140px Georgia,serif;color:#ae85d941;pointer-events:none}.graph-panel,.family-panel{border:1px solid #4c375e;background:#1a1326;border-radius:20px;padding:24px;margin:22px 0}.graph-panel h2,.family-panel h2{font-size:27px}.network-wrap{text-align:center;overflow:hidden}.network-svg{width:100%;max-width:840px;max-height:410px;display:block;margin:auto}.network-node{cursor:pointer}.network-node circle{transition:fill .2s}.network-node:hover circle{fill:#6b397f}.network-node:focus{outline:none}.network-node:focus circle{stroke:#fff}.rel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:16px}.relation-card{padding:23px;border-radius:19px;background:linear-gradient(135deg,#251a32,#17111f);border:1px solid #554167;display:grid;align-content:start;gap:17px}.relation-people{display:flex;align-items:center;justify-content:space-between;gap:10px;font:normal 18px Georgia,serif}.relation-symbol{display:grid;place-items:center;min-width:38px;height:38px;border-radius:50%;color:#d9b5ff;background:#432958}.relation-card>p{color:#bcaed0;margin:0;line-height:1.6}.affinity-label{display:flex;justify-content:space-between;font-size:12px;color:#b8a7c8}.affinity-label strong{color:#e5cbff}.affinity-track{background:#362840;height:7px;border-radius:40px;overflow:hidden;margin-top:9px}.affinity-track div{height:100%;background:linear-gradient(90deg,#d35b90,#b38af2,#73c4b5);border-radius:40px}.warning-copy{color:#f5b0b8!important}.familygraph{display:grid;gap:19px;margin-top:25px}.kinship{display:flex;justify-content:center;align-items:center;gap:11px;flex-wrap:wrap;padding:16px;border:1px solid #4d3a5b;border-radius:18px;background:#211729}.kinship-node{display:flex;flex-direction:column;align-items:center;min-width:130px;gap:5px;text-align:center}.kinship-avatar{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#48305d;border:2px solid #a780c6;color:#e7d7ff;font-size:25px}.kinship-link{display:grid;gap:10px;text-align:center;font-size:11px;color:#d9b6f5}.kinship-connector{height:2px;width:80px;background:#a987cb}
/* Codex */
.codex-intro{display:flex;align-items:center;gap:20px}.codex-sigil{height:94px;width:94px;display:grid;place-items:center;flex-shrink:0;background:#5736754d;border:1px solid #a579d1;border-radius:21px;font:64px Georgia,serif;color:#d4adfa}.codex-filters{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0}.filter-pill{border:1px solid #594167;background:#25182f;color:#cdbadf;border-radius:999px;padding:10px 16px}.filter-pill.active,.filter-pill:hover{background:#674084;color:white;border-color:#b58be0}.codex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:18px}.codex-card{border:1px solid #59426c;border-radius:22px;padding:24px;display:flex;flex-direction:column;gap:15px;position:relative;overflow:hidden;background:radial-gradient(circle at 100% 0%,#4d2a5c69,transparent 50%),#1c1526}.codex-card .codex-symbol{font-size:38px;color:#c6a0f6;line-height:1}.codex-card h3{font:normal 25px Georgia,serif}.codex-card p{color:#baafc6;line-height:1.7;min-height:70px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.codex-card .actions{margin-top:auto}.codex-card .btn{font-size:12px;padding:9px 11px}
/* Linha do tempo */
.timeline-intro{margin-bottom:20px}.timeline-rail{max-width:970px;margin:15px auto 20px;position:relative}.timeline-rail:before{content:'';position:absolute;left:29px;top:30px;bottom:32px;width:2px;background:linear-gradient(#a773e7,#664881,#311e44)}.timeline-entry{display:grid;grid-template-columns:64px 1fr;gap:15px;align-items:start;margin:0 0 18px;position:relative}.timeline-pin{width:58px;height:58px;display:grid;place-items:center;border:2px solid #b48bdc;border-radius:50%;background:#31213e;color:#eacfff;font-family:Georgia,serif;font-size:18px;z-index:1}.timeline-card{border:1px solid #57436b;background:linear-gradient(130deg,#24182f,#16111e);border-radius:18px;padding:23px;min-width:0}.timeline-card h3{font:normal 25px Georgia,serif;margin:12px 0}.timeline-card p{color:#c0b2cc;line-height:1.7}.timeline-card .actions{margin-top:16px}
/* Seleção de capítulos, formulários e modais */
.modal-shade{z-index:100;background:#04020ad9;backdrop-filter:blur(9px);overflow:auto}.modal{border-radius:23px;border-color:#81609c;background:linear-gradient(145deg,#2b1f39,#191222);box-shadow:0 30px 105px #000c;padding:27px;width:min(650px,100%);max-height:min(90svh,950px)}.modal h2{font:normal 28px Georgia,serif}.modal .form{gap:15px}.modal input,.modal textarea,.modal select{background:#17101f}.confirm-dialog{text-align:center;width:min(460px,100%);padding:33px}.confirm-icon{margin:0 auto 17px;width:62px;height:62px;border-radius:19px;background:#6c2f4a;color:#ffcedc;display:grid;place-items:center;font-size:34px}.confirm-dialog p{line-height:1.7}.confirm-actions{justify-content:center;margin-top:25px}.nv-toast{position:fixed;bottom:22px;right:22px;max-width:min(420px,calc(100vw - 36px));background:#38264c;border:1px solid #ad84d5;border-radius:14px;padding:17px 20px;color:#f8ecff;z-index:200;box-shadow:0 12px 35px #0008}.export-chapters{background:#180f21;border:1px solid #4d395c;border-radius:16px;max-height:245px;padding:12px;gap:0}.export-check{display:grid;grid-template-columns:22px 37px 1fr;gap:12px;padding:11px;align-items:center;border-bottom:1px solid #3d2b4c;line-height:1.4;font-size:14px;cursor:pointer}.export-check:last-child{border-bottom:0}.export-check input,.export-option input{appearance:none;width:19px;height:19px;border:1px solid #9c7bbb;border-radius:5px;padding:0;background:#271b34;display:inline-grid;place-content:center;cursor:pointer;flex-shrink:0}.export-check input:checked,.export-option input:checked{background:#9565c9}.export-check input:checked:after,.export-option input:checked:after{content:'✓';font-weight:bold;color:white;font-size:13px}.export-num{color:#b78adf}.export-option{display:flex;align-items:center;gap:12px;border:1px solid #4b395b;border-radius:13px;padding:14px 16px;background:#211629;color:#e0d1eb;cursor:pointer}.export-option span{color:#d6a8ff;font-size:20px}.upload-zone{display:grid;place-items:center;text-align:center;gap:6px;padding:24px;border:1px dashed #a075c7;border-radius:16px;background:#291a38;cursor:pointer}.upload-zone .upload-icon{font-size:35px}.upload-zone small{color:#c2b0d4}.upload-zone:hover{background:#3a244f}.file-cta{background:#442c56}.field label{font-size:12px}
@media(max-width:1120px){.home-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.hero.brand-hero{grid-template-columns:1fr 220px}.kinship-link{max-width:120px}}
@media(max-width:850px){.layout{display:block}.sidebar{position:relative;height:auto;padding:14px}.nav{scrollbar-width:thin}.brand-button{padding-bottom:5px}.main{padding:25px 16px 50px}.writing-layout{display:grid;grid-template-columns:1fr}.chapter-sidebar{position:static}.hero.brand-hero{grid-template-columns:1fr}.hero-brand-image{max-height:240px}.rel-grid{grid-template-columns:1fr}.codex-intro{padding:20px}.network-svg{min-width:480px}.network-wrap{overflow-x:auto}.welcome-logo{max-height:260px}}
@media(max-width:560px){.home-tiles{grid-template-columns:1fr}.recent-card,.home-bottom{align-items:start;flex-direction:column}.top h1{font-size:34px}.writing-sheet{padding:16px}.writer{font-size:16px;padding:18px;min-height:430px}.focus .main{padding:12px}.focus .writing-sheet{padding:13px}.codex-intro{display:block}.codex-sigil{margin-bottom:15px}.codex-grid{grid-template-columns:1fr}.timeline-entry{grid-template-columns:42px 1fr;gap:10px}.timeline-pin{width:42px;height:42px;font-size:13px}.timeline-rail:before{left:20px}.timeline-card{padding:15px}.kinship-link{width:50px;overflow-wrap:anywhere}.kinship-node{min-width:90px}.kinship-connector{width:50px}.modal{padding:18px}.welcome-screen{padding:20px 15px}.welcome-panel h1{font-size:37px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
