:root{color-scheme:dark;--bg:#14100f;--panel:#261d18;--panel-border:#7a6338;--panel-soft:#3a1c1b;--panel-soft-border:#86683a;--text:#e2d4b6;--text-soft:#d2c0a0;--accent:#d4b983;--accent-soft:#94733b;--button:#3a2414;--button-hover:#4a2d18;--shadow:0 6px 18px rgba(0,0,0,0.22)}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Georgia,Times New Roman,serif}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}button,input,select,textarea{font:inherit}.page-shell{min-height:100vh;padding:32px 20px;display:flex;justify-content:center}.content-panel,.hero-panel{width:min(100%,920px)}.hero-panel{display:grid;grid-gap:18px;gap:18px;align-content:center}.home-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px}.content-panel{display:grid;grid-gap:24px;gap:24px;align-content:start}.page-header{display:flex;justify-content:space-between;align-items:end;gap:16px}.eyebrow{letter-spacing:.1em;font-size:.8rem}.eyebrow,h1{color:var(--accent);text-transform:uppercase}h1{font-size:clamp(2.2rem,4vw,3.8rem);letter-spacing:.04em}.hero-copy{max-width:48rem;color:var(--text-soft);line-height:1.6;font-size:1.05rem}.hero-actions{display:flex;gap:16px}.app-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 22px;border-radius:999px;border:1px solid #74592b;background:var(--button);color:#efe4cc;letter-spacing:.08em;text-transform:uppercase;font-size:.9rem;font-weight:600;box-shadow:0 2px 8px rgba(0,0,0,.2);transition:background .12s ease,border-color .12s ease,transform .12s ease,box-shadow .12s ease}.app-button:hover{background:var(--button-hover);border-color:var(--accent-soft);box-shadow:0 4px 12px rgba(0,0,0,.26);transform:translateY(-1px)}.app-button:focus-visible{outline:2px solid var(--accent-soft);outline-offset:3px}.secondary-button{background:#211915}.danger-button{background:#4a1f1c;border-color:#8d4b43}.danger-button:hover{background:#5b2722;border-color:#ad5b52}.divider{width:100%;margin:0;border:none;border-top:1px solid var(--panel-border)}.form-panel{display:grid;grid-gap:18px;gap:18px;padding:24px;border:1px solid var(--panel-border);border-radius:18px;background:#1d1511;box-shadow:var(--shadow)}.form-header{display:grid;grid-gap:10px;gap:10px}.form-header h2{color:#dfc48f;font-size:1.8rem}.form-copy{max-width:48rem;color:var(--text-soft);line-height:1.6}.character-form{grid-template-columns:repeat(3,minmax(0,1fr))}.auth-form,.character-form,.stack-form{display:grid;grid-gap:14px;gap:14px}.stack-form .app-button{justify-self:start}.session-grid .stack-form{align-content:start;min-height:100%}.session-grid .app-button{justify-self:start;align-self:end;min-height:42px;white-space:nowrap;line-height:1}.session-grid .field input,.session-grid .field-select{min-height:42px;height:42px;line-height:1.2}.role-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.toggle-button{min-height:42px;padding:10px 12px;border:1px solid var(--panel-border);border-radius:10px;background:#261d18;color:var(--text-soft)}.toggle-active{border-color:var(--accent-soft);background:#35261b;color:var(--text)}.field{display:grid;grid-gap:8px;gap:8px}.field-wide{grid-column:1/-1}.field span{color:#dec188;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}.field input,.field-select{min-height:42px}.field input,.field textarea,.field-select{width:100%;padding:10px 12px;border:1px solid var(--panel-border);border-radius:10px;background:#261d18;color:var(--text)}.field textarea{min-height:110px;resize:vertical}.checkbox-field{display:flex;align-items:center;gap:10px;color:var(--text-soft)}.checkbox-field input{width:18px;height:18px}.stat-editor-panel{gap:12px}.stat-editor-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.stat-editor-empty{margin:0;padding:14px 16px;border:1px dashed var(--panel-border);border-radius:12px;color:var(--text-soft);background:#221914}.stat-editor-list{display:grid;grid-gap:12px;gap:12px}.stat-editor-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr) auto;grid-gap:12px;gap:12px;align-items:center}.saved-roll-row{grid-template-columns:minmax(0,1fr) auto}.stat-row-actions{display:flex;flex-wrap:wrap;justify-content:end;gap:8px}.image-editor-row input,.stat-editor-row input{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--panel-border);border-radius:10px;background:#261d18;color:var(--text)}.image-editor-row{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr) auto;grid-gap:12px;gap:12px;align-items:center}.field input:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px}.field-select:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px}.field textarea:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px}.image-editor-row input:focus-visible,.stat-editor-row input:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px}.form-actions{grid-column:1/-1;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.form-status{color:var(--text-soft)}.status-success{color:#abc98a}.status-error{color:#d7a198}.character-edit-form{margin-top:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.auth-panel,.session-panel{align-content:start}.collapsible-panel{display:grid;grid-gap:0;gap:0}.collapsible-panel-bar{display:flex;align-items:start;justify-content:space-between;gap:16px;padding:0 0 12px}.collapsible-panel-title{margin:0;color:var(--accent);font-size:1rem;letter-spacing:.08em;text-transform:uppercase}.collapsible-panel-summary{margin:6px 0 0;color:var(--text-soft);line-height:1.5}.collapsible-panel-content{display:grid}.collapsible-panel-content[hidden]{display:none}.collapsible-toggle{min-height:38px;padding:8px 16px}.session-subpanel{margin-top:4px}.session-danger-row{display:flex;justify-content:end}.session-topbar{display:flex;justify-content:space-between;align-items:start;gap:16px}.session-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.session-meta{margin-top:8px;color:var(--accent);font-size:.95rem}.member-list{display:grid;grid-gap:12px;gap:12px}.member-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;border:1px solid var(--panel-border);border-radius:12px;background:#221914}.session-member-meta{margin-top:4px;color:var(--text-soft);font-size:.9rem}.sheet-list{display:grid;grid-gap:24px;gap:24px}.character-sheet{width:100%;background:var(--panel);color:var(--text);border:1px solid var(--panel-border);border-radius:18px;padding:24px;box-shadow:var(--shadow)}.sheet-topbar{display:flex;justify-content:space-between;align-items:start;gap:18px}.sheet-header{text-align:center;flex:1 1}.sheet-header h2{color:#dfc48f;font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:8px}.sheet-header p{color:var(--text-soft);font-weight:600;line-height:1.5}.sheet-actions{display:grid;justify-items:end;grid-gap:8px;gap:8px}.sheet-status{margin-top:14px;color:var(--text-soft);font-size:.9rem}.stat-roll-settings-card,.stat-roll-settings-list{display:grid;grid-gap:12px;gap:12px}.stat-roll-settings-card{padding:14px 16px;border:1px solid var(--panel-border);border-radius:14px;background:#211612}.stat-roll-settings-header{display:grid;grid-gap:4px;gap:4px}.stat-roll-settings-header strong{color:var(--accent)}.roll-help-text,.stat-roll-settings-header span{color:var(--text-soft);font-size:.92rem;line-height:1.5}.stat-roll-settings{display:grid;grid-gap:12px;gap:12px}.stat-roll-builder{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.stats-grid{margin-top:20px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.stat-card{display:grid;grid-gap:6px;gap:6px;width:100%;background:var(--panel-soft);border:1px solid var(--panel-soft-border);border-radius:12px;padding:12px;text-align:center;color:inherit;font:inherit;cursor:pointer;transition:transform .12s ease,border-color .12s ease,background .12s ease,box-shadow .12s ease;box-shadow:0 2px 8px rgba(0,0,0,.18)}.stat-card:hover{transform:translateY(-1px);border-color:var(--accent-soft);background:#43201d}.stat-card:focus-visible{outline:2px solid var(--accent-soft);outline-offset:3px}.stat-card-readonly{cursor:default}.stat-card-readonly:hover{transform:none;border-color:var(--panel-soft-border);background:var(--panel-soft)}.image-gallery-panel{margin-top:20px;display:grid;grid-gap:14px;gap:14px}.image-gallery-panel h3{margin:0;color:#dec188;font-size:1rem;letter-spacing:.08em;text-transform:uppercase}.image-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.image-card{margin:0;overflow:hidden;border:1px solid var(--panel-soft-border);border-radius:14px;background:#211612}.image-card-button{display:block;width:100%;padding:0;border:none;background:transparent;cursor:zoom-in}.image-card img{display:block;width:100%;height:220px;object-fit:cover}.image-card figcaption{padding:10px 12px;color:var(--text-soft);font-size:.95rem}.lightbox-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:rgba(0,0,0,.82)}.lightbox-content{position:relative;display:grid;grid-gap:12px;gap:12px;width:min(100%,1100px)}.lightbox-close{justify-self:end}.lightbox-image{display:block;width:100%;max-height:calc(100vh - 140px);object-fit:contain;border:1px solid var(--panel-border);border-radius:16px;background:#120d0b}.lightbox-caption{text-align:center;color:var(--text);font-size:1rem}.roll-dialog{max-height:calc(100vh - 48px);padding:24px;overflow:auto;border:1px solid var(--panel-border);border-radius:20px;background:#18110d;box-shadow:var(--shadow)}.roll-dialog-header{display:flex;align-items:start;justify-content:space-between;gap:16px}.roll-dialog-layout{display:grid;grid-template-columns:minmax(280px,.95fr) minmax(320px,1.05fr);grid-gap:18px;gap:18px}.roll-dialog-copy,.roll-expression{margin:0;color:var(--text-soft);line-height:1.5}.roll-config-panel,.roll-history,.roll-result-panel{display:grid;grid-gap:14px;gap:14px;padding:18px;border:1px solid var(--panel-border);border-radius:16px;background:#211612}.roll-summary{margin:0;color:var(--accent);font-size:1.05rem}.roll-total{font-size:clamp(2.6rem,9vw,4.6rem);line-height:1;color:#f5ead0;font-weight:700}.roll-breakdown-list,.roll-history-list{display:grid;grid-gap:10px;gap:10px}.roll-log-list{display:grid;grid-gap:14px;gap:14px}.roll-log-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.roll-log-entry{display:grid;grid-gap:10px;gap:10px;padding:16px 18px;border:1px solid var(--panel-border);border-radius:16px;background:#211612}.roll-log-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text-soft);font-size:.92rem}.roll-log-topline-main{display:flex;align-items:center;gap:10px}.roll-log-checkbox{gap:8px}.roll-log-expression,.roll-log-headline{margin:0;color:var(--text-soft);line-height:1.5}.roll-log-total{font-size:2rem;line-height:1;color:#f5ead0;font-weight:700}.roll-breakdown-item,.roll-history-item{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--panel-soft-border);border-radius:12px;background:#261814;color:var(--text-soft)}.roll-history h3{margin:0;color:var(--accent);font-size:1rem}.image-removal-panel{gap:12px}.image-removal-list{display:grid;grid-gap:10px;gap:10px}.image-removal-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--panel-border);border-radius:12px;background:#221914;color:var(--text-soft)}.image-removal-item-active{border-color:#ad5b52;background:#311816;color:#f0c6bf}.stat-label{color:#dec188;letter-spacing:.08em;font-size:.9rem}.stat-score{margin-top:6px;color:#f5ead0;font-size:1.8rem;font-weight:700}.stat-roll-hint{color:var(--text-soft);font-size:.86rem;line-height:1.4}.notes-panel{margin-top:20px;padding:16px 18px;border:1px solid var(--panel-soft-border);border-radius:12px;background:#211612}.notes-panel h3{margin:0 0 8px;color:#dec188;font-size:1rem;letter-spacing:.08em;text-transform:uppercase}.notes-panel p{color:var(--text-soft);line-height:1.6;white-space:pre-wrap}.empty-state{padding:18px 20px;border:1px solid var(--panel-border);border-radius:12px;background:#1d1511;color:var(--text-soft)}.loading-panel{overflow:hidden}.loading-grid{display:grid;grid-gap:14px;gap:14px}.loading-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:20px}.loading-block{border-radius:12px;background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.09),rgba(255,255,255,.04));background-size:200% 100%;animation:loadingPulse 1.3s ease-in-out infinite}.loading-title{width:14rem;height:1.8rem}.loading-field{min-height:42px}.loading-sheet-title{width:18rem;height:2rem}.loading-stat{min-height:88px}@keyframes loadingPulse{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width:720px){.page-header{text-align:center;align-items:start;flex-direction:column}.page-header>*{width:100%}.content-panel,.hero-panel{gap:20px}.hero-panel{justify-items:center;text-align:center}.collapsible-panel-summary,.form-copy,.hero-copy{max-width:none}.hero-actions{width:100%;justify-content:center}.hero-actions .app-button{min-width:min(100%,22rem)}.form-panel{padding:20px}.form-header{text-align:center;justify-items:center}.character-form{grid-template-columns:repeat(2,minmax(0,1fr))}.home-panels{grid-template-columns:1fr}.character-edit-form{grid-template-columns:repeat(2,minmax(0,1fr))}.session-grid{grid-template-columns:1fr}.session-topbar{text-align:center}.session-topbar,.sheet-topbar{flex-direction:column;align-items:center}.roll-dialog{padding:18px}.roll-breakdown-item,.roll-dialog-header,.roll-history-item,.roll-log-topline{flex-direction:column;align-items:start}.roll-log-actions{align-items:stretch}.image-editor-row,.roll-dialog-layout,.stat-editor-row,.stat-roll-builder{grid-template-columns:1fr}.stat-row-actions{justify-content:flex-start}.stat-row-actions .app-button{width:100%}.member-row{flex-direction:column;align-items:stretch;text-align:center}.stack-form .app-button{width:100%;justify-self:stretch}.sheet-actions{width:100%;justify-items:stretch}.collapsible-panel-bar,.session-danger-row,.sheet-header,.sheet-status{text-align:center}.collapsible-panel-bar{flex-direction:column;align-items:stretch}.collapsible-toggle{width:100%}.roll-log-entry{padding:14px 16px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.image-gallery-grid{grid-template-columns:1fr}.loading-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.page-shell{padding:20px 14px}.content-panel,.hero-panel{gap:18px}.form-actions .app-button,.hero-actions .app-button,.roll-log-actions .app-button,.session-danger-row .app-button{width:100%}.character-sheet,.form-panel,.roll-dialog{padding:16px;border-radius:16px}.page-header,.session-topbar,.sheet-topbar{gap:12px}.character-edit-form,.character-form,.session-grid,.stats-grid{grid-template-columns:1fr}.stat-card{padding:14px 12px}.image-card img{height:180px}.loading-stats-grid{grid-template-columns:1fr}}