@font-face{font-family:WizardOfTheMoon;src:url(/WizardOfTheMoon.ttf) format("truetype");font-weight:400;font-style:normal}:root{--bg: #060608;--sf: #0b0b0e;--card: #111114;--chi: #181818;--brd: #2a2a44;--brh: #3a3a5a;--tx: #f0ece4;--dim: #9999bb;--mut: #555570;--cc: #c966ff;--ci: #ff7040;--cl: #00e5cc;--ct: #3388ff;--cca: #ffaa33;--ccn: #ff3355;--cw: #ffcc00;--cq: #ff44aa;--csp: #7acc7a;--csc: #66bbff;--cwr: #e577ff;--cd: #aaaacc;--cfl: #ff6b6b;--ctl: #88ddff;--sl: #7acc7a;--sp: #ffcc00;--so: #ff7040;--se: #c966ff;--r: 8px;--rl: 12px;--fs: 13px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:var(--fs)}body{font-family:Nunito Sans,sans-serif;background:var(--bg);color:var(--tx);min-height:100vh;overflow-x:hidden;font-size:var(--fs)}input,select,textarea,button{font-family:inherit}button{cursor:pointer}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--brd);border-radius:3px}.area{padding:0 10px 90px}.cg{display:grid;gap:6px}.nav{position:sticky;top:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--brd);padding:6px 10px}.nav-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.nav-title{font-family:Cinzel,serif;font-size:12px;color:var(--dim);letter-spacing:.08em;text-align:center;flex:1}.nav-title b{color:var(--cc)}.nav-btns{display:flex;gap:4px;align-items:center}.nav-btn{background:var(--sf);border:1px solid var(--brd);border-radius:6px;color:var(--dim);padding:3px 8px;font-size:11px;transition:.2s}.nav-btn:hover{color:var(--tx);border-color:var(--brh)}.nav-search{flex:1;margin:0 8px;min-width:0;padding:5px 10px;font-size:12px}.tabs-bar{display:flex;gap:3px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch}.tabs-bar::-webkit-scrollbar{height:0}.tab-btn{flex-shrink:0;padding:4px 10px;border:1px solid transparent;border-radius:16px;background:none;font-size:11px;font-weight:600;color:var(--mut);transition:.2s;white-space:nowrap}.tab-btn:hover{color:var(--dim);background:#ffffff08}.tab-btn.active{border-color:var(--tab-color, var(--cc));color:var(--tab-color, var(--cc));background:#ffffff0a}.tbar{display:flex;gap:5px;padding:8px 10px;flex-wrap:wrap;align-items:center}.sx{flex:1;min-width:140px;padding:6px 10px;border-radius:var(--r);border:1px solid var(--brd);background:var(--sf);color:var(--tx);outline:0;transition:.2s;font-size:1em}.sx:focus{border-color:var(--cc)}.sx::placeholder{color:var(--mut)}.filter-group{display:flex;gap:2px;flex-wrap:wrap}.fp{padding:2px 8px;border-radius:11px;border:1px solid var(--brd);background:none;font-size:.77em;color:var(--dim);transition:.2s}.fp.active{border-color:currentColor;background:#ffffff0d}.btn{padding:6px 12px;border-radius:var(--r);border:none;font-size:.85em;font-weight:600;transition:.15s}.btn:active{transform:scale(.95);filter:brightness(.82)}.btn-primary{color:#fff}.btn-primary:hover{filter:brightness(1.15)}.btn-sm{padding:3px 8px;font-size:.77em;border-radius:5px}.btn-outline{background:none;border:1px solid var(--brd);color:var(--dim)}.btn-outline:hover{border-color:var(--dim);color:var(--tx)}.btn-outline:active{background:#ffffff14}.btn-danger{background:#f35;color:#fff}.nav-btn:active{background:#ffffff1f!important;transform:scale(.9)}.tab-btn:active{transform:scale(.94)}.entry-card{background:var(--card);border:1px solid var(--brd);border-left:3px solid var(--card-color, var(--cc));border-radius:var(--r);padding:10px 12px;cursor:pointer;transition:.12s}.entry-card:hover{background:var(--chi)}.entry-title{font-family:Cinzel,serif;font-size:1.08em;font-weight:600}.entry-meta{display:flex;gap:3px;flex-wrap:wrap;margin-top:3px}.entry-detail{margin-top:6px;font-size:.92em;color:var(--dim);line-height:1.4}.entry-notes{margin-top:5px;padding:5px 7px;background:#ffffff05;border-radius:4px;font-size:.85em;color:var(--dim);font-style:italic;border-left:2px solid var(--mut)}.entry-actions{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap}.badge{padding:1px 6px;border-radius:8px;font-size:.69em;font-weight:600;border:1px solid}.badge-locked{color:var(--sl);border-color:#7acc7a4d}.badge-provisional{color:var(--sp);border-color:#ffcc004d}.badge-open{color:var(--so);border-color:#ff70404d}.badge-exploratory{color:var(--se);border-color:#c966ff4d}.badge-book{color:var(--dim);border-color:var(--brd);font-size:.62em}.badge-flag{color:var(--cfl);border-color:#ff6b6b4d;cursor:pointer}.modal-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000000b3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:flex-start;padding:24px 10px;overflow-y:auto}.modal-overlay.open{display:flex}.modal-box{background:var(--sf);border:1px solid var(--brd);border-radius:var(--rl);width:100%;max-width:580px;padding:18px;animation:modal-in .15s;position:relative;max-height:90vh;overflow-y:auto}@keyframes modal-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1}}.modal-close{position:absolute;top:8px;right:10px;background:none;border:none;color:var(--dim);font-size:18px;cursor:pointer;padding:2px 6px;border-radius:4px}.modal-close:hover{color:var(--tx);background:#ffffff0d}.modal-title{font-family:Cinzel,serif;font-size:1.15em;margin-bottom:12px}.field{margin-bottom:10px}.field label{display:block;font-size:.77em;font-weight:600;color:var(--dim);margin-bottom:2px;text-transform:uppercase;letter-spacing:.03em}.field input,.field select,.field textarea{width:100%;padding:6px 9px;border-radius:var(--r);border:1px solid var(--brd);background:var(--card);color:var(--tx);font-size:.92em;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--cc)}.field textarea{min-height:55px;resize:vertical}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.check-group{display:flex;gap:8px;flex-wrap:wrap}.check-group label{display:flex;align-items:center;gap:3px;font-size:11px;color:var(--dim);cursor:pointer;text-transform:none;letter-spacing:0}.check-group input[type=checkbox]{width:auto;accent-color:var(--cc)}.modal-actions{display:flex;gap:5px;justify-content:flex-end;margin-top:14px}.confirm-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#000c;justify-content:center;align-items:center}.confirm-overlay.open{display:flex}.confirm-box{background:var(--sf);border:1px solid var(--brd);border-radius:var(--rl);padding:18px;max-width:320px;text-align:center}.confirm-box p{margin-bottom:12px;font-size:.92em}.iobar{position:fixed;bottom:0;left:0;right:0;background:var(--sf);border-top:1px solid var(--brd);padding:5px 10px;display:flex;gap:4px;justify-content:center;z-index:50;flex-wrap:wrap}.empty{text-align:center;padding:40px 14px;color:var(--mut)}.empty-icon{font-size:2.46em;margin-bottom:6px}.empty p{font-size:12px;margin-bottom:10px}.sync-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.sync-dot.local{background:var(--mut)}.sync-dot.synced{background:var(--sl)}.sync-dot.syncing{background:var(--sp);animation:pulse 1s infinite}.sync-dot.error{background:var(--ccn)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.tool-card{background:var(--card);border:1px solid var(--brd);border-radius:var(--rl);padding:16px;margin-bottom:10px}.tool-card h3{font-family:Cinzel,serif;font-size:14px;margin-bottom:10px}.calc-result{background:var(--sf);border:1px solid var(--brd);border-radius:var(--r);padding:10px;margin-top:8px;font-size:12px}.calc-row{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.03)}.calc-val{color:var(--cca);font-weight:600}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;margin-bottom:14px}.dash-card{background:var(--card);border:1px solid var(--brd);border-radius:var(--r);padding:8px;text-align:center;cursor:pointer;transition:.2s}.dash-card:hover{border-color:var(--brh)}.dash-num{font-family:Cinzel,serif;font-size:1.69em;font-weight:700}.dash-label{font-size:.69em;color:var(--dim);margin-top:1px;text-transform:uppercase;letter-spacing:.03em}.flag-card{background:var(--card);border:1px solid var(--brd);border-left:3px solid var(--cfl);border-radius:var(--r);padding:10px;margin-bottom:6px}.flag-pri{display:inline-block;padding:1px 6px;border-radius:6px;font-size:9px;font-weight:600}.cal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.cal-month{background:#0d0d10;border:1px solid var(--brd);border-radius:var(--r);padding:8px;transition:.2s;cursor:pointer}.cal-month:hover{border-color:var(--brh)}.day-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:2px}.day-cell{padding:3px;border-radius:3px;background:#ffffff04;text-align:center;font-size:10px;min-height:28px}.day-cell.has-entry{background:#c966ff26;border:1px solid rgba(201,102,255,.35);cursor:pointer}.wardrobe-card{background:var(--card);border:1px solid var(--brd);border-left:3px solid var(--cwr);border-radius:var(--r);padding:10px;margin-bottom:6px}.wardrobe-item{display:inline-block;padding:3px 8px;margin:2px;border-radius:12px;font-size:10px;border:1px solid var(--brd);background:var(--sf);cursor:pointer;transition:.2s}.wardrobe-item:hover{border-color:var(--cwr)}.loc-node{display:flex;align-items:center;gap:5px;padding:5px 8px;background:var(--card);border:1px solid var(--brd);border-radius:var(--r);cursor:pointer;transition:.12s;margin-bottom:3px}.loc-node:hover{background:var(--chi)}.loc-children{margin-left:18px;border-left:1px solid var(--brd);padding-left:8px;margin-top:2px}.scene-card{background:var(--card);border:1px solid var(--brd);border-left:3px solid var(--csc);border-radius:var(--r);padding:8px 10px;margin-bottom:4px;cursor:grab;transition:.1s;-webkit-user-select:none;user-select:none}.scene-card.drag-over{border-top:2px solid var(--csc)}.color-swatch{width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.2);cursor:pointer;display:inline-block}.portrait-canvas-wrap{position:relative;overflow:hidden;border:1px solid var(--brd);border-radius:var(--r)}.portrait-canvas-wrap canvas{display:block;max-width:100%;cursor:crosshair;touch-action:none}.grad-bar{width:100%;max-width:300px;height:28px;border-radius:4px;cursor:crosshair;display:block;border:1px solid var(--brd)}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px;margin-top:8px}.gallery-img{aspect-ratio:1;object-fit:cover;border-radius:var(--r);border:1px solid var(--brd);cursor:pointer;transition:.2s}.gallery-img:hover{border-color:var(--cc)}.map-thumb{position:relative;display:inline-block;border:1px solid var(--brd);border-radius:var(--r);overflow:hidden}.map-thumb img{max-width:100%;display:block}.map-thumb .map-remove{position:absolute;top:4px;right:4px;background:#000000b3;border:none;color:#f35;border-radius:50%;width:20px;height:20px;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center}.timeline-wrap{overflow-x:auto;cursor:grab;padding:12px 0 16px}.timeline-track{position:relative;min-height:180px;padding:0 30px}.timeline-line{position:absolute;top:50px;left:15px;right:15px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--ct),var(--cc),var(--ccn),var(--cca),var(--cl))}.timeline-dot{position:absolute;top:44px;width:12px;height:12px;border-radius:50%;border:2px solid #fff;cursor:pointer;transition:.2s;z-index:2}.timeline-dot:hover{transform:scale(1.4);z-index:5}.timeline-label{position:absolute;width:160px;background:var(--card);border:1px solid var(--brd);border-radius:6px;padding:5px 7px;font-size:9px;z-index:1;pointer-events:none}@media (max-width: 700px){.cal-grid{grid-template-columns:repeat(2,1fr)}.field-row{grid-template-columns:1fr}}@media (max-width: 400px){.cal-grid{grid-template-columns:1fr}}.header-corner-zone{position:absolute;top:0;right:0;width:48px;height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;z-index:10}.header-corner-btn{background:#0000008c;border:1px solid rgba(255,255,255,.12);border-radius:50%;width:20px;height:20px;font-size:10px;color:#ffffff59;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;padding:0}.header-corner-zone:hover .header-corner-btn{opacity:1}
