:root{color-scheme:light;--forest:#153f32;--ink:#192f26;--muted:#61736a;--green:#c4ed91;--paper:#f5f7f3;--line:#dce3da;--white:#fff;--error:#9b302c;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:1rem;line-height:1.5}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit}button,input{border-radius:12px}button:focus-visible,a:focus-visible{outline:3px solid #659333;outline-offset:4px}input:focus{outline:3px solid #85ac61;outline-offset:2px}input{min-width:0;border:1px solid var(--line);color:var(--ink);background:var(--white);padding:16px}input::placeholder{color:#738075;opacity:1}h1,h2,h3,p{margin:0}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(2.6rem,7vw,3.5rem);line-height:1.12;letter-spacing:-.045em}h2{font-size:1.05rem;font-weight:650;letter-spacing:-.02em}h3{font-size:1.25rem;font-weight:600}[hidden]{display:none!important}.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}.eyebrow{display:block;font-size:.75rem;font-weight:650;letter-spacing:.14em;color:var(--muted);margin-bottom:12px}
.topbar{background:var(--forest);color:white;padding:calc(18px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 18px max(24px,env(safe-area-inset-left))}.topbar-inner{max-width:880px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand,.login-brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand-mark{display:grid;place-items:center;background:var(--green);color:var(--forest);height:32px;width:32px;border-radius:10px;font-size:1.3rem;font-weight:700;transform:rotate(-6deg)}.wordmark{font-family:Georgia,"Times New Roman",serif;font-size:1.9rem;font-style:italic;letter-spacing:-.06em;line-height:1}.account{display:flex;align-items:center;gap:16px;font-size:.875rem}.account-name{max-width:150px;overflow-wrap:anywhere}.logout-button{border:1px solid #6c8b7e;background:transparent;color:white;padding:9px 12px;border-radius:8px}.logout-button:hover{background:#285744}
.workspace{--list-row-height:76px;width:min(100% - 48px,680px);margin:28px auto 0;padding-bottom:calc(36px + env(safe-area-inset-bottom))}.add-section h1{margin-bottom:14px}.add-form{display:flex;align-items:stretch;padding:6px;background:var(--white);border:1px solid #c5d1c1;border-radius:16px;gap:6px;box-shadow:0 4px 16px #153f3206}.add-form input{border:0;flex:1;background:transparent;padding:14px 12px}.primary-button{border:0;background:var(--forest);color:white;padding:14px 22px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:14px;min-height:52px;white-space:nowrap;transition:background .15s}.primary-button:hover{background:#245a44}.primary-button span{font-size:1.4rem;font-weight:400;line-height:1}.items-section{margin-top:42px}.list-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.count{display:inline-grid;place-items:center;min-width:26px;height:26px;background:#e2e9df;color:#3e6044;border-radius:7px;margin-left:6px;padding:0 6px;font-size:.875rem}.sync-status{color:var(--muted);font-size:.875rem;text-align:right}.shopping-list{list-style:none;padding:0;margin:0;background:var(--white);border:1px solid var(--line);border-radius:16px;overflow:hidden}.shopping-list:empty{display:none}.list-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--list-row-height);padding:13px 18px 13px 24px}.list-row+.list-row{border-top:1px solid #e9ede6}.item-name{font-size:1.125rem;overflow-wrap:anywhere;min-width:0}.delete-form{flex-shrink:0}.remove-button{display:grid;place-items:center;width:44px;height:44px;background:transparent;color:#57785c;border:1px solid #bdcdb9;border-radius:50%;font-size:1.3rem;transition:background .15s,border-color .15s}.remove-button:active:not(:disabled){background:var(--green);border-color:var(--green);color:var(--forest)}.notice{padding:14px 16px;background:#e7eeda;border-radius:10px;margin-top:20px;font-size:.9375rem}.notice.error{background:#fce9e5;color:var(--error)}.list-footnote{margin-top:24px;color:var(--muted);font-size:.875rem;text-align:center}.list-footnote span{margin:0 4px}.empty-state{text-align:center;padding:52px 24px;background:var(--white);border:1px solid var(--line);border-radius:16px}.empty-check{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 20px;background:#e6f1dc;color:#416a35;border-radius:50%;font-size:1.8rem}.empty-state p{max-width:300px;margin:8px auto 0;color:var(--muted)}
body[data-page=login]{background:var(--forest);min-height:100svh}.login-layout{width:min(100% - 40px,420px);margin:auto;padding:calc(64px + env(safe-area-inset-top)) 0 calc(32px + env(safe-area-inset-bottom))}.login-brand{justify-content:center;color:white;margin-bottom:36px}.login-brand .wordmark{font-size:2.4rem}.login-brand .brand-mark{width:38px;height:38px}.login-card{padding:36px;background:var(--paper);border-radius:24px}.login-intro{color:var(--muted);margin-top:16px;max-width:260px}.login-form{margin-top:28px;display:flex;flex-direction:column}.login-form label{font-size:.875rem;font-weight:600;margin-bottom:8px}.login-form input{width:100%;margin-bottom:20px;min-height:54px}.login-form .primary-button{margin-top:6px;justify-content:space-between}.login-footnote{text-align:center;color:#c0d0c7;font-size:.875rem;margin-top:24px}.login-footnote span{color:var(--green);margin-right:6px}
@media(max-width:520px){.topbar{padding-right:max(20px,env(safe-area-inset-right));padding-left:max(20px,env(safe-area-inset-left))}.topbar-inner{gap:12px}.account{gap:10px}.account-name{max-width:80px}.wordmark{font-size:1.7rem}.brand{gap:8px}.brand-mark{height:28px;width:28px;border-radius:8px}.workspace{--list-row-height:72px;width:calc(100% - 32px);margin-top:20px}.add-form{gap:0}.add-form input{padding:12px 9px;font-size:1rem}.add-form .primary-button{padding:12px 16px;gap:7px}.items-section{margin-top:32px}.list-row{padding-left:18px}.login-layout{padding-top:calc(36px + env(safe-area-inset-top))}.login-card{padding:28px}.login-brand{margin-bottom:28px}}
@media(max-width:350px){.account{flex-direction:column;gap:4px;align-items:flex-end}.account-name{max-width:110px}.add-form .primary-button{padding:12px}.add-form .primary-button span{display:none}.list-heading{align-items:flex-start;flex-direction:column;gap:4px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.item-details{min-width:0;flex:1}
.item-details .item-name{display:block}
.item-author{display:block;margin-top:2px;font-size:.6875rem;font-weight:400;line-height:1.4;letter-spacing:normal;text-transform:none;color:var(--muted);opacity:.65;overflow-wrap:anywhere}
.section-title{text-align:center;font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(1.4rem,4vw,1.75rem);line-height:1.12;letter-spacing:-.045em;color:#b2bbae}
.statistics-section{margin-top:calc(var(--list-row-height) * 2)}
.battle-caption{margin-top:20px;text-align:center;font-size:.8125rem;color:var(--muted)}
.battle-caption+.battle-comparison{margin-top:16px}
.battle-scoreboard{margin-top:20px;font-variant-numeric:tabular-nums}
.battle-scoreboard .battle-total{margin-bottom:26px}
.battle-ranking{display:grid;gap:22px;padding:0;margin:0;list-style:none}
.battle-entry{min-width:0}
.battle-entry-heading{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:16px;margin-bottom:2px}
.battle-entry-person{display:flex;align-items:center;gap:8px;min-width:0;font-size:.9375rem;font-weight:600}
.battle-entry-name{min-width:0;overflow-wrap:anywhere}
.battle-entry-values{display:flex;align-items:baseline;gap:12px;white-space:nowrap;font-size:1rem}
.battle-entry-count{font-size:1rem;font-weight:600;fill:currentColor}
.battle-entry-count[data-inset="true"]{paint-order:stroke;stroke:var(--battle-label-background,var(--paper));stroke-width:6px;stroke-linejoin:round}
.battle-entry-share{font-size:.8125rem;color:var(--muted);min-width:4.5ch;text-align:right}
.battle-bar{--battle-bar-height:10px;display:block;width:100%;height:2.5rem;overflow:visible}
.battle-bar-fill{height:var(--battle-bar-height);transform:translateY(calc(var(--battle-bar-height) / -2))}
.battle-bar-solid,.battle-bar-segment{fill:var(--forest)}
.battle-bar-pixel,.battle-bar-rainbow{display:none}
.battle-entry[data-empty="true"] .battle-bar-fill{display:none}
.battle-comparison{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;column-gap:20px;row-gap:6px;align-items:start;margin-top:24px;font-variant-numeric:tabular-nums}
.battle-total{grid-column:2;grid-row:1;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:10px}
.battle-total strong{font-size:1.75rem;font-weight:600;line-height:1.2}
.battle-total span{font-size:.8125rem;color:var(--muted)}
.battle-total-value{display:flex;align-items:baseline;justify-content:center;gap:.3em;font-size:1.75rem;line-height:1.2}
.battle-total .battle-total-unit{font-size:inherit;font-weight:400;color:var(--muted)}
.battle-player{grid-row:2;align-self:center;font-size:.875rem;color:var(--muted);white-space:nowrap}
.battle-count{grid-row:3;min-width:0;font-size:.875rem;line-height:1.5;color:var(--muted);white-space:nowrap}
.battle-count strong{font-size:inherit;font-weight:600;color:var(--ink)}
.balance-count-left{grid-column:1/3;justify-self:start}
.balance-count-right{grid-column:2/4;justify-self:end;text-align:right}
.balance-left{grid-column:1;text-align:left}.balance-right{grid-column:3;text-align:right}
.battle-scale{grid-column:2;grid-row:2;display:block;width:100%;height:28px;overflow:visible}
.battle-track{stroke:#ced8c8;stroke-width:8;stroke-linecap:round}
.battle-center{stroke:#a5b59d;stroke-width:1}
.battle-indicator{fill:none;stroke:var(--forest);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.battle-icon-background{fill:var(--paper);stroke:none}
.battle-cup,.battle-pan{fill:#e6cf8b}
@media(max-width:520px){.battle-comparison{column-gap:14px}}
.battle-balances{margin-top:24px;border-top:1px solid #b2bdae;padding-top:24px}
.battle-balances>.battle-caption{margin-top:0}
.battle-balance+.battle-balance{margin-top:36px}
.balance-person{grid-column:1/-1;grid-row:1;margin-bottom:10px;text-align:center;font-size:.875rem;font-weight:600;color:var(--muted);overflow-wrap:anywhere}
.theme-picker{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line)}
.theme-picker label{color:var(--muted);font-size:.875rem;font-weight:600}
.theme-picker select{max-width:100%;min-height:44px;padding:10px 36px 10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--ink);font:inherit;cursor:pointer}
.theme-picker select:focus-visible{outline:3px solid #659333;outline-offset:4px}

.terminal-prompt,.battle-icon-pixel,.unicorn-mascot,.battle-track-unicorn,.battle-track-neo,.battle-track-cassette{display:none}

/* Locally hosted Silkscreen, licensed under the SIL Open Font License. */
@font-face{
  font-family:Silkscreen;
  src:url("fonts/silkscreen-regular.ttf") format("truetype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}

/* Cyberpunk: a quiet, monochrome LCD instrument. */
:root[data-theme="cyberpunk"]{
  --forest:#292b23;
  --ink:#292b23;
  --muted:#535448;
  --green:#292b23;
  --paper:#c6c1ad;
  --line:#82816f;
  --white:#d2cdbb;
  --error:#292b23;
  --lcd-font:Silkscreen,"Courier New",monospace;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  background-color:var(--paper);
  background-image:linear-gradient(#292b2309 1px,transparent 1px),linear-gradient(90deg,#292b2309 1px,transparent 1px);
  background-size:18px 18px;
}
[data-theme="cyberpunk"] ::selection{background:var(--ink);color:var(--paper)}
[data-theme="cyberpunk"] .workspace{--list-row-height:68px;margin-top:24px}
[data-theme="cyberpunk"] h1,
[data-theme="cyberpunk"] h3,
[data-theme="cyberpunk"] .section-title,
[data-theme="cyberpunk"] .wordmark{
  font-family:var(--lcd-font);
  font-weight:400;
  font-style:normal;
  letter-spacing:0;
  text-transform:uppercase;
  color:var(--ink);
}
[data-theme="cyberpunk"] .section-title{font-size:clamp(1.25rem,4.5vw,1.75rem);line-height:1.4}
[data-theme="cyberpunk"] .add-section h1{border-block:3px dotted var(--ink);padding:16px 0;margin-bottom:24px}
[data-theme="cyberpunk"] input,
[data-theme="cyberpunk"] button,
[data-theme="cyberpunk"] .theme-picker select{border-radius:0;transition:none}
[data-theme="cyberpunk"] input{background:transparent;border-color:var(--ink);caret-color:var(--ink)}
[data-theme="cyberpunk"] input::placeholder{color:var(--muted)}
[data-theme="cyberpunk"] button:focus-visible,
[data-theme="cyberpunk"] a:focus-visible,
[data-theme="cyberpunk"] input:focus,
[data-theme="cyberpunk"] .theme-picker select:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
[data-theme="cyberpunk"] .add-form{padding:5px;gap:6px;border:2px solid var(--ink);border-radius:0;background:transparent;box-shadow:none}
[data-theme="cyberpunk"] .terminal-prompt{display:block;align-self:center;margin-left:9px;font-weight:700;font-size:1.25rem}
[data-theme="cyberpunk"] .add-form input{padding:12px 4px}
[data-theme="cyberpunk"] .primary-button{border:2px solid var(--ink);background:var(--ink);color:var(--paper);padding:12px 18px;text-transform:uppercase;gap:8px}
[data-theme="cyberpunk"] .primary-button:active:not(:disabled){background:var(--paper);color:var(--ink)}
[data-theme="cyberpunk"] .items-section{margin-top:24px}
[data-theme="cyberpunk"] .shopping-list{border:0;border-block:1px solid var(--ink);border-radius:0;background:transparent}
[data-theme="cyberpunk"] .list-row{gap:14px;padding:11px 0 11px 4px}
[data-theme="cyberpunk"] .list-row+.list-row{border-top:2px dotted var(--line)}
[data-theme="cyberpunk"] .item-name{font-size:1.0625rem;line-height:1.5}
[data-theme="cyberpunk"] .remove-button{border:2px solid var(--ink);background:transparent;color:var(--ink);font-family:var(--lcd-font);font-size:1.25rem}
[data-theme="cyberpunk"] .remove-button:active:not(:disabled){background:var(--ink);border-color:var(--ink);color:var(--paper)}
[data-theme="cyberpunk"] .empty-state{border:2px dotted var(--ink);border-radius:0;background:transparent;padding:32px 20px}
[data-theme="cyberpunk"] .empty-check{border:2px solid var(--ink);border-radius:0;background:transparent;color:var(--ink)}
[data-theme="cyberpunk"] .notice{border:1px solid var(--ink);border-radius:0;background:var(--white)}
[data-theme="cyberpunk"] .notice.error{border:2px solid var(--ink);background:var(--ink);color:var(--paper)}
[data-theme="cyberpunk"] .statistics-section{margin-top:56px;border-top:3px dotted var(--ink);padding-top:18px}
[data-theme="cyberpunk"] .battle-caption{font-size:.875rem;line-height:1.6;margin-top:14px}
[data-theme="cyberpunk"] .battle-scoreboard{margin-top:24px}
[data-theme="cyberpunk"] .battle-ranking{gap:24px}
[data-theme="cyberpunk"] .battle-entry-person{font-size:.875rem;font-weight:400;text-transform:uppercase;letter-spacing:.04em}
[data-theme="cyberpunk"] .battle-entry-count{font-family:var(--lcd-font);font-size:1.5rem;font-weight:400;line-height:1.2}
[data-theme="cyberpunk"] .battle-entry-share{font-size:.875rem}
[data-theme="cyberpunk"] .battle-bar{--battle-bar-height:14px}
[data-theme="cyberpunk"] .battle-bar-solid{display:none}
[data-theme="cyberpunk"] .battle-bar-pixel{display:inline}
[data-theme="cyberpunk"] .battle-comparison{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;row-gap:8px;margin-top:24px}
[data-theme="cyberpunk"] .battle-total{grid-column:1/-1;gap:6px;margin-bottom:16px}
[data-theme="cyberpunk"] .battle-total-value{gap:10px;flex-wrap:wrap}
[data-theme="cyberpunk"] .battle-total strong{font-family:var(--lcd-font);font-size:clamp(2.5rem,9vw,3.5rem);font-weight:400;line-height:1}
[data-theme="cyberpunk"] .battle-total span{font-size:.875rem}
[data-theme="cyberpunk"] .battle-total .battle-total-unit{font-size:.875rem;text-transform:uppercase;letter-spacing:.04em}
[data-theme="cyberpunk"] .battle-player{font-size:.875rem;line-height:1.4;text-transform:uppercase;letter-spacing:.04em;color:var(--ink);white-space:normal;overflow-wrap:anywhere}
[data-theme="cyberpunk"] .balance-left{grid-column:1}
[data-theme="cyberpunk"] .balance-right{grid-column:2}
[data-theme="cyberpunk"] .battle-scale{grid-column:1/-1;grid-row:3;height:28px}
[data-theme="cyberpunk"] .battle-track{stroke:var(--ink);stroke-width:14;stroke-dasharray:5 3;stroke-linecap:butt;opacity:.55}
[data-theme="cyberpunk"] .battle-center{stroke:var(--ink);stroke-width:2}
[data-theme="cyberpunk"] .battle-indicator{stroke:var(--ink);stroke-linecap:square;stroke-linejoin:miter;shape-rendering:crispEdges}
[data-theme="cyberpunk"] .battle-icon-background{rx:0}
[data-theme="cyberpunk"] .battle-icon-neutral{display:none}
[data-theme="cyberpunk"] .battle-icon-pixel{display:inline}
[data-theme="cyberpunk"] .battle-cup,
[data-theme="cyberpunk"] .battle-pan{fill:var(--ink)}
[data-theme="cyberpunk"] .battle-count{grid-row:4;font-size:.875rem;white-space:normal}
[data-theme="cyberpunk"] .battle-count strong{font-family:var(--lcd-font);font-size:1.5rem;font-weight:400;line-height:1.4}
[data-theme="cyberpunk"] .balance-count-left{grid-column:1}
[data-theme="cyberpunk"] .balance-count-right{grid-column:2}
[data-theme="cyberpunk"] .battle-balances{margin-top:28px;border-top:3px dotted var(--ink);padding-top:22px}
[data-theme="cyberpunk"] .battle-balances>.battle-caption{margin-top:0}
[data-theme="cyberpunk"] .balance-person{grid-column:1/-1;font-size:1rem;color:var(--ink);margin-bottom:10px}
[data-theme="cyberpunk"] .battle-balance+.battle-balance{margin-top:28px;padding-top:24px;border-top:2px dotted var(--line)}
[data-theme="cyberpunk"] .theme-picker{margin-top:36px;padding-top:22px;border-top:3px dotted var(--ink)}
[data-theme="cyberpunk"] .theme-picker label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink)}
[data-theme="cyberpunk"] .theme-picker select{background:var(--paper);border:1px solid var(--ink)}
[data-theme="cyberpunk"] body[data-page="login"]{background:transparent}
[data-theme="cyberpunk"] .login-brand{color:var(--ink)}
[data-theme="cyberpunk"] .brand-mark{transform:none;border-radius:0;background:var(--ink);color:var(--paper)}
[data-theme="cyberpunk"] .login-card{background:transparent;border:2px solid var(--ink);border-radius:0}
[data-theme="cyberpunk"] .login-footnote,
[data-theme="cyberpunk"] .login-footnote span{color:var(--muted)}
@media(hover:hover){
  [data-theme="cyberpunk"] .primary-button:hover{background:var(--paper);color:var(--ink)}
  [data-theme="cyberpunk"] .remove-button:hover{background:var(--ink);color:var(--paper)}
}
@media(max-width:520px){
  [data-theme="cyberpunk"] .workspace{margin-top:16px}
  [data-theme="cyberpunk"] .add-form{gap:4px}
  [data-theme="cyberpunk"] .add-form .primary-button{padding:10px 12px;gap:6px}
  [data-theme="cyberpunk"] .statistics-section{margin-top:44px}
  [data-theme="cyberpunk"] .login-card{padding:24px}
}
@media(max-width:350px){
  [data-theme="cyberpunk"] .terminal-prompt{margin-left:4px}
  [data-theme="cyberpunk"] .add-form .primary-button{padding:10px}
}

/* Lilita One is locally hosted under the SIL Open Font License. */
@font-face{
  font-family:"Lilita One";
  src:url("fonts/lilita-one-regular.ttf") format("truetype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}

/* Einhorn: bubble lettering and outlined pastel stickers on blush pink. */
:root[data-theme="einhorn"]{
  --forest:#ad2f78;
  --ink:#65325f;
  --muted:#844765;
  --green:#fff091;
  --paper:#fadce8;
  --line:#da74ad;
  --white:#fff5fb;
  --error:#9c215b;
  --unicorn-font:"Lilita One","Arial Rounded MT Bold","Trebuchet MS",sans-serif;
  font-family:ui-rounded,"SF Pro Rounded","Trebuchet MS",sans-serif;
  background:var(--paper);
}
[data-theme="einhorn"] ::selection{background:#f3a5d0;color:var(--ink)}
[data-theme="einhorn"] .workspace{--list-row-height:70px;margin-top:18px}
[data-theme="einhorn"] .add-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:6px;margin-bottom:14px}
[data-theme="einhorn"] .unicorn-mascot{display:block;width:100%;height:240px;background:url("unicorn-mascot.png") center/contain no-repeat;pointer-events:none}
[data-theme="einhorn"] h1,
[data-theme="einhorn"] .section-title,
[data-theme="einhorn"] .wordmark{
  font-family:var(--unicorn-font);
  font-weight:400;
  font-style:normal;
  line-height:1.12;
  letter-spacing:.015em;
  color:#fff9fd;
  -webkit-text-stroke:3px var(--forest);
  paint-order:stroke fill;
  text-shadow:0 3px 0 #de83b6;
}
[data-theme="einhorn"] .add-section h1{font-size:clamp(2rem,8.5vw,3.8rem);text-align:left;margin:0 0 0 8px;transform:rotate(-3deg);overflow-wrap:anywhere}
[data-theme="einhorn"] .section-title{font-size:2.5rem}
[data-theme="einhorn"] h3{font-family:var(--unicorn-font);font-weight:400;letter-spacing:.02em}
[data-theme="einhorn"] input{border:2px solid var(--line);border-radius:20px;background:var(--white);caret-color:var(--forest)}
[data-theme="einhorn"] input::placeholder{color:var(--muted)}
[data-theme="einhorn"] button:focus-visible,
[data-theme="einhorn"] a:focus-visible,
[data-theme="einhorn"] input:focus,
[data-theme="einhorn"] .theme-picker select:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
[data-theme="einhorn"] .add-form{border:2px solid var(--forest);border-radius:32px;background:var(--white);box-shadow:0 4px 0 #eeb0d0;padding:5px;gap:6px}
[data-theme="einhorn"] .add-form input{border:0;border-radius:24px;padding:12px 14px;background:transparent}
[data-theme="einhorn"] .primary-button{border:2px solid var(--forest);border-radius:999px;background:#f8bddc;color:var(--ink);font-family:var(--unicorn-font);font-weight:400;letter-spacing:.03em;padding:12px 20px;gap:9px}
[data-theme="einhorn"] .primary-button:active:not(:disabled){background:var(--green);transform:translateY(1px)}
[data-theme="einhorn"] .items-section{margin-top:26px}
[data-theme="einhorn"] .shopping-list{background:transparent;border:0;border-radius:0;overflow:visible}
[data-theme="einhorn"] .list-row{padding:11px 14px 11px 20px;background:var(--white);border:2px solid var(--line);border-radius:22px;box-shadow:0 3px 0 #efb8d4}
[data-theme="einhorn"] .list-row+.list-row{border-top:2px solid var(--line);margin-top:12px}
[data-theme="einhorn"] .item-name{font-size:1.0625rem;font-weight:600;line-height:1.5}
[data-theme="einhorn"] .remove-button{background:#fff091;border:2px solid var(--forest);border-radius:16px;color:var(--forest);font-weight:700;box-shadow:0 2px 0 #e8a0c8}
[data-theme="einhorn"] .remove-button:active:not(:disabled){background:#f8b9dc;border-color:var(--forest);color:var(--ink);box-shadow:none;transform:translateY(2px)}
[data-theme="einhorn"] .empty-state{border:2px solid var(--line);border-radius:28px;background:var(--white);padding:32px 20px;box-shadow:0 4px 0 #efb8d4}
[data-theme="einhorn"] .empty-check{border:2px solid var(--forest);background:var(--green);color:var(--forest);border-radius:22px;transform:rotate(-6deg)}
[data-theme="einhorn"] .empty-state h3{font-size:1.5rem}
[data-theme="einhorn"] .notice{border:2px solid var(--line);border-radius:20px;background:var(--white)}
[data-theme="einhorn"] .notice.error{border-color:var(--error);background:#fff2f7;color:var(--error)}
[data-theme="einhorn"] .statistics-section{margin-top:50px}
[data-theme="einhorn"] .battle-caption{font-size:.875rem;line-height:1.6;margin-top:16px}
[data-theme="einhorn"] .battle-scoreboard{margin-top:24px}
[data-theme="einhorn"] .battle-ranking{gap:24px}
[data-theme="einhorn"] .battle-entry-person{font-size:1rem;color:var(--ink)}
[data-theme="einhorn"] .battle-entry-count{font-family:var(--unicorn-font);font-size:1.625rem;font-weight:400;color:var(--forest);line-height:1.2}
[data-theme="einhorn"] .battle-entry-share{font-size:.875rem}
[data-theme="einhorn"] .battle-bar{--battle-bar-height:14px}
[data-theme="einhorn"] .battle-bar-solid{display:none}
[data-theme="einhorn"] .battle-bar-rainbow{display:inline;stroke:#945388;stroke-width:2}
[data-theme="einhorn"] .battle-comparison{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;row-gap:10px;margin-top:24px}
[data-theme="einhorn"] .battle-total{grid-column:1/-1;margin-bottom:12px;gap:8px}
[data-theme="einhorn"] .battle-total-value{gap:10px;flex-wrap:wrap}
[data-theme="einhorn"] .battle-total strong{font-family:var(--unicorn-font);font-size:3.5rem;line-height:1;font-weight:400;color:#fff9fd;-webkit-text-stroke:3px var(--forest);paint-order:stroke fill;text-shadow:0 3px 0 #de83b6}
[data-theme="einhorn"] .battle-total span{font-size:.875rem}
[data-theme="einhorn"] .battle-total .battle-total-unit{font-family:var(--unicorn-font);font-size:1.125rem;color:var(--ink)}
[data-theme="einhorn"] .battle-player{font-size:.9375rem;font-weight:600;line-height:1.4;color:var(--ink);white-space:normal;overflow-wrap:anywhere}
[data-theme="einhorn"] .balance-left{grid-column:1}
[data-theme="einhorn"] .balance-right{grid-column:2}
[data-theme="einhorn"] .battle-scale{grid-column:1/-1;grid-row:3;height:28px}
[data-theme="einhorn"] .battle-track{stroke:#945388;stroke-width:12}
[data-theme="einhorn"] .battle-track-unicorn{display:inline;stroke-width:7;stroke-linecap:round}
[data-theme="einhorn"] .battle-center{stroke:#945388}
[data-theme="einhorn"] .battle-indicator{stroke:var(--ink);stroke-width:1.8}
[data-theme="einhorn"] .battle-icon-background{fill:var(--paper)}
[data-theme="einhorn"] .battle-cup{fill:#ffe97b}
[data-theme="einhorn"] .battle-pan{fill:#f4a8d3}
[data-theme="einhorn"] .battle-count{grid-row:4;font-size:.875rem;white-space:normal;overflow-wrap:anywhere}
[data-theme="einhorn"] .battle-count strong{font-family:var(--unicorn-font);font-size:1.5rem;font-weight:400;color:var(--forest)}
[data-theme="einhorn"] .balance-count-left{grid-column:1}
[data-theme="einhorn"] .balance-count-right{grid-column:2}
[data-theme="einhorn"] .battle-balances{margin-top:30px;border-top:2px solid #e9accc;padding-top:24px}
[data-theme="einhorn"] .battle-balances>.battle-caption{margin-top:0}
[data-theme="einhorn"] .balance-person{grid-column:1/-1;justify-self:center;background:var(--white);border:2px solid var(--line);border-radius:999px;padding:5px 20px;font-size:1.125rem;color:var(--forest);margin-bottom:6px}
[data-theme="einhorn"] .battle-balance+.battle-balance{margin-top:30px}
[data-theme="einhorn"] .theme-picker{margin-top:40px;padding-top:24px;border-top:2px solid #e9accc}
[data-theme="einhorn"] .theme-picker label{font-family:var(--unicorn-font);font-size:1.125rem;font-weight:400;color:var(--forest)}
[data-theme="einhorn"] .theme-picker select{border:2px solid var(--forest);border-radius:24px;background:var(--white);color:var(--ink)}
[data-theme="einhorn"] body[data-page="login"]{background:transparent}
[data-theme="einhorn"] .login-layout{padding-top:24px}
[data-theme="einhorn"] .login-layout::before{content:"";display:block;width:180px;height:170px;margin:0 auto 8px;background:url("unicorn-mascot.png") center/contain no-repeat}
[data-theme="einhorn"] .login-brand{color:var(--forest);margin-bottom:24px}
[data-theme="einhorn"] .brand-mark{background:var(--green);border:2px solid var(--forest);color:var(--forest);border-radius:12px}
[data-theme="einhorn"] .login-card{border:2px solid var(--line);border-radius:28px;background:var(--white);box-shadow:0 5px 0 #efb8d4}
[data-theme="einhorn"] .login-card h1{font-size:3.2rem}
[data-theme="einhorn"] .login-footnote,
[data-theme="einhorn"] .login-footnote span{color:var(--muted)}
@media(hover:hover){
  [data-theme="einhorn"] .primary-button:hover{background:var(--green);color:var(--ink)}
  [data-theme="einhorn"] .remove-button:hover{background:#f8b9dc;color:var(--ink)}
}
@media(max-width:520px){
  [data-theme="einhorn"] .workspace{margin-top:10px}
  [data-theme="einhorn"] .unicorn-mascot{height:195px}
  [data-theme="einhorn"] .add-form{gap:3px}
  [data-theme="einhorn"] .add-form input{padding:12px 10px}
  [data-theme="einhorn"] .add-form .primary-button{padding:10px 13px;gap:5px}
  [data-theme="einhorn"] .list-row{padding-left:16px}
  [data-theme="einhorn"] .statistics-section{margin-top:40px}
}
@media(max-width:350px){
  [data-theme="einhorn"] .unicorn-mascot{height:170px}
  [data-theme="einhorn"] .add-section h1{font-size:1.85rem;margin-left:4px}
}

/* Geist Sans is locally hosted under the SIL Open Font License. */
@font-face{
  font-family:"Geist Sans";
  src:url("fonts/geist-variable.woff2") format("woff2");
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
}

/* VT323 is locally hosted under the SIL Open Font License. */
@font-face{
  font-family:VT323;
  src:url("fonts/vt323-regular.ttf") format("truetype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}

/* Cassette futurism: an amber monochrome terminal with fine display scanlines. */
:root[data-theme="cassette-futurism"]{
  --forest:#381700;
  --ink:#381700;
  --muted:#542500;
  --green:#381700;
  --paper:#ff9208;
  --line:#542500;
  --white:#ff9208;
  --error:#381700;
  font-family:VT323,"Courier New",monospace;
  background-color:var(--paper);
  background-image:radial-gradient(ellipse at 50% 35%,#ffa414 0%,#ff9208 65%,#f78706 100%);
}
[data-theme="cassette-futurism"] ::selection{background:var(--ink);color:var(--paper)}
[data-theme="cassette-futurism"] body{min-height:100svh;display:flow-root;font-size:1.5rem;line-height:1.2;letter-spacing:.04em;text-transform:uppercase}
[data-theme="cassette-futurism"] body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:10;
  pointer-events:none;
  background-image:repeating-linear-gradient(0deg,#3817000d 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,#38170009 0 1px,transparent 1px 3px);
}
[data-theme="cassette-futurism"] .workspace{
  --list-row-height:64px;
  width:min(calc(100% - 40px),700px);
  margin:28px auto 0;
  padding:0 0 calc(28px + env(safe-area-inset-bottom));
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}
[data-theme="cassette-futurism"] h1,
[data-theme="cassette-futurism"] h3,
[data-theme="cassette-futurism"] .section-title,
[data-theme="cassette-futurism"] .wordmark{
  font-family:inherit;
  font-weight:400;
  font-style:normal;
  line-height:1.1;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ink);
}
[data-theme="cassette-futurism"] .add-heading{padding-bottom:16px;border-bottom:1px solid var(--ink);margin-bottom:18px}
[data-theme="cassette-futurism"] .add-section h1{margin:0;text-align:left;font-size:clamp(1.875rem,6vw,2.5rem);overflow-wrap:anywhere}
[data-theme="cassette-futurism"] .section-title{font-size:2rem;text-align:left}
[data-theme="cassette-futurism"] button,
[data-theme="cassette-futurism"] input,
[data-theme="cassette-futurism"] .theme-picker select{border-radius:0;box-shadow:none;letter-spacing:inherit;transition:none}
[data-theme="cassette-futurism"] button,
[data-theme="cassette-futurism"] input:not([type="password"]),
[data-theme="cassette-futurism"] .theme-picker select{text-transform:uppercase}
[data-theme="cassette-futurism"] button:focus-visible,
[data-theme="cassette-futurism"] a:focus-visible,
[data-theme="cassette-futurism"] input:focus,
[data-theme="cassette-futurism"] .theme-picker select:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
[data-theme="cassette-futurism"] input{border:1px solid var(--ink);background:transparent;color:var(--ink);caret-color:var(--ink)}
[data-theme="cassette-futurism"] input::placeholder{color:var(--muted);opacity:1}
[data-theme="cassette-futurism"] .add-form{padding:4px;gap:8px;border:1px solid var(--ink);border-radius:0;background:transparent;box-shadow:none}
[data-theme="cassette-futurism"] .terminal-prompt{display:block;align-self:center;margin-left:8px;font-size:1.75rem;line-height:1}
[data-theme="cassette-futurism"] .add-form input{min-height:48px;border:0;padding:10px 0;font-size:1.5rem}
[data-theme="cassette-futurism"] .add-form input:focus{outline-offset:0}
[data-theme="cassette-futurism"] .primary-button{min-height:48px;padding:10px 16px;gap:8px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-weight:400;line-height:1}
[data-theme="cassette-futurism"] .primary-button span{font-size:1.5rem}
[data-theme="cassette-futurism"] .primary-button:active:not(:disabled){background:var(--paper);color:var(--ink)}
[data-theme="cassette-futurism"] button:disabled{opacity:.55}
[data-theme="cassette-futurism"] .items-section{margin-top:20px}
[data-theme="cassette-futurism"] .shopping-list{border:1px solid var(--ink);border-radius:0;background:transparent}
[data-theme="cassette-futurism"] .list-row{padding:9px 10px 9px 16px;gap:12px}
[data-theme="cassette-futurism"] .list-row+.list-row{border-top:1px solid var(--ink)}
[data-theme="cassette-futurism"] .item-name{font-size:1.5rem;font-weight:400;line-height:1.25;color:var(--ink)}
[data-theme="cassette-futurism"] .item-author{font-size:.875rem}
[data-theme="cassette-futurism"] .remove-button{width:44px;height:44px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-size:1.5rem}
[data-theme="cassette-futurism"] .remove-button:active:not(:disabled){background:var(--ink);border-color:var(--ink);color:var(--paper)}
[data-theme="cassette-futurism"] .empty-state{padding:28px 18px;border:1px solid var(--ink);border-radius:0;background:transparent}
[data-theme="cassette-futurism"] .empty-state h3{font-size:1.75rem}
[data-theme="cassette-futurism"] .empty-check{width:48px;height:48px;margin-bottom:14px;border:1px solid var(--ink);border-radius:0;background:var(--ink);color:var(--paper);font-size:1.75rem}
[data-theme="cassette-futurism"] .empty-state p{max-width:340px;color:var(--muted);font-size:1.375rem}
[data-theme="cassette-futurism"] .notice{border:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font-size:1.375rem}
[data-theme="cassette-futurism"] .notice.error{background:var(--ink);color:var(--paper)}
[data-theme="cassette-futurism"] .statistics-section{margin-top:32px;padding-top:16px;border-top:1px solid var(--ink)}
[data-theme="cassette-futurism"] .battle-caption{margin-top:10px;font-size:1.375rem;line-height:1.2;text-align:left}
[data-theme="cassette-futurism"] .battle-scoreboard{margin-top:16px;padding:18px 16px;border:1px solid var(--ink)}
[data-theme="cassette-futurism"] .battle-ranking{gap:22px}
[data-theme="cassette-futurism"] .battle-entry-person{font-size:1.5rem;font-weight:400;line-height:1.2}
[data-theme="cassette-futurism"] .battle-entry-count{font-size:1.875rem;font-weight:400;line-height:1}
[data-theme="cassette-futurism"] .battle-entry-share{font-size:1.25rem}
[data-theme="cassette-futurism"] .battle-bar{--battle-bar-height:16px}
[data-theme="cassette-futurism"] .battle-bar-solid{rx:0;fill:var(--ink)}
[data-theme="cassette-futurism"] .battle-comparison{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:14px;row-gap:8px;margin-top:16px;padding:18px 16px;border:1px solid var(--ink);border-radius:0;background:transparent;box-shadow:none}
[data-theme="cassette-futurism"] .battle-total{grid-column:1/-1;gap:0;margin-bottom:12px}
[data-theme="cassette-futurism"] .battle-total-value{gap:10px;flex-wrap:wrap}
[data-theme="cassette-futurism"] .battle-total strong{font-family:inherit;font-size:3rem;font-weight:400;letter-spacing:.04em;line-height:1;color:var(--ink)}
[data-theme="cassette-futurism"] .battle-total span{font-size:1.25rem;color:var(--muted)}
[data-theme="cassette-futurism"] .battle-total .battle-total-unit{font-size:1.5rem;color:var(--ink)}
[data-theme="cassette-futurism"] .battle-player{font-size:1.375rem;font-weight:400;line-height:1.2;color:var(--ink);white-space:normal;overflow-wrap:anywhere}
[data-theme="cassette-futurism"] .balance-left{grid-column:1}
[data-theme="cassette-futurism"] .balance-right{grid-column:2}
[data-theme="cassette-futurism"] .battle-scale{grid-column:1/-1;grid-row:3;height:28px}
[data-theme="cassette-futurism"] .battle-track{stroke:var(--ink);stroke-width:16;stroke-linecap:square}
[data-theme="cassette-futurism"] .battle-track-cassette{display:inline;stroke:var(--paper);stroke-width:13;stroke-linecap:square}
[data-theme="cassette-futurism"] .battle-center{stroke:var(--ink);stroke-width:1;stroke-dasharray:2 2}
[data-theme="cassette-futurism"] .battle-indicator{stroke:var(--paper);stroke-width:1.6;stroke-linecap:square;stroke-linejoin:miter;shape-rendering:crispEdges}
[data-theme="cassette-futurism"] .battle-icon-background{fill:var(--ink);rx:0}
[data-theme="cassette-futurism"] .battle-icon-neutral{display:none}
[data-theme="cassette-futurism"] .battle-icon-pixel{display:inline}
[data-theme="cassette-futurism"] .battle-cup,
[data-theme="cassette-futurism"] .battle-pan{fill:var(--paper)}
[data-theme="cassette-futurism"] .battle-count{grid-row:4;font-size:1.25rem;color:var(--muted);white-space:normal;overflow-wrap:anywhere}
[data-theme="cassette-futurism"] .battle-count strong{font-family:inherit;font-size:1.625rem;font-weight:400;line-height:1;color:var(--ink)}
[data-theme="cassette-futurism"] .balance-count-left{grid-column:1}
[data-theme="cassette-futurism"] .balance-count-right{grid-column:2}
[data-theme="cassette-futurism"] .battle-balances{margin-top:24px;padding-top:16px;border-top:1px solid var(--ink)}
[data-theme="cassette-futurism"] .battle-balances>.battle-caption{margin-top:0}
[data-theme="cassette-futurism"] .balance-person{grid-column:1/-1;justify-self:center;padding:0 8px;margin-bottom:6px;font-size:1.625rem;font-weight:400;letter-spacing:.06em;color:var(--ink)}
[data-theme="cassette-futurism"] .battle-balance+.battle-balance{margin-top:16px}
[data-theme="cassette-futurism"] .theme-picker{margin-top:28px;padding-top:18px;justify-content:space-between;gap:12px;border-top:1px solid var(--ink)}
[data-theme="cassette-futurism"] .theme-picker label{font-size:1.375rem;font-weight:400;color:var(--ink)}
[data-theme="cassette-futurism"] .theme-picker select{min-width:0;min-height:48px;max-width:100%;padding:9px 32px 9px 12px;border:1px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink);font-family:inherit;font-size:1.375rem;line-height:1.2}
[data-theme="cassette-futurism"] body[data-page="login"]{background:transparent}
[data-theme="cassette-futurism"] .login-layout{width:min(calc(100% - 32px),440px)}
[data-theme="cassette-futurism"] .login-brand{justify-content:flex-start;padding-bottom:18px;border-bottom:1px solid var(--ink);color:var(--ink)}
[data-theme="cassette-futurism"] .login-brand .wordmark{font-size:2.5rem}
[data-theme="cassette-futurism"] .brand-mark{border:1px solid var(--ink);border-radius:0;background:var(--ink);color:var(--paper);transform:none;font-weight:400}
[data-theme="cassette-futurism"] .login-card{padding:28px;border:1px solid var(--ink);border-radius:0;background:transparent;box-shadow:none}
[data-theme="cassette-futurism"] .login-card .eyebrow{font-size:1.25rem;font-weight:400;letter-spacing:.04em}
[data-theme="cassette-futurism"] .login-card h1{font-size:2.5rem}
[data-theme="cassette-futurism"] .login-intro{max-width:none;font-size:1.5rem}
[data-theme="cassette-futurism"] .login-form label{font-size:1.375rem;font-weight:400}
[data-theme="cassette-futurism"] .login-form input{padding:12px;font-size:1.5rem}
[data-theme="cassette-futurism"] .login-form input[type="password"]{text-transform:none;letter-spacing:normal}
[data-theme="cassette-futurism"] .login-footnote,
[data-theme="cassette-futurism"] .login-footnote span{color:var(--muted);font-size:1.25rem}
@media(hover:hover){
  [data-theme="cassette-futurism"] .primary-button:hover{background:var(--paper);color:var(--ink)}
  [data-theme="cassette-futurism"] .remove-button:hover{background:var(--ink);color:var(--paper)}
}
@media(max-width:520px){
  [data-theme="cassette-futurism"] .workspace{width:calc(100% - 28px);margin-top:18px}
  [data-theme="cassette-futurism"] .add-heading{padding-bottom:12px;margin-bottom:14px}
  [data-theme="cassette-futurism"] .add-form{gap:6px}
  [data-theme="cassette-futurism"] .terminal-prompt{margin-left:4px}
  [data-theme="cassette-futurism"] .add-form input{font-size:1.375rem}
  [data-theme="cassette-futurism"] .add-form .primary-button{padding:10px 12px;gap:6px;font-size:1.375rem}
  [data-theme="cassette-futurism"] .list-row{padding-left:12px}
  [data-theme="cassette-futurism"] .battle-comparison{padding:16px 12px;column-gap:10px}
  [data-theme="cassette-futurism"] .battle-scoreboard{padding:16px 12px}
  [data-theme="cassette-futurism"] .login-card{padding:22px}
}
@media(forced-colors:active){
  :root[data-theme="cassette-futurism"]{background-image:none}
  [data-theme="cassette-futurism"] body::after{display:none}
  [data-theme="cassette-futurism"] .battle-track,
  [data-theme="cassette-futurism"] .battle-center{stroke:CanvasText}
  [data-theme="cassette-futurism"] .battle-track-cassette{stroke:Canvas}
  [data-theme="cassette-futurism"] .battle-indicator{stroke:Canvas}
  [data-theme="cassette-futurism"] .battle-icon-background{fill:CanvasText}
  [data-theme="cassette-futurism"] .battle-cup,
  [data-theme="cassette-futurism"] .battle-pan{fill:Canvas}
}


/* Barlow Condensed ExtraBold is locally hosted under the SIL Open Font License. */
@font-face{
  font-family:"Barlow Condensed";
  src:url("fonts/barlow-condensed-extrabold.ttf") format("truetype");
  font-style:normal;
  font-weight:800;
  font-display:swap;
}

/* Neo brutalism: solid accents, heavy outlines and hard offset shadows. */
:root[data-theme="neo-brutalism"]{
  --forest:#000;
  --ink:#000;
  --muted:#45453f;
  --green:#00c2c8;
  --paper:#f5f3dc;
  --line:#000;
  --white:#fff;
  --error:#a32525;
  --neo-teal:#00c2c8;
  --neo-magenta:#f700ff;
  --neo-yellow:#ffd700;
  --neo-display:"Barlow Condensed","Arial Narrow",Impact,sans-serif;
  --neo-shadow:6px 6px 0 #000;
  font-family:"Geist Sans",Arial,sans-serif;
  background:var(--paper);
}
[data-theme="neo-brutalism"] ::selection{background:var(--neo-yellow);color:#000}
[data-theme="neo-brutalism"] .workspace{--list-row-height:76px;width:min(calc(100% - 48px),720px);margin-top:28px;padding-bottom:calc(40px + env(safe-area-inset-bottom))}
[data-theme="neo-brutalism"] h1,
[data-theme="neo-brutalism"] h2,
[data-theme="neo-brutalism"] h3,
[data-theme="neo-brutalism"] .section-title,
[data-theme="neo-brutalism"] .wordmark{
  font-family:var(--neo-display);
  font-weight:800;
  font-style:normal;
  line-height:1;
  letter-spacing:-.015em;
  text-transform:uppercase;
  color:#000;
}
[data-theme="neo-brutalism"] .add-heading{padding-bottom:18px;border-bottom:4px solid #000;margin-bottom:24px}
[data-theme="neo-brutalism"] .add-section h1{font-size:clamp(2.9rem,10vw,4.75rem);text-align:left;margin:0;overflow-wrap:anywhere}
[data-theme="neo-brutalism"] .section-title{font-size:2.5rem;text-align:left}
[data-theme="neo-brutalism"] button,
[data-theme="neo-brutalism"] input,
[data-theme="neo-brutalism"] .theme-picker select{border-radius:3px}
[data-theme="neo-brutalism"] input{background:#fff;color:#000;border:3px solid #000;caret-color:#000}
[data-theme="neo-brutalism"] input::placeholder{color:#55554c}
[data-theme="neo-brutalism"] .add-form{padding:0;gap:12px;border:0;border-radius:0;background:transparent;box-shadow:none}
[data-theme="neo-brutalism"] .add-form input{border:3px solid #000;border-radius:3px;background:#fff;padding:14px 16px;min-height:56px;box-shadow:4px 4px 0 #000}
[data-theme="neo-brutalism"] .primary-button{
  padding:12px 20px;
  min-height:56px;
  gap:8px;
  background:var(--neo-teal);
  border:3px solid #000;
  color:#000;
  font-family:var(--neo-display);
  font-size:1.25rem;
  font-weight:800;
  letter-spacing:.01em;
  text-transform:uppercase;
  box-shadow:4px 4px 0 #000;
  transition:none;
}
[data-theme="neo-brutalism"] .primary-button span{font-weight:800}
[data-theme="neo-brutalism"] .primary-button:active:not(:disabled),
[data-theme="neo-brutalism"] .remove-button:active:not(:disabled){transform:translate(3px,3px);box-shadow:1px 1px 0 #000}
[data-theme="neo-brutalism"] button:disabled{background:#d5d3c4;border-color:#000;color:#55554c;opacity:1;box-shadow:none}
[data-theme="neo-brutalism"] .items-section{margin-top:30px}
[data-theme="neo-brutalism"] .shopping-list{background:#fff;border:3px solid #000;border-radius:4px;box-shadow:var(--neo-shadow);overflow:visible}
[data-theme="neo-brutalism"] .list-row{gap:16px;padding:14px 16px 14px 20px}
[data-theme="neo-brutalism"] .list-row+.list-row{border-top:3px solid #000}
[data-theme="neo-brutalism"] .item-name{font-size:1.125rem;font-weight:650;line-height:1.45}
[data-theme="neo-brutalism"] .remove-button{width:46px;height:46px;border:3px solid #000;border-radius:3px;background:#fff;color:#000;font-size:1.45rem;font-weight:900;box-shadow:3px 3px 0 #000;transition:none}
[data-theme="neo-brutalism"] .remove-button:active:not(:disabled){background:var(--neo-yellow);border-color:#000;color:#000}
[data-theme="neo-brutalism"] .empty-state{padding:32px 22px;border:3px solid #000;border-radius:4px;background:var(--paper);box-shadow:var(--neo-shadow)}
[data-theme="neo-brutalism"] .empty-check{width:60px;height:60px;border:3px solid #000;border-radius:3px;background:var(--neo-teal);color:#000;font-weight:900;box-shadow:4px 4px 0 #000}
[data-theme="neo-brutalism"] .empty-state h3{font-size:2rem}
[data-theme="neo-brutalism"] .empty-state p{font-size:1rem;color:#000}
[data-theme="neo-brutalism"] .notice{padding:14px 16px;border:3px solid #000;border-radius:3px;background:var(--neo-teal);color:#000;font-weight:600;box-shadow:4px 4px 0 #000}
[data-theme="neo-brutalism"] .notice.error{background:var(--neo-magenta);color:#000;border-color:#000}
[data-theme="neo-brutalism"] .statistics-section{margin-top:48px}
[data-theme="neo-brutalism"] .statistics-section>.section-title{padding-bottom:8px;border-bottom:4px solid #000}
[data-theme="neo-brutalism"] .battle-caption{margin-top:16px;text-align:left;font-size:.9375rem;line-height:1.55;color:#000}
[data-theme="neo-brutalism"] .battle-scoreboard{--battle-label-background:#fff;margin-top:22px;padding:20px;border:3px solid #000;border-radius:4px;background:#fff;box-shadow:var(--neo-shadow)}
[data-theme="neo-brutalism"] .battle-ranking{gap:24px}
[data-theme="neo-brutalism"] .battle-entry-person{font-family:var(--neo-display);font-size:1.375rem;font-weight:800;line-height:1.2;text-transform:uppercase}
[data-theme="neo-brutalism"] .battle-entry-count{font-family:var(--neo-display);font-size:1.875rem;font-weight:800;line-height:1.1}
[data-theme="neo-brutalism"] .battle-entry-share{font-size:.875rem;color:#000}
[data-theme="neo-brutalism"] .battle-bar{--battle-bar-height:18px}
[data-theme="neo-brutalism"] .battle-bar-solid{fill:var(--neo-teal);stroke:#000;stroke-width:4;rx:0}
[data-theme="neo-brutalism"] .battle-entry[data-slot="1"] .battle-bar-solid{fill:var(--neo-magenta)}
[data-theme="neo-brutalism"] .battle-entry[data-slot="2"] .battle-bar-solid{fill:var(--neo-yellow)}
[data-theme="neo-brutalism"] .battle-comparison{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  column-gap:18px;
  row-gap:12px;
  margin-top:22px;
  padding:20px;
  border:3px solid #000;
  border-radius:4px;
  background:#fff;
  box-shadow:var(--neo-shadow);
}
[data-theme="neo-brutalism"] .battle-total{grid-column:1/-1;gap:12px;margin-bottom:14px}
[data-theme="neo-brutalism"] .battle-total-value{gap:10px;flex-wrap:wrap;padding:6px 16px;background:var(--neo-yellow);border:3px solid #000;border-radius:3px;box-shadow:4px 4px 0 #000}
[data-theme="neo-brutalism"] .battle-total strong{font-family:var(--neo-display);font-size:clamp(3.5rem,12vw,4.75rem);line-height:.95;letter-spacing:-.02em;font-weight:800;color:#000}
[data-theme="neo-brutalism"] .battle-total span{font-size:.875rem;color:#000}
[data-theme="neo-brutalism"] .battle-total .battle-total-unit{font-family:var(--neo-display);font-size:1.25rem;font-weight:800;line-height:1.2;text-transform:uppercase;color:#000}
[data-theme="neo-brutalism"] .battle-player{max-width:100%;padding:3px 7px;border:2px solid #000;border-radius:2px;font-family:var(--neo-display);font-size:1.125rem;font-weight:800;line-height:1.2;text-transform:uppercase;color:#000;white-space:normal;overflow-wrap:anywhere}
[data-theme="neo-brutalism"] .balance-left{grid-column:1;justify-self:start;background:var(--neo-magenta)}
[data-theme="neo-brutalism"] .balance-right{grid-column:2;justify-self:end;background:var(--neo-yellow)}
[data-theme="neo-brutalism"] .battle-scale{grid-column:1/-1;grid-row:3;height:28px}
[data-theme="neo-brutalism"] .battle-track{stroke:#000;stroke-width:12;stroke-linecap:square}
[data-theme="neo-brutalism"] .battle-track-neo{display:inline;stroke:var(--neo-teal);stroke-width:6;stroke-linecap:butt}
[data-theme="neo-brutalism"] .battle-center{stroke:#000;stroke-width:2}
[data-theme="neo-brutalism"] .battle-indicator{stroke:#000;stroke-width:1.8}
[data-theme="neo-brutalism"] .battle-icon-background{fill:#fff;rx:2px}
[data-theme="neo-brutalism"] .battle-cup{fill:var(--neo-yellow)}
[data-theme="neo-brutalism"] .battle-pan{fill:var(--neo-teal)}
[data-theme="neo-brutalism"] .battle-count{grid-row:4;font-size:.875rem;white-space:normal;overflow-wrap:anywhere;color:#000}
[data-theme="neo-brutalism"] .battle-count strong{font-family:var(--neo-display);font-size:1.875rem;font-weight:800;line-height:1.1;color:#000}
[data-theme="neo-brutalism"] .balance-count-left{grid-column:1}
[data-theme="neo-brutalism"] .balance-count-right{grid-column:2}
[data-theme="neo-brutalism"] .battle-balances{margin-top:32px;padding-top:22px;border-top:3px solid #000}
[data-theme="neo-brutalism"] .battle-balances>.battle-caption{margin-top:0}
[data-theme="neo-brutalism"] .balance-person{grid-column:1/-1;align-self:stretch;margin:-20px -20px 8px;padding:10px 20px;background:#000;color:#fff;font-size:1.4rem;font-weight:800;line-height:1.1;letter-spacing:.01em;text-align:left}
[data-theme="neo-brutalism"] .battle-balance .battle-player{border:0;padding:0;background:transparent;font-family:inherit;font-size:.875rem;font-weight:650;line-height:1.4}
[data-theme="neo-brutalism"] .battle-balance+.battle-balance{margin-top:26px}
[data-theme="neo-brutalism"] .theme-picker{margin-top:38px;padding-top:24px;border-top:4px solid #000;justify-content:space-between;gap:14px}
[data-theme="neo-brutalism"] .theme-picker label{font-family:var(--neo-display);font-size:1.25rem;font-weight:800;text-transform:uppercase;color:#000}
[data-theme="neo-brutalism"] .theme-picker select{min-width:0;min-height:48px;padding:10px 34px 10px 12px;border:3px solid #000;border-radius:3px;background:#fff;color:#000;font-size:1rem;font-weight:600;box-shadow:4px 4px 0 #000}
[data-theme="neo-brutalism"] body[data-page="login"]{background:transparent}
[data-theme="neo-brutalism"] .login-brand{color:#000}
[data-theme="neo-brutalism"] .login-brand .wordmark{font-size:2.75rem}
[data-theme="neo-brutalism"] .brand-mark{background:var(--neo-teal);border:3px solid #000;border-radius:3px;color:#000;transform:none;box-shadow:3px 3px 0 #000}
[data-theme="neo-brutalism"] .login-card{padding:30px;border:3px solid #000;border-radius:4px;background:var(--paper);box-shadow:8px 8px 0 #000}
[data-theme="neo-brutalism"] .login-card h1{font-size:3.5rem}
[data-theme="neo-brutalism"] .eyebrow{font-family:var(--neo-display);font-size:1rem;font-weight:800;letter-spacing:.03em;color:#000}
[data-theme="neo-brutalism"] .login-form label{font-weight:700}
[data-theme="neo-brutalism"] .login-form input{border:3px solid #000;border-radius:3px;box-shadow:3px 3px 0 #000}
[data-theme="neo-brutalism"] .login-footnote,
[data-theme="neo-brutalism"] .login-footnote span{color:#000}
[data-theme="neo-brutalism"] button:focus-visible,
[data-theme="neo-brutalism"] a:focus-visible,
[data-theme="neo-brutalism"] input:focus,
[data-theme="neo-brutalism"] .theme-picker select:focus-visible{outline:3px solid #000;outline-offset:5px;box-shadow:0 0 0 5px var(--neo-yellow)}
@media(hover:hover){
  [data-theme="neo-brutalism"] .primary-button:hover{background:var(--neo-yellow);color:#000}
  [data-theme="neo-brutalism"] .remove-button:hover{background:var(--neo-yellow);color:#000}
}
@media(max-width:520px){
  [data-theme="neo-brutalism"] .workspace{width:calc(100% - 32px);margin-top:22px}
  [data-theme="neo-brutalism"] .add-heading{padding-bottom:14px;margin-bottom:20px}
  [data-theme="neo-brutalism"] .add-form{gap:10px}
  [data-theme="neo-brutalism"] .add-form input{padding:12px;min-height:54px}
  [data-theme="neo-brutalism"] .add-form .primary-button{padding:10px 12px;gap:6px;min-height:54px}
  [data-theme="neo-brutalism"] .list-row{padding:13px 12px 13px 16px;gap:12px}
  [data-theme="neo-brutalism"] .battle-comparison{padding:16px;column-gap:12px}
  [data-theme="neo-brutalism"] .battle-scoreboard{padding:16px}
  [data-theme="neo-brutalism"] .balance-person{margin:-16px -16px 8px;padding:10px 16px}
  [data-theme="neo-brutalism"] .theme-picker{justify-content:center}
}
@media(forced-colors:active){
  [data-theme="neo-brutalism"] .shopping-list,
  [data-theme="neo-brutalism"] .empty-state,
  [data-theme="neo-brutalism"] .battle-comparison,
  [data-theme="neo-brutalism"] .battle-scoreboard,
  [data-theme="neo-brutalism"] .login-card{box-shadow:none;border-color:CanvasText}
  [data-theme="neo-brutalism"] .balance-person{border-bottom:2px solid CanvasText}
}
@media(forced-colors:active){
  .statistics-section .battle-bar-solid{display:inline;fill:CanvasText;stroke:none}
  .statistics-section .battle-bar-pixel,.statistics-section .battle-bar-rainbow{display:none}
  .statistics-section .battle-entry-count{fill:CanvasText;stroke:Canvas}
}
