:root{--bg: #0a0d12;--bg-elevated: #0f131a;--bg-subtle: #141922;--header-bg: rgba(12, 15, 22, .72);--card-bg: #12161f;--card-bg-muted: #0e1118;--input-bg: #0c0f15;--border: rgba(232, 236, 244, .08);--border-strong: rgba(232, 236, 244, .14);--text: #e8ecf4;--text-muted: #8b95a8;--accent: #c9a227;--accent-dim: rgba(201, 162, 39, .12);--danger: #e85d5d;--danger-dim: rgba(232, 93, 93, .12);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .45);--shadow-md: 0 8px 32px rgba(0, 0, 0, .55);--shadow-inset: inset 0 1px 0 rgba(255, 255, 255, .04);--font-sans: "Outfit", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.5rem;font-family:var(--font-sans);line-height:1.55;font-weight:400;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--border-strong) var(--input-bg)}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(201,162,39,.07),transparent 50%),radial-gradient(ellipse 80% 50% at 100% 50%,rgba(100,120,200,.04),transparent 45%),var(--bg)}#root{min-height:100vh}button{border-radius:var(--radius-sm);border:1px solid var(--border-strong);padding:.5em 1em;font-size:.9375rem;font-weight:500;font-family:inherit;background:var(--card-bg);color:var(--text);cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .12s ease;box-shadow:var(--shadow-sm)}button:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border-strong));background:var(--bg-subtle)}button:active{transform:translateY(1px)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,textarea{font-family:inherit}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;appearance:textfield}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--input-bg);border-radius:4px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}*::-webkit-scrollbar-thumb:active{background:var(--accent)}*::-webkit-scrollbar-corner{background:var(--input-bg)}::selection{background:var(--accent-dim);color:var(--text)}.commits-dropdown{display:flex;flex-direction:column;gap:var(--space-xs);min-height:0}.commits-dropdown-title{display:flex;align-items:center;gap:.4rem;margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.commits-dropdown-hint{margin:0 0 var(--space-xs) 0;font-size:.72rem;line-height:1.4;color:var(--text-muted)}.commits-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.commits-list--dropdown{max-height:min(52vh,360px);margin-top:var(--space-xs)}.commit-item{margin:0;padding:0}.commit-restore-btn{width:100%;text-align:left;padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--text);cursor:pointer;display:flex;flex-direction:column;gap:.2rem;font-size:.8125rem;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;box-shadow:var(--shadow-inset)}.commit-restore-btn:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:var(--accent-dim);box-shadow:0 0 0 1px var(--accent-dim)}.commit-note{font-weight:600;color:var(--text)}.commit-desc{min-width:0;font-size:.75rem;color:var(--text-muted);line-height:1.4;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.commit-time{font-size:.68rem;font-family:var(--font-mono);color:var(--text-muted);opacity:.9}.commits-list .empty{color:var(--text-muted);font-style:italic;padding:var(--space-md) 0;font-size:.8125rem}.new-commit-modal-backdrop{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);background:color-mix(in srgb,var(--bg) 72%,rgba(0,0,0,.88));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.new-commit-modal{width:100%;max-width:420px;max-height:min(90vh,520px);overflow-y:auto;padding:var(--space-lg);background:linear-gradient(180deg,var(--bg-subtle) 0%,var(--input-bg) 100%);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md),var(--shadow-inset),0 24px 64px #00000073}.new-commit-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-sm)}.new-commit-modal-title{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--text);line-height:1.25}.new-commit-modal-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;margin:-.35rem -.35rem 0 0;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.new-commit-modal-close:hover{background:var(--bg-subtle);color:var(--text)}.new-commit-modal-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.new-commit-modal-hint{margin:0 0 var(--space-md);font-size:.8125rem;line-height:1.45;color:var(--text-muted)}.new-commit-modal-label{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:0 0 var(--space-xs)}.new-commit-modal-optional{font-weight:500;text-transform:none;letter-spacing:normal;color:var(--text-muted)}.new-commit-modal-input,.new-commit-modal-textarea{width:100%;padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);font-size:.8125rem;font-family:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--text);box-sizing:border-box;transition:border-color .18s ease,box-shadow .18s ease}.new-commit-modal-input::placeholder,.new-commit-modal-textarea::placeholder{color:var(--text-muted)}.new-commit-modal-input:focus,.new-commit-modal-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.new-commit-modal-textarea{font-size:.78rem;resize:vertical;min-height:4rem;margin-bottom:var(--space-lg)}.new-commit-modal-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:flex-end}.new-commit-modal-btn-secondary{padding:.5rem var(--space-md);border-radius:var(--radius-sm);font-size:.8125rem;font-weight:600;border:1px solid var(--border-strong);background:var(--card-bg);color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.new-commit-modal-btn-secondary:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border-strong));background:var(--bg-subtle)}.new-commit-modal-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem var(--space-md);background:var(--accent);color:#0c0e12;border:1px solid color-mix(in srgb,var(--accent) 55%,#1a1a1a 45%);border-radius:var(--radius-sm);font-size:.8125rem;font-weight:700;cursor:pointer;transition:filter .18s ease,box-shadow .18s ease;box-shadow:var(--shadow-sm),inset 0 1px #fff3}.new-commit-modal-btn-primary:hover{filter:brightness(1.07);border-color:color-mix(in srgb,var(--accent) 65%,#fff 35%)}.new-commit-modal-btn-primary:focus-visible,.new-commit-modal-btn-secondary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-md);padding:var(--space-md) 0}.toolbar-brand{display:flex;align-items:center;gap:var(--space-md);min-width:0}.toolbar-logo{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:var(--radius-md);background:linear-gradient(145deg,var(--accent-dim),transparent 60%);border:1px solid var(--border-strong);color:var(--accent);flex-shrink:0;box-shadow:var(--shadow-inset)}.toolbar-titles{min-width:0}.toolbar-title{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--text);line-height:1.2}.toolbar-subtitle{margin:.15rem 0 0;font-size:.8rem;color:var(--text-muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(42vw,320px)}.toolbar-character-name{color:var(--accent)}.toolbar-placeholder{font-style:italic;opacity:.85}.toolbar-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap;align-items:center}.toolbar-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:600;border:1px solid var(--border-strong);background:var(--card-bg);color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease}.toolbar-btn:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border-strong));background:var(--bg-subtle)}.toolbar-btn--primary{background:var(--accent);color:#0c0e12;border-color:color-mix(in srgb,var(--accent) 55%,#1a1a1a 45%);box-shadow:var(--shadow-sm),inset 0 1px #fff3}.toolbar-btn--primary:hover{filter:brightness(1.07);border-color:color-mix(in srgb,var(--accent) 65%,#fff 35%)}.toolbar-btn--primary:focus-visible{outline-color:var(--accent)}.toolbar-file-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.toolbar-commit-group{position:relative;display:inline-flex;flex-direction:column;align-items:stretch}.toolbar-commit-split{display:inline-flex;align-items:stretch}.toolbar-commit-btn-main{border-radius:var(--radius-sm) 0 0 var(--radius-sm);border-right:none}.toolbar-commit-btn-chevron{padding:.45rem .55rem;min-width:2.25rem;justify-content:center;border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:1px solid color-mix(in srgb,var(--border-strong) 85%,transparent)}.toolbar-commit-btn-chevron .toolbar-commit-chevron--open{transform:rotate(180deg)}.toolbar-commit-btn-chevron svg{transition:transform .2s ease}.toolbar-commits-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:60;min-width:min(20rem,calc(100vw - 2 * var(--space-lg)));max-width:min(22rem,calc(100vw - 2 * var(--space-lg)));padding:var(--space-md);background:var(--card-bg);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md),0 20px 48px #0006}.unsave-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-sm) var(--space-lg);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 18%,var(--bg-elevated)) 0%,var(--bg-subtle) 100%);border-bottom:1px solid color-mix(in srgb,var(--accent) 45%,var(--border-strong));color:var(--text);flex-wrap:wrap;font-size:.875rem;font-weight:500;box-shadow:0 8px 24px #00000040}.unsave-banner-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}.unsave-banner button{padding:.45rem .85rem;font-size:.8125rem;font-weight:600}.unsave-banner button.primary{background:var(--accent);color:#0c0e12;border-color:color-mix(in srgb,var(--accent) 55%,#1a1a1a 45%)}.unsave-banner button.primary:hover{filter:brightness(1.06)}.character-sheet{background:var(--card-bg);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);max-width:100%;display:flex;flex-direction:column;min-height:0;box-shadow:var(--shadow-md),var(--shadow-inset),0 0 48px -20px var(--accent-glow)}.sheet-top-bar,.sheet-row--identity,.sheet-row--notes{flex-shrink:0}.sheet-top-bar{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-md);align-items:stretch}.sheet-top-panel{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);background:linear-gradient(165deg,var(--bg-subtle) 0%,var(--input-bg) 100%);display:flex;flex-direction:column;gap:.3rem;min-width:0;min-height:8.5rem;flex:1 1 0;box-shadow:var(--shadow-inset);transition:border-color .2s ease}.sheet-top-panel:focus-within{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.sheet-top-label{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0}.sheet-top-panel--character{flex:2 1 0}.sheet-top-name-row{display:flex;align-items:center;gap:var(--space-sm)}.sheet-top-name-row .sheet-top-name{flex:1;min-width:0}.sheet-top-name{padding:.45rem .65rem;font-size:.95rem;font-weight:600;letter-spacing:-.01em;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text);width:100%;box-sizing:border-box;transition:border-color .18s ease,box-shadow .18s ease}.sheet-top-name:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.sheet-top-color-circle{flex-shrink:0;width:1.75rem;height:1.75rem;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--input-bg);cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}.sheet-top-color-circle::-webkit-color-swatch-wrapper{padding:0}.sheet-top-color-circle::-webkit-color-swatch{border:none;border-radius:50%}.sheet-top-color-circle::-moz-color-swatch{border:none;border-radius:50%}.sheet-top-color-circle:hover{border-color:var(--accent)}.sheet-top-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.sheet-top-two-cols .form-field{min-width:0}.sheet-top-two-cols .form-field input{width:100%}.sheet-top-level-xp-row{display:flex;flex-direction:row;align-items:stretch;gap:.35rem}.sheet-top-level-xp-row .sheet-top-level{flex:1;min-width:0;width:auto}.sheet-top-xp-toggle{flex-shrink:0;align-self:stretch;padding:.35rem .55rem;min-width:2.35rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-family:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text-muted);cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease}.sheet-top-xp-toggle:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border-strong));color:var(--text)}.sheet-top-xp-toggle--on{background:color-mix(in srgb,var(--accent) 20%,var(--card-bg));border-color:color-mix(in srgb,var(--accent) 50%,var(--border-strong));color:var(--accent);box-shadow:var(--shadow-sm),inset 0 1px #ffffff0f}.sheet-top-xp-toggle--on:hover{border-color:color-mix(in srgb,var(--accent) 60%,var(--border-strong))}.sheet-top-xp-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sheet-top-level{padding:.4rem .5rem;font-size:1.15rem;font-weight:700;text-align:center;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--accent);width:100%;box-sizing:border-box}.sheet-top-xp{padding:.35rem .5rem;font-size:.875rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text);width:100%;box-sizing:border-box}.sheet-top-level-row{display:flex;align-items:flex-end;gap:var(--space-sm);flex-wrap:wrap}.sheet-top-level-row .form-field{min-width:0}.sheet-top-level-row--prof-only{width:100%}.sheet-top-inspiration-row{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;gap:var(--space-sm);margin-top:.2rem;padding-top:.4rem;border-top:1px solid var(--border);box-sizing:border-box}.sheet-top-hp-current{padding:.4rem .5rem;font-size:1rem;text-align:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text);width:100%;box-sizing:border-box}.sheet-top-hp-pair-row{display:flex;flex-direction:row;gap:.4rem;align-items:stretch}.sheet-top-hp-pair-item{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.sheet-top-hp-temp,.sheet-top-hp-max{padding:.25rem .5rem;text-align:center;font-size:.85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text);width:100%;box-sizing:border-box}.sheet-top-hitdice{padding:.35rem .5rem;font-size:.9rem;text-align:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text);width:100%;box-sizing:border-box}.sheet-top-hitdice-pair-row{display:flex;flex-direction:row;gap:.4rem;align-items:stretch}.sheet-top-hitdice-pair-item{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.sheet-top-hitdice-spent,.sheet-top-hitdice-max{padding:.2rem .5rem;text-align:center;font-size:.85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text);width:100%;box-sizing:border-box}.sheet-top-ds-stack{display:flex;flex-direction:column;gap:.3rem}.sheet-top-ds-row{display:flex;align-items:center;gap:.25rem}.sheet-top-ds-sublabel{font-size:.65rem;color:var(--text-muted);flex:1;min-width:0}.sheet-top-ds-input-wrap{display:flex;align-items:center;gap:.15rem}.sheet-top-ds-input{padding:.2rem .35rem;text-align:center;font-size:.8rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text);min-width:0;width:3rem}.sheet-top-ds-slash{font-size:.8rem;color:var(--text-muted)}.sheet-row{display:flex;flex-wrap:wrap;gap:.5rem .75rem;align-items:flex-end;margin-bottom:.5rem}.sheet-row:last-child{margin-bottom:0}.sheet-row--identity{gap:.35rem .5rem}.sheet-row--identity .form-field{min-width:0}.sheet-row--identity .form-field:first-child{flex:1;min-width:100px}.sheet-row--identity .form-field input[type=number]{width:2.5rem}.sheet-row--xp .form-field input{width:5rem}.sheet-row--main{display:grid;grid-template-columns:auto 1fr;gap:.5rem .75rem;align-items:stretch;margin-top:.35rem;flex:1;min-height:0}.sheet-column-left{display:flex;flex-direction:column;gap:.5rem;min-width:0}@media(max-width:960px){.sheet-row--main{grid-template-columns:1fr}}.sheet-block{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);background:linear-gradient(180deg,var(--bg-subtle) 0%,var(--input-bg) 100%);box-shadow:var(--shadow-inset)}.sheet-block-title,.combat-field-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.sheet-block-title{margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:1px solid var(--border-strong)}.sheet-block--abilities-and-saves{min-width:0;max-width:100%}.sheet-block--abilities-and-saves .sheet-block-title--sub{margin-top:var(--space-xl);margin-bottom:var(--space-md)}.abilities-grid{display:grid;grid-template-columns:1fr;gap:.35rem}@media(min-width:420px){.abilities-grid{grid-template-columns:1fr 1fr;column-gap:calc(var(--space-xl) + var(--space-lg));row-gap:.4rem}}.ability-row{display:flex;flex-direction:row;align-items:center;gap:.45rem;padding:.2rem .35rem;margin:0 -.35rem;border-radius:var(--radius-sm);transition:background .15s ease}.ability-row:hover{background:var(--accent-dim)}.ability-row .ability-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);min-width:2rem;margin:0}.ability-row .ability-input{width:2.5rem;padding:.3rem .2rem;font-size:.875rem;font-weight:600;text-align:center;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text)}.ability-row .ability-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.ability-row .ability-mod{font-size:.7rem;color:var(--accent);font-weight:700;min-width:2rem;padding:.2rem .45rem;border-radius:999px;background:var(--accent-dim);text-align:center;border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.sheet-column-right{display:flex;flex-direction:column;gap:.75rem;min-width:0;min-height:0;overflow:hidden}.combat-fields{display:flex;gap:var(--space-md);align-items:stretch}.combat-field{flex:1;min-width:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-md);background:linear-gradient(180deg,var(--bg-subtle) 0%,var(--input-bg) 100%);overflow:hidden;box-shadow:var(--shadow-inset);transition:border-color .18s ease}.combat-field:focus-within{border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}.combat-field-label{padding:.4rem .55rem .25rem;margin-bottom:0;border-bottom:1px solid var(--border-strong);background:#0000001f}.combat-field-line{height:0;border-bottom:1px solid var(--border);margin:0 .35rem;flex-shrink:0}.combat-field-input{flex:1;min-height:2.35rem;margin:.3rem .4rem .4rem;padding:.4rem .55rem;font-size:.9rem;font-weight:500;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text);width:calc(100% - .8rem);box-sizing:border-box;transition:border-color .18s ease,box-shadow .18s ease}.combat-field-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.death-saves .death-saves-inner{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}.death-saves .ds-label{font-size:.65rem;color:var(--text-muted);margin-right:.15rem}.death-saves input{width:2.25rem}.saves-list{display:grid;grid-template-columns:1fr;gap:.35rem}@media(min-width:420px){.saves-list{grid-template-columns:1fr 1fr;column-gap:var(--space-xl);row-gap:.4rem}}.save-row{display:flex;align-items:center;gap:.35rem;font-size:.8rem}.save-row .save-label{flex:1;font-size:.75rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-muted);cursor:pointer}.save-row .save-input{width:2.5rem;padding:.2rem .3rem;font-size:.8rem;text-align:right;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text)}.save-row .save-input:focus{outline:none;border-color:var(--accent)}.prof-tier-toggle{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:1.65rem;height:1.65rem;padding:0;margin:0;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg-muted);color:var(--text-muted);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease}.prof-tier-toggle:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border-strong));color:var(--text);background:var(--accent-dim)}.prof-tier-toggle:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.prof-tier-toggle--none{color:var(--text-muted)}.prof-tier-toggle--proficiency{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,var(--border-strong));background:var(--accent-dim)}.prof-tier-toggle--expertise{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,var(--border-strong));background:color-mix(in srgb,var(--accent-dim) 80%,var(--card-bg-muted))}.sheet-list-sections-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:var(--space-md);min-width:0;min-height:0;flex:1;overflow:hidden}.sheet-list-sections-grid>.sheet-block--equipment .sheet-block-header{flex-shrink:0}.sheet-block-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding-top:var(--space-xs);padding-bottom:var(--space-xs);margin-bottom:var(--space-sm);border-bottom:1px solid var(--border)}.sheet-block-header .sheet-block-title{margin:0;padding-bottom:0;border-bottom:none}.sheet-list-sections-grid>.sheet-block--equipment{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.sheet-list-sections-grid>.sheet-block--equipment .equipment-list{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;padding:var(--space-xs)}.sheet-block--equipment{flex:0 0 auto;min-width:0}.equipment-list{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.5rem}.equipment-item{display:flex;align-items:flex-start;gap:.5rem}.equipment-item--desc-expanded{display:grid;grid-template-columns:140px 1fr auto;grid-template-rows:auto auto;align-items:start;gap:var(--space-sm) var(--space-sm)}.equipment-item--desc-expanded .equipment-name{grid-column:1;grid-row:1}.equipment-item--desc-expanded .equipment-desc-wrap{grid-column:1 / -1;grid-row:2}.equipment-item--desc-expanded .equipment-remove{grid-column:3;grid-row:1}.equipment-name{flex:0 0 140px;padding:.25rem .35rem;font-size:.8rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text)}.equipment-name:focus{outline:none;border-color:var(--accent)}.equipment-desc-cell{flex:1;min-width:0;display:flex;justify-content:flex-end;align-items:flex-start}.equipment-desc-trigger{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;margin:0;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text-muted);cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .15s ease,color .15s ease,background .15s ease,box-shadow .15s ease}.equipment-desc-trigger:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border-strong));color:var(--accent);background:var(--accent-dim)}.equipment-desc-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.equipment-desc-trigger--filled{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,var(--border-strong));background:var(--accent-dim)}.equipment-desc-tooltip-portal{min-width:12rem;max-width:min(22rem,calc(100vw - 1.5rem));max-height:min(14rem,40vh);overflow:auto;padding:var(--space-sm) var(--space-md);font-size:.8125rem;line-height:1.45;color:var(--text);background:var(--card-bg);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md),0 0 0 1px #0003;pointer-events:auto}.equipment-desc-tooltip-portal-body{white-space:pre-wrap;word-break:break-word}.equipment-desc-tooltip-portal-empty{color:var(--text-muted);font-style:italic}.equipment-desc-wrap{flex:1;min-width:0;padding:var(--space-sm) var(--space-md);font-size:.8rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--text)}.equipment-desc-input{width:100%;min-height:4rem;padding:0;font-size:.8rem;font-family:inherit;border:none;background:transparent;color:var(--text);resize:vertical}.equipment-desc-input:focus{outline:none}.equipment-desc-hide{display:block;margin-top:.25rem;font-size:.75rem;padding:.2rem 0;background:none;border:none;color:var(--text-muted);cursor:pointer}.equipment-desc-hide:hover{color:var(--accent)}.equipment-remove{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:1.75rem;height:1.75rem;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text-muted);cursor:pointer}.equipment-remove:hover{color:var(--text);border-color:var(--accent)}.equipment-add--header{display:flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;padding:0;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer}.equipment-add--header:hover{border-color:var(--accent);color:var(--accent)}.skills-search-wrap{margin-bottom:.4rem}.skills-search-input{width:100%;box-sizing:border-box;padding:.35rem .5rem;font-size:.8rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text)}.skills-search-input:focus{outline:none;border-color:var(--accent)}.skills-search-input::placeholder{color:var(--text-muted)}.skills-grid-scroll{height:min(38vh,280px);flex-shrink:0;overflow-x:hidden;overflow-y:auto;min-height:0;padding-right:.2rem;margin-right:0}.skills-search-empty{margin:.5rem 0 0;font-size:.75rem;color:var(--text-muted)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:.15rem .85rem;min-width:0}.skill-row{display:flex;align-items:center;gap:.4rem;font-size:.8rem;padding:.12rem .25rem;margin:0;min-width:0;border-radius:var(--radius-sm);transition:background .12s ease}.skill-row:hover{background:#ffffff05}.skill-row .skill-label{flex:1;min-width:0;font-size:.75rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text);cursor:pointer}.skill-row .skill-input{width:3.25rem;padding:.25rem .35rem;font-size:.85rem;text-align:right;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text)}.skill-row .skill-input:focus{outline:none;border-color:var(--accent)}.skill-row .skill-ability-abbr{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);min-width:2.15rem;padding:.2rem .25rem;margin:0;border:1px solid transparent;background:var(--card-bg-muted);cursor:default;border-radius:var(--radius-sm);transition:background-color .15s ease,color .15s ease,border-color .15s ease,cursor .15s ease}.skill-row .skill-ability-abbr:hover{cursor:pointer;color:var(--accent);background:var(--accent-dim);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.form-field{display:flex;flex-direction:column;gap:.15rem;min-width:60px}.form-field label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted)}.form-field input,.form-field textarea{padding:.35rem .45rem;font-size:.8125rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text);transition:border-color .18s ease,box-shadow .18s ease}.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.form-field--compact input[type=number]{width:2.5rem}.inspiration-field-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);margin-bottom:0;white-space:nowrap}.inspiration-switch{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:transparent;cursor:pointer;line-height:0;border-radius:var(--radius-sm);transition:transform .15s ease}.inspiration-switch:hover .inspiration-switch-track{border-color:color-mix(in srgb,var(--accent) 35%,var(--border-strong))}.inspiration-switch:active{transform:scale(.96)}.inspiration-switch:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.inspiration-switch-track{position:relative;display:block;width:2.6rem;height:1.42rem;border-radius:999px;background:var(--input-bg);border:1px solid var(--border-strong);box-shadow:var(--shadow-inset);transition:background .22s ease,border-color .22s ease,box-shadow .22s ease}.inspiration-switch-thumb{position:absolute;top:50%;left:.2rem;width:1.02rem;height:1.02rem;margin-top:-.51rem;border-radius:50%;background:color-mix(in srgb,var(--text-muted) 70%,var(--card-bg));box-shadow:0 1px 3px #00000059;transition:left .22s ease,background .22s ease,box-shadow .22s ease}.inspiration-switch--on .inspiration-switch-track{background:color-mix(in srgb,var(--accent) 28%,var(--input-bg));border-color:color-mix(in srgb,var(--accent) 50%,var(--border-strong));box-shadow:var(--shadow-inset),0 0 12px -2px var(--accent-glow, transparent)}.inspiration-switch--on .inspiration-switch-thumb{left:calc(100% - 1.22rem);background:var(--accent);box-shadow:0 1px 2px #0006,0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}.form-field--notes{width:100%}.form-field--notes label{text-transform:uppercase;font-size:.65rem}.form-field--notes textarea{resize:vertical;min-height:7rem;font-size:.8rem;font-family:inherit}.sheet-row--notes{margin-top:.35rem}.change-log-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);max-height:300px;display:flex;flex-direction:column;min-width:0;flex-shrink:0;box-shadow:var(--shadow-sm),var(--shadow-inset)}.change-log-panel h3{display:flex;align-items:center;gap:.4rem;margin:0 0 var(--space-xs) 0;font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.panel-desc{margin:0 0 var(--space-sm) 0;font-size:.75rem;line-height:1.45;color:var(--text-muted)}.change-log-filter-wrap{margin:0 0 var(--space-sm) 0;flex-shrink:0}.change-log-filter-input{width:100%;box-sizing:border-box;padding:.35rem .5rem;font-size:.8rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text)}.change-log-filter-input:focus{outline:none;border-color:var(--accent)}.change-log-filter-input::placeholder{color:var(--text-muted)}.change-log-table-wrap{overflow:auto;flex:1;min-height:0;margin:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg)}.change-log-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.75rem}.change-log-col-date{width:13.5rem}.change-log-col-field{width:auto}.change-log-col-change{width:32%;min-width:6.5rem}.change-log-table thead th{position:sticky;top:0;z-index:1;text-align:left;padding:var(--space-xs) var(--space-sm);font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:var(--card-bg);box-shadow:inset 0 -1px 0 var(--border);white-space:nowrap}.change-log-table tbody td{padding:var(--space-sm);border-bottom:1px solid var(--border);vertical-align:baseline}.change-log-table tbody tr:last-child td{border-bottom:none}.change-time{color:var(--text-muted);font-size:.68rem;font-family:var(--font-mono);white-space:nowrap}.change-path{font-family:var(--font-mono);font-size:.68rem;font-weight:500;color:color-mix(in srgb,var(--accent) 85%,var(--text));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.change-values{color:var(--text-muted);font-size:.68rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.change-log-empty-cell{color:var(--text-muted);font-style:italic;padding:var(--space-md) var(--space-sm);text-align:center;border-bottom:none}.truncated{margin:var(--space-sm) 0 0 0;font-size:.75rem;color:var(--text-muted)}.dice-roller-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-md);min-width:0;flex-shrink:0;box-shadow:var(--shadow-sm),var(--shadow-inset);overflow:hidden}.dice-roller-panel-toggle{display:flex;align-items:center;gap:.5rem;width:100%;margin:0;padding:var(--space-sm) var(--space-md);border:none;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background .15s ease}.dice-roller-panel-toggle:hover{background:var(--accent-dim)}.dice-roller-panel-toggle-icon{display:flex;color:var(--accent);flex-shrink:0}.dice-roller-panel-toggle-label{flex:1;font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.dice-roller-panel-chevron{flex-shrink:0;color:var(--text-muted);transition:transform .2s ease}.dice-roller-panel-chevron--open{transform:rotate(180deg)}.dice-roller-panel-body{padding:0 var(--space-md) var(--space-md);display:flex;flex-direction:column;gap:var(--space-md);border-top:1px solid var(--border);padding-top:var(--space-md)}.dice-roller-main-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-md);align-items:start}.dice-roller-dice-pane{box-sizing:border-box;min-width:0;height:min(32vh,240px);min-height:200px;flex-shrink:0;display:flex;flex-direction:column;padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--input-bg)}.dice-roller-dice-pane-scroll{flex:1;min-height:0;overflow-y:auto;padding-right:.15rem;margin-right:-.05rem}.dice-roller-dice-pane-footer{flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-sm);padding-top:var(--space-sm);margin-top:var(--space-sm);border-top:1px solid var(--border)}.dice-roller-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.dice-roller-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dice-roller-groups{display:flex;flex-direction:column;gap:var(--space-sm)}.dice-roller-group-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.dice-roller-select--die{flex:1;min-width:6.5rem}.dice-roller-add-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.8125rem;font-weight:600;border-radius:var(--radius-sm);border:1px dashed var(--border-strong);background:transparent;color:var(--text-muted);cursor:pointer;font-family:inherit}.dice-roller-add-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.dice-roller-add-btn--footer{width:100%;justify-content:center}.dice-roller-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.dice-roller-select{padding:.35rem .5rem;font-size:.8125rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--text);min-width:6.5rem}.dice-roller-select:focus{outline:none;border-color:var(--accent)}.dice-roller-select--grow{flex:1;min-width:0}.dice-roller-count{width:3.5rem;padding:.35rem .4rem;font-size:.8125rem;text-align:center;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--text)}.dice-roller-count:focus{outline:none;border-color:var(--accent)}.dice-roller-roll-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .85rem;font-size:.8125rem;font-weight:600;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:linear-gradient(180deg,var(--accent-dim),transparent 65%);color:var(--accent);cursor:pointer;transition:border-color .15s ease,background .15s ease}.dice-roller-roll-btn:hover{border-color:var(--accent);background:var(--accent-dim)}.dice-roller-roll-btn--footer{width:100%;justify-content:center}.dice-roller-presets{display:flex;flex-direction:column;gap:var(--space-sm);min-width:0;padding:var(--space-sm);border-radius:var(--radius-sm);background:var(--input-bg);border:1px solid var(--border)}.dice-roller-presets-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.dice-roller-main-columns .dice-roller-presets-row .dice-roller-label{flex:1 0 100%;margin-bottom:.05rem}.dice-roller-presets-save{display:flex;gap:var(--space-sm);align-items:center}.dice-roller-preset-name{flex:1;min-width:0;padding:.35rem .5rem;font-size:.8125rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text)}.dice-roller-preset-name:focus{outline:none;border-color:var(--accent)}.dice-roller-preset-name::placeholder{color:var(--text-muted)}.dice-roller-save-preset-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .65rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--card-bg);color:var(--text);cursor:pointer;flex-shrink:0}.dice-roller-save-preset-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.dice-roller-save-preset-btn:disabled{opacity:.45;cursor:not-allowed}.dice-roller-icon-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text-muted);cursor:pointer;flex-shrink:0}.dice-roller-icon-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.dice-roller-icon-btn:disabled{opacity:.35;cursor:not-allowed}.dice-roller-icon-btn--danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.dice-roller-result{padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-subtle);display:flex;flex-direction:column;gap:var(--space-md)}.dice-roller-result-group+.dice-roller-result-group{padding-top:var(--space-sm);border-top:1px solid var(--border)}.dice-roller-result-meta{font-size:.75rem;font-weight:600;color:var(--text);margin-bottom:.4rem}.dice-roller-result-group-label{color:var(--text)}.dice-roller-result-subtotal{color:var(--accent);font-family:var(--font-mono);font-weight:700}.dice-roller-grand-total{padding-top:var(--space-sm);margin-top:.1rem;border-top:1px solid var(--border-strong);font-size:.8125rem;font-weight:700;color:var(--text)}.dice-roller-result-total{color:var(--accent);font-family:var(--font-mono)}.dice-roller-result-rolls{display:flex;flex-wrap:wrap;gap:.35rem}.dice-roller-die-chip{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;padding:.2rem .45rem;font-size:.8rem;font-weight:600;font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--card-bg);border:1px solid var(--border);color:var(--text)}.dice-roller-hint{margin:0;font-size:.75rem;color:var(--text-muted);font-style:italic}@media(max-width:720px){.dice-roller-main-columns{grid-template-columns:1fr}.dice-roller-main-columns .dice-roller-presets-row .dice-roller-label{flex:0 0 auto;margin-bottom:0}}.app{--app-content-max: 60rem;min-height:100vh;display:flex;flex-direction:column}.app-header{flex-shrink:0;position:sticky;top:0;z-index:40;padding:0 var(--space-lg);background:var(--header-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);box-shadow:0 12px 40px #00000059}.app-header-inner{max-width:var(--app-content-max);margin:0 auto;width:100%;box-sizing:border-box}.app-main{flex:1;display:flex;flex-direction:column;min-height:0;padding:var(--space-lg);width:100%;box-sizing:border-box}.app-container{max-width:var(--app-content-max);margin:0 auto;width:100%;flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--space-lg);box-sizing:border-box}.app-editor{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column}.app-editor>*{flex:1;min-height:0;display:flex;flex-direction:column}.app-dice,.app-changelog{flex-shrink:0;min-width:0}.app-changelog .change-log-panel{max-height:min(38vh,360px)}@media(max-width:960px){.app-header{padding:0 var(--space-md)}.app-main{padding:var(--space-md)}}
