@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&display=swap";html,body,#root{min-height:100%;margin:0}body{background:#f6f1e8;font-family:Manrope,Avenir Next,Segoe UI,sans-serif}:root{--radius:14px;--shadow:0 10px 30px #00000017;--border:#00000014}:root[data-theme=light]{--bg:#f6f1e8;--bg-soft:#fbf8f3;--panel:#fffdfa;--text:#2c2621;--muted:#6c6257;--accent:#7a4c2d;--accent-soft:#efe3d6;--danger:#bc3f2e}:root[data-theme=dark]{--bg:#12100e;--bg-soft:#1a1612;--panel:#211b16;--text:#f0e5d8;--muted:#b7a99a;--accent:#ca9a6d;--accent-soft:#31261d;--danger:#e27665;--border:#ffffff14}*{box-sizing:border-box}.screen{max-width:1100px;min-height:100dvh;color:var(--text);margin:0 auto;padding:20px}.loading-screen{text-align:center;place-content:center;gap:12px;display:grid}.pulse{border:3px solid var(--border);border-top-color:var(--accent);border-radius:999px;width:44px;height:44px;margin-inline:auto;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app-shell,.auth-screen{background:radial-gradient(circle at 10% 0%, var(--accent-soft), transparent 42%), var(--bg)}.auth-screen{justify-content:center;align-items:center;min-height:100dvh;display:flex}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);width:min(100%,460px);box-shadow:var(--shadow);padding:20px}.auth-head-row{justify-content:space-between;align-items:center;display:flex}h1,h2,h3,p{margin:0}h1{margin-top:6px;margin-bottom:8px;font-size:clamp(1.6rem,3.5vw,2rem)}h2{font-size:1.15rem}h3{font-size:1rem}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:.75rem;font-weight:700}.logo{align-items:center;display:inline-flex}.logo-svg{width:auto;height:46px;color:var(--text)}.muted{color:var(--muted)}.tiny{color:var(--muted);font-size:.84rem}.stack{gap:12px;display:grid}.row{align-items:center;gap:8px;margin-top:6px;display:flex}.row select{margin-top:0}.stack.compact{gap:8px}.segment{grid-template-columns:1fr 1fr;gap:8px;margin:12px 0;display:grid}.segment button{background:var(--bg-soft)!important;color:var(--text)!important;border-color:var(--border)!important}.segment button.active{box-shadow:inset 0 -2px 0 var(--accent);font-weight:700;background:color-mix(in srgb, var(--accent-soft) 88%, transparent)!important;border-color:color-mix(in srgb, var(--accent) 55%, transparent)!important}button,input,select,textarea{font:inherit;border:1px solid var(--border);border-radius:10px;transition:all .18s}button{background:var(--panel);color:var(--text);cursor:pointer;padding:10px 14px}button.active,button:hover{border-color:var(--accent)}button:disabled{opacity:.55;cursor:not-allowed}button:not(.ghost):not(.nav-link):not(.chip):not(.square){background:var(--text);color:var(--bg-soft);border-color:var(--text)}button:not(.ghost):not(.nav-link):not(.chip):not(.square):hover{filter:brightness(1.08)}button.ghost{background:0 0}input,select,textarea{width:100%;color:var(--text);background:var(--bg-soft);margin-top:6px;padding:10px 12px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}label{color:var(--muted);font-size:.92rem}.error{color:var(--danger);font-size:.9rem}.topbar{grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-bottom:22px;display:grid}.topnav{justify-content:center;gap:10px;padding:0;display:flex}.nav-link{color:var(--muted);border:none;border-radius:0;padding:10px 6px 12px;font-weight:600;position:relative;background:0 0!important}.nav-link:hover,.nav-link.active{color:var(--text)}.nav-link:after{content:"";background:0 0;border-radius:999px;height:2px;transition:background .18s;position:absolute;bottom:0;left:0;right:0}.nav-link.active:after{background:var(--accent)}.header-actions{align-items:center;gap:8px;display:flex}.top-create-btn{white-space:nowrap;border-radius:10px;height:38px;padding:0 12px;font-weight:600}.icon-btn{border:1px solid var(--border);background:var(--bg-soft);width:40px;height:40px;color:var(--text);border-radius:10px;place-items:center;padding:0;display:grid}.icon-btn.plain{background:0 0;border:none;width:42px;height:42px;padding:0}.icon-svg{color:currentColor;width:20px;height:20px}.icon-btn.plain .icon-svg{width:24px;height:24px}.header-brand{white-space:nowrap}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}.panel.warning{border-left:3px solid var(--danger);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.grid.metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.grid.metrics .panel{padding:12px}.metric-switch{text-align:left;background:var(--panel)!important;color:var(--text)!important;border:1px solid var(--border)!important}.metric-switch.active{box-shadow:inset 0 -2px 0 var(--accent);border-color:var(--accent)!important}.panel.accent{background:linear-gradient(120deg, color-mix(in srgb, var(--accent-soft) 84%, transparent), var(--panel))}.empty-state{text-align:center;place-content:center;gap:10px;min-height:240px;display:grid}.empty-title{font-size:1.05rem;font-weight:600}.empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.section-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.character-list{grid-template-columns:1fr}.list-item{border:1px solid var(--border);background:var(--bg-soft);border-radius:12px;padding:10px}.character-item{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.character-actions{min-width:220px}.avatar,.avatar-fallback{object-fit:cover;border:1px solid var(--border);border-radius:10px;width:48px;height:48px}.avatar-fallback{color:var(--accent);background:color-mix(in srgb, var(--accent-soft) 80%, transparent);place-items:center;font-size:.75rem;font-weight:700;display:grid}.chips{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.chips.compact{align-items:center}.secondary-filters{padding-top:2px}.chip{white-space:nowrap;background:var(--bg-soft);border-radius:999px;padding:7px 12px;font-size:.88rem}.chip.active{background:color-mix(in srgb, var(--accent-soft) 80%, transparent);border-color:var(--accent)}.chip-character{background:var(--bg-soft);border-color:var(--border);color:var(--text);align-items:center;gap:6px;display:inline-flex}.chip-character-icon{object-fit:cover;border:1px solid var(--border);border-radius:4px;width:16px;height:16px}.chip-icon{border-radius:999px;place-items:center;width:31px;height:31px;padding:0;font-size:1rem;line-height:1;display:grid}.chip-icon.accent{background:color-mix(in srgb, var(--accent-soft) 84%, transparent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.board-gap{margin-top:20px}.task-groups{gap:12px}.group-title{text-transform:uppercase;letter-spacing:.06em}.task{gap:10px;display:grid}.task.compact{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main meta""progress progress";align-items:center;gap:8px;padding:10px 12px;display:grid}.task.completed{opacity:.72}.task-main{text-align:left;border:none;grid-area:main;align-items:flex-start;gap:10px;width:100%;padding:0;display:flex;color:inherit!important;background:0 0!important}.task-main:hover{border-color:#0000!important}.task-main-content{width:100%;min-width:0}.task-head,.task-foot{justify-content:space-between;align-items:center;gap:10px;display:flex}.task-head.compact h3{font-size:.9rem;line-height:1.2}.task-check{border:2px solid var(--muted);border-radius:999px;flex:none;width:18px;height:18px}.task-check.done{background:var(--accent);border-color:var(--accent);box-shadow:inset 0 0 0 3px var(--panel)}.task-progress-row{align-items:center;gap:8px;margin-top:2px;display:flex}.task-progress-row.short{margin-top:0}.task-progress-track{background:color-mix(in srgb, var(--bg-soft) 70%, var(--text) 6%);border-radius:999px;flex:1;height:3px;overflow:hidden}.task-progress-track.short{flex:none;width:95px}.task-progress-track span{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 85%, white 10%), var(--accent));height:100%;display:block}.progress-inline{text-align:right;min-width:48px}.task-progress-controls{grid-area:progress;justify-content:center;align-items:center;gap:6px;width:min(260px,100%);margin-inline:auto;display:flex}.task-meta-controls{grid-area:meta;place-self:start end;align-items:center;gap:6px;display:flex}.task-priority-indicator{opacity:.95;place-items:center;width:24px;height:24px;display:grid}.icon-square{place-items:center;padding:0;display:grid}.icon-square .icon-svg{width:18px;height:18px}.task-character-inline{align-items:center;gap:4px;display:inline-flex}.task-meta-line{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.task-type-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.task-character-icon{object-fit:cover;border:1px solid var(--border);vertical-align:text-bottom;border-radius:4px;width:14px;height:14px}.priority-icon{width:20px;height:20px;color:var(--muted);display:block}.priority-icon.high{color:#dd4c45}.priority-icon.medium{color:#d9ab32}.priority-icon.low{color:#3eaf67}.badge{letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:3px 8px;font-size:.74rem}.badge.high{color:var(--danger)}.badge.medium{color:var(--accent)}.progress{font-size:1.05rem;font-weight:700}.square{background:var(--bg-soft);border-radius:10px;min-width:36px;height:36px;padding:0}.modal-backdrop{z-index:60;background:#00000073;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);width:min(100%,460px);box-shadow:var(--shadow);padding:14px}.modal-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.modal-close-btn{color:var(--muted);width:32px!important;height:32px!important}.modal-close-btn:hover{color:var(--text)}.class-select{margin-top:6px;position:relative}.option-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.option-card{text-align:left;border-radius:10px;padding:10px 12px;border:1px solid var(--border)!important;background:var(--bg-soft)!important;color:var(--text)!important}.option-card.active{background:color-mix(in srgb, var(--accent-soft) 82%, transparent)!important;border-color:color-mix(in srgb, var(--accent) 40%, transparent)!important}.option-check{align-items:center;gap:8px;display:flex}.option-check input{width:16px;height:16px;margin:0}.server-select{margin-top:6px;position:relative}.server-select input{margin-top:0}.template-select{margin-top:6px;position:relative}.template-select-trigger{justify-content:flex-start;align-items:center;gap:8px;width:100%;display:flex;background:var(--bg-soft)!important;color:var(--text)!important;border-color:var(--border)!important}.template-select-menu{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;border:1px solid var(--border);background:var(--panel);max-height:240px;box-shadow:var(--shadow);z-index:80;border-radius:10px;gap:2px;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.template-option{border-radius:8px;justify-content:flex-start;align-items:center;width:100%;padding:10px 12px;display:flex;color:var(--text)!important;background:0 0!important;border:1px solid #0000!important}.template-option:hover{background:color-mix(in srgb, var(--accent-soft) 65%, transparent)!important}.template-option.active{font-weight:600;background:color-mix(in srgb, var(--accent-soft) 80%, transparent)!important;border-color:color-mix(in srgb, var(--accent) 40%, transparent)!important}.class-select-trigger{justify-content:flex-start;align-items:center;gap:8px;width:100%;display:flex;background:var(--bg-soft)!important;color:var(--text)!important;border-color:var(--border)!important}.class-chevron{color:var(--muted);margin-left:auto}.class-select-menu{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;border:1px solid var(--border);background:var(--panel);max-height:260px;box-shadow:var(--shadow);z-index:80;border-radius:10px;gap:2px;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.server-select-menu{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;border:1px solid var(--border);background:var(--panel);max-height:240px;box-shadow:var(--shadow);z-index:80;border-radius:10px;gap:2px;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.class-option{justify-content:flex-start;align-items:center;gap:8px;width:100%;display:flex;color:var(--text)!important;background:0 0!important;border-color:#0000!important}.server-option{border-radius:8px;justify-content:flex-start;align-items:center;width:100%;padding:10px 12px;display:flex;color:var(--text)!important;background:0 0!important;border:1px solid #0000!important}.server-option:hover{background:color-mix(in srgb, var(--accent-soft) 65%, transparent)!important}.server-option.active{font-weight:600;background:color-mix(in srgb, var(--accent-soft) 80%, transparent)!important;border-color:color-mix(in srgb, var(--accent) 40%, transparent)!important}.server-option.empty{cursor:default;color:var(--muted)!important}.class-option:hover{background:color-mix(in srgb, var(--accent-soft) 65%, transparent)!important}.class-option.active{background:var(--class-bg,color-mix(in srgb, var(--accent-soft) 80%, transparent))!important;border-color:var(--class-border,color-mix(in srgb, var(--accent) 40%, transparent))!important}.class-option-icon{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:30px;height:30px}.class-option-label{color:var(--class-accent,var(--text));text-shadow:0 0 #0000;font-weight:600}.class-name{color:var(--class-accent,var(--text));font-weight:600}.settings-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.settings-character-list{gap:8px;margin-top:10px;display:grid}.settings-character-row{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.settings-character-meta{align-items:center;gap:8px;min-width:0;display:inline-flex}.danger-btn{color:var(--danger)!important;border-color:color-mix(in srgb, var(--danger) 35%, var(--border))!important}.danger-btn:hover{border-color:var(--danger)!important;background:color-mix(in srgb, var(--danger) 12%, transparent)!important}.task-filters-panel{z-index:20;position:sticky;top:8px}@media (width<=920px){.topnav{justify-content:flex-start;overflow-x:auto}}@media (width<=700px){.screen{padding:14px}.grid.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.metrics>.panel:last-child{grid-column:1/-1}.grid.metrics .panel{min-height:78px;padding:10px 12px}.grid.metrics .tiny{font-size:.8rem}.topbar{gap:8px}.top-create-btn{height:34px;padding:0 10px;font-size:.9rem}.header-actions .icon-btn.plain{width:36px;height:36px}.header-actions .icon-btn.plain .icon-svg{width:21px;height:21px}.character-list{grid-template-columns:1fr}.character-item{flex-direction:column;align-items:stretch}.character-actions{min-width:0}.panel.warning{display:grid}.task.compact{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main meta";align-items:start;gap:8px;padding:10px}.task-main{width:100%;min-width:0}.task-main-content{min-width:0}.task-progress-controls,.task-progress-track.short{display:none}.task-progress-row.short{gap:0}.task-progress-row.short .progress-inline{text-align:center;width:auto;min-width:auto;margin:0;display:none}.task-meta-controls{place-self:start end;gap:8px;margin-left:0}.task-filters-panel .chips{flex-wrap:wrap;overflow-x:visible}.task-filters-panel .chip{flex:none}.settings-character-row{flex-direction:column;align-items:stretch}.settings-character-row button{width:100%}}.modal-backdrop{overflow-y:auto}
