.selector-screen{position:relative;width:100%;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--bg-void)}.selector-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 30% 20%,var(--accent-gold-soft) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,var(--accent-gold-faint) 0%,transparent 50%),linear-gradient(180deg,var(--bg-wash-strong),transparent 60%);pointer-events:none}.selector-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--border-grid-strong) 1px,transparent 1px),linear-gradient(90deg,var(--border-grid-soft) 1px,transparent 1px);background-size:54px 54px;opacity:.45;-webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 80%);mask-image:radial-gradient(ellipse at center,black 30%,transparent 80%)}.selector-content{position:relative;z-index:1;width:100%;max-width:640px;padding:40px 24px;display:flex;flex-direction:column;align-items:center;gap:0;animation:fadeUp .6s ease both}.selector-header{display:flex;align-items:center;gap:20px;width:100%;margin-bottom:8px}.selector-rule{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--accent-gold-dim))}.selector-rule:last-child{background:linear-gradient(90deg,var(--accent-gold-dim),transparent)}.selector-header h1{font-family:var(--font-display);font-size:1.5rem;font-weight:700;letter-spacing:.25em;text-transform:uppercase;color:var(--accent-gold);white-space:nowrap}.selector-subtitle{font-family:var(--font-body);font-size:.95rem;font-style:italic;color:var(--text-muted);margin-bottom:32px;letter-spacing:.05em}.campaign-grid{width:100%;display:flex;flex-direction:column;gap:8px}.campaign-card{position:relative;width:100%;display:flex;align-items:center;gap:16px;padding:18px 20px;background:var(--bg-surface);border:1px solid var(--border-dim);border-left:3px solid var(--campaign-color);border-radius:2px;cursor:pointer;text-align:left;transition:all var(--transition);overflow:hidden}.card-glow{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--campaign-color);opacity:0;transition:opacity var(--transition);pointer-events:none}.campaign-card:hover{border-color:var(--campaign-color);background:var(--bg-raised);transform:translate(3px)}.campaign-card:hover .card-glow{opacity:.06}.campaign-card.active{border-color:var(--campaign-color);background:var(--bg-raised)}.card-icon{font-size:28px;line-height:1;flex-shrink:0}.card-text{flex:1;display:flex;flex-direction:column;gap:2px}.card-name{font-family:var(--font-display);font-size:.9rem;font-weight:600;letter-spacing:.06em;color:var(--text-primary)}.card-sub{font-size:.85rem;font-style:italic;color:var(--text-secondary)}.card-arrow{color:var(--text-muted);font-size:1.1rem;transition:all var(--transition);flex-shrink:0}.campaign-card:hover .card-arrow{color:var(--campaign-color);transform:translate(4px)}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 900px){.selector-content{max-width:720px;padding:36px 20px}}@media (max-width: 640px){.selector-screen{align-items:flex-start;overflow-y:auto}.selector-content{padding:calc(28px + env(safe-area-inset-top,0px)) 16px calc(24px + env(safe-area-inset-bottom,0px))}.selector-header{gap:12px}.selector-header h1{font-size:1.15rem;letter-spacing:.18em}.selector-subtitle{margin-bottom:24px;text-align:center}.campaign-card{align-items:flex-start;gap:12px;padding:16px}.card-name{font-size:.84rem}.card-sub{font-size:.8rem}}.sidebar{width:var(--sidebar-width);flex-shrink:0;background:linear-gradient(180deg,var(--bg-wash),transparent),var(--bg-deep);border-right:1px solid var(--border-dim);display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;position:relative;z-index:30}.sidebar-header{padding:16px 14px 12px;border-bottom:1px solid var(--border-dim)}.sidebar-header-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.campaign-back{font-size:.75rem;color:var(--text-muted);letter-spacing:.04em;padding:2px 0;margin-bottom:12px;display:block;transition:color var(--transition)}.campaign-back:hover{color:var(--accent-gold)}.sidebar-close{display:none;font-size:1rem;line-height:1;color:var(--text-muted);padding:2px}.sidebar-campaign{display:flex;align-items:center;gap:10px}.sidebar-icon{font-size:22px;line-height:1}.sidebar-campaign-name{font-family:var(--font-display);font-size:.78rem;font-weight:600;letter-spacing:.06em;color:var(--campaign-color);line-height:1.3}.sidebar-campaign-sub{font-size:.75rem;font-style:italic;color:var(--text-muted);line-height:1.2}.sidebar-sessions-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 8px;font-family:var(--font-display);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.btn-new-session{font-family:var(--font-display);font-size:.65rem;letter-spacing:.08em;color:var(--accent-gold);padding:3px 8px;border:1px solid var(--accent-gold-dim);border-radius:2px;transition:all var(--transition)}.btn-new-session:hover:not(:disabled){background:var(--accent-gold-glow);border-color:var(--accent-gold)}.btn-new-session:disabled{opacity:.35;cursor:not-allowed}.session-list{flex:1;overflow-y:auto;padding:4px 0}.session-empty{padding:20px 14px;font-style:italic;color:var(--text-dim);font-size:.85rem}.session-item{display:flex;align-items:center;padding:10px 14px;cursor:pointer;border-left:2px solid transparent;transition:all var(--transition);gap:6px}.session-item:hover{background:var(--bg-hover);border-left-color:var(--border-mid)}.session-item.active{background:var(--bg-raised);border-left-color:var(--campaign-color)}.session-item.deleting{opacity:.4;pointer-events:none}.session-item-body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.session-title{font-size:.88rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-item.active .session-title{color:var(--text-primary)}.session-date{font-size:.75rem;color:var(--text-muted)}.session-delete{font-size:.7rem;color:var(--text-dim);padding:2px 4px;border-radius:2px;opacity:0;transition:all var(--transition);flex-shrink:0}.session-item:hover .session-delete{opacity:1}.session-delete:hover{color:var(--accent-danger);background:var(--accent-danger-soft)}@media (hover: none){.session-delete{opacity:.45}}.sidebar-context{padding:10px 14px 12px;border-bottom:1px solid var(--border-dim);background:color-mix(in srgb,var(--campaign-color) 7%,var(--bg-campaign-tint))}.sidebar-section-label{font-family:var(--font-display);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.context-group{margin-bottom:6px}.context-group-label{font-size:.7rem;font-style:italic;color:var(--text-muted);display:block;margin-bottom:3px}.context-file{font-size:.8rem;color:var(--text-secondary);padding:2px 0 2px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-meta{display:flex;align-items:center;gap:6px}.session-files-badge{font-size:.68rem;color:var(--campaign-color);opacity:.7;font-style:italic}.sidebar-state-badge{font-size:.72rem;color:var(--accent-gold-dim);font-style:italic;padding:6px 14px 2px;display:block}.session-item.ended .session-title{opacity:.6}.session-item.in-progress{border-left-color:var(--campaign-color)}.session-item.in-progress .session-title{color:var(--campaign-color)}.session-item.in-progress:after{content:"";display:block;width:6px;height:6px;border-radius:50%;background:var(--campaign-color);flex-shrink:0;margin-left:auto;opacity:.75}.session-ended-dot{width:5px;height:5px;border-radius:50%;background:var(--border-mid);flex-shrink:0;margin-top:6px}@media (max-width: 900px){.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(82vw,340px);max-width:340px;transform:translate(-100%);transition:transform var(--transition);box-shadow:var(--shadow-soft);border-right:1px solid var(--border-mid)}.sidebar.open{transform:translate(0)}.sidebar-header{padding-top:calc(16px + env(safe-area-inset-top,0px))}.sidebar-close{display:inline-flex}}@media (max-width: 640px){.sidebar{width:min(88vw,320px)}.session-item,.sidebar-context,.sidebar-sessions-header,.sidebar-state-badge,.session-empty{padding-left:12px;padding-right:12px}}.chat-window{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--bg-void);background-image:radial-gradient(ellipse at 60% 0%,var(--accent-gold-soft) 0%,transparent 50%),linear-gradient(180deg,var(--bg-wash-strong),transparent 55%)}.chat-header{padding:13px 24px;border-bottom:1px solid var(--border-dim);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--bg-header);flex-shrink:0}.chat-sessions-toggle{display:none;align-items:center;gap:7px;padding:6px 10px;border:1px solid var(--border-dim);border-radius:999px;background:var(--bg-panel-tint-strong);box-shadow:var(--shadow-gold-tight);color:var(--text-secondary);font-family:var(--font-display);font-size:.63rem;letter-spacing:.1em;text-transform:uppercase;flex-shrink:0}.chat-sessions-toggle-icon{font-size:.88rem}.chat-session-title{font-family:var(--font-display);font-size:.82rem;letter-spacing:.1em;color:var(--text-primary)}.chat-campaign-tag{font-size:.8rem;color:var(--campaign-color);font-style:italic;opacity:.85}.messages{flex:1;overflow-y:auto;padding:32px 0;display:flex;flex-direction:column;gap:24px}.messages-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted);font-style:italic;padding:60px 0;animation:fadeUp .5s ease both}.messages-empty-icon{font-size:36px;opacity:.4}.message{display:flex;flex-direction:column;gap:6px;padding:0 32px;max-width:880px;width:100%;margin:0 auto;animation:fadeUp .25s ease both}.message-label{font-family:var(--font-display);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase}.message-user .message-label{color:var(--accent-gold-dim)}.message-assistant .message-label{color:var(--campaign-color);opacity:.75}.message-content{font-size:1.05rem;line-height:1.8;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.message-user .message-content{color:var(--text-secondary);font-style:italic;font-size:1rem}.cursor{display:inline-block;width:2px;height:.95em;background:var(--campaign-color);margin-left:2px;vertical-align:text-bottom;border-radius:1px;animation:blink .75s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.thinking{display:flex;gap:5px;align-items:center;padding:4px 0}.thinking span{width:5px;height:5px;border-radius:50%;background:var(--campaign-color);opacity:.5;animation:pulse 1.2s ease-in-out infinite}.thinking span:nth-child(2){animation-delay:.2s}.thinking span:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,80%,to{transform:scale(.8);opacity:.3}40%{transform:scale(1.2);opacity:1}}.input-row{flex-shrink:0;padding:14px 32px 20px;border-top:1px solid var(--border-dim);background:var(--bg-header)}.input-area{max-width:816px;margin:0 auto;display:flex;gap:10px;align-items:flex-end}.input-area textarea{flex:1;background:var(--bg-surface);border:1px solid var(--border-dim);border-radius:2px;padding:10px 14px;font-size:.97rem;line-height:1.55;color:var(--text-primary);resize:none;transition:border-color var(--transition);min-height:44px;max-height:160px;overflow-y:auto}.input-area textarea::placeholder{color:var(--text-dim);font-style:italic}.input-area textarea:focus{outline:none;border-color:var(--border-bright)}.input-area textarea:disabled{opacity:.45;cursor:not-allowed}.send-btn{height:44px;padding:0 20px;background:transparent;border:1px solid var(--accent-gold-dim);color:var(--accent-gold);border-radius:2px;font-family:var(--font-display);font-size:1.05rem;flex-shrink:0;transition:all var(--transition)}.send-btn:hover:not(:disabled){background:var(--accent-gold-glow);border-color:var(--accent-gold);box-shadow:var(--shadow-gold-tight)}.send-btn:disabled{opacity:.25;cursor:default}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message-archive{border:1px solid var(--border-dim);border-left:3px solid var(--accent-gold-dim);background:var(--accent-gold-faint);border-radius:2px;padding:20px 24px;margin:8px 0}.message-archive-header,.message-archive-footer{display:flex;align-items:center;gap:12px;margin-bottom:16px}.message-archive-footer{margin-top:16px;margin-bottom:0}.archive-rule{flex:1;height:1px;background:var(--accent-gold-dim);opacity:.4}.archive-label{font-family:var(--font-display);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-gold-dim);white-space:nowrap}.archive-label-end{font-size:.75rem;font-style:italic;color:var(--text-muted);white-space:nowrap}.message-archive .message-content{color:var(--text-secondary);font-size:.97rem;line-height:1.85}.arbiter-block{border:1px solid var(--border-dim);border-left:3px solid var(--accent-arbiter);border-radius:2px;background:var(--accent-arbiter-soft);padding:0 32px;max-width:880px;width:100%;margin:0 auto;animation:fadeUp .25s ease both}.arbiter-block.pending{opacity:.7}.arbiter-header{display:flex;align-items:center;gap:8px;padding:10px 0;width:100%;text-align:left;cursor:pointer;background:none;border:none;color:inherit}.arbiter-block.pending .arbiter-header{cursor:default}.arbiter-icon{font-size:.85rem;color:var(--accent-arbiter);flex-shrink:0}.arbiter-label{font-family:var(--font-display);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-arbiter);flex-shrink:0}.arbiter-question-preview{flex:1;font-size:.82rem;font-style:italic;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.arbiter-chevron{font-size:.6rem;color:var(--text-dim);flex-shrink:0}.arbiter-spinner{width:12px;height:12px;border:1px solid var(--accent-arbiter);border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.arbiter-body{padding:4px 0 14px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border-dim)}.arbiter-q,.arbiter-a{display:flex;gap:10px;font-size:.9rem;line-height:1.65}.arbiter-q-label,.arbiter-a-label{font-family:var(--font-display);font-size:.62rem;letter-spacing:.1em;flex-shrink:0;margin-top:3px;width:14px}.arbiter-q-label{color:var(--text-muted)}.arbiter-a-label{color:var(--accent-arbiter)}.arbiter-q{color:var(--text-secondary);font-style:italic}.arbiter-a{color:var(--text-primary);white-space:pre-wrap}.dice-roll-block{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 14px;padding:6px 32px;max-width:880px;width:100%;margin:0 auto;animation:fadeUp .2s ease both;border-left:3px solid var(--accent-gold-dim);background:var(--accent-gold-glow)}.dice-roll-label{font-family:var(--font-display);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);flex-shrink:0}.dice-roll-results{display:flex;gap:14px;flex-wrap:wrap}.dice-roll-result{font-size:.88rem;color:var(--accent-gold);font-family:var(--font-body)}.state-block{border:1px solid var(--border-dim);border-left:3px solid var(--accent-gold-dim);border-radius:2px;background:var(--accent-gold-glow);padding:0 32px;max-width:880px;width:100%;margin:0 auto;animation:fadeUp .25s ease both}.state-header{display:flex;align-items:center;gap:8px;padding:10px 0;width:100%;text-align:left;cursor:pointer;background:none;border:none;color:inherit}.state-icon{font-size:.9rem;flex-shrink:0}.state-label{font-family:var(--font-display);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-gold-dim);flex:1}.state-chevron{font-size:.6rem;color:var(--text-dim);flex-shrink:0}.state-body{border-top:1px solid var(--border-dim);padding:12px 0 16px}.state-content{font-size:.9rem;line-height:1.75;color:var(--text-secondary);white-space:pre-wrap;font-family:monospace}.chat-header-actions{display:flex;align-items:center;gap:12px}.btn-end-session{font-family:var(--font-display);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;border:1px solid var(--border-mid);border-radius:2px;color:var(--text-muted);transition:all var(--transition)}.btn-end-session:hover:not(:disabled){border-color:var(--accent-danger);color:var(--accent-danger);background:var(--accent-danger-soft)}.btn-end-session:disabled{opacity:.3;cursor:default}.session-ended-badge{font-family:var(--font-display);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border-dim);border-radius:2px;padding:2px 6px;margin-left:10px;vertical-align:middle}.session-ended-bar{padding:12px 32px;border-top:1px solid var(--border-dim);background:var(--bg-deep);font-style:italic;color:var(--text-muted);font-size:.88rem;text-align:center;flex-shrink:0}@media (max-width: 900px){.chat-sessions-toggle{display:inline-flex}.chat-header{padding:14px 18px 12px}.message,.arbiter-block,.dice-roll-block,.state-block{max-width:none}.message{padding:0 20px}.arbiter-block,.state-block,.dice-roll-block{margin-left:20px;margin-right:20px;width:auto}.input-row{padding:12px 20px calc(16px + env(safe-area-inset-bottom,0px))}}@media (max-width: 640px){.chat-header{padding:12px 14px 10px;align-items:flex-start}.chat-session-title{font-size:.76rem;line-height:1.5}.chat-header-actions{width:100%;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.chat-campaign-tag{font-size:.74rem}.messages{padding:20px 0;gap:18px}.message{padding:0 14px}.message-content{font-size:1rem;line-height:1.7}.message-user .message-content{font-size:.97rem}.message-archive,.arbiter-block,.state-block,.dice-roll-block{margin-left:14px;margin-right:14px}.message-archive,.arbiter-block,.state-block,.dice-roll-block{padding-left:16px;padding-right:16px}.input-row{padding:10px 14px calc(14px + env(safe-area-inset-bottom,0px))}.input-area{gap:8px}.send-btn{padding:0 16px}.btn-end-session{padding:6px 10px}.session-ended-bar{padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))}}.end-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-veil);display:flex;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fadeIn .15s ease}.end-dialog{background:var(--bg-surface);border:1px solid var(--border-mid);border-top:2px solid var(--accent-danger);border-radius:3px;width:400px;max-width:90vw;padding:24px;animation:slideUp .2s ease;box-shadow:var(--shadow-soft)}.end-dialog-title{font-family:var(--font-display);font-size:1rem;font-weight:600;letter-spacing:.08em;color:var(--text-primary);margin-bottom:10px}.end-dialog-body{font-size:.9rem;color:var(--text-secondary);line-height:1.65;margin-bottom:20px}.end-dialog-footer{display:flex;justify-content:flex-end;gap:10px}.btn-end-confirm{font-family:var(--font-display);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:8px 18px;border:1px solid color-mix(in srgb,var(--accent-danger) 50%,transparent);border-radius:2px;color:var(--accent-danger);transition:all var(--transition)}.btn-end-confirm:hover{background:var(--accent-danger-soft);border-color:var(--accent-danger)}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-veil);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .15s ease;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog{background:var(--bg-surface);border:1px solid var(--border-mid);border-top:2px solid var(--campaign-color);border-radius:3px;width:480px;max-width:95vw;max-height:85vh;display:flex;flex-direction:column;animation:slideUp .2s ease;box-shadow:var(--shadow-soft)}.dialog-header{display:flex;align-items:center;gap:12px;padding:20px 22px 16px;border-bottom:1px solid var(--border-dim);flex-shrink:0}.dialog-icon{font-size:26px;line-height:1}.dialog-title{font-family:var(--font-display);font-size:.95rem;font-weight:600;letter-spacing:.08em;color:var(--text-primary)}.dialog-subtitle{font-size:.8rem;font-style:italic;color:var(--campaign-color);opacity:.8}.dialog-body{flex:1;overflow-y:auto;padding:18px 22px;display:flex;flex-direction:column;gap:18px}.field label{display:block;font-family:var(--font-display);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:7px}.field-hint{font-family:var(--font-body);text-transform:none;letter-spacing:0;font-style:italic;font-size:.75rem;color:var(--text-dim)}.field input{width:100%;background:var(--bg-panel-tint);border:1px solid var(--border-dim);border-radius:2px;padding:9px 12px;font-size:.92rem;color:var(--text-primary);transition:border-color .15s ease}.field input:focus{outline:none;border-color:var(--border-bright)}.field input::placeholder{color:var(--text-dim);font-style:italic}.file-group-label{font-family:var(--font-display);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.file-list{display:flex;flex-direction:column;gap:3px}.file-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid transparent;border-radius:2px;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.file-item input[type=checkbox]{display:none}.file-item:hover{background:var(--bg-hover);border-color:var(--border-dim)}.file-item.checked{background:color-mix(in srgb,var(--campaign-color) 8%,transparent);border-color:color-mix(in srgb,var(--campaign-color) 30%,transparent)}.file-check{width:16px;height:16px;border:1px solid var(--border-mid);border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:var(--campaign-color);flex-shrink:0;transition:all .15s ease}.file-item.checked .file-check{background:var(--campaign-color);border-color:var(--campaign-color);color:#fff}.file-label{font-size:.9rem;color:var(--text-secondary);transition:color .15s ease}.file-item.checked .file-label{color:var(--text-primary)}.dialog-loading{font-style:italic;color:var(--text-muted);font-size:.9rem;padding:8px 0}.dialog-empty{font-size:.85rem;color:var(--text-muted);font-style:italic;line-height:1.6;padding:4px 0}.dialog-empty code{font-family:monospace;font-size:.8rem;color:var(--text-secondary);background:var(--bg-panel-tint-strong);padding:1px 4px;border-radius:2px}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px 18px;border-top:1px solid var(--border-dim);flex-shrink:0}.btn-cancel{padding:8px 18px;font-size:.85rem;color:var(--text-muted);border:1px solid var(--border-dim);border-radius:2px;transition:all .15s ease}.btn-cancel:hover{color:var(--text-secondary);border-color:var(--border-mid)}.btn-confirm{display:flex;align-items:center;gap:8px;padding:8px 20px;font-family:var(--font-display);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--campaign-color);border:1px solid color-mix(in srgb,var(--campaign-color) 40%,transparent);border-radius:2px;transition:all .15s ease}.btn-confirm:hover{background:color-mix(in srgb,var(--campaign-color) 10%,transparent);border-color:var(--campaign-color)}.btn-badge{font-family:var(--font-body);font-size:.72rem;text-transform:none;letter-spacing:0;background:color-mix(in srgb,var(--campaign-color) 20%,transparent);padding:1px 7px;border-radius:10px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 640px){.dialog-overlay{align-items:flex-end}.dialog{width:100%;max-width:none;max-height:min(88vh,100dvh);border-radius:16px 16px 0 0;border-left:none;border-right:none;border-bottom:none}.dialog-header,.dialog-body,.dialog-footer{padding-left:16px;padding-right:16px}.dialog-header{padding-top:18px}.dialog-footer{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));flex-wrap:wrap-reverse}.btn-cancel,.btn-confirm{flex:1 1 160px;justify-content:center}}.app-layout{display:flex;height:100vh;height:100dvh;width:100%;overflow:hidden;position:relative;background:linear-gradient(180deg,var(--bg-wash),transparent),var(--bg-void)}.app-main{flex:1;overflow:hidden;display:flex;flex-direction:column;min-width:0}.sidebar-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-veil);opacity:0;pointer-events:none;transition:opacity var(--transition);z-index:20}.sidebar-scrim.open{opacity:1;pointer-events:auto}.mobile-sidebar-toggle{display:none;align-items:center;gap:10px;margin:12px 12px 0;padding:9px 12px;border:1px solid var(--border-dim);border-radius:999px;background:var(--bg-panel-tint-strong);box-shadow:var(--shadow-gold-tight);color:var(--text-secondary);font-family:var(--font-display);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;position:relative;z-index:10}.mobile-sidebar-toggle-icon{font-size:.95rem}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;background:var(--bg-void);background-image:radial-gradient(ellipse at 50% 50%,var(--accent-gold-soft) 0%,transparent 70%)}.empty-state-inner{flex:1;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 24px;animation:fadeUp .5s ease both}.empty-icon{font-size:56px;display:block;margin-bottom:8px;filter:var(--shadow-icon)}.empty-state-inner h2{font-family:var(--font-display);font-size:1.6rem;font-weight:600;color:var(--text-primary);letter-spacing:.05em}.empty-state-inner p{color:var(--text-secondary);font-size:1rem;font-style:italic;margin-bottom:8px}.btn-primary{font-family:var(--font-display);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;padding:10px 28px;background:transparent;border:1px solid var(--accent-gold-dim);color:var(--accent-gold);border-radius:2px;transition:all var(--transition);cursor:pointer;margin-top:8px}.btn-primary:hover{background:var(--accent-gold-glow);border-color:var(--accent-gold);box-shadow:var(--shadow-gold-soft)}@media (min-width: 901px){.sidebar-scrim{display:none}}@media (max-width: 900px){.mobile-sidebar-toggle{display:inline-flex}.empty-state{padding:0 16px 16px}}@media (max-width: 640px){.mobile-sidebar-toggle{margin:calc(10px + env(safe-area-inset-top,0px)) 12px 0}.empty-state-inner h2{font-size:1.35rem}.empty-state-inner p{font-size:.95rem}.btn-primary{width:100%;max-width:280px}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}:root{--bg-void: #e8dcc0;--bg-deep: #decda9;--bg-surface: #f2e7c9;--bg-raised: #f8efd8;--bg-hover: #eadcbf;--bg-wash: rgba(255, 250, 235, .4);--bg-wash-strong: rgba(255, 251, 240, .28);--bg-panel-tint: rgba(255, 251, 242, .55);--bg-panel-tint-strong: rgba(255, 251, 242, .7);--bg-campaign-tint: rgba(255, 249, 237, .85);--bg-header: color-mix(in srgb, var(--bg-deep) 86%, white 14%);--bg-body-top: #efe3c5;--bg-body-glow: rgba(255, 248, 228, .9);--bg-body-glow-edge: rgba(255, 248, 228, 0);--border-dim: #c7b38c;--border-mid: #a58b63;--border-bright: #7c6644;--border-grid-strong: rgba(124, 102, 68, .08);--border-grid-soft: rgba(124, 102, 68, .04);--text-primary: #342818;--text-secondary: #5a472d;--text-muted: #7b6749;--text-dim: #9b896c;--accent-gold: #8f6330;--accent-gold-dim: #6f4d24;--accent-gold-glow: rgba(143, 99, 48, .14);--accent-gold-soft: rgba(143, 99, 48, .08);--accent-gold-faint: rgba(143, 99, 48, .05);--accent-arbiter: #5e7480;--accent-arbiter-soft: rgba(94, 116, 128, .1);--accent-danger: #9a5641;--accent-danger-soft: rgba(154, 86, 65, .1);--overlay-veil: rgba(93, 70, 36, .26);--shadow-soft: 0 18px 40px rgba(90, 71, 45, .22);--shadow-gold-soft: 0 6px 18px rgba(111, 77, 36, .12);--shadow-gold-tight: 0 6px 14px rgba(111, 77, 36, .12);--shadow-icon: drop-shadow(0 3px 10px rgba(124, 102, 68, .2));--campaign-ose: #9b4b37;--campaign-masks: #7b5a7a;--campaign-dragonbane: #3f7a67;--campaign-ironsworn: #9a6131;--font-display: "Cinzel", Georgia, serif;--font-body: "Crimson Pro", Georgia, serif;--sidebar-width: 260px;--transition: .18s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden}html{-webkit-text-size-adjust:100%}body{background:radial-gradient(circle at top,var(--bg-body-glow) 0%,var(--bg-body-glow-edge) 42%),linear-gradient(180deg,var(--bg-body-top) 0%,var(--bg-void) 100%);color:var(--text-primary);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;background-attachment:fixed;overscroll-behavior:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-mid);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-bright)}::selection{background:var(--accent-gold-glow);color:var(--accent-gold)}button{font-family:var(--font-body);cursor:pointer;border:none;background:none;color:inherit}input,textarea{font-family:var(--font-body);color:inherit}
