@import"https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700&family=Crimson+Pro:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";.app-body{display:flex;flex:1;min-height:0}.app-main{min-width:0}.app-topbar{display:none}.app-topbar__brand{display:inline-flex;align-items:center;gap:var(--sp-2);text-decoration:none}.nav-backdrop{position:fixed;inset:0;z-index:calc(var(--z-drawer) - 1);background:#00000080}.side{width:208px;flex:0 0 208px;display:flex;flex-direction:column;background:var(--bg-base);border-right:1px solid var(--border);padding:var(--sp-3) var(--sp-2) var(--sp-2);overflow-y:auto;overflow-x:hidden}.side__brand,.side__nav,.side__footer{flex-shrink:0}.side__brand{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2) var(--sp-4);text-decoration:none}.side__logo{width:30px;height:30px;flex:0 0 30px;border-radius:var(--radius-md);background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:900;font-size:15px}.side__brandtext{font-family:var(--font-display);font-weight:800;font-size:var(--fs-md);color:var(--fg-strong);white-space:nowrap}.side__nav{display:flex;flex-direction:column}.side__group{font-size:9.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--fg-muted);padding:var(--sp-3) var(--sp-2) var(--sp-1)}.nav-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2);border-radius:var(--radius-md);color:var(--fg-base);text-decoration:none;font-size:var(--fs-md);font-weight:500;line-height:1.2;position:relative;margin-bottom:1px;transition:background var(--dur-fast),color var(--dur-fast)}.nav-item .ui-icon{flex:0 0 auto;color:var(--fg-muted);transition:color var(--dur-fast)}.nav-item:hover{background:var(--bg-raised);color:var(--fg-strong)}.nav-item:hover .ui-icon{color:var(--fg-base)}.nav-item.active{background:var(--bg-elevated);color:var(--fg-strong);font-weight:600}.nav-item.active .ui-icon{color:var(--accent)}.nav-item.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 2px 2px 0;background:var(--accent)}.nav-item__label{white-space:nowrap}.side__spacer{flex:1 1 auto;min-height:var(--sp-4)}.side__footer{position:relative;border-top:1px solid var(--border);padding-top:var(--sp-2)}.side__impersonation{padding:var(--sp-1) var(--sp-2) var(--sp-2)}.side__user{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2)}.side__avatar{width:30px;height:30px;flex:0 0 30px;border-radius:50%;background:var(--bg-elevated);border:1px solid var(--border-strong);color:var(--fg-strong);display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:700}.side__user-meta{display:flex;flex-direction:column;min-width:0;flex:1}.side__user-name{font-size:var(--fs-sm);color:var(--fg-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side__user-role{font-size:10px;color:var(--fg-muted)}.side__collapse{display:flex;align-items:center;gap:var(--sp-3);width:100%;margin-top:var(--sp-1);padding:var(--sp-2);background:transparent;border:none;border-radius:var(--radius-md);color:var(--fg-muted);font-family:var(--font-body);font-size:var(--fs-sm);cursor:pointer}.side__collapse:hover{background:var(--bg-raised);color:var(--fg-base)}.side__collapse .ui-icon{transform:rotate(90deg);transition:transform var(--dur-base)}@media (min-width: 768px){.side--collapsed{width:60px;flex-basis:60px}.side--collapsed .side__brandtext,.side--collapsed .nav-item__label,.side--collapsed .side__group,.side--collapsed .side__user-meta,.side--collapsed .side__impersonation{display:none}.side--collapsed .side__brand,.side--collapsed .nav-item,.side--collapsed .side__user,.side--collapsed .side__collapse{justify-content:center}.side--collapsed .side__user{flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) 0}.side--collapsed .side__collapse .ui-icon{transform:rotate(-90deg)}}@media (max-width: 767px){.app-topbar{display:flex;align-items:center;gap:var(--sp-3);position:fixed;top:0;left:0;right:0;height:50px;z-index:var(--z-panel);padding:0 var(--sp-3);background:var(--bg-base);border-bottom:1px solid var(--border)}.app-main{padding-top:calc(50px + var(--sp-4))}.side{position:fixed;top:0;left:0;bottom:0;width:248px;flex-basis:248px;transform:translate(-100%);transition:transform var(--dur-base) var(--ease-out);z-index:var(--z-drawer);box-shadow:var(--shadow-lg)}.side--open{transform:none}.side__collapse{display:none}}@media (min-width: 768px){.side--collapsed .thememenu{display:none}}.ui-icon{display:inline-block;vertical-align:middle;flex:0 0 auto}.ui-btn{font-family:var(--font-body);font-weight:600;font-size:var(--fs-sm);line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);border:1px solid transparent;border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-4);min-height:38px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast),color var(--dur-fast),filter var(--dur-fast)}.ui-btn:disabled{opacity:.5;cursor:not-allowed}.ui-btn--primary{background:var(--accent);color:var(--on-accent)}.ui-btn--primary:hover:not(:disabled){filter:brightness(1.08)}.ui-btn--secondary{background:var(--bg-raised);color:var(--fg-base);border-color:var(--border)}.ui-btn--secondary:hover:not(:disabled){background:var(--bg-elevated);border-color:var(--border-strong);color:var(--fg-strong)}.ui-btn--ghost{background:transparent;color:var(--fg-base);border-color:var(--border-strong)}.ui-btn--ghost:hover:not(:disabled){background:var(--bg-raised);color:var(--fg-strong)}.ui-btn--subtle{background:transparent;color:var(--fg-muted)}.ui-btn--subtle:hover:not(:disabled){background:var(--bg-raised);color:var(--fg-base)}.ui-btn--danger{background:var(--danger);color:#fff}.ui-btn--danger:hover:not(:disabled){filter:brightness(1.08)}.ui-btn--sm{min-height:30px;padding:var(--sp-1) var(--sp-3);font-size:var(--fs-xs)}.ui-btn--lg{min-height:46px;padding:var(--sp-3) var(--sp-6);font-size:var(--fs-md)}.ui-btn--block{width:100%}.ui-btn--loading{color:transparent!important;position:relative}.ui-btn--loading .ui-spinner{position:absolute}.ui-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-raised);color:var(--fg-base);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.ui-iconbtn:hover:not(:disabled){background:var(--bg-elevated);color:var(--fg-strong);border-color:var(--border-strong)}.ui-iconbtn:disabled{opacity:.5;cursor:not-allowed}.ui-iconbtn--ghost{background:transparent;border-color:transparent;color:var(--fg-muted)}.ui-iconbtn--ghost:hover:not(:disabled){background:var(--bg-raised);color:var(--fg-strong)}.ui-iconbtn--sm{width:28px;height:28px}@media (hover: none){.ui-iconbtn{min-width:44px;min-height:44px}}.ui-field{display:flex;flex-direction:column;gap:var(--sp-1)}.ui-field__label{font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-muted)}.ui-field__req{color:var(--danger);margin-left:2px}.ui-field__hint{font-size:var(--fs-xs);color:var(--fg-muted)}.ui-field__error{font-size:var(--fs-xs);color:var(--danger);display:inline-flex;align-items:center;gap:var(--sp-1)}.ui-input,.ui-select,.ui-textarea{font-family:var(--font-body);font-size:var(--fs-md);color:var(--fg-strong);background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-3);min-height:38px;width:100%;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.ui-input::placeholder,.ui-textarea::placeholder{color:var(--fg-muted)}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ui-textarea{min-height:84px;resize:vertical;line-height:var(--lh-body)}.ui-field--invalid .ui-input,.ui-field--invalid .ui-select,.ui-field--invalid .ui-textarea{border-color:var(--danger)}.ui-field--invalid :focus{box-shadow:0 0 0 3px var(--danger-soft)}@media (hover: none){.ui-input,.ui-select,.ui-textarea{min-height:44px}}.ui-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg)}.ui-card--pad{padding:var(--sp-4)}.ui-card--hover{transition:border-color var(--dur-base),box-shadow var(--dur-base),transform var(--dur-fast);cursor:pointer}.ui-card--hover:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.ui-panel{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.ui-panel__header{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.ui-panel__title{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--fg-strong);margin:0;flex:1;min-width:0}.ui-panel__actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.ui-panel__body{padding:var(--sp-4)}.ui-modal__backdrop{position:fixed;inset:0;z-index:var(--z-modal);background:#0000008c;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--sp-4);animation:ui-fade var(--dur-base) var(--ease-out)}.ui-modal{background:var(--bg-base);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:520px;max-height:90vh;overflow:auto;display:flex;flex-direction:column;animation:ui-pop var(--dur-base) var(--ease-out)}.ui-modal__header{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--border)}.ui-modal__title{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--fg-strong);margin:0;flex:1}.ui-modal__body{padding:var(--sp-4)}.ui-modal__footer{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-4);border-top:1px solid var(--border)}@keyframes ui-fade{0%{opacity:0}to{opacity:1}}@keyframes ui-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.ui-chip{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);font-weight:600;line-height:1.4;padding:3px var(--sp-2);border-radius:var(--radius-pill);background:var(--bg-elevated);border:1px solid var(--border);color:var(--fg-base)}.ui-chip--a{background:var(--sheet-a-soft);color:var(--sheet-a);border-color:transparent}.ui-chip--b{background:var(--sheet-b-soft);color:var(--sheet-b);border-color:transparent}.ui-chip--accent{background:var(--accent-soft);color:var(--accent);border-color:transparent}.ui-chip--danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.ui-chip--active{background:var(--active-soft);color:var(--active);border-color:transparent}.ui-chip__cue{width:9px;height:9px;border-radius:50%;flex:0 0 9px;box-sizing:border-box}.ui-chip__cue--solid{background:currentColor}.ui-chip__cue--ring{border:2px solid currentColor;background:transparent}.ui-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:10px;font-weight:700;background:var(--accent);color:var(--on-accent)}.ui-badge--muted{background:var(--bg-elevated);color:var(--fg-muted)}.ui-badge--danger{background:var(--danger);color:#fff}.ui-badge--warning{background:var(--warning);color:var(--on-accent)}.ui-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--sp-3);padding:var(--sp-8) var(--sp-4);color:var(--fg-muted)}.ui-empty__icon{color:var(--fg-muted);opacity:.55}.ui-empty__title{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--fg-base);margin:0}.ui-empty__msg{max-width:360px;font-size:var(--fs-sm);margin:0;line-height:var(--lh-body)}.ui-spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:ui-spin .7s linear infinite}.ui-spinner--sm{width:14px;height:14px;border-width:2px}.ui-spinner--lg{width:28px;height:28px;border-width:3px}.ui-loading{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-6);color:var(--fg-muted);font-size:var(--fs-sm)}@keyframes ui-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.ui-spinner{animation-duration:1.2s}}.thememenu{position:static}.thememenu__pop{position:absolute;bottom:calc(100% + var(--sp-2));left:0;right:0;z-index:var(--z-tooltip);padding:var(--sp-2);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:thememenu-pop var(--dur-base) var(--ease-out)}@keyframes thememenu-pop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.thememenu__label{font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-muted);padding:var(--sp-2) var(--sp-1) var(--sp-1)}.thememenu__seg{display:flex;gap:var(--sp-1)}.thememenu__seg-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:var(--sp-2) var(--sp-1);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-raised);color:var(--fg-muted);font-family:var(--font-body);font-size:10.5px;cursor:pointer;transition:color var(--dur-fast),border-color var(--dur-fast),background var(--dur-fast)}.thememenu__seg-btn:hover{color:var(--fg-base);border-color:var(--border-strong)}.thememenu__seg-btn.is-active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.thememenu__themes{display:flex;flex-direction:column;gap:2px}.thememenu__theme{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border:0;border-radius:var(--radius-md);background:transparent;color:var(--fg-base);font-family:var(--font-body);font-size:var(--fs-sm);cursor:pointer;text-align:left;transition:background var(--dur-fast)}.thememenu__theme:hover{background:var(--bg-raised)}.thememenu__theme.is-active{color:var(--fg-strong);font-weight:600}.thememenu__swatch{width:14px;height:14px;border-radius:var(--radius-sm);flex:0 0 14px;border:1px solid rgba(255,255,255,.14)}.thememenu__check{margin-left:auto;color:var(--accent)}.toasts{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:40;display:flex;flex-direction:column;gap:6px;pointer-events:none;max-width:min(480px,80vw)}.toasts__item{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-radius:6px;font-family:Crimson Pro,serif;font-size:14px;color:#e8e6e1;background:#120f1af0;border:1px solid rgba(255,255,255,.1);box-shadow:0 6px 18px #0006;backdrop-filter:blur(6px);animation:toasts-in .14s ease-out}.toasts__item--info{border-left:3px solid #6ac1c4}.toasts__item--warn{border-left:3px solid #f5c77a}.toasts__item--error{border-left:3px solid #f87171}.toasts__message{flex:1}.toasts__message--button{background:transparent;border:none;color:inherit;font:inherit;text-align:left;padding:0;cursor:pointer;text-decoration:underline;text-decoration-color:#e8e6e166;text-underline-offset:3px}.toasts__message--button:hover{text-decoration-color:#e8e6e1}.toasts__item--actionable{cursor:pointer}.toasts__close{background:transparent;border:none;color:#e8e6e199;font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.toasts__close:hover{color:#e8e6e1}@keyframes toasts-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}:root{--bg-deep: #0f0d0a;--bg-base: #15120e;--bg-raised: #1d1812;--bg-elevated: #2a2218;--border: #3a2f22;--border-strong: #5a4831;--fg-strong: #f4ead7;--fg-base: #cdbf9e;--fg-muted: #877760;--sheet-a: #f0a830;--sheet-a-soft: #f0a83033;--sheet-b: #2dd4bf;--sheet-b-soft: #2dd4bf33;--active: #6ee7b7;--danger: #ef4444;--warning: #facc15;--font-display: "Cinzel", serif;--font-body: "Crimson Pro", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-6: 24px;--sp-8: 32px}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg-deep);color:var(--fg-base);font-family:var(--font-body);font-size:16px;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);color:var(--fg-strong);letter-spacing:.02em;margin:0 0 var(--sp-4)}.numeric,.stat{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.app-shell{display:flex;flex-direction:column;height:100%}.app-nav{display:flex;align-items:center;gap:var(--sp-6);padding:var(--sp-3) var(--sp-6);background:var(--bg-base);border-bottom:1px solid var(--border)}.app-nav__brand{font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--fg-strong);margin-right:var(--sp-4)}.app-nav__link{color:var(--fg-muted);text-decoration:none;font-family:var(--font-display);font-size:.95rem;padding:var(--sp-1) 0;border-bottom:2px solid transparent;transition:color .12s,border-color .12s}.app-nav__link:hover{color:var(--fg-base)}.app-nav__link.active{color:var(--fg-strong);border-bottom-color:var(--sheet-a)}.app-main{flex:1;overflow:auto;padding:var(--sp-6)}.sheet-a{color:var(--sheet-a)}.sheet-b{color:var(--sheet-b)}.sheet-a-bg{background:var(--sheet-a-soft)}.sheet-b-bg{background:var(--sheet-b-soft)}button{font-family:var(--font-body);font-size:.9rem;color:var(--fg-base);background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;padding:var(--sp-2) var(--sp-3);cursor:pointer;min-height:36px;min-width:36px;transition:background .1s,border-color .1s}button:hover:not(:disabled){background:var(--bg-elevated);border-color:var(--border-strong)}button:disabled{opacity:.4;cursor:not-allowed}input[type=text],input[type=number]{font-family:var(--font-body);font-size:.9rem;color:var(--fg-base);background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;padding:var(--sp-2) var(--sp-3);min-height:36px}input[type=text]:focus,input[type=number]:focus{outline:none;border-color:var(--sheet-a)}.sheet-page{width:100%;max-width:1440px;margin:0 auto;padding:0 var(--sp-4)}.sheet-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(300px,1.2fr) minmax(280px,1fr);gap:var(--sp-4);align-items:start}.sheet-grid>div{min-width:0}.sheet-page section{margin-top:var(--sp-6)}.sheet-grid section:first-child{margin-top:0}.sheet-page h2{font-size:1.15rem;margin-bottom:var(--sp-3)}.chip-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-2)}.ctrl-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-2)}.session-log{max-height:16rem;overflow-y:auto;border:1px solid var(--border);border-radius:6px;padding:var(--sp-1) 0}.session-log__entry{display:flex;gap:var(--sp-2);align-items:baseline;padding:var(--sp-1) var(--sp-3);border-bottom:1px solid var(--border);font-size:.85rem}.inv-row{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1);flex-wrap:wrap}.impersonation-banner{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-1) var(--sp-4);background:var(--sheet-a-soft);border-bottom:1px solid var(--sheet-a);font-family:var(--font-body);font-size:.85rem;color:var(--sheet-a)}.impersonation-banner button{font-size:.8rem;padding:var(--sp-1) var(--sp-2);min-height:28px;min-width:auto;color:var(--sheet-a);border-color:var(--sheet-a);background:transparent}.impersonation-banner button:hover:not(:disabled){background:var(--sheet-a-soft)}.impersonation-picker{position:static;margin-left:var(--sp-2)}.impersonation-picker__trigger{font-family:var(--font-body);font-size:.85rem;padding:var(--sp-1) var(--sp-3);min-height:32px;color:var(--fg-muted);background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;cursor:pointer;white-space:nowrap}.impersonation-picker__trigger:hover{color:var(--fg-base);border-color:var(--border-strong)}.impersonation-picker__trigger--active{color:var(--sheet-a);border-color:var(--sheet-a);background:var(--sheet-a-soft)}.impersonation-picker__dropdown{position:absolute;bottom:calc(100% + 4px);left:0;right:0;max-height:min(320px,60vh);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:6px;box-shadow:0 4px 12px #0006;z-index:var(--z-tooltip, 100);overflow-y:auto}.impersonation-picker__item{display:block;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;padding:var(--sp-2) var(--sp-3);font-size:.85rem;color:var(--fg-base);background:transparent;border:none;border-radius:0;border-bottom:1px solid var(--border);cursor:pointer;min-height:auto;min-width:auto}.impersonation-picker__item:last-child{border-bottom:none}.impersonation-picker__item:hover{background:var(--bg-raised)}.impersonation-picker__item--selected{color:var(--sheet-a);background:var(--sheet-a-soft)}.impersonation-picker__item--return{color:var(--active);font-weight:500}.impersonation-picker__item--info{color:var(--fg-muted);cursor:default;font-style:italic}.impersonation-picker__item--error{color:var(--danger);cursor:default}.levelup-page{max-width:1100px;margin:0 auto}.levelup-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-3);margin-bottom:var(--sp-4)}.levelup-header h1{margin:0}.levelup-header__controls{display:flex;align-items:center;gap:var(--sp-3)}.levelup-picker{font-family:var(--font-body);font-size:.95rem;padding:var(--sp-1) var(--sp-3);background:var(--bg-raised);color:var(--fg-base);border:1px solid var(--border);border-radius:6px}.btn-levelup{background:var(--active);color:var(--bg-deep);font-weight:600;border-radius:6px;padding:var(--sp-2) var(--sp-4)}.btn-levelup:hover:not(:disabled){filter:brightness(1.1)}.btn-cancel{background:var(--bg-raised);color:var(--fg-muted);border:1px solid var(--border);border-radius:6px;padding:var(--sp-2) var(--sp-4)}.levelup-summary{font-size:.95rem;margin-bottom:var(--sp-6)}.levelup-sheets{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6)}.levelup-panel{border:1px solid var(--border);border-radius:8px;padding:var(--sp-4)}.levelup-panel h2{font-size:1.15rem;margin-bottom:var(--sp-3)}.levelup-panel h3{font-size:.95rem;margin-bottom:var(--sp-2)}.levelup-panel__current{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-6);margin-bottom:var(--sp-4)}.levelup-stat-row{display:flex;flex-direction:column;gap:2px}.levelup-stats-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--sp-2);margin-bottom:var(--sp-4);text-align:center}.levelup-stat-cell{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--sp-2);background:var(--bg-raised);border-radius:6px}.levelup-stat-label{font-family:var(--font-mono);font-size:.75rem;color:var(--fg-muted);text-transform:uppercase}.levelup-features{margin-bottom:var(--sp-4)}.levelup-feature-row{display:flex;gap:var(--sp-3);padding:var(--sp-1) 0;font-size:.85rem;border-bottom:1px solid var(--border)}.levelup-feature-lv{min-width:40px;color:var(--fg-muted)}.levelup-pending{border-top:2px solid var(--border-strong);padding-top:var(--sp-4);margin-top:var(--sp-4)}.levelup-new-features{display:flex;flex-direction:column;gap:var(--sp-1);margin-bottom:var(--sp-3)}.levelup-feature-names{font-weight:500;color:var(--fg-strong)}.levelup-hp-section{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-3)}.levelup-hp-controls{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.btn-sm{font-size:.8rem;padding:var(--sp-1) var(--sp-2);min-height:auto;min-width:auto;border-radius:4px}.levelup-hp-result{color:var(--active);font-weight:600;font-size:1rem}.levelup-subclass{display:flex;flex-direction:column;gap:var(--sp-1);margin-bottom:var(--sp-3)}.levelup-subclass input{max-width:280px}.levelup-asi{margin-bottom:var(--sp-3)}.levelup-asi-toggle{display:flex;gap:var(--sp-4);margin-bottom:var(--sp-2)}.levelup-asi-toggle label{display:flex;align-items:center;gap:var(--sp-1);cursor:pointer;font-size:.9rem}.levelup-asi-picks{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.levelup-asi-pick{display:flex;flex-direction:column;gap:var(--sp-1)}.levelup-asi-pick select{font-family:var(--font-body);font-size:.9rem;padding:var(--sp-1) var(--sp-2);background:var(--bg-raised);color:var(--fg-base);border:1px solid var(--border);border-radius:4px}.levelup-feat-input{display:flex;flex-direction:column;gap:var(--sp-1)}.levelup-feat-input input{max-width:280px}.levelup-feat-autocomplete{position:relative;max-width:320px}.levelup-feat-suggestions{position:absolute;top:100%;left:0;right:0;z-index:10;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:0 0 6px 6px;max-height:240px;overflow-y:auto;list-style:none;margin:0;padding:0}.levelup-feat-suggestion{display:flex;flex-direction:column;gap:2px;padding:var(--sp-2) var(--sp-3);cursor:pointer;font-size:.85rem;border-bottom:1px solid var(--border)}.levelup-feat-suggestion:hover{background:var(--bg-raised)}.levelup-feat-suggestion:last-child{border-bottom:none}.levelup-prereq-warning{display:flex;gap:var(--sp-2);padding:var(--sp-3);margin-top:var(--sp-2);background:#facc1515;border:1px solid var(--warning);border-radius:6px;font-size:.85rem}.levelup-prereq-warning__icon{color:var(--warning);font-size:1.1rem;flex-shrink:0}.levelup-prereq-warning__body{display:flex;flex-direction:column;gap:var(--sp-1)}.levelup-prereq-override{display:flex;align-items:center;gap:var(--sp-2);cursor:pointer;margin-top:var(--sp-1);font-size:.8rem}.levelup-prereq-override input[type=checkbox]{accent-color:var(--warning)}.levelup-slots-current,.levelup-slot-changes{display:flex;flex-direction:column;gap:var(--sp-1);margin-bottom:var(--sp-3);font-size:.85rem}.levelup-slot-diff{color:var(--active);font-family:var(--font-mono);font-size:.8rem;padding-left:var(--sp-3)}.levelup-preview{margin-top:var(--sp-6);padding:var(--sp-4);border:1px solid var(--border);border-radius:8px;background:var(--bg-raised)}.levelup-preview h2{font-size:1rem;margin-bottom:var(--sp-3);color:var(--fg-strong)}.levelup-preview__changes{display:flex;flex-direction:column;gap:var(--sp-1)}.levelup-preview__line{font-family:var(--font-mono);font-size:.8rem;color:var(--fg-base);padding:var(--sp-1) 0;border-bottom:1px solid var(--border)}.levelup-preview__line:last-child{border-bottom:none}.levelup-commit{margin-top:var(--sp-6);text-align:center}.btn-commit{background:var(--active);color:var(--bg-deep);font-weight:600;font-size:1.05rem;padding:var(--sp-3) var(--sp-8);border-radius:6px}.btn-commit:hover:not(:disabled){filter:brightness(1.1)}.btn-commit:disabled{opacity:.5;cursor:not-allowed}.muted{color:var(--fg-muted)}@media (max-width: 960px){.sheet-grid{grid-template-columns:1fr 1fr}.sheet-col-right{grid-column:1 / -1}}@media (max-width: 640px){.sheet-grid{grid-template-columns:1fr}.sheet-col-right{grid-column:auto}}@media (max-width: 480px){.app-main{padding:var(--sp-3)}.sheet-page{padding:0}.sheet-page h1{font-size:1.4rem}.sheet-page h2{font-size:1rem}.ctrl-row{gap:var(--sp-1)}button{min-height:44px;min-width:44px;padding:var(--sp-2) var(--sp-4)}input[type=text],input[type=number]{min-height:44px;font-size:1rem}.session-log__entry{font-size:.8rem;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2)}.inv-row{gap:var(--sp-1)}.levelup-sheets{grid-template-columns:1fr}.levelup-stats-grid{grid-template-columns:repeat(3,1fr)}.levelup-header{flex-direction:column;align-items:flex-start}}:root{--sheet-a: #ef7b43;--sheet-b: #3ba0e6;--sheet-a-soft: color-mix(in srgb, var(--sheet-a) 16%, transparent);--sheet-b-soft: color-mix(in srgb, var(--sheet-b) 16%, transparent);--active: #4ade80;--active-soft: color-mix(in srgb, var(--active) 16%, transparent);--danger: #ef4444;--danger-soft: color-mix(in srgb, var(--danger) 16%, transparent);--warning: #f4c150;--warning-soft: color-mix(in srgb, var(--warning) 16%, transparent);--info: var(--sheet-b);--accent: #e0a64d;--accent-soft: color-mix(in srgb, var(--accent) 16%, transparent);--on-accent: #14110a;--font-display: "Cinzel", serif;--font-body: "Crimson Pro", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--fs-xs:.75rem;--fs-sm:.85rem;--fs-md:.95rem;--fs-lg:1.15rem;--fs-xl:1.4rem;--fs-2xl:1.8rem;--fs-3xl:2.4rem;--lh-tight:1.25;--lh-body:1.55;--lh-read:1.65;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--sp-12:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;--radius-circle:50%;--shadow-sm: 0 1px 3px rgba(0,0,0,.35);--shadow-lg: 0 12px 32px rgba(0,0,0,.46);--shadow-glow: 0 0 8px var(--accent);--z-base:0;--z-sticky:10;--z-panel:20;--z-drawer:30;--z-overlay:40;--z-modal:50;--z-toast:60;--z-tooltip:70;--ease-out:cubic-bezier(.2,.7,.3,1);--ease-in:cubic-bezier(.5,0,.8,.3);--dur-fast:.1s;--dur-base:.16s;--dur-slow:.22s;--focus-ring: 0 0 0 2px var(--bg-deep), 0 0 0 4px var(--accent)}:root,[data-mode=dark]{--bg-deep:#0b0c0f;--bg-base:#131519;--bg-raised:#1a1d23;--bg-elevated:#23272f;--border:#2e333c;--border-strong:#454c58;--fg-strong:#f2f4f7;--fg-base:#c2c8d2;--fg-muted:#8b94a3;--track:#0b0c0f;--input-bg:#0b0c0f;--shadow-md:0 4px 14px rgba(0,0,0,.42)}[data-mode=light]{--bg-deep:#e2dccf;--bg-base:#eae4d7;--bg-raised:#f2ecdf;--bg-elevated:#f7f2e7;--border:#d2c9b6;--border-strong:#b0a58e;--fg-strong:#211d15;--fg-base:#46413a;--fg-muted:#675f51;--track:#ddd6c6;--input-bg:#f7f2e8;--shadow-md:0 1px 3px rgba(58,48,30,.12), 0 6px 18px rgba(58,48,30,.1);--sheet-a:#c2531f;--sheet-b:#1f6fb0}[data-theme=obsidian]{--accent:#e0a64d}[data-theme=leather]{--accent:#e3b25a}[data-theme=amethyst]{--accent:#9d6bff}[data-theme=verdant]{--accent:#3fb98f}[data-theme=blood]{--accent:#c0392b}[data-theme]{--accent-soft: color-mix(in srgb, var(--accent) 16%, transparent);--shadow-glow: 0 0 8px var(--accent)}:where(a,button,input,select,textarea,[tabindex],[role=button]):focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background-color:var(--fg-muted)}:root{--amber: var(--accent);--accent-amber: var(--accent);--color-amber: var(--accent);--teal: var(--sheet-b);--accent-teal: var(--sheet-b);--text: var(--fg-base);--text-muted: var(--fg-muted);--fg: var(--fg-strong);--bg-elev: var(--bg-elevated);--bg: var(--bg-base);--ok: var(--active);--link: var(--accent);--color-warning: var(--warning-soft)}
