/*! tailwindcss v4.1.6 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--radius-sm:.25rem;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-40{height:calc(var(--spacing)*40)}.w-full{width:100%}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.flex-row{flex-direction:row}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}:root{--accent:#4a6cf7;--accent-soft:#4a6cf71a;--bg:#fafaf7;--bg-deep:#f3f1ec;--surface:#fff;--surface-2:#f6f4ef;--surface-3:#ece8df;--ink:#1a1815;--ink-2:#4a463f;--ink-3:#807a6e;--ink-4:#b5ad9e;--border:#e3ddd0;--border-strong:#c9c1ae;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 2px 8px #0000000f,0 1px 3px #0000000a;--shadow-lg:0 12px 32px #00000014,0 2px 8px #0000000f;--success:#4a8a5a;--warn:#b07a2b;--danger:#b14a3a;--radius:8px;--radius-lg:12px;--font:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",system-ui,sans-serif;--font-display:var(--font);--font-mono:"JetBrains Mono","SF Mono",ui-monospace,monospace;--font-scale:1;font-size:calc(16px*var(--font-scale))}[data-theme=fantasy]{--bg:#f0eadc;--bg-deep:#e8e0cc;--surface:#f7f1e2;--surface-2:#efe7d2;--surface-3:#e3d8bd;--ink:#2b2519;--ink-2:#574c38;--ink-3:#8a7a5c;--ink-4:#b8a880;--border:#d6c9a8;--border-strong:#b8a980;--font:var(--font-crimson-pro),Georgia,"Times New Roman",serif;--font-display:var(--font-cinzel),Georgia,serif;--font-scale:1.5}[data-theme=scifi]{--bg:#0e1014;--bg-deep:#07090c;--surface:#16191f;--surface-2:#1c2027;--surface-3:#262b34;--ink:#ecedef;--ink-2:#c4c6cb;--ink-3:#888c95;--ink-4:#555964;--border:#2a2f38;--border-strong:#3a4150;--shadow-sm:0 1px 2px #00000059;--shadow-md:0 2px 10px #00000073,0 1px 3px #0000004d;--shadow-lg:0 18px 40px #0000008c,0 4px 12px #0006;--success:#6fb077;--warn:#d4a052;--danger:#d96a5a;--font:var(--font-saira),system-ui,sans-serif;--font-display:var(--font-rajdhani),system-ui,sans-serif;--font-scale:1.2}.card-section-title,.dashboard-empty-title,.dashboard-hero-title,.dashboard-panel-title,.element-card-name,.form-section-title,.last-session-num,.layer-panel-title,.library-empty-title,.page-title,.sheet-section-title,.stat-card-num,.workspace-home h1{font-family:var(--font-display)}*,:after,:before{box-sizing:border-box}body,html{height:100%;margin:0;padding:0}button{cursor:pointer;background:0 0;border:none;font-family:inherit}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:.875rem;line-height:1.5}.shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}:root{--sidebar-width:260px}.app{grid-template-columns:var(--sidebar-width)1fr;flex:1;min-height:0;display:grid}.app,.main{overflow:hidden}.main{flex-direction:column;min-width:0;display:flex}.content{flex:1;overflow:auto}.sidebar{background:var(--surface-2);border-right:1px solid var(--border);flex-direction:column;height:100%;display:flex;overflow:hidden}.sidebar-head{padding:12px;position:relative}.sidebar-head,.sidebar-search{border-bottom:1px solid var(--border)}.sidebar-search{padding:8px 12px}.sidebar-nav{flex:1;padding:8px 0;overflow-y:auto}.sidebar-foot{border-top:1px solid var(--border);padding:10px 12px}.sidebar-foot--account{flex-direction:column;gap:8px;display:flex}.sidebar-foot--account .avatar-name{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.sidebar-foot--account .btn-ghost{justify-content:flex-start;width:100%}.sidebar-back-link{color:var(--ink-3);border-radius:4px;align-items:center;gap:4px;margin-bottom:6px;padding:2px 4px;font-size:.6875rem;font-weight:500;text-decoration:none;display:inline-flex}.sidebar-back-link:hover{color:var(--ink);background:var(--surface-3)}.sidebar-campaign-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;padding:0 4px;font-size:.8125rem;font-weight:600;overflow:hidden}.ws-switcher{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);cursor:pointer;width:100%;color:var(--ink);align-items:center;gap:8px;padding:6px 8px;font-size:.8125rem;font-weight:500;display:flex}.ws-switcher:hover{background:var(--surface-3)}.ws-cover{background:var(--accent);color:#fff;border-radius:4px;flex-shrink:0;justify-content:center;width:22px;height:22px;font-size:.625rem;font-weight:700}.search-box,.ws-cover{align-items:center;display:flex}.search-box{border-radius:var(--radius);background:var(--surface-3);cursor:pointer;width:100%;color:var(--ink-3);border:1px solid #0000;gap:8px;padding:6px 10px;font-size:.8125rem}.search-box:hover{background:var(--surface);border-color:var(--border)}.search-box svg{flex-shrink:0;width:16px;height:16px}.nav-section{margin-bottom:4px}.nav-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-4);padding:4px 16px;font-size:.6875rem;font-weight:600}.nav-item{border-radius:var(--radius);color:var(--ink-2);cursor:pointer;align-items:center;gap:8px;margin:0 6px;padding:6px 12px;font-size:.8125rem;font-weight:400;text-decoration:none;display:flex}.nav-item:hover{background:var(--surface-3);color:var(--ink)}.nav-ai-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-left:auto;animation:intrigue-pulse 1.6s ease-in-out infinite}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-item svg{opacity:.7;flex-shrink:0}.nav-item.active svg{opacity:1}.sidebar-avatar{gap:8px;font-size:.8125rem}.avatar,.sidebar-avatar{align-items:center;display:flex}.avatar{background:var(--surface-3);border:1px solid var(--border);width:28px;height:28px;color:var(--ink-2);border-radius:50%;flex-shrink:0;justify-content:center;font-size:.6875rem;font-weight:700}.avatar-name{color:var(--ink);font-weight:500}.avatar-role{color:var(--ink-3);font-size:.6875rem}.topbar{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;align-items:center;gap:12px;padding:0 20px 0 0;display:flex;position:sticky;top:0}.topbar-brand{width:var(--sidebar-width);flex:0 0 var(--sidebar-width);align-items:center;line-height:0;display:inline-flex}.topbar-logo{width:100%;height:auto;display:none}.topbar-logo--modern{display:block}[data-theme=fantasy] .topbar-logo--modern,[data-theme=scifi] .topbar-logo--modern{display:none}[data-theme=fantasy] .topbar-logo--fantasy,[data-theme=scifi] .topbar-logo--scifi{display:block}.topbar-spacer{flex:1}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);gap:2px;padding:2px;display:flex}.segmented-item{border-radius:calc(var(--radius) - 2px);color:var(--ink-3);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:5px 10px;font-family:inherit;font-size:.8125rem;font-weight:500;transition:all .1s;display:inline-flex}.segmented-item:hover{color:var(--ink);background:var(--surface-3)}.segmented-item.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm);font-weight:600}.icon-btn{border-radius:var(--radius);width:32px;height:32px;color:var(--ink-2);cursor:pointer;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--surface-3);color:var(--ink)}.cmdk-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#0a0c1073;justify-content:center;align-items:flex-start;padding-top:15vh;display:flex;position:fixed;inset:0}.cmdk-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:620px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-lg);overflow:hidden}.cmdk-input-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 16px;display:flex}.cmdk-input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:.9375rem}.cmdk-input::placeholder{color:var(--ink-4)}.cmdk-list{min-height:120px}.cmdk-empty{color:var(--ink-3);flex-direction:column;justify-content:center;gap:6px;padding:32px 16px;font-size:.8125rem}.cmdk-empty,.cmdk-foot{align-items:center;display:flex}.cmdk-foot{border-top:1px solid var(--border);color:var(--ink-4);gap:12px;padding:8px 14px;font-size:.6875rem}.cmdk-foot kbd{font-family:var(--font-mono);background:var(--surface-3);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:.625rem}.workspace-home{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 52px);padding:40px;display:flex}.workspace-home h1{letter-spacing:-.02em;color:var(--ink);margin:0 0 12px;font-size:1.75rem;font-weight:700}.workspace-home p{color:var(--ink-2);margin:0 0 24px;font-size:.9375rem}.btn{border-radius:var(--radius);cursor:pointer;align-items:center;gap:6px;padding:8px 18px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.btn.accept{background:var(--ink);color:var(--bg)}.btn.accept:hover{opacity:.88}.btn--sm{padding:5px 12px;font-size:.8125rem}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover{opacity:.88}.btn--danger:disabled,.btn.accept:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{color:var(--ink-3);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;align-items:center;gap:4px;padding:4px 8px;font-family:inherit;font-size:.8125rem;font-weight:500;display:inline-flex}.btn-ghost:hover{color:var(--ink);background:var(--surface-3)}.btn-ghost--danger:hover{color:var(--danger);background:#b14a3a14}.page-body{max-width:1200px;padding:28px 32px}.page-body--narrow{max-width:640px}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-title{letter-spacing:-.02em;color:var(--ink);margin:0;font-size:1.375rem;font-weight:700}.page-back{color:var(--ink-3);margin-bottom:6px;font-size:.75rem;text-decoration:none;display:inline-block}.page-back:hover{color:var(--ink)}.campaign-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.campaign-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;text-decoration:none;transition:box-shadow .15s,border-color .15s;display:flex;position:relative;overflow:hidden}.campaign-tile:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong)}.campaign-tile-cover{background:var(--surface-3);justify-content:center;align-items:center;height:100px;display:flex;overflow:hidden}.campaign-tile-initial{color:var(--ink-4);font-size:2.25rem;font-weight:700}.campaign-tile-body{flex:1;padding:12px 14px 14px}.campaign-tile-name{color:var(--ink);margin-bottom:4px;font-size:.875rem;font-weight:600}.campaign-tile-system{color:var(--ink-3);margin-bottom:6px;font-size:.75rem}.map-a11y-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-top:10px;padding:8px 12px}.map-a11y-panel>summary{cursor:pointer;color:var(--ink-2);font-size:.8125rem}.map-a11y-search{max-width:320px;margin:8px 0}.map-a11y-list{flex-direction:column;gap:4px;max-height:300px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.map-a11y-item{border-bottom:1px solid var(--border);color:var(--ink-1);flex-wrap:wrap;align-items:center;gap:6px;padding:2px 0;font-size:.8125rem;display:flex}.map-a11y-name{min-width:180px}.map-a11y-actions{gap:2px;display:inline-flex}.map-a11y-layer{border:1px solid var(--border);background:var(--surface-2);color:var(--ink-1);border-radius:4px;padding:2px 4px;font-size:.75rem}.map-a11y-posform{align-items:center;gap:6px;font-size:.75rem;display:inline-flex}.map-a11y-posform .form-input{width:80px;padding:2px 6px}.map-a11y-listing pre{color:var(--ink-2);background:var(--surface-2);border-radius:var(--radius);max-height:200px;padding:8px;font-size:.75rem;overflow:auto}.campaign-tile-ai{color:var(--accent);align-items:center;gap:6px;margin-bottom:6px;font-size:.6875rem;font-weight:600;display:inline-flex}.campaign-tile-ai-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:intrigue-pulse 1.6s ease-in-out infinite}.campaign-tile-meta{color:var(--ink-4);font-size:.6875rem}.campaign-tile-actions{opacity:0;gap:4px;transition:opacity .1s;display:flex;position:absolute;top:8px;right:8px}.campaign-tile:hover .campaign-tile-actions{opacity:1}.campaign-tile-delete,.campaign-tile-pin{background:var(--surface);border:1px solid var(--border);width:26px;height:26px;color:var(--ink-4);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-family:inherit;transition:background .1s,color .1s,border-color .1s;display:flex}.campaign-tile-pin.pinned{opacity:1;color:var(--accent);border-color:var(--accent)}.campaign-tile-actions:has(.campaign-tile-pin.pinned){opacity:1}.campaign-tile-pin:hover{background:var(--surface-3)}.campaign-tile-delete:hover{background:var(--danger);color:var(--danger);border-color:var(--danger)}@supports (color:color-mix(in lab,red,red)){.campaign-tile-delete:hover{background:color-mix(in srgb,var(--danger)10%,transparent)}}.campaign-tile--deleting{opacity:.5;pointer-events:none}.placeholder-page{text-align:center;min-height:300px;color:var(--ink-3);flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex}.placeholder-page h2{color:var(--ink);margin:0 0 8px;font-size:1.25rem;font-weight:600}.placeholder-page p{margin:0;font-size:.875rem}.settings-tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:28px;display:flex}.settings-tab{color:var(--ink-3);border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-size:.8125rem;font-weight:500;text-decoration:none;transition:color .1s}.settings-tab:hover{color:var(--ink)}.settings-tab.active{color:var(--ink);border-bottom-color:var(--accent)}.settings-tab--danger:hover{color:var(--danger)}.settings-tab--danger.active{color:var(--danger);border-bottom-color:var(--danger)}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:600px;padding:24px}.form-field{flex-direction:column;gap:5px;margin-bottom:18px;display:flex}.form-field:last-child{margin-bottom:0}.form-label{color:var(--ink-2);align-items:center;gap:8px;font-size:.8125rem;font-weight:600;display:flex}.form-hint-inline{font-weight:400}.form-hint,.form-hint-inline{color:var(--ink-4);font-size:.6875rem}.form-error{color:var(--danger);font-size:.6875rem}.form-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--ink);font-size:.875rem;font-family:var(--font);outline:none;padding:7px 10px}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.form-input.error{border-color:var(--danger)}.form-input:disabled{opacity:.5;cursor:not-allowed}.form-input--sm{padding:5px 8px;font-size:.8125rem}.form-textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--ink);font-size:.875rem;font-family:var(--font);resize:vertical;outline:none;padding:8px 10px;line-height:1.5}.form-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.form-textarea.error{border-color:var(--danger)}.form-textarea--tall{min-height:240px}.form-char-count{color:var(--ink-4);text-align:right;font-size:.6875rem}.form-char-count .warn{color:var(--warn)}.form-actions--inline{margin-top:10px}.form-section-title{color:var(--ink);margin-bottom:6px;font-size:.875rem;font-weight:600}.form-section-desc{color:var(--ink-3);margin:0 0 16px;font-size:.8125rem}.form-field--checkbox{justify-content:flex-end}.form-label-check{color:var(--ink-2);cursor:pointer;align-items:center;gap:8px;font-size:.8125rem;display:flex}.players-panel{max-width:700px}.players-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.players-count{color:var(--ink-3);font-size:.8125rem;font-weight:500}.players-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.players-empty{text-align:center;color:var(--ink-4);padding:24px;font-size:.8125rem}.player-row{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 14px;display:flex}.player-row:last-child{border-bottom:none}.player-color-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.player-info{flex:1;align-items:center;gap:8px;display:flex}.player-name{color:var(--ink);font-size:.8125rem;font-weight:500}.player-badge{text-transform:uppercase;background:var(--surface-3);color:var(--ink-3);border-radius:3px;padding:1px 5px;font-size:.625rem;font-weight:600}.player-pattern{color:var(--ink-4);font-size:.6875rem;font-family:var(--font-mono)}.player-actions{gap:4px;display:flex}.player-form{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;padding:14px}.player-form-row{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.color-picker{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:20px;height:20px;font-family:inherit;transition:transform .1s}.color-swatch:hover{transform:scale(1.15)}.color-swatch.selected{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.color-input{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;width:28px;height:28px;padding:0}.danger-zone{border-radius:var(--radius-lg);background:#b14a3a0a;border:1px solid #b14a3a4d;max-width:600px;padding:20px 24px}.danger-zone-header{align-items:flex-start;gap:14px;margin-bottom:20px;display:flex}.danger-zone-title{color:var(--danger);margin-bottom:4px;font-size:.875rem;font-weight:600}.danger-zone-desc{color:var(--ink-3);font-size:.8125rem;line-height:1.5}.form-grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-fieldset{border:0;margin:0 0 16px;padding:0}.form-fieldset legend{display:none}.flags-row{flex-wrap:wrap;gap:18px;display:flex}.tags-input-row{align-items:center;gap:8px;display:flex}.type-selector{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.type-selector-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;font-family:inherit;transition:border-color .12s,background .12s;display:flex}.type-selector-btn:hover{background:var(--surface-3);border-color:var(--border-strong)}.type-selector-btn.selected{border-color:var(--accent);background:var(--accent-soft)}.type-selector-label{color:var(--ink-2);font-size:.71875rem;font-weight:600}.type-selector-desc{color:var(--ink-4);text-wrap:pretty;font-size:.65625rem;line-height:1.35}.type-pill{letter-spacing:.04em;font-size:.625rem;font-weight:700;font-family:var(--font-mono);border-radius:4px;align-items:center;padding:2px 6px;display:inline-flex}.type-pc{color:#4a6cf7;background:#4a6cf722}.type-npc{color:#4a7544;background:#5a875422}.type-place{color:#a36322;background:#c97a2b22}.type-event{color:#6f47a0;background:#8a5cb522}.type-item{color:#b14a3a;background:#b14a3a22}.type-faction{color:#2b8c8a;background:#2b8c8a22}.tag{background:var(--surface-2);border:1px solid var(--border);color:var(--ink-3);font-size:.65625rem;font-family:var(--font-mono);border-radius:4px;margin-bottom:4px;margin-right:4px;padding:2px 6px;display:inline-block}.library{max-width:1400px;padding:24px 32px 64px}.lib-head{align-items:baseline;gap:14px;margin-bottom:16px;display:flex}.lib-flag-chips{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.chip{background:var(--surface);border:1px solid var(--border);color:var(--ink-2);border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:.71875rem;display:inline-flex}.chip--ai{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.chip--attn{color:var(--warn);border-color:var(--warn);background:var(--warn)}@supports (color:color-mix(in lab,red,red)){.chip--attn{background:color-mix(in srgb,var(--warn)8%,transparent)}}.library-filters{margin-bottom:20px}.type-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:14px;display:flex}.lib-tab{color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:8px 14px;font-family:inherit;font-size:.8125rem;font-weight:500;display:inline-flex}.lib-tab .count{color:var(--ink-4);background:var(--surface-3);border-radius:3px;padding:1px 5px;font-size:.65625rem}.lib-tab.active{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.lib-tab.active .count{background:var(--accent-soft);color:var(--accent)}.lib-controls{flex-wrap:wrap;gap:10px}.lib-controls,.lib-search{align-items:center;display:flex}.lib-search{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--ink-3);flex:0 0 280px;gap:8px;padding:7px 10px}.lib-search input{color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-family:inherit;font-size:.8125rem}.lib-search input::placeholder{color:var(--ink-4)}.tag-filter-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tag-filter-chip{background:var(--surface);border:1px solid var(--border);color:var(--ink-3);font-size:.71875rem;font-family:var(--font-mono);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-family:inherit;transition:background .1s,border-color .1s;display:inline-flex}.tag-filter-chip:hover{background:var(--surface-3);border-color:var(--border-strong);color:var(--ink)}.tag-filter-chip--active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.tag-filter-chip--removable{padding-right:4px}.tag-chip-remove{width:16px;height:16px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:.75rem;line-height:1;display:inline-flex}.tag-chip-remove:hover{background:var(--surface-3);color:var(--danger)}.tag-filter-more{color:var(--ink-4);font-size:.6875rem}.lib-sort{align-items:center;gap:6px;display:flex}.lib-sort-label{color:var(--ink-3);white-space:nowrap;font-size:.75rem}.lib-sort-select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--ink);cursor:pointer;padding:5px 8px;font-family:inherit;font-size:.78125rem}.library-toolbar{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:16px;padding:10px 0 14px;display:flex}.library-toolbar-left{flex:1;align-items:center;gap:8px;display:flex}.library-toolbar-count{color:var(--ink-3);font-size:.75rem;font-weight:500}.library-toolbar-selection-info{color:var(--ink-2);font-size:.8125rem}.library-toolbar-right,.library-toolbar-selection-info{align-items:center;gap:8px;display:flex}.bulk-action-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:6px;padding:4px 10px;display:flex}.library-loading{text-align:center;color:var(--ink-4);padding:40px;font-size:.8125rem}.library-empty{text-align:center;padding:60px 20px}.library-empty-glyph{color:var(--ink-4);margin-bottom:12px;font-size:2rem}.library-empty-title{color:var(--ink-2);margin-bottom:4px;font-size:1rem;font-weight:600}.library-empty-sub{color:var(--ink-4);font-size:.8125rem}.element-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.element-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:transform .12s,box-shadow .12s,border-color .12s;position:relative;overflow:hidden}.element-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-2px)}.element-card--selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.element-card--selected:hover{transform:none}.element-card-select{z-index:5;cursor:pointer;align-items:center;display:flex;position:absolute;top:8px;left:8px}.element-card-select input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.element-card-link{color:inherit;text-decoration:none;display:block}.element-card-thumb{aspect-ratio:16/9;background:var(--surface-2);color:var(--ink-4);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.element-card-thumb-glyph{z-index:1;font-family:var(--font-mono);letter-spacing:.05em;font-size:1.375rem;font-weight:700;position:relative}.element-card-thumb-img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.thumb-stripe{background-image:repeating-linear-gradient(45deg,transparent 0 6px,var(--surface-3)6px 7px);opacity:.5;position:absolute;inset:0}.flag-icon{z-index:2;gap:4px;display:flex;position:absolute;top:8px;right:8px}.flag-badge{background:var(--surface);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.6875rem;display:flex}.flag-badge--ai{background:var(--accent);border-color:var(--accent);color:#fff}.flag-badge--attn{background:var(--warn);border-color:var(--warn);color:#fff}[data-theme=scifi] .flag-badge--ai,[data-theme=scifi] .flag-badge--attn{color:#0e1014}.element-card-body{padding:12px 14px 14px}.element-card-name{letter-spacing:-.01em;color:var(--ink);margin-bottom:6px;font-size:.875rem;font-weight:600}.element-card-meta{color:var(--ink-3);align-items:center;gap:8px;margin-bottom:8px;font-size:.71875rem;display:flex}.element-card-tags{font-size:.6875rem}.element-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.element-list-header{background:var(--surface-2);border-bottom:1px solid var(--border);color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;grid-template-columns:3fr 100px 1fr 80px;gap:12px;padding:8px 14px;font-size:.65625rem;font-weight:700;display:grid}.element-list-header:has(.element-list-check-col){grid-template-columns:28px 3fr 100px 1fr 80px}.element-list-row{border-bottom:1px solid var(--border);grid-template-columns:3fr 100px 1fr 80px;align-items:center;gap:12px;padding:10px 14px;font-size:.8125rem;transition:background 80ms;display:grid}.element-list-row:last-child{border-bottom:0}.element-list-row:hover{background:var(--surface-2)}.element-list-row--selected,.element-list-row--selected:hover{background:var(--accent-soft)}.element-list-row:has(.element-list-check-col){grid-template-columns:28px 3fr 100px 1fr 80px}.element-list-check-col{cursor:pointer;justify-content:center;align-items:center;display:flex}.element-list-check-col input{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.element-list-link{color:inherit;flex-direction:column;gap:2px;min-width:0;text-decoration:none;display:flex}.element-list-link:hover .element-list-name-text{color:var(--accent)}.element-list-name-text{font-size:.84375rem;font-weight:600}.element-list-name-text,.element-list-summary{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.element-list-summary{color:var(--ink-3);font-size:.71875rem}.element-list-col-name{min-width:0}.element-list-col-tags{flex-wrap:wrap;gap:3px;display:flex}.element-list-col-flags{align-items:center;gap:3px;display:flex}.element-compact{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.element-compact-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:6px 12px;font-size:.8125rem;transition:background 80ms;display:flex}.element-compact-row:last-child{border-bottom:0}.element-compact-row:hover{background:var(--surface-2)}.element-compact-row--selected{background:var(--accent-soft)}.element-compact-check{cursor:pointer;align-items:center;display:flex}.element-compact-check input{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.element-compact-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.8125rem;font-weight:500;text-decoration:none;overflow:hidden}.element-compact-name:hover{color:var(--accent)}.element-compact-tags{flex-shrink:0;gap:3px;display:flex}.switcher-dropdown{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:20;position:absolute;top:calc(100% + 4px);left:8px;right:8px;overflow:hidden}.switcher-item{color:var(--ink-2);align-items:center;gap:8px;padding:8px 12px;font-size:.8125rem;text-decoration:none;display:flex}.switcher-item:hover{background:var(--surface-3);color:var(--ink)}.switcher-divider{background:var(--border);height:1px;margin:2px 0}.switcher-initial{background:var(--accent);color:#fff;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:.625rem;font-weight:700;display:flex}.element-card-page{max-width:1200px;padding:24px}.card-breadcrumb{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:12px;font-size:.75rem;display:flex}.card-breadcrumb-link{color:var(--ink-3);text-decoration:none}.card-breadcrumb-link:hover{color:var(--accent)}.card-breadcrumb-current{color:var(--ink);font-weight:500}.file-input-wrap{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.file-input-name{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;max-width:280px;font-size:.78125rem;overflow:hidden}.card-cover{border-radius:var(--radius-lg);background:var(--surface-2);width:100%;height:280px;margin-bottom:16px;overflow:hidden}.card-cover-img{object-fit:cover;object-position:center 20%;width:100%;height:100%;display:block}.card-stack{align-items:center;gap:3px;min-height:14px;margin-bottom:12px;display:flex}.card-stack-layer{background:var(--border-strong);border:1px solid var(--border);border-radius:2px;width:10px;height:10px}.card-stack-layer--active{background:var(--accent);border-color:var(--accent)}.card-layout{gap:24px;display:flex}.card-content{flex:1;min-width:0}.card-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.card-header-left{flex:1;min-width:0}.card-header-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.card-header-actions{flex-shrink:0}.card-summary{color:var(--ink-2);margin-bottom:12px;font-size:.875rem;font-style:italic}.card-tags{margin-bottom:10px}.card-aliases,.card-tags{flex-wrap:wrap;gap:6px;display:flex}.card-aliases{margin-bottom:12px}.alias-chip{background:var(--surface-3);color:var(--ink-2);border:1px solid var(--border);border-radius:20px;padding:2px 8px;font-size:.71875rem}.card-section{margin-bottom:28px}.card-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:6px;font-size:.75rem;font-weight:600}.card-section-header{justify-content:space-between;align-items:center;display:flex}.section-count{font-weight:400}.element-description{font-size:.875rem;line-height:1.6}.element-desc-empty{color:var(--ink-4);font-size:.8125rem}.element-card-panel-name{cursor:pointer;border-bottom:1px dashed #0000;font-size:1.25rem;font-weight:700}.element-card-panel-name:hover{border-bottom-color:var(--border-strong)}.inline-edit-input{border:none;border-bottom:2px solid var(--accent);background:0 0;outline:none;width:100%;font-size:1.25rem;font-weight:700}.system-badge{background:var(--surface-3);color:var(--ink-2);border:1px solid var(--border);border-radius:4px;padding:2px 8px;font-size:.6875rem}.system-badge--ai{color:#93c5fd;background:#1e3a5f;border-color:#2563eb}.system-badge--attn{color:#fbbf24;background:#422006;border-color:#d97706}.relation-group{margin-bottom:16px}.relation-group-header{color:var(--ink-3);margin-bottom:8px;padding-bottom:4px;font-size:.75rem;font-weight:600}.relation-group-header,.relation-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;display:flex}.relation-row{flex-wrap:wrap;padding:6px 0}.relation-row--reverse{opacity:.85}.relation-label{color:var(--ink-3);font-size:.75rem;font-style:italic}.relation-arrow{color:var(--ink-4);font-size:.75rem}.relation-chip{background:var(--surface-3);border:1px solid var(--border);color:var(--ink);border-radius:20px;align-items:center;gap:4px;padding:2px 8px;font-size:.78125rem;text-decoration:none;display:inline-flex}.relation-chip:hover{border-color:var(--accent);color:var(--accent)}.relation-reverse-badge{color:var(--ink-4);font-size:.625rem}.relation-awareness-btn{cursor:pointer;color:var(--ink-3);background:0 0;border:none;padding:2px;font-size:.875rem}.relation-delete-btn{color:var(--ink-4);cursor:pointer;font-size:.75rem}.add-relation-btn{margin-top:8px;font-size:.8125rem}.awareness-picker{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;gap:8px;margin-top:4px;padding:8px;display:flex}.awareness-option{cursor:pointer;border:1px solid var(--border);color:var(--ink-2);background:0 0;border-radius:4px;align-items:center;gap:4px;padding:4px 8px;font-size:.75rem;display:flex}.awareness-option.active{border-color:var(--accent);color:var(--accent)}.awareness-option:hover{background:var(--surface-3)}.add-relation-form{background:var(--surface-2);border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;gap:8px;margin-top:8px;padding:12px;display:flex}.rel-search-wrapper{position:relative}.rel-search-results{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:10;max-height:200px;margin:0;padding:0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001f}.rel-search-result-btn{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:none;align-items:center;gap:6px;padding:8px 12px;font-size:.8125rem;display:flex}.rel-search-result-btn:hover{background:var(--surface-3)}.rel-selected-badge{color:#16a34a;margin-top:4px;font-size:.75rem;font-weight:500;display:block}.mention-chip{color:var(--accent);background:var(--accent-soft);border-radius:2px;padding:0 2px;font-weight:500;text-decoration:none}.mention-chip:hover{background:var(--accent);color:#fff}.mention-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:20;max-height:220px;margin:0;padding:4px 0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001f}.mention-option{cursor:pointer;color:var(--ink);align-items:center;gap:6px;padding:7px 12px;font-size:.8125rem;display:flex}.mention-option--active,.mention-option:hover{background:var(--surface-3)}.mention-option-summary{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;max-width:160px;margin-left:4px;font-size:.6875rem;overflow:hidden}.mention-chip--deleted{color:var(--ink-4);background:var(--surface-3);border:1px solid var(--border);cursor:not-allowed;border-radius:2px;padding:0 2px;font-size:.75rem}.mention-chip-wrapper{position:relative}.mention-tooltip{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:180px;max-width:280px;box-shadow:var(--shadow-lg);padding:8px 12px;font-size:.8125rem;position:absolute;bottom:120%;left:0}.mention-tooltip-type{color:var(--ink-3);font-size:.75rem}.mention-tooltip-summary{color:var(--ink-2);margin-top:4px;font-size:.75rem}.journal-entry{border-bottom:1px solid var(--border);padding:10px 0}.journal-entry-header{color:var(--ink-3);align-items:center;gap:8px;margin-bottom:6px;font-size:.75rem;display:flex}.journal-entry-session{color:var(--accent);font-weight:600}.journal-entry-body{font-size:.84375rem;line-height:1.6}.journal-entry-form{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;margin-bottom:12px;padding:12px;display:flex}.journal-entry-edit-btn{opacity:0;margin-left:auto;padding:1px 6px;font-size:.6875rem;transition:opacity .1s}.journal-entry:hover .journal-entry-edit-btn{opacity:1}.journal-entry-edit-form{flex-direction:column;margin-top:4px;display:flex}.journal-show-all{margin-top:8px;font-size:.8125rem}.element-properties{grid-template-columns:auto 1fr;gap:4px 16px;display:grid}.property-row{display:contents}.property-key{color:var(--ink-3);text-transform:capitalize;padding:4px 0;font-size:.75rem;font-weight:500}.property-val{color:var(--ink);padding:4px 0;font-size:.8125rem}.anchor-menu{flex-shrink:0;align-self:flex-start;width:160px;position:sticky;top:80px}.anchor-menu-list{margin:0;padding:0;list-style:none}.anchor-menu-item{margin-bottom:2px}.anchor-menu-link{color:var(--ink-3);border-left:2px solid #0000;border-radius:4px;padding:4px 8px;font-size:.75rem;text-decoration:none;display:block}.anchor-menu-link:hover{color:var(--ink);background:var(--surface-3)}.anchor-menu-link--active{color:var(--accent);border-left-color:var(--accent);font-weight:500}.aggregated-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.export-btn{font-size:.75rem}.checkbox-label{cursor:pointer;align-items:center;gap:6px;font-size:.8125rem;display:flex}.intrigue-page{flex-direction:column;height:100%;display:flex;overflow:hidden}.intrigue-canvas-wrap{flex:1;min-height:0;position:relative}.intrigue-canvas-wrap .react-flow{background:var(--bg)}.intrigue-canvas-wrap .react-flow__background{opacity:.6}.intrigue-node{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);width:180px;box-shadow:var(--shadow-md);cursor:grab;align-items:center;gap:10px;padding:8px 10px;transition:border-color .15s,box-shadow .15s;display:flex}.intrigue-node:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lg)}.intrigue-node[data-selected]{border-color:var(--node-accent,var(--accent));box-shadow:0 0 0 2px var(--node-accent,var(--accent)),var(--shadow-md)}@supports (color:color-mix(in lab,red,red)){.intrigue-node[data-selected]{box-shadow:0 0 0 2px color-mix(in srgb,var(--node-accent,var(--accent))25%,transparent),var(--shadow-md)}}.intrigue-node-thumb{flex-shrink:0;position:relative;overflow:visible}.intrigue-node-img,.intrigue-node-thumb{border-radius:6px;width:40px;height:40px}.intrigue-node-img{object-fit:cover}.intrigue-node-placeholder{border-radius:6px;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;font-weight:700;display:flex}.intrigue-node-status{border:2px solid var(--surface);border-radius:50%;width:10px;height:10px;position:absolute;bottom:-2px;right:-2px}.intrigue-node-body{flex:1;min-width:0}.intrigue-node-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;line-height:1.3;overflow:hidden}.intrigue-node-meta{flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;display:flex}.intrigue-node-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:3px;padding:1px 5px;font-size:.625rem;font-weight:600}.intrigue-node-flag{font-size:.75rem;line-height:1}.intrigue-handle{opacity:0;transition:opacity .15s;background:var(--accent)!important;border:2px solid var(--surface)!important;width:8px!important;height:8px!important}.intrigue-node:hover .intrigue-handle{opacity:1}.intrigue-controls.react-flow__controls{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md)}.intrigue-controls.react-flow__controls button{color:var(--ink-2);background:0 0;border:none;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.intrigue-controls.react-flow__controls button:hover{background:var(--surface-2);color:var(--ink)}.intrigue-minimap.react-flow__minimap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md)}.intrigue-minimap.react-flow__minimap svg{border-radius:calc(var(--radius) - 1px)}.form-actions{align-items:center;gap:8px;margin-top:4px;display:flex}.intrigue-canvas-wrap .react-flow__edgelabels{z-index:1001}.intrigue-edge-label{background:var(--surface);border:1px solid var(--border);color:var(--ink-2);white-space:nowrap;cursor:pointer;pointer-events:all;z-index:1001;border-radius:4px;padding:2px 6px;font-size:.6875rem;position:relative}.intrigue-edge-label:hover{border-color:var(--ink-3);color:var(--ink)}.intrigue-labels-hidden .intrigue-edge-label{display:none}.edge-edit-popover{z-index:2000;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);flex-direction:column;gap:12px;min-width:280px;padding:14px 16px;display:flex;position:fixed}.edge-edit-popover-row{align-items:center;gap:10px;display:flex}.edge-edit-label{color:var(--ink-3);flex-shrink:0;width:72px;font-size:.75rem;font-weight:500}.edge-edit-input{background:var(--surface-2);border:1px solid var(--border);color:var(--ink);border-radius:6px;outline:none;flex:1;padding:5px 8px;font-family:inherit;font-size:.8125rem}.edge-edit-input:focus{border-color:var(--accent)}.edge-edit-toggle-group{flex:1;gap:4px;display:flex}.edge-edit-toggle{color:var(--ink-3);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:6px;flex:1;padding:4px 8px;font-family:inherit;font-size:.75rem;font-weight:500;transition:background .1s,color .1s,border-color .1s}.edge-edit-toggle:hover{border-color:var(--ink-3);color:var(--ink)}.edge-edit-toggle.active{background:var(--accent);color:#fff;border-color:var(--accent)}.edge-edit-popover-actions{border-top:1px solid var(--border);align-items:center;gap:8px;padding-top:4px;display:flex}.edge-edit-btn-delete{color:var(--danger);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:.75rem;font-weight:500}.edge-edit-btn-delete:hover{border-color:var(--danger);background:#b14a3a1a}.edge-edit-btn-cancel{color:var(--ink-3);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:4px 12px;font-family:inherit;font-size:.75rem;font-weight:500}.edge-edit-btn-cancel:hover{color:var(--ink);border-color:var(--ink-3)}.edge-edit-btn-save{color:#fff;background:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:6px;padding:4px 14px;font-family:inherit;font-size:.75rem;font-weight:500}.edge-edit-btn-save:hover{opacity:.88}.edge-edit-delete-confirm{border-top:1px solid var(--border);align-items:center;gap:8px;padding-top:4px;display:flex}.edge-edit-delete-confirm-text{color:var(--ink-3);white-space:nowrap;font-size:.75rem}.edge-edit-btn-confirm-delete{color:#fff;background:var(--danger);border:1px solid var(--danger);cursor:pointer;border-radius:6px;padding:4px 12px;font-family:inherit;font-size:.75rem;font-weight:600}.edge-edit-btn-confirm-delete:hover{opacity:.88}.new-rel-overlay{z-index:1900;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.new-rel-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);gap:14px;min-width:340px;padding:20px 24px}.new-rel-header,.new-rel-modal{flex-direction:column;display:flex}.new-rel-header{gap:4px}.new-rel-title{color:var(--ink);font-size:.9375rem;font-weight:700}.new-rel-pair{color:var(--ink-3);font-size:.75rem}.intrigue-aggregate-label{pointer-events:all;z-index:1002;position:relative}.intrigue-aggregate-badge{background:var(--surface);border:1px solid var(--border);color:var(--ink-2);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:2px 8px;font-size:.75rem;font-weight:600;transition:border-color .1s;display:inline-flex}.intrigue-aggregate-badge:hover{border-color:var(--ink-3);color:var(--ink)}.intrigue-aggregate-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:1005;flex-direction:column;min-width:180px;display:flex;position:absolute;top:calc(100% + 4px);left:50%;overflow:hidden;transform:translate(-50%)}.intrigue-aggregate-item{border:none;border-bottom:1px solid var(--border);cursor:pointer;color:var(--ink);text-align:left;background:0 0;align-items:center;gap:8px;width:100%;padding:7px 12px;font-family:inherit;font-size:.75rem;transition:background .1s;display:flex}.intrigue-aggregate-item:last-child{border-bottom:none}.intrigue-aggregate-item:hover{background:var(--surface-2)}.intrigue-aggregate-item-label{flex:1}.intrigue-aggregate-item-awareness{border-radius:50%;flex-shrink:0;width:8px;height:8px}.intrigue-aggregate-item-awareness[data-awareness=known]{background:var(--accent)}.intrigue-aggregate-item-awareness[data-awareness=suspected]{background:var(--ink-4);border:1px dashed var(--ink-3)}.intrigue-aggregate-item-awareness[data-awareness=unknown]{border:1px solid var(--ink-4);background:0 0}.intrigue-layer-toggle{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;color:var(--ink);box-shadow:var(--shadow-sm);align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:.8125rem;font-weight:600;display:flex;position:absolute;top:12px;right:12px}.intrigue-layer-toggle:hover{border-color:var(--ink-3)}.intrigue-layer-toggle.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.intrigue-layer-toggle-badge{background:var(--accent);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:.6875rem;font-weight:700;display:inline-flex}.layer-panel{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:240px;box-shadow:var(--shadow-lg);flex-direction:column;max-height:calc(100% - 80px);display:flex;position:absolute;top:64px;right:16px;overflow:hidden}.layer-panel-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px 8px;display:flex}.layer-panel-title{color:var(--ink);font-size:.8125rem;font-weight:700}.layer-panel-items{flex-direction:column;display:flex;overflow-y:auto}.layer-panel-item{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:6px 12px;display:flex}.layer-panel-item:last-child{border-bottom:none}.layer-panel-all{background:var(--surface-2)}.layer-panel-checkbox{cursor:pointer;width:14px;height:14px;accent-color:var(--accent);flex-shrink:0}.layer-panel-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.8125rem;overflow:hidden}.layer-panel-actions{opacity:0;flex-shrink:0;gap:2px;transition:opacity .1s;display:flex}.layer-panel-item:hover .layer-panel-actions{opacity:1}.layer-panel-btn{cursor:pointer;width:22px;height:22px;color:var(--ink-3);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-family:inherit;font-size:.875rem;line-height:1;display:flex}.layer-panel-btn:hover{background:var(--surface-3);color:var(--ink)}.layer-panel-btn-delete:hover{color:var(--danger);background:#b14a3a1a}.layer-panel-rename-form{flex:1;min-width:0;display:flex}.layer-panel-rename-input{color:var(--ink);background:var(--surface-2);border:1px solid var(--accent);border-radius:4px;outline:none;flex:1;min-width:0;padding:2px 6px;font-family:inherit;font-size:.8125rem}.layer-panel-add{border-top:1px solid var(--border);flex-shrink:0;gap:6px;padding:8px 12px;display:flex}.layer-panel-add-input{color:var(--ink);background:var(--surface-2);border:1px solid var(--border);border-radius:4px;outline:none;flex:1;min-width:0;padding:4px 8px;font-family:inherit;font-size:.75rem}.layer-panel-add-input:focus{border-color:var(--accent)}.layer-panel-add-input::placeholder{color:var(--ink-4)}.layer-panel-add-btn{color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent);cursor:pointer;border-radius:4px;flex-shrink:0;padding:4px 10px;font-family:inherit;font-size:.75rem;font-weight:600}.layer-panel-add-btn:disabled{opacity:.5;cursor:not-allowed}.layer-panel-add-btn:not(:disabled):hover{background:var(--accent);color:#fff}.layer-context-menu{z-index:2000;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:180px;position:fixed;overflow:hidden}.layer-context-title{color:var(--ink-3);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding:6px 12px 4px;font-size:.6875rem;font-weight:700}.layer-context-empty{color:var(--ink-4);padding:8px 12px;font-size:.75rem}.layer-context-item{border:none;border-bottom:1px solid var(--border);cursor:pointer;color:var(--ink);text-align:left;background:0 0;align-items:center;gap:8px;width:100%;padding:7px 12px;font-family:inherit;font-size:.8125rem;transition:background .1s;display:flex}.layer-context-item:last-child{border-bottom:none}.layer-context-item:hover{background:var(--surface-2)}.layer-context-item--in{color:var(--accent)}.layer-context-item--danger{color:var(--danger,#b14a3a);font-weight:600}.layer-context-item--danger:hover{background:var(--danger,#b14a3a)}@supports (color:color-mix(in lab,red,red)){.layer-context-item--danger:hover{background:color-mix(in srgb,var(--danger,#b14a3a)12%,transparent)}}.layer-context-check{width:14px;color:var(--accent);flex-shrink:0;font-size:.6875rem}.layer-context-name{flex:1}.layer-context-sep{background:var(--border);height:1px;margin:2px 0}.layer-context-subtitle{color:var(--ink-4);text-transform:uppercase;letter-spacing:.5px;padding:6px 12px 2px;font-size:.625rem;font-weight:700}.intrigue-bulk-toolbar{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);white-space:nowrap;align-items:center;gap:8px;padding:8px 14px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.bulk-toolbar-count{color:var(--ink);font-size:.8125rem;font-weight:600}.bulk-toolbar-sep{background:var(--border);flex-shrink:0;width:1px;height:20px}.bulk-toolbar-label{color:var(--ink-3);font-size:.75rem}.bulk-toolbar-btn{color:var(--ink);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:4px 10px;font-family:inherit;font-size:.75rem;font-weight:500}.bulk-toolbar-btn:hover{border-color:var(--ink-3);background:var(--surface-3)}.bulk-toolbar-btn-accent{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.bulk-toolbar-btn-accent:hover{background:var(--accent);color:#fff}.bulk-toolbar-close{color:var(--ink-3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-family:inherit;font-size:1.125rem;line-height:1}.bulk-toolbar-close:hover{color:var(--ink);background:var(--surface-2)}.intrigue-toolbar{z-index:100;align-items:center;gap:8px;display:flex;position:absolute;top:16px;right:16px}.intrigue-toolbar-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);height:36px;box-shadow:var(--shadow-sm);color:var(--ink);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:.8125rem;font-weight:500;display:flex}.intrigue-toolbar-btn:hover{border-color:var(--ink-3);background:var(--surface-2)}.intrigue-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.intrigue-toolbar-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.intrigue-toolbar-btn.arranging{animation:intrigue-pulse 1s ease-in-out infinite}@keyframes intrigue-pulse{0%,to{opacity:1}50%{opacity:.55}}.intrigue-export-wrap{position:relative}.intrigue-export-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:200;min-width:180px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.intrigue-export-item{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;padding:9px 14px;font-family:inherit;font-size:.8125rem;display:block}.intrigue-export-item:hover{background:var(--surface-2)}.intrigue-library-panel{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:260px;box-shadow:var(--shadow-lg);position:absolute;top:64px;right:16px;overflow:hidden}.intrigue-library-header{border-bottom:1px solid var(--border);color:var(--ink);justify-content:space-between;align-items:center;padding:10px 14px;font-size:.8125rem;font-weight:600;display:flex}.intrigue-library-close{cursor:pointer;color:var(--ink-3);background:0 0;border:none;border-radius:4px;padding:0 2px;font-family:inherit;font-size:1.125rem;line-height:1}.intrigue-library-close:hover{color:var(--ink);background:var(--surface-2)}.intrigue-library-list{max-height:320px;padding:4px 0;overflow-y:auto}.intrigue-library-item{color:var(--ink-2);align-items:center;gap:8px;padding:7px 14px;font-size:.8125rem;display:flex}.intrigue-library-item:hover{background:var(--surface-2)}.intrigue-library-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.intrigue-library-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:3px;flex-shrink:0;padding:2px 6px;font-size:.625rem;font-weight:700}.intrigue-library-add{background:var(--accent);color:var(--accent-contrast,#fff);cursor:pointer;border:none;border-radius:4px;flex-shrink:0;padding:3px 10px;font-family:inherit;font-size:.75rem;font-weight:600}.intrigue-library-add:hover{filter:brightness(1.08)}.intrigue-library-empty{text-align:center;color:var(--ink-4);padding:20px 14px;font-size:.8125rem}.worldmaps-root{padding:0}.worldmaps-toolbar{justify-content:flex-end;padding:8px 0 16px;display:flex}.worldmaps-empty{text-align:center;color:var(--ink-3);padding:40px;font-size:.9375rem}.worldmaps-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;padding-bottom:40px;display:grid}.worldmap-tile{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:box-shadow .15s;position:relative;overflow:visible}.worldmap-tile:hover{box-shadow:var(--shadow-md)}.worldmap-tile-link{color:inherit;text-decoration:none;display:block}.worldmap-thumb{aspect-ratio:4/3;background:var(--surface-3);border-radius:var(--radius)var(--radius)0 0;width:100%;overflow:hidden}.worldmap-thumb-img{object-fit:cover;width:100%;height:100%}.worldmap-info{padding:10px 12px}.worldmap-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.worldmap-name,.worldmap-rename-input{color:var(--ink);font-size:.875rem;font-weight:600}.worldmap-rename-input{border:1px solid var(--accent);background:var(--surface);width:100%;border-radius:4px;outline:none;padding:2px 6px}.worldmap-default-badge{color:var(--accent);font-size:.6875rem;font-weight:600}.worldmap-pin-count{color:var(--ink-3);margin-top:2px;font-size:.75rem}.worldmap-menu-btn{background:var(--surface);border:1px solid var(--border);cursor:pointer;color:var(--ink-3);z-index:2;border-radius:4px;padding:2px 8px;font-size:1rem;line-height:1;position:absolute;top:8px;right:8px}.worldmap-menu-btn:hover{color:var(--ink);background:var(--surface-2)}.worldmap-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:20;min-width:140px;position:absolute;top:34px;right:8px;overflow:hidden}.worldmap-menu button{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:none;padding:9px 14px;font-family:inherit;font-size:.8125rem;display:block}.worldmap-menu button:hover{background:var(--surface-2)}.worldmap-menu-delete{color:var(--danger)!important}.map-upload-area{border:2px dashed var(--border-strong);border-radius:var(--radius);cursor:pointer;background:var(--surface-2);justify-content:center;align-items:center;min-height:100px;transition:border-color .15s;display:flex;overflow:hidden}.map-upload-area:hover{border-color:var(--accent)}.map-upload-placeholder{color:var(--ink-3);text-align:center;padding:12px;font-size:.8125rem}.map-upload-preview{object-fit:cover;width:100%;height:100%;max-height:160px}.geo-map-root{flex-direction:column;height:100vh;display:flex;position:relative;overflow:hidden}.geo-map-toolbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;flex-shrink:0;align-items:center;gap:10px;padding:8px 16px;display:flex}.geo-map-back-btn{color:var(--ink-3);font-size:.8125rem;text-decoration:none}.geo-map-back-btn:hover{color:var(--ink)}.geo-map-title{flex:1;font-size:.9375rem;font-weight:600}.geo-map-zoom{font-family:var(--font-mono);color:var(--ink-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);white-space:nowrap;padding:3px 8px;font-size:.75rem}.geo-map-collapse-toggle{color:var(--ink-2);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;font-size:.75rem;display:inline-flex}.geo-map-collapse-toggle input{cursor:pointer;margin:0}.geo-map-toolbar-btn{white-space:nowrap;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;color:var(--ink);align-items:center;gap:6px;padding:5px 12px;font-family:inherit;font-size:.8125rem;display:inline-flex}.geo-map-toolbar-btn:hover{background:var(--surface-2)}.geo-map-canvas-wrap{background:var(--bg-deep);cursor:grab;flex:1;position:relative;overflow:hidden}.geo-map-canvas-wrap:active{cursor:grabbing}.geo-map-loading{height:100%;color:var(--ink-3);justify-content:center;align-items:center;font-size:.9375rem;display:flex}.geo-minimap{border:1px solid var(--border-strong);background:var(--surface);box-shadow:var(--shadow-md);z-index:5;border-radius:4px;position:absolute;bottom:16px;right:16px;overflow:hidden}.geo-minimap-canvas{cursor:crosshair;display:block}.geo-pin-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:20;pointer-events:auto;min-width:120px;padding:8px 12px;font-size:.8125rem;position:absolute}.geo-pin-tooltip-name{color:var(--ink);font-weight:600}.geo-pin-tooltip-type{color:var(--ink-3);text-transform:capitalize;margin-top:2px;font-size:.6875rem}.geo-pin-tooltip-link{color:var(--accent);margin-top:6px;font-size:.75rem;text-decoration:none;display:inline-block}.geo-pin-tooltip-link:hover{text-decoration:underline}.geo-pin-tooltip-remove{border:1px solid var(--border);color:var(--danger,#dc2626);cursor:pointer;background:0 0;border-radius:4px;width:100%;margin-top:8px;padding:3px 8px;font-family:inherit;font-size:.75rem;display:block}.geo-pin-tooltip-remove:hover{background:var(--danger,#dc2626);color:#fff;border-color:var(--danger,#dc2626)}.geo-library-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:240px;box-shadow:var(--shadow-lg);z-index:15;flex-direction:column;max-height:420px;display:flex;position:absolute;top:60px;right:16px;overflow:hidden}.geo-library-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px 8px;font-size:.8125rem;font-weight:600;display:flex}.geo-library-close{cursor:pointer;color:var(--ink-3);background:0 0;border:none;padding:0 2px;font-size:.875rem;line-height:1}.geo-library-close:hover{color:var(--ink)}.geo-library-list{flex:1;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.geo-library-item{align-items:center;gap:8px;padding:7px 14px;font-size:.8125rem;display:flex}.geo-library-item:hover{background:var(--surface-2)}.geo-library-badge{text-transform:uppercase;color:var(--ink-3);background:var(--surface-3);border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:.625rem;font-weight:700}.geo-library-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.geo-library-add-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;flex-shrink:0;padding:3px 10px;font-family:inherit;font-size:.75rem;font-weight:600}.geo-library-add-btn:hover{filter:brightness(1.08)}.geo-library-empty{text-align:center;color:var(--ink-4);padding:20px 14px;font-size:.8125rem}[data-theme=fantasy] .worldmap-tile{background:var(--surface)}.geo-filter-group{align-items:center;gap:3px;margin:0 8px;display:flex}.geo-filter-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--ink-3);cursor:pointer;text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:3px 9px;font-family:inherit;font-size:.6875rem;font-weight:600;transition:background .1s,color .1s}.geo-filter-btn:hover{background:var(--surface-3);color:var(--ink-2)}.geo-filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.geo-stack-badge{color:#fff;cursor:pointer;z-index:12;background:#e24c2a;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:.6875rem;font-weight:700;line-height:1;display:flex;position:absolute;box-shadow:0 1px 4px #00000059}.geo-stack-badge:hover{filter:brightness(1.1)}.geo-satellite-pin{cursor:pointer;z-index:12;border:1.5px solid #fff;border-radius:50%;width:12px;height:12px;padding:0;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 3px #0006}.geo-satellite-pin:hover{filter:brightness(1.15);transform:translate(-50%,-50%)scale(1.2)}.geo-satellite-pin:focus-visible{outline:2px solid var(--accent);outline-offset:1px}[data-theme=scifi] .geo-satellite-pin{border-color:var(--surface)}.geo-satellite-pin--image{box-shadow:none;background-color:#0000;border:none;border-radius:0}.geo-sat-hover{z-index:14;color:var(--ink);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-md);padding:2px 8px;font-size:.75rem;transform:translate(-50%,-100%)}.geo-sat-hover,.geo-stack-popover{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);position:absolute}.geo-stack-popover{box-shadow:var(--shadow-lg);z-index:25;pointer-events:auto;min-width:200px;max-width:280px}.geo-stack-popover-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 12px 6px;display:flex}.geo-stack-popover-place{color:var(--ink);font-size:.8125rem;font-weight:700}.geo-stack-popover-close{cursor:pointer;color:var(--ink-3);background:0 0;border:none;padding:0 2px;font-size:.875rem;line-height:1}.geo-stack-popover-close:hover{color:var(--ink)}.geo-stack-popover-subtitle{color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;padding:5px 12px;font-size:.6875rem;font-weight:600}.geo-stack-popover-list{max-height:240px;margin:0;padding:2px 0 6px;list-style:none;overflow-y:auto}.geo-stack-popover-item{align-items:center;gap:6px;padding:6px 12px;font-size:.8125rem;display:flex}.geo-stack-popover-item:hover{background:var(--surface-2)}.geo-stack-item-type{text-transform:uppercase;color:var(--ink-3);background:var(--surface-3);border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:.625rem;font-weight:700}.geo-stack-item-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;text-decoration:none;overflow:hidden}.geo-stack-item-name:hover{color:var(--accent);text-decoration:underline}.geo-stack-item-awareness{border-radius:10px;flex-shrink:0;padding:1px 6px;font-size:.625rem;font-weight:600}.geo-stack-item-awareness--known{color:#15803d;background:#dcfce7}.geo-stack-item-awareness--suspected{color:#854d0e;background:#fef9c3}.geo-stack-item-awareness--unknown{color:#64748b;background:#f1f5f9}.geo-stack-popover-empty{color:var(--ink-4);padding:10px 12px;font-size:.8125rem}.geo-pin-tooltip-here{color:var(--ink-3);align-items:center;gap:6px;margin-top:4px;font-size:.75rem;display:flex}.geo-pin-tooltip-here-btn{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;color:var(--accent);border-radius:3px;padding:1px 7px;font-family:inherit;font-size:.6875rem;font-weight:600}.geo-pin-tooltip-here-btn:hover{background:var(--surface-3)}.geo-library-filter{border-bottom:1px solid var(--border);flex-shrink:0;padding:6px 14px}.geo-library-filter-label{color:var(--ink-3);cursor:pointer;align-items:center;gap:7px;font-size:.75rem;display:flex}.geo-library-filter-label input{cursor:pointer}.geo-library-type-row{border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;gap:3px;padding:8px 14px;display:flex}.geo-library-type-chip{background:var(--surface-2);border:1px solid var(--border);color:var(--ink-3);cursor:pointer;text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:2px 8px;font-family:inherit;font-size:.625rem;font-weight:600;transition:background .1s,color .1s}.geo-library-type-chip:hover{background:var(--surface-3);color:var(--ink-2)}.geo-library-type-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.intrigue-node[data-awareness=suspected]{outline:2px dashed var(--border-strong);outline-offset:1px;opacity:.85}.intrigue-node[data-awareness=unknown]{opacity:.4}.intrigue-node-awareness-icon{pointer-events:none;filter:grayscale(.3);font-size:.6875rem;line-height:1;position:absolute;top:2px;right:2px}.player-awareness-toggle{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;align-items:center;gap:2px;padding:2px 3px;display:flex}.awareness-toggle-btn{color:var(--ink-3);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;align-items:center;gap:5px;padding:3px 9px;font-family:inherit;font-size:.75rem;font-weight:500;transition:background .1s,color .1s;display:flex}.awareness-toggle-btn:hover{background:var(--surface-3);color:var(--ink-2)}.awareness-toggle-btn.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm);font-weight:600}.awareness-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}[data-theme=scifi] .geo-stack-item-awareness--known{color:#86efac;background:#14532d}[data-theme=scifi] .geo-stack-item-awareness--suspected{color:#fde68a;background:#422006}[data-theme=scifi] .geo-stack-item-awareness--unknown{background:var(--surface-3);color:var(--ink-3)}[data-theme=fantasy] .player-awareness-toggle{border-color:var(--border)}[data-theme=scifi] .player-awareness-toggle{background:var(--surface-2)}.geo-map-canvas-wrap[data-tool=circle],.geo-map-canvas-wrap[data-tool=pen],.geo-map-canvas-wrap[data-tool=rect]{cursor:crosshair}.geo-map-canvas-wrap[data-tool=text]{cursor:text}.geo-map-canvas-wrap[data-tool=eraser]{cursor:cell}.geo-map-toolbar-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.geo-draw-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:220px;box-shadow:var(--shadow-lg);z-index:30;flex-direction:column;gap:0;max-height:calc(100% - 80px);display:flex;position:absolute;top:60px;left:16px;overflow-y:auto}.geo-draw-panel-header{color:var(--ink);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 12px 6px;font-size:.8125rem;font-weight:600;display:flex}.geo-draw-section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);padding:7px 12px 3px;font-size:.625rem;font-weight:600}.geo-draw-tool-row{flex-wrap:wrap;gap:4px;padding:4px 12px 8px;display:flex}.geo-draw-tool-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);cursor:pointer;width:30px;height:30px;color:var(--ink);justify-content:center;align-items:center;font-family:inherit;font-size:.875rem;transition:background .1s,border-color .1s;display:flex}.geo-draw-tool-btn:hover:not(:disabled){background:var(--surface-3)}.geo-draw-tool-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.geo-draw-tool-btn.disabled,.geo-draw-tool-btn:disabled{opacity:.38;cursor:not-allowed}.geo-draw-color-palette{flex-wrap:wrap;gap:5px;padding:4px 12px 8px;display:flex}.geo-draw-color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;outline:none;flex-shrink:0;width:22px;height:22px;transition:border-color .1s,transform .1s}.geo-draw-color-swatch:hover{transform:scale(1.15)}.geo-draw-color-swatch.active{border-color:var(--ink);transform:scale(1.1)}.geo-draw-width-row{gap:4px;padding:4px 12px 8px;display:flex}.geo-draw-width-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);cursor:pointer;color:var(--ink-2);flex:1;padding:4px 0;font-family:inherit;font-size:.75rem;font-weight:600;transition:background .1s,color .1s}.geo-draw-width-btn:hover{background:var(--surface-3);color:var(--ink)}.geo-draw-width-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.geo-draw-layer-list{flex-direction:column;gap:3px;margin:0;padding:4px 8px 8px;list-style:none;display:flex}.geo-draw-layer-row{border-radius:var(--radius);cursor:pointer;background:var(--surface-2);border:1px solid #0000;align-items:center;gap:5px;padding:5px 8px;transition:background .1s,border-color .1s;display:flex}.geo-draw-layer-row:hover{background:var(--surface-3)}.geo-draw-layer-row.active{border-color:var(--accent);background:var(--surface-2)}.geo-draw-layer-eye{cursor:pointer;opacity:.7;background:0 0;border:none;flex-shrink:0;padding:0;font-size:.875rem;line-height:1}.geo-draw-layer-eye:hover{opacity:1}.geo-draw-layer-color{border-radius:50%;flex-shrink:0;width:10px;height:10px}.geo-draw-layer-name{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.8125rem;overflow:hidden}.geo-draw-layer-rename{color:var(--ink);border:1px solid var(--accent);background:var(--surface);border-radius:3px;outline:none;flex:1;min-width:0;padding:1px 5px;font-family:inherit;font-size:.8125rem}.geo-draw-layer-opacity{cursor:pointer;width:50px;accent-color:var(--accent);flex-shrink:0}.geo-draw-layer-delete{cursor:pointer;color:var(--ink-3);background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:.75rem;line-height:1}.geo-draw-layer-delete:hover{color:var(--danger,#dc2626)}.geo-draw-add-layer{background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--ink-2);cursor:pointer;text-align:center;margin:4px 12px 12px;padding:6px 0;font-family:inherit;font-size:.8125rem;font-weight:600;transition:background .1s,color .1s}.geo-draw-add-layer:hover{background:var(--surface-3);color:var(--ink)}.geo-text-input{resize:none;z-index:40;white-space:pre;text-shadow:0 1px 3px #000000b3;background:0 0;border:none;outline:1px dashed #fff9;min-width:80px;min-height:1.4em;padding:2px 4px;font-family:inherit;font-weight:600;line-height:1.3;position:absolute;overflow:hidden}[data-theme=scifi] .geo-draw-panel{background:var(--surface);border-color:var(--border-strong)}[data-theme=scifi] .geo-draw-tool-btn{background:var(--surface-3)}[data-theme=scifi] .geo-draw-tool-btn.active{background:var(--accent)}[data-theme=scifi] .geo-draw-layer-row{background:var(--surface-3)}[data-theme=scifi] .geo-draw-add-layer{background:var(--surface-3);border-color:var(--border-strong)}[data-theme=fantasy] .geo-draw-color-swatch.active{border-color:var(--ink-2)}[data-theme=fantasy] .geo-draw-add-layer{border-color:var(--border-strong)}[data-theme=scifi] .worldmap-tile{background:var(--surface)}.geo-trails-filter-select{border:1px solid var(--border);background:var(--surface-2);height:28px;color:var(--ink-1);cursor:pointer;border-radius:4px;padding:0 6px;font-size:.75rem}[data-theme=scifi] .geo-trails-filter-select{background:var(--surface-3);border-color:var(--border-strong);color:var(--ink-1)}.geo-search-wrap{align-items:center;margin:0 6px;display:inline-flex;position:relative}.geo-search-input{background:var(--surface-2);border:1px solid var(--border);width:170px;height:28px;color:var(--ink-1);border-radius:4px;padding:0 22px 0 8px;font-family:inherit;font-size:.75rem}.geo-search-input::placeholder{color:var(--ink-3)}.geo-search-input:focus{border-color:var(--accent);outline:none}.geo-search-clear{cursor:pointer;color:var(--ink-3);background:0 0;border:none;padding:2px;font-size:.75rem;line-height:1;position:absolute;right:4px}.geo-search-clear:hover{color:var(--ink)}[data-theme=scifi] .geo-search-input{background:var(--surface-3);border-color:var(--border-strong)}.geo-trails-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:220px;box-shadow:var(--shadow-lg);z-index:15;flex-direction:column;max-height:420px;display:flex;position:absolute;top:60px;right:16px;overflow:hidden}.geo-trails-element-list{flex:1;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.geo-trails-element-row{font-size:.8125rem}.geo-trails-element-row:hover{background:var(--surface-2)}.geo-trails-element-label{cursor:pointer;align-items:center;gap:8px;padding:7px 14px;display:flex}.geo-trails-element-checkbox{cursor:pointer}.geo-trails-swatch{border:1px solid var(--border);border-radius:3px;flex-shrink:0;width:14px;height:14px}.geo-trails-element-name{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);flex:1;overflow:hidden}[data-theme=scifi] .geo-trails-panel{background:var(--surface);border-color:var(--border-strong)}[data-theme=fantasy] .geo-trails-panel{background:var(--surface-2)}.geo-export-wrap{position:relative}.geo-export-menu{z-index:200;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;min-width:160px;padding:4px 0;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 12px #00000026}.geo-export-menu button{text-align:left;width:100%;color:var(--ink-1);cursor:pointer;background:0 0;border:none;padding:7px 14px;font-size:.8125rem;display:block}.geo-export-menu button:hover{background:var(--surface-3)}[data-theme=scifi] .geo-export-menu{background:var(--surface);border-color:var(--border-strong)}[data-theme=scifi] .geo-export-menu button:hover{background:var(--surface-3)}[data-theme=fantasy] .geo-export-menu{background:var(--surface-2)}.geo-bg-wrap{position:relative}.geo-bg-menu{z-index:200;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;gap:10px;min-width:210px;padding:10px 12px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 12px #00000026}.geo-bg-menu,.geo-bg-row{flex-direction:column;display:flex}.geo-bg-row{color:var(--ink-2);gap:5px;font-size:.75rem}.geo-bg-row input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;width:100%;height:28px;padding:0}.geo-bg-row input[type=range]{cursor:pointer;width:100%;accent-color:var(--accent)}[data-theme=scifi] .geo-bg-menu{background:var(--surface);border-color:var(--border-strong)}[data-theme=fantasy] .geo-bg-menu{background:var(--surface-2)}.geo-replace-modal{z-index:300;background:#00000080;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.geo-replace-modal-inner{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:12px;min-width:340px;max-width:480px;padding:20px 24px;display:flex}.geo-replace-modal-header{justify-content:space-between;align-items:center;font-size:.9375rem;font-weight:600;display:flex}.geo-replace-close-btn{cursor:pointer;color:var(--ink-2);background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:1rem}.geo-replace-close-btn:hover{background:var(--surface-3)}.geo-replace-hint{color:var(--ink-2);margin:0;font-size:.75rem}.geo-replace-aspect-warning{color:#92400e;background:#fef3c7;border:1px solid #f59e0b;border-radius:4px;padding:8px 10px;font-size:.75rem}[data-theme=scifi] .geo-replace-aspect-warning{color:#fbbf24;background:#f59e0b26}.geo-replace-confirm-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:5px;align-self:flex-end;padding:7px 16px;font-size:.8125rem;font-weight:600}.geo-replace-confirm-btn:disabled{opacity:.6;cursor:not-allowed}[data-theme=scifi] .geo-replace-modal-inner{background:var(--surface);border-color:var(--border-strong)}[data-theme=fantasy] .geo-replace-modal-inner{background:var(--surface-2)}.loc-history-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.loc-history-item{background:var(--surface-3);border-radius:4px;align-items:center;gap:10px;padding:5px 8px;font-size:.8125rem;display:flex}.loc-history-date{color:var(--ink-2);white-space:nowrap;min-width:70px;font-size:.6875rem}.loc-history-arrow{color:var(--ink-1);flex:1}[data-theme=fantasy] .loc-history-item,[data-theme=scifi] .loc-history-item{background:var(--surface-3)}.map-appearance-item{align-items:center;gap:8px;padding:4px 0;font-size:.8125rem;display:flex}.map-appearance-name{color:var(--accent);flex:1;text-decoration:none}.map-appearance-name:hover{text-decoration:underline}.map-appearance-remove{border:1px solid var(--border);color:var(--ink-2);cursor:pointer;background:0 0;border-radius:3px;padding:2px 8px;font-size:.6875rem}.map-appearance-remove:hover{background:var(--surface-3);color:#e24c2a;border-color:#e24c2a}.res-layout{height:calc(100vh - 56px);display:flex;overflow:hidden}.res-sidebar{border-right:1px solid var(--border);flex-shrink:0;width:220px;padding:12px 0;overflow-y:auto}.res-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.res-toolbar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:12px 16px;display:flex}.res-toolbar-search{flex:1;max-width:320px;position:relative}.res-toolbar-search input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--ink);padding:6px 12px 6px 32px;font-size:.8125rem}.res-toolbar-search input:focus{border-color:var(--accent);outline:none}.res-toolbar-search .search-icon{color:var(--ink-3);position:absolute;top:50%;left:9px;transform:translateY(-50%)}.res-breadcrumb{color:var(--ink-3);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:4px;padding:8px 16px;font-size:.75rem;display:flex}.res-breadcrumb button{cursor:pointer;color:var(--accent);background:0 0;border:none;padding:0;font-size:.75rem}.res-breadcrumb button:hover{text-decoration:underline}.res-grid-wrap{flex:1;padding:16px;overflow-y:auto}.res-empty{height:200px;color:var(--ink-3);flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:.875rem;display:flex}.res-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.res-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;transition:border-color .1s;position:relative;overflow:hidden}.res-card.selected,.res-card:hover{border-color:var(--accent)}.res-card.selected{outline:2px solid var(--accent-soft)}.res-card-thumb{aspect-ratio:4/3;background:var(--bg-deep);justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.res-card-thumb img{object-fit:cover;width:100%;height:100%}.res-card-icon{color:var(--ink-3);font-size:2.25rem}.res-card-body{padding:8px 10px}.res-card-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:500;overflow:hidden}.res-card-meta{color:var(--ink-3);margin-top:2px;font-size:.6875rem}.res-card-tags{flex-wrap:wrap;gap:3px;margin-top:4px;display:flex}.res-card-tag{background:var(--surface-3);color:var(--ink-2);border-radius:3px;padding:1px 5px;font-size:.625rem}.res-card-checkbox{cursor:pointer;opacity:0;z-index:5;width:16px;height:16px;transition:opacity .1s;position:absolute;top:6px;left:6px}.res-card.selected .res-card-checkbox,.res-card:hover .res-card-checkbox{opacity:1}.res-folder-item{color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:0;align-items:center;gap:6px;padding:5px 12px;font-size:.8125rem;transition:background .1s;display:flex}.res-folder-item:hover{background:var(--surface-3)}.res-folder-item.active{background:var(--accent-soft);color:var(--accent);font-weight:500}.res-folder-name{flex:1;min-width:0}.res-folder-actions{opacity:0;gap:2px;transition:opacity .1s;display:flex}.res-folder-item:hover .res-folder-actions{opacity:1}.res-folder-action{cursor:pointer;border-radius:var(--radius);color:var(--ink-3);background:0 0;border:none;padding:2px 4px;font-size:.75rem;line-height:1}.res-folder-action:hover{background:var(--surface);color:var(--ink)}.res-folder-item.root{color:var(--ink);font-weight:600}.res-folder-indent{padding-left:24px}.res-folder-indent .res-folder-item{padding-left:12px}.res-folder-toggle{width:14px;height:14px;color:var(--ink-3);justify-content:center}.res-bulk-bar,.res-folder-toggle{flex-shrink:0;align-items:center;display:flex}.res-bulk-bar{background:var(--accent-soft);border-bottom:1px solid var(--border);gap:8px;padding:8px 16px;font-size:.8125rem}.res-context-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:100;min-width:180px;padding:4px 0;position:fixed;box-shadow:0 4px 16px #0000001f}.res-context-item{color:var(--ink);cursor:pointer;align-items:center;gap:8px;padding:7px 14px;font-size:.8125rem;display:flex}.res-context-item:hover{background:var(--surface-3)}.res-context-item.danger{color:var(--danger)}.res-context-separator{background:var(--border);height:1px;margin:4px 0}.res-dropzone{border:2px dashed var(--border);border-radius:var(--radius);color:var(--ink-3);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:32px;font-size:.875rem;transition:border-color .1s,background .1s;display:flex}.res-dropzone.over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.btn.secondary{background:var(--surface-3);color:var(--ink);border:1px solid var(--border)}.btn.secondary:hover{background:var(--surface)}.cover-preview{aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-deep);width:100%;max-width:320px;margin-bottom:10px;display:block}.cover-url-row{align-items:stretch;gap:8px;display:flex}.cover-url-row .form-input{flex:1}.cover-picker-modal{background:var(--surface);border-radius:var(--radius);flex-direction:column;width:min(760px,92vw);max-height:86vh;display:flex;overflow:hidden}.cover-picker-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.cover-picker-header h3{color:var(--ink);margin:0;font-size:.9375rem;font-weight:600}.cover-picker-empty{text-align:center;color:var(--ink-3);padding:32px 18px;font-size:.875rem}.cover-picker-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));align-content:start;gap:12px;min-height:0;padding:18px;display:grid;overflow-y:auto}.cover-picker-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;flex-direction:column;gap:6px;padding:0;font-family:inherit;display:flex;overflow:hidden}.cover-picker-item:hover{border-color:var(--ink)}.cover-picker-item img{aspect-ratio:4/3;object-fit:cover;background:var(--bg-deep);width:100%;display:block}.cover-picker-name{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;text-align:left;padding:6px 8px;font-size:.75rem;overflow:hidden}.sheet-image-modal .cover-picker-grid{grid-template-columns:repeat(auto-fill,132px);justify-content:center;max-height:72vh;overflow-y:auto}.sheet-image-modal .cover-picker-item{width:132px;display:block}.sheet-image-modal .cover-picker-thumb{background:var(--bg-deep);width:132px;height:132px;display:block;overflow:hidden}.sheet-image-modal .cover-picker-thumb img{object-fit:cover;width:100%;height:100%;display:block}.sheet-image-modal .cover-picker-name{display:block}.dialog-overlay{z-index:300;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:12px;width:min(420px,100%);padding:20px;display:flex;box-shadow:0 12px 40px #00000040}.dialog-title{color:var(--ink);margin:0;font-size:.9375rem;font-weight:600}.dialog-message{color:var(--ink-2);white-space:pre-wrap;margin:0;font-size:.84375rem;line-height:1.5}.dialog-input{box-sizing:border-box;width:100%}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger:hover{filter:brightness(.94)}.res-preview-overlay{z-index:200;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.res-preview-box{background:var(--surface);border-radius:var(--radius);flex-direction:column;min-width:320px;max-width:90vw;max-height:90vh;display:flex;overflow:hidden}.res-preview-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:12px 16px;display:flex}.res-preview-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.875rem;font-weight:600;overflow:hidden}.res-preview-body{flex:1;justify-content:center;align-items:center;padding:16px;display:flex;overflow:auto}.res-preview-body img{object-fit:contain;max-width:100%;max-height:70vh}.res-preview-body audio{width:100%;max-width:480px}.res-tags-editor{flex-wrap:wrap;gap:4px}.res-tag-chip,.res-tags-editor{align-items:center;display:flex}.res-tag-chip{background:var(--surface-3);border:1px solid var(--border);color:var(--ink-2);border-radius:4px;gap:3px;padding:2px 6px;font-size:.75rem}.res-tag-remove{cursor:pointer;color:var(--ink-3);background:0 0;border:none;padding:0;font-size:.6875rem;line-height:1}.res-tag-remove:hover{color:var(--danger)}.res-tag-input{border:1px dashed var(--border);color:var(--ink);background:0 0;border-radius:4px;min-width:80px;padding:2px 8px;font-size:.75rem}.res-tag-input:focus{border-color:var(--accent);outline:none}.res-storage-warning{background:var(--warn-soft,#fef3c7);border:1px solid var(--warn,#f59e0b);border-radius:var(--radius);color:var(--ink);align-items:center;gap:8px;margin-bottom:16px;padding:8px 16px;font-size:.8125rem;display:flex}[data-theme=scifi] .res-storage-warning{background:#f59e0b1a}.res-upload-modal-overlay{z-index:200;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.res-upload-modal{background:var(--surface);border-radius:var(--radius);width:420px;max-width:95vw;padding:24px}.res-upload-item{align-items:center;gap:10px;padding:6px 0;font-size:.8125rem;display:flex}.res-upload-progress{background:var(--surface-3);border-radius:2px;flex:1;height:4px;overflow:hidden}.res-upload-progress-bar{background:var(--accent);height:100%;transition:width .2s}.res-usedby-list{margin:0;padding:0;list-style:none}.res-usedby-item{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:6px 0;font-size:.8125rem;display:flex}.res-usedby-item:last-child{border-bottom:none}.res-move-modal{background:var(--surface);border-radius:var(--radius);width:380px;max-width:95vw;padding:24px}.res-copy-option{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:flex-start;gap:8px;margin-bottom:8px;padding:10px;transition:border-color .1s;display:flex}.res-copy-option.selected,.res-copy-option:hover{border-color:var(--accent)}.res-copy-option.selected{background:var(--accent-soft)}.res-url-modal{background:var(--surface);border-radius:var(--radius);width:420px;max-width:95vw;padding:24px}.res-url-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--ink);margin:8px 0;padding:8px 12px;font-size:.8125rem}.res-url-input:focus{border-color:var(--accent);outline:none}[data-theme=scifi] .res-card{background:var(--surface-2)}[data-theme=fantasy] .res-card{background:var(--surface)}[data-theme=scifi] .res-preview-box{background:var(--surface-2)}[data-theme=fantasy] .res-preview-box{background:var(--surface)}[data-theme=scifi] .res-context-menu,[data-theme=scifi] .res-move-modal,[data-theme=scifi] .res-upload-modal,[data-theme=scifi] .res-url-modal{background:var(--surface-2)}.session-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.session-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;grid-template-columns:48px 1fr auto auto auto auto;align-items:center;gap:14px;padding:12px 16px;display:grid}.session-row:hover{border-color:var(--ink)}.session-num{color:var(--ink-3);font-variant-numeric:tabular-nums}.session-name{color:var(--ink);font-weight:600}.session-date,.session-dur,.session-lines{color:var(--ink-3);font-size:.8125rem}.session-status{text-transform:uppercase;letter-spacing:.04em;background:var(--surface-3);color:var(--ink-2);border-radius:999px;padding:2px 8px;font-size:.6875rem}.session-status.status-awaiting_review{color:#a16207;background:#eab30829}.session-status.status-closed{color:#15803d;background:#22c55e29}.session-status.status-draft{background:var(--surface-3);color:var(--ink-3)}.session-status.status-ai_analyzing,.session-status.status-reviewing{color:var(--accent);background:#4a6cf729}.import-wizard{background:var(--surface);border-radius:var(--radius);flex-direction:column;width:min(680px,94vw);max-height:88vh;display:flex;overflow:hidden}.import-wizard-header{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:14px 18px;display:flex}.import-wizard-header h3{color:var(--ink);flex:1;margin:0;font-size:.9375rem;font-weight:600}.import-wizard-step{color:var(--ink-3);font-size:.75rem}.import-wizard-body{flex-direction:column;gap:14px;padding:18px;display:flex;overflow-y:auto}.import-mode-toggle{color:var(--ink-2);gap:18px;font-size:.875rem;display:flex}.import-wizard-actions{justify-content:space-between;margin-top:8px;display:flex}.import-remember{color:var(--ink-2);align-items:center;gap:6px;font-size:.8125rem;display:flex}.import-confirm-list{color:var(--ink-2);margin:0;padding-left:18px;line-height:1.8}.speaker-map-table{border-collapse:collapse;width:100%}.speaker-map-table th{text-align:left;text-transform:uppercase;color:var(--ink-3);padding:4px 8px;font-size:.6875rem}.speaker-map-table td{vertical-align:middle;padding:4px 8px}.speaker-map-table td:first-child{color:var(--ink);font-weight:600}.session-tabs{border-bottom:1px solid var(--border);align-items:center;gap:4px;margin:16px 0;display:flex}.session-tab{color:var(--ink-3);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;font-size:.875rem}.session-tab.active{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.hide-noise-toggle{color:var(--ink-2);align-items:center;gap:6px;margin-left:auto;font-size:.8125rem;display:flex}.transcript-lines{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.transcript-line{border-bottom:1px solid var(--border);grid-template-columns:52px 160px 88px 1fr 32px;align-items:start;gap:10px;padding:8px 6px;display:grid}.transcript-line.is-noise{opacity:.5}.line-time{color:var(--ink-4);font-variant-numeric:tabular-nums;padding-top:4px;font-size:.75rem}.line-role,.line-speaker{border:1px solid var(--border);background:var(--surface-2);color:var(--ink-1);border-radius:4px;padding:3px 6px;font-size:.8125rem}.line-speaker{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}@media (max-width:720px){.transcript-line{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.line-time{padding-top:0}.line-speaker{flex:0 auto;max-width:40vw}.transcript-line .line-text{flex-basis:100%;order:5}.transcript-line .line-menu-wrap{margin-left:auto}}.line-role{text-transform:capitalize}.line-text{color:var(--ink-1);cursor:text;line-height:1.5}.line-text .line-note-badge{cursor:default;margin-left:6px}.line-menu-wrap{position:relative}.line-menu{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;min-width:160px;display:flex;position:absolute;top:100%;right:0;box-shadow:0 8px 24px #0000002e}.line-menu button{text-align:left;color:var(--ink-1);cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:.8125rem}.line-menu button:hover{background:var(--surface-3)}.session-notes{flex-direction:column;gap:6px;display:flex}.clean-progress{color:var(--ink-2);align-items:center;gap:8px;font-size:.8125rem;display:inline-flex}.clean-progress-bar{background:var(--surface-3);border-radius:999px;width:90px;height:6px;display:inline-block;overflow:hidden}.clean-progress-fill{background:var(--ink);height:100%;transition:width .3s;display:block}.ai-summary-panel{flex-direction:column;gap:10px;display:flex}.ai-summary-head{align-items:center;gap:8px;display:flex}.ai-summary-body{color:var(--ink-1);line-height:1.6}.ai-summary-body p{margin:0 0 12px}.proposals-empty{color:var(--ink-3);text-align:center;padding:32px 16px}.proposals-review{flex-direction:column;gap:14px;display:flex}.proposal-notice{border-radius:var(--radius);background:var(--accent-soft);color:var(--ink);align-items:center;gap:10px;padding:8px 12px;font-size:.8125rem;display:flex}.proposal-notice span{flex:1}.proposals-toolbar{flex-wrap:wrap;gap:8px;display:flex}.proposals-toolbar select{border:1px solid var(--border);background:var(--surface-2);color:var(--ink-1);border-radius:6px;padding:5px 8px;font-size:.8125rem}.proposal-group{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.proposal-group-head{background:var(--surface-2);align-items:center;gap:8px;padding:8px 12px;display:flex}.proposal-group-toggle{text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:none;flex:1;font-size:.875rem;font-weight:600}.proposal-group-actions{gap:6px;display:flex}.proposal-group-body{flex-direction:column;gap:10px;padding:12px;display:flex}.proposal-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.proposal-card.status-accepted{border-color:var(--success);opacity:.8}.proposal-card.status-rejected{opacity:.55}.proposal-card.status-deferred{border-style:dashed}.proposal-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.proposal-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);align-items:center;gap:5px;font-size:.6875rem;display:inline-flex}.proposal-headline{color:var(--ink);margin:0;font-weight:600}.proposal-detail{color:var(--ink-2);margin:0;font-size:.8125rem;line-height:1.5}.proposal-warning{color:#a16207;background:#eab30824;border-radius:6px;margin:0;padding:4px 8px;font-size:.8125rem}.confidence-badge{font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:.75rem;display:inline-flex}.confidence-badge.confidence-high{color:#15803d;background:#22c55e29}.confidence-badge.confidence-medium{color:#a16207;background:#eab30829}.confidence-badge.confidence-low{color:#c2410c;background:#f9731629}.confidence-bar{background:var(--surface-3);border-radius:999px;width:44px;height:6px;display:inline-block;overflow:hidden}.confidence-fill{height:100%;display:block}.confidence-high .confidence-fill{background:#22c55e}.confidence-medium .confidence-fill{background:#eab308}.confidence-low .confidence-fill{background:#f97316}.proposal-reason{border-left:2px solid var(--border-strong);padding-left:10px}.proposal-reason-text{color:var(--ink-2);margin:0 0 4px;font-size:.8125rem}.proposal-quote{color:var(--ink-3);margin:0 0 4px;font-size:.8125rem;font-style:italic}.proposal-lines{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:4px;margin:0;font-size:.75rem;display:flex}.proposal-line-link{background:var(--surface-3);color:var(--accent);cursor:pointer;border:none;border-radius:4px;padding:1px 7px;font-size:.75rem}.proposal-line-link:hover{background:var(--accent-soft)}.proposal-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.proposal-status-pill{text-transform:uppercase;letter-spacing:.04em;background:var(--surface-3);color:var(--ink-2);border-radius:999px;padding:2px 8px;font-size:.6875rem}.proposal-status-pill.status-accepted{color:#15803d;background:#22c55e29}.proposal-status-pill.status-rejected{color:var(--danger);background:#b14a3a29}.proposals-footer{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;padding-top:8px;display:flex}.proposal-edit-panel{background:var(--surface);border-radius:var(--radius);flex-direction:column;gap:4px;width:min(560px,94vw);max-height:88vh;padding:18px;display:flex;overflow-y:auto}.proposal-json{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.proposal-diff{background:var(--surface-2);border:1px solid var(--border);color:var(--ink-2);border-radius:6px;max-height:160px;padding:8px;font-size:.75rem;overflow-x:auto}.proposal-edit-actions{align-items:center;gap:8px;margin-top:12px;display:flex}.proposal-edit-fields{gap:12px}.field-row,.proposal-edit-fields{flex-direction:column;display:flex}.field-row{gap:4px}.field-current{color:var(--ink-3);margin:0;font-size:.75rem}.attr-editor{flex-direction:column;gap:6px;display:flex}.attr-row{grid-template-columns:1fr 1fr auto;align-items:center;gap:6px;display:grid}.proposal-edit-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.proposal-edit-title{color:var(--ink);margin:0;font-size:.9375rem;font-weight:700}.proposal-edit-hint{color:var(--ink-2);margin:4px 0 8px;font-size:.78125rem;line-height:1.5}.proposal-merge-badge{color:var(--accent);margin:6px 0 0;font-size:.75rem}.merge-picker-results{flex-direction:column;gap:6px;max-height:360px;margin-top:10px;display:flex;overflow-y:auto}.merge-picker-row{border:1px solid var(--border);background:var(--surface-2);color:var(--ink);text-align:left;cursor:pointer;border-radius:8px;grid-template-columns:auto auto 1fr;align-items:center;gap:8px;padding:8px 10px;display:grid}.merge-picker-row:hover{border-color:var(--border-strong);background:var(--surface)}.merge-picker-row--match{border-color:var(--accent)}.merge-picker-name{font-weight:600}.merge-picker-summary{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.learning-notes-list{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.learning-note-row{border:1px solid var(--border);background:var(--surface-2);border-radius:6px;align-items:center;gap:10px;padding:6px 8px;display:flex}.learning-note-meta{color:var(--ink-3);white-space:nowrap;font-size:.6875rem}.learning-note-text{color:var(--ink-1);flex:1;font-size:.8125rem}.learning-note-add{gap:8px;margin:8px 0 12px;display:flex}.learning-note-add .form-input{flex:1}.dashboard{flex-direction:column;gap:20px;display:flex}.dashboard-hero{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:stretch;gap:18px;display:flex;overflow:hidden}.dashboard-hero-cover{object-fit:cover;background:var(--surface-3);flex-shrink:0;width:200px}.dashboard-hero-cover--empty{background:linear-gradient(135deg,var(--surface-3),var(--accent-soft))}.dashboard-hero-body{flex-direction:column;gap:6px;min-width:0;padding:18px 20px;display:flex}.dashboard-hero-title{color:var(--ink);margin:0;font-size:1.5rem}.dashboard-hero-system{color:var(--accent);margin:0;font-size:.8125rem;font-weight:600}.dashboard-hero-desc{color:var(--ink-2);margin:4px 0 0;font-size:.875rem;line-height:1.5}.dashboard-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:2px;padding:14px 16px;text-decoration:none;transition:border-color .12s,background .12s;display:flex}.stat-card:hover{border-color:var(--accent);background:var(--surface-2)}.stat-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stat-card-num{color:var(--ink);font-size:1.625rem;font-weight:700}.stat-card-label{color:var(--ink-2);font-size:.8125rem}.stat-card-sub{color:var(--ink-3);margin-top:2px;font-size:.6875rem}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.dashboard-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px}.dashboard-panel-title{color:var(--ink);margin:0 0 12px;font-size:.9375rem}.dashboard-muted{color:var(--ink-3);margin:0;font-size:.8125rem}.dashboard-muted a{color:var(--accent)}.recent-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.recent-item-link{border-radius:var(--radius);align-items:center;gap:10px;padding:8px 10px;text-decoration:none;transition:background .12s;display:flex}.recent-item-link:hover{background:var(--surface-2)}.recent-item-link:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.recent-item-glyph{color:var(--ink-3);background:var(--surface-3);border-radius:var(--radius);text-align:center;flex-shrink:0;min-width:28px;padding:3px 6px;font-family:ui-monospace,monospace;font-size:.625rem;font-weight:700}.recent-item-name{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.875rem;overflow:hidden}.recent-item-time{color:var(--ink-3);flex-shrink:0;font-size:.6875rem}.quick-actions{flex-wrap:wrap;gap:10px;display:flex}.last-session-body{flex-direction:column;gap:10px;display:flex}.last-session-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.last-session-num{color:var(--ink);font-weight:700}.last-session-name{color:var(--ink-2);font-size:.875rem}.last-session-status{color:var(--ink-3);background:var(--surface-3);border-radius:var(--radius);margin-left:auto;padding:2px 8px;font-size:.6875rem}.last-session-summary{color:var(--ink-2);margin:0;font-size:.8125rem;line-height:1.55}.last-session-readmore{font:inherit;color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border:none;margin-left:2px;padding:0;display:inline}.last-session-readmore:hover{text-decoration:underline}.last-session-ai{background:var(--accent-soft);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 12px;display:flex}.last-session-ai-text{color:var(--ink);font-size:.8125rem;font-weight:600}.last-session-ai .btn{margin-left:auto}.last-session-open{color:var(--accent);font-size:.8125rem;text-decoration:none}.last-session-open:hover{text-decoration:underline}.dashboard-empty{text-align:center;background:var(--surface-2);border:1px dashed var(--border);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:10px;padding:40px 24px;display:flex}.dashboard-empty-title{color:var(--ink);margin:0;font-size:1.25rem}.dashboard-empty-text{color:var(--ink-2);max-width:420px;margin:0 0 6px;font-size:.875rem}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.tpl-card-wrap{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;transition:border-color .15s;display:flex}.tpl-card-wrap:hover{border-color:var(--accent)}.tpl-card{color:var(--ink);flex-direction:column;flex:1;gap:.4rem;padding:1rem;text-decoration:none;display:flex}.tpl-card-actions{gap:.4rem;padding:0 1rem 1rem;display:flex}.tpl-card-delete:hover{color:var(--danger);border-color:var(--danger);background:#b14a3a14}.tpl-card-delete:disabled{opacity:.45;cursor:not-allowed}.tpl-list-actions{align-items:center;gap:.4rem;display:flex}.page-header-actions{align-items:center;gap:.6rem;display:flex}.tpl-campaign-section-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.tpl-import-wrap{align-items:center;gap:.5rem;display:inline-flex}.tpl-card-name{font-weight:600}.tpl-card-desc{color:var(--ink-2);font-size:.875rem}.tpl-card-meta{color:var(--ink-3);flex-wrap:wrap;gap:.5rem 1rem;margin-top:auto;font-size:.8rem;display:flex}.tpl-card-forks{color:var(--accent)}.tpl-empty,.tpl-fields-empty{color:var(--ink-3);padding:1rem;font-size:.9rem}.tpl-fields-empty{padding:.5rem 0}.tpl-new-form{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.tpl-error,.tpl-warn-inline{color:var(--danger,#c0392b);font-size:.8rem}.tpl-breadcrumb{margin-bottom:1rem}.sys-template-list{flex-direction:column;gap:.25rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.sys-template-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.sys-template-label{cursor:pointer;align-items:center;gap:.6rem;padding:.5rem .75rem;display:flex}.sys-template-name{color:var(--ink);font-size:.875rem;font-weight:600}.sys-template-meta{color:var(--ink-3);margin-left:auto;font-size:.75rem}.tpl-editor-page{max-width:none;padding:0}.tpl-editor{height:calc(100vh - var(--topbar-h,56px));flex-direction:column;min-height:0;display:flex}.tpl-editor-head{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:12px;padding:10px 18px;display:flex}.tpl-editor-name{color:var(--ink);border-radius:var(--radius);background:0 0;border:1px solid #0000;min-width:180px;padding:4px 8px;font-size:.9375rem;font-weight:600}.tpl-editor-name:focus,.tpl-editor-name:hover{background:var(--surface-2)}.tpl-editor-name:focus{border-color:var(--border-strong);outline:none}.tpl-editor-badge{background:var(--surface-3);border-radius:999px;padding:3px 8px;font-size:.6875rem;font-weight:600}.tpl-editor-badge,.tpl-editor-stats{color:var(--ink-3);white-space:nowrap}.tpl-editor-stats{font-size:.71875rem}.tpl-editor-head-spacer{flex:1}.tpl-editor-error{color:var(--danger);background:var(--surface-2);border-bottom:1px solid var(--border);margin:0;padding:8px 18px;font-size:.8125rem}.tool-toggle{color:var(--ink-2);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:999px;padding:5px 12px;font-size:.78125rem}.tool-toggle.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.tpl-editor-body{flex:1;grid-template-columns:220px 1fr 320px;min-height:0;display:grid}.tpl-editor[data-preview] .tpl-editor-body{grid-template-columns:1fr}.tpl-palette{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:6px;padding:16px 12px;display:flex;overflow-y:auto}.tpl-palette-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:2px 4px 4px;font-size:.65625rem;font-weight:600}.tpl-palette-or{margin-top:14px}.tpl-palette-item{text-align:left;border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:10px;width:100%;padding:7px 8px;display:flex}.tpl-palette-item:hover{background:var(--surface-2);border-color:var(--border)}.tpl-pal-icon{background:var(--surface-2);width:24px;height:24px;font-family:var(--font-mono);color:var(--ink-2);border-radius:6px;flex:none;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.tpl-pal-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.tpl-pal-label{color:var(--ink);font-size:.78125rem;font-weight:600}.tpl-pal-blurb{color:var(--ink-3);font-size:.6875rem}.tpl-pal-plus{color:var(--ink-4);font-size:.875rem}.tpl-palette-item:hover .tpl-pal-plus{color:var(--accent)}.tpl-canvas-wrap{background:var(--bg-deep);padding:24px 32px 60px;overflow:auto}.tpl-canvas{flex-direction:column;gap:20px;max-width:968px;margin:0 auto;display:flex}.tpl-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px}.tpl-section-head{align-items:center;gap:10px;min-height:28px;margin-bottom:12px;display:flex}.tpl-section-title-input{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);border-radius:var(--radius);background:0 0;border:1px solid #0000;flex:1;padding:4px 6px;font-size:.8125rem;font-weight:700}.tpl-section-title-input:hover{background:var(--surface-2)}.tpl-section-title-input:focus{background:var(--surface-2);border-color:var(--border-strong);outline:none}.tpl-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);flex:1;margin:0;font-size:.8125rem;font-weight:700}.tpl-section-layout{color:var(--ink-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:4px 6px;font-size:.75rem}.tpl-section-empty{color:var(--ink-3);grid-column:1/-1;margin:4px 0;font-size:.75rem;font-style:italic}.tpl-fields{gap:12px;display:grid}.tpl-layout-grid-2{grid-template-columns:1fr 1fr}.tpl-layout-grid-3{grid-template-columns:1fr 1fr 1fr}.tpl-layout-grid-6{grid-template-columns:repeat(6,1fr)}.tpl-layout-list,.tpl-layout-single{grid-template-columns:1fr}.tpl-field[data-field-type=divider]{grid-column:1/-1}.tpl-field{border:1px solid var(--border);cursor:pointer;background:var(--surface);border-radius:7px;min-width:0;padding:24px 12px 12px;position:relative}.tpl-field:hover{border-color:var(--border-strong)}.tpl-field.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.tpl-field.preview{cursor:default;background:0 0;border:0;padding:4px 0}.tpl-field-chrome{align-items:center;gap:6px;min-width:0;display:flex;position:absolute;top:4px;left:8px;right:76px}.tpl-field-badge{font-family:var(--font-mono);color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.625rem;overflow:hidden}.tpl-field-actions{z-index:2;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);opacity:0;align-items:center;gap:2px;padding:1px 2px;transition:opacity .12s;display:flex;position:absolute;top:2px;right:4px}.tpl-field-actions:focus-within,.tpl-field.selected .tpl-field-actions,.tpl-field:hover .tpl-field-actions{opacity:1}.tpl-field-actions .icon-btn{width:auto;height:auto;padding:2px 5px;font-size:.75rem;line-height:1}.tpl-drag-handle{cursor:grab;color:var(--ink-4);touch-action:none;background:0 0;border:none;padding:2px 4px;font-size:.75rem;line-height:1}.tpl-drag-handle:hover{color:var(--ink-2)}.tpl-drag-handle:active{cursor:grabbing}.tpl-section-head .tpl-drag-handle{font-size:.8125rem}.tpl-field-label{color:var(--ink-2);margin-bottom:4px;font-size:.75rem;font-weight:600;display:block}.tpl-field.preview .tpl-field-label{color:var(--ink)}.tpl-field-label-req{color:var(--danger)}.tpl-field-help{color:var(--ink-3);margin:4px 0 0;font-size:.6875rem}.tpl-preview-input{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);width:100%;color:var(--ink-2);padding:6px 8px;font-size:.8125rem}.tpl-preview-input.mono{font-family:var(--font-mono)}.tpl-preview-num{max-width:90px}.tpl-preview-select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--ink-3);justify-content:space-between;align-items:center;padding:6px 8px;font-size:.8125rem;display:flex}.tpl-preview-checks{grid-template-columns:repeat(2,1fr);gap:4px 12px;display:grid}.tpl-preview-check{color:var(--ink-2);align-items:center;gap:6px;font-size:.78125rem;display:inline-flex}.tpl-preview-image{border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--ink-3);flex-direction:column;align-items:center;gap:4px;padding:14px;font-size:.75rem;display:flex}.tpl-preview-image-glyph{font-size:1.375rem}.tpl-preview-group{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:8px 10px}.tpl-preview-group-head{color:var(--ink-3);margin-bottom:6px;font-size:.6875rem;font-weight:600}.tpl-preview-group-cols{flex-wrap:wrap;gap:6px;display:flex}.tpl-preview-group-col{color:var(--ink-2);background:var(--surface-3);border-radius:4px;padding:2px 8px;font-size:.71875rem}.tpl-preview-divider{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:10px;font-size:.6875rem;display:flex}.tpl-preview-divider:after,.tpl-preview-divider:before{content:"";background:var(--border);flex:1;height:1px}.tpl-add-section-btn{color:var(--ink-2);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius);cursor:pointer;align-self:center;padding:8px 18px;font-size:.8125rem}.tpl-add-section-btn:hover{border-color:var(--accent);color:var(--accent)}.tpl-empty{text-align:center;color:var(--ink-3);padding:40px 0;font-size:.8125rem}.tpl-inspector{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;gap:12px;padding:16px 16px 40px;display:flex;overflow-y:auto}.tpl-inspector-empty{text-align:center;color:var(--ink-3);flex-direction:column;align-items:center;gap:6px;padding:40px 8px;display:flex}.tpl-inspector-glyph{color:var(--ink-4);font-size:2.25rem}.tpl-inspector-empty-title{color:var(--ink-2);margin:0;font-weight:600}.tpl-inspector-empty-sub{margin:0;font-size:.75rem}.tpl-insp-head{align-items:center;gap:8px;display:flex}.tpl-insp-section-tag{color:var(--ink-3);margin:0;font-size:.71875rem}.tpl-insp-field{flex-direction:column;gap:4px;display:flex}.tpl-insp-row{gap:10px;display:flex}.tpl-insp-row .tpl-insp-field{flex:1}.tpl-insp-label{color:var(--ink-2);font-size:.71875rem;font-weight:600}.tpl-insp-sub{color:var(--ink-3);font-size:.65625rem}.tpl-insp-check{color:var(--ink-2);align-items:center;gap:8px;font-size:.78125rem;display:flex}.st-input{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;color:var(--ink);padding:6px 8px;font-size:.8125rem}.st-input.mono{font-family:var(--font-mono)}.tpl-options{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:4px;display:flex}.tpl-options-head{justify-content:space-between;align-items:center;display:flex}.tpl-options-count{color:var(--ink-3);font-size:.65625rem}.tpl-subfield{flex-direction:column;gap:6px;display:flex}.tpl-subfield .tpl-options{border-top:0;border-left:2px solid var(--border);margin-left:10px;padding-top:0;padding-left:10px}.tpl-option-row,.tpl-subfield-row{align-items:center;gap:6px;display:flex}.tpl-option-row .st-input,.tpl-subfield-row .st-input:first-of-type{flex:1}.tpl-subfield-type{max-width:110px}.btn.tiny{align-self:flex-start;padding:4px 10px;font-size:.71875rem}.tpl-campaign{flex-direction:column;gap:2rem;display:flex}.tpl-campaign-section{gap:.75rem}.tpl-campaign-section,.tpl-list{flex-direction:column;display:flex}.tpl-list{gap:.5rem}.tpl-list-row{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem .8rem;display:flex}.tpl-list-info{flex-direction:column;gap:.2rem;display:flex}.tpl-list-name{font-weight:600}.tpl-list-meta{color:var(--ink-3);font-size:.8rem}.character-sheet .card-section-header{gap:12px}.character-sheet .card-section-header,.sheet-collapse-toggle{justify-content:space-between;align-items:center;display:flex}.sheet-collapse-toggle{cursor:pointer;width:100%;color:inherit;text-align:left;border:none;border-bottom:1px solid var(--border);background:0 0;gap:8px;margin-bottom:12px;padding:0 0 6px}.sheet-collapse-toggle .card-section-title{border-bottom:none;margin:0;padding-bottom:0}.sheet-collapse-titlewrap{align-items:baseline;gap:8px;min-width:0;display:flex}.sheet-collapse-hint{text-transform:none;letter-spacing:normal;color:var(--ink-4);font-size:.6875rem;font-weight:400}.sheet-collapse-chevron{border-left:6px solid var(--ink-3);border-top:5px solid #0000;border-bottom:5px solid #0000;flex:none;width:0;height:0;transition:transform .15s}.sheet-collapse-chevron.open{transform:rotate(90deg)}.sheet-collapse-toggle:hover .sheet-collapse-chevron{border-left-color:var(--ink-2)}.sheet-section{border-top:1px solid var(--border);margin-top:16px;padding-top:12px}.sheet-section:first-of-type{border-top:none;padding-top:0}.character-sheet .card-section-header+.sheet-section{border-top:none;margin-top:0;padding-top:0}.sheet-section-title{color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px;font-size:.875rem;font-weight:600}.sheet-fields{gap:14px;display:grid}.sheet-layout-list,.sheet-layout-single{grid-template-columns:1fr}.sheet-layout-grid-2{grid-template-columns:1fr 1fr}.sheet-layout-grid-3{grid-template-columns:1fr 1fr 1fr}.sheet-layout-grid-6{grid-template-columns:repeat(6,1fr)}.sheet-fields .sheet-field--divider{grid-column:1/-1}.sheet-field{flex-direction:column;gap:4px;min-width:0;display:flex}.sheet-field .sheet-value-table{display:block;overflow-x:auto}.sheet-field-help{color:var(--ink-3);margin:2px 0 0;font-size:.6875rem}.sheet-value{color:var(--ink);font-size:.875rem}.sheet-value--multiline{white-space:pre-wrap;margin:0}.sheet-value--empty{color:var(--ink-4)}.sheet-value-chips{flex-wrap:wrap;gap:6px;display:flex}.sheet-value-chip{color:var(--ink-2);background:var(--surface-3);border-radius:999px;padding:2px 10px;font-size:.75rem}.sheet-value-table{border-collapse:collapse;width:100%;font-size:.8125rem}.sheet-value-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-size:.6875rem}.sheet-value-table td,.sheet-value-table th{border-bottom:1px solid var(--border);padding:4px 8px}.sheet-value-table td{color:var(--ink)}.sheet-field--divider{gap:0}.sheet-field-label{color:var(--ink-2);font-size:.8125rem;font-weight:500}.sheet-field-label--sub{color:var(--ink-3);font-size:.75rem}.sheet-field-required{color:var(--accent)}.sheet-field-control{box-sizing:border-box;width:100%}.sheet-field-control--number{max-width:140px}.sheet-field-empty,.sheet-field-error{color:var(--ink-3);font-size:.8125rem}.sheet-field-error{color:var(--danger,#dc2626)}.sheet-multi-choice{flex-wrap:wrap;gap:8px 16px;display:flex}.sheet-checkbox-label{color:var(--ink);cursor:pointer;align-items:center;gap:6px;font-size:.8125rem;display:inline-flex}.sheet-image-field{flex-direction:column;gap:6px;display:flex}.sheet-image-current{align-items:flex-start;gap:10px;display:flex}.sheet-image-preview{object-fit:cover;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);max-width:200px;max-height:200px}.sheet-image-drop{border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--ink-3);cursor:pointer;background:var(--surface-2);flex-direction:column;align-items:center;gap:6px;padding:18px;font-size:.75rem;display:flex}.sheet-image-drop.drag-over{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.sheet-image-drop-glyph{font-size:1.375rem}.sheet-image-actions{flex-wrap:wrap;gap:8px;display:flex}.sheet-divider{align-items:center;gap:10px;margin:6px 0;display:flex}.sheet-divider:after,.sheet-divider:before{content:"";background:var(--border);flex:1;height:1px}.sheet-divider:not(:has(.sheet-divider-label)):after{display:none}.sheet-divider-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-size:.6875rem}.sheet-repeatable{flex-direction:column;gap:10px;display:flex}.sheet-repeatable-row{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-end;gap:10px;padding:10px;display:flex}.sheet-repeatable-cell{flex-direction:column;flex:160px;gap:3px;min-width:120px;display:flex}.sheet-repeatable-remove{color:var(--ink-3);flex:none}.sheet-repeatable-add{align-self:flex-start}.sheet-picker-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sheet-empty{flex-direction:column;gap:10px;display:flex}.sheet-actions{align-items:center;gap:12px;margin-top:16px;display:flex}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}