/* Colour direction adapted from Happy Hues palette 14; SVGs are original drawings. */
[data-design=c]{--ink:#272343;--muted:#606477;--green:#346c74;--paper:#f8fbfb;--line:#e1eaea;--gold:#6c7380;--side:#fffffe;--tint:#e3f6f5;--tint2:#f1f8f8;--accent2:#272343;--shadow:0 3px 12px #27234306}
[data-design=c] .primary{background:#ffe46b;color:#272343;box-shadow:none;font-weight:700}
[data-design=c] .primary:hover{background:#ffdc43}
[data-design=c] .stat{background:#fffffe;border-width:1px}
[data-design=c] .stat:nth-child(2){background:#fff7ce;border-color:#efe4aa}
[data-design=c] .stat:nth-child(3){background:#e3f6f5;border-color:#d1e9e8}
[data-design=c] .stat .number,[data-design=c] .stat:nth-child(2) .number,[data-design=c] .stat:nth-child(3) .number{color:#272343}
[data-design=c] nav button.active{background:#e3f6f5;color:#272343;box-shadow:none;font-weight:650}
[data-design=c] .brandmark{background:#fff1a5;color:#272343}
[data-design=c] .sidebar{border-right:1px solid var(--line)}
.design-c{background:#ffe46b}.ui-icon{width:22px;height:22px;display:block;flex-shrink:0}
nav button .nav-icon{background:transparent!important;border:0;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;color:inherit!important;padding:0;flex-shrink:0}
.brandmark .ui-icon{width:25px;height:25px}
.inventory-table-head,.inventory-row{grid-template-columns:minmax(140px,1.2fr) 58px minmax(170px,1.5fr) 174px;gap:12px}
.inventory-controls{width:174px;display:grid;gap:4px;min-width:0}
.inventory-control-top{display:flex;align-items:center;justify-content:flex-end;gap:3px;min-height:34px}
.inventory-status{display:block;min-width:0;margin-right:auto}
.inventory-status .badge{font-size:10px;white-space:nowrap;padding:4px 6px;border-radius:7px}
.inventory-control-top>.quiet{font-size:11px;padding:6px 5px;min-height:34px;white-space:nowrap}
.inventory-actions{display:flex;flex-wrap:nowrap;max-width:none;gap:6px;justify-content:flex-end}
.inventory-actions button{min-height:34px;padding:6px 12px;font-size:11px;white-space:nowrap}
@media(max-width:1200px){.inventory-table-head,.inventory-row{grid-template-columns:minmax(110px,1fr) 48px minmax(110px,1fr) 174px;gap:8px}}
@media(max-width:1000px){.inventory-table-head{display:none}.inventory-row{grid-template-columns:minmax(0,1fr) 44px 174px;gap:6px 8px}.inventory-controls{grid-column:3;grid-row:1/3;align-self:center}.inventory-stock{grid-column:2;grid-row:1}.inventory-dates{grid-column:1/3;grid-row:2}.inventory-row.item-card{min-height:90px}.inventory-status,.inventory-actions{grid-column:auto;grid-row:auto}}
@media(max-width:650px){.ui-icon{width:21px;height:21px}nav button .nav-icon{width:24px;height:24px}.inventory-row{grid-template-columns:minmax(0,1fr) 36px 168px;gap:6px}.inventory-controls{width:168px}.inventory-stock{font-size:17px}.inventory-stock small{display:block}.inventory-row.item-card{padding:11px 10px}.inventory-name strong{font-size:12px}.inventory-name small{font-size:10px}.inventory-dates{gap:4px}.inventory-control-top>.quiet{padding:6px 4px}.inventory-actions button{min-height:36px}.inventory-dates span{white-space:normal}}

/* Interface colours remain separate from semantic status colours. */
[data-design=c]{--body-font:'Segoe UI','PingFang TC','Microsoft JhengHei',sans-serif;--title-font:var(--body-font);--green:#50658d;--paper:#fafbfd;--tint:#e9eef8;--tint2:#f4f6fa;--side:#edf2fa;--line:#e3e7ee}
[data-palette=a]{--side:#f0f1f5;--tint:#e4e6ee;--green:#59617d}
[data-palette=b]{--side:#faf0f4;--tint:#f4e1ea;--green:#88506e}
[data-palette=c]{--side:#edf3fc;--tint:#e0eafa;--green:#506a99}
[data-design=c] .primary{background:var(--green);color:#fff}
[data-design=c] .primary:hover{background:var(--green);filter:brightness(.94)}
[data-design=c] nav button.active{background:var(--tint);color:var(--green)}
[data-design=c] .brandmark{background:var(--tint);color:var(--green)}
.design-a{background:#adb3c6}.design-b{background:#e4b4c8}.design-c{background:#a8c3e9}
[data-design=c] .overview-stats .stat,[data-design=c] .overview-stats .stat:nth-child(2),[data-design=c] .overview-stats .stat:nth-child(3){background:#fff;border-color:var(--line)}
[data-design=c] .overview-stats .number.status-overdue{color:#ae3549}
[data-design=c] .overview-stats .number.status-pending{color:#966015}
[data-design=c] .badge{background:#eef0f4;color:#626b7b}
[data-design=c] .badge.completed,[data-design=c] .expense-status.paid{background:#e4f2e8;color:#27613e}
[data-design=c] .badge.pending,[data-design=c] .expense-status.unpaid{background:#fff2da;color:#8a5914}
[data-design=c] .badge.overdue,[data-design=c] .expense-status.overdue{background:#fde9ed;color:#ae3549}
[data-design=c] .check-button.checked{background:#e4f2e8;border-color:#8abb9a;color:#27613e}
.completion-date{font-size:11px;padding:3px 0;margin-top:2px}

@font-face{font-family:Generica;src:url('/static/fonts/generica-regular.otf') format('opentype');font-weight:400;font-display:swap;unicode-range:U+0000-024F,U+2000-206F}
@font-face{font-family:Generica;src:url('/static/fonts/generica-bold.otf') format('opentype');font-weight:600 900;font-display:swap;unicode-range:U+0000-024F,U+2000-206F}
[data-design=c]{--body-font:Generica,'PingFang TC','Microsoft JhengHei',sans-serif;--title-font:var(--body-font);--metric-font:Generica,sans-serif}
[data-palette=a]{--ink:#463a34;--muted:#79665c;--paper:#fff1e4;--surface:#fffbf2;--side:#edcfb4;--line:#ecd8c4;--green:#96543b;--tint:#f6dcc7;--tint2:#fae7d7;--gold:#99745e;--card2:#fff4dd;--card3:#fce9df;--head:#f7e3cd;--stripe:#fff3e7;--shadow:0 3px 12px #7b4b2910}
[data-palette=b]{--ink:#44384d;--muted:#77667d;--paper:#f7eaf1;--surface:#fff7fb;--side:#dfc6d9;--line:#e9d6e3;--green:#845275;--tint:#edd2e4;--tint2:#f4dfeb;--gold:#96768a;--card2:#f7e5f4;--card3:#ffece9;--head:#f0dfe9;--stripe:#faedf5;--shadow:0 3px 12px #62334d10}
[data-palette=c]{--ink:#293f53;--muted:#60798a;--paper:#eaf3fb;--surface:#f5faff;--side:#c7dcec;--line:#ccdfed;--green:#416d91;--tint:#d8e8f5;--tint2:#e2eef8;--gold:#64869d;--card2:#e1effb;--card3:#ecf0ff;--head:#dcecf7;--stripe:#eaf4fc;--shadow:0 3px 12px #31577010}
[data-design=c] body{background:var(--paper)}
[data-design=c] .sidebar{background:var(--side)}
[data-design=c] .topbar,[data-design=c] .design-picker{background:var(--surface)}
[data-design=c] .panel,[data-design=c] .document-card,[data-design=c] .item-card,[data-design=c] .login-card,[data-design=c] dialog{background:var(--surface);border-color:var(--line)}
[data-design=c] .stat,[data-design=c] .overview-stats .stat{background:var(--surface);border-color:var(--line)}
[data-design=c] .stat:nth-child(2),[data-design=c] .overview-stats .stat:nth-child(2){background:var(--card2);border-color:var(--line)}
[data-design=c] .stat:nth-child(3),[data-design=c] .overview-stats .stat:nth-child(3){background:var(--card3);border-color:var(--line)}
[data-design=c] .overview-stats .stat:first-child .number,[data-design=c] .overview-stats .stat:nth-child(3) .number{color:#b93448}
[data-design=c] .inventory-table{background:var(--surface)}
[data-design=c] .inventory-table-head{background:var(--head)}
[data-design=c] .inventory-row.item-card{background:var(--surface)}
[data-design=c] .inventory-row.item-card:nth-child(even){background:var(--stripe)}
[data-design=c] .inventory-row:hover{background:var(--tint2)}
[data-design=c] .toolbar input,[data-design=c] .toolbar select,[data-design=c] input,[data-design=c] select,[data-design=c] textarea,[data-design=c] .design-picker button,[data-design=c] .date-pill{background:var(--surface);border-color:var(--line)}
[data-design=c] .secondary{background:var(--tint);color:var(--green)}
[data-design=c] .tabs,[data-design=c] .preview-box,[data-design=c] .dropzone,[data-design=c] .note{background:var(--tint2)}
[data-design=c] .document-tabs button{background:var(--surface)}
[data-design=c] .document-tabs button.selected{background:var(--tint)}
.design-a{background:#edcfb4}.design-b{background:#dfc6d9}.design-c{background:#c7dcec}
.design-picker strong,.design-picker small,.design-picker button{font-family:var(--body-font)}
/* Status colours stay fixed across all three palettes. */
[data-design=c] .badge.completed,[data-design=c] .expense-status.paid{background:#e4f2e8;color:#27613e}
[data-design=c] .badge.pending,[data-design=c] .expense-status.unpaid{background:#fff2da;color:#8a5914}
[data-design=c] .badge.overdue,[data-design=c] .expense-status.overdue{background:#fde9ed;color:#ae3549}
