:root{--bg: #0f1512;--surface: #161d19;--surface-2: #1d2621;--border: #2a352e;--text: #e8efe9;--text-muted: #93a29a;--primary: #4ade80;--primary-ink: #08150d;--danger: #f87171;--radius: 12px;--gap: 16px;color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}h1{font-size:1.5rem;margin:0 0 4px}h2{font-size:1.1rem;margin:0 0 8px}code{background:var(--surface-2);padding:1px 6px;border-radius:6px;font-size:.85em}.muted{color:var(--text-muted)}.small{font-size:.85rem}.error{color:var(--danger)}.brand{font-weight:650;letter-spacing:.2px;color:var(--primary);margin-bottom:12px}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:4px;padding:20px 16px;background:var(--surface);border-right:1px solid var(--border)}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:8px}.nav-link{padding:9px 12px;border-radius:8px;color:var(--text-muted);text-decoration:none}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link.active{background:var(--surface-2);color:var(--primary)}.content{padding:28px 32px;max-width:1100px}.page-head{margin-bottom:20px}.centred{min-height:100vh;display:grid;place-items:center;padding:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.login{width:min(380px,100%);display:flex;flex-direction:column}.login label{margin-top:12px;margin-bottom:4px;font-size:.85rem;color:var(--text-muted)}input,select{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px 12px;font:inherit;width:100%}input[type=checkbox]{width:auto;min-width:18px;height:18px;accent-color:var(--primary)}input:focus-visible,select:focus-visible,.btn:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.btn{min-height:44px;padding:10px 16px;border-radius:999px;border:1px solid transparent;background:var(--surface-2);color:var(--text);font:inherit;font-weight:550;cursor:pointer}.btn:hover:not(:disabled){filter:brightness(1.12)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-ink)}.btn-outline{background:transparent;border-color:var(--border)}.btn-danger{background:var(--danger);color:var(--primary-ink)}.btn-sm{min-height:36px;padding:6px 12px;font-size:.85rem}.login .btn-primary,.form .btn-primary{margin-top:20px;align-self:flex-start}.page-head.row{display:flex;align-items:flex-start;gap:var(--gap)}.tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.chip{min-height:36px;padding:6px 14px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font:inherit;cursor:pointer}.chip.active{background:var(--surface-2);color:var(--primary);border-color:var(--primary)}.rows{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.row-head,.row-item{display:grid;grid-template-columns:1fr 200px 110px auto;gap:var(--gap);align-items:center;padding:12px 16px}.row-head{font-size:.78rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--surface-2)}.rows-3 .row-head,.rows-3 .row-item{grid-template-columns:1fr 1fr auto}.rows-cafes .row-head,.rows-cafes .row-item{grid-template-columns:1fr 180px 80px 110px auto}.rows-2 .row-head,.rows-2 .row-item{grid-template-columns:1fr 1fr}.rows-accounts .row-head,.rows-accounts .row-item{grid-template-columns:1fr 1fr 110px auto}.row-item+.row-item,.row-head+.row-item{border-top:1px solid var(--border)}.actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.pill{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);font-size:.78rem}.pill-live{color:var(--primary);border-color:var(--primary)}.tag-list{display:flex;gap:6px;flex-wrap:wrap}.form{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.form label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--text-muted)}.field-label{font-size:.85rem;color:var(--text-muted);margin-top:4px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.role-option{flex-direction:row!important;align-items:center;gap:10px!important;color:var(--text)!important}.hours{display:flex;flex-direction:column;gap:8px}.hours-row{display:grid;grid-template-columns:90px 1fr auto 1fr;gap:10px;align-items:center}.hours-day{flex-direction:row!important;align-items:center;gap:8px!important;color:var(--text)!important}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--gap)}.tile{display:block;padding:18px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:inherit;text-decoration:none}.tile:hover{border-color:var(--primary)}.summary{display:flex;gap:40px;margin-bottom:var(--gap);text-decoration:none;color:inherit}.summary:hover{border-color:var(--primary)}.stat{font-size:2rem;font-weight:650;color:var(--primary);line-height:1.1}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);align-items:start}.board-column{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px}.order-card{background:var(--surface-2);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px}.order-card-head{display:flex;justify-content:space-between}.order-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}@media(max-width:900px){.shell,.board,.grid-2,.grid-3,.role-grid{grid-template-columns:1fr}.content{padding:20px}.row-head{display:none}.row-item{grid-template-columns:1fr!important}}.row{display:flex;gap:12px;align-items:center}.row-between{justify-content:space-between;align-items:flex-start}.stack{display:flex;flex-direction:column;gap:var(--gap)}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th{text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:550;padding:8px 12px 8px 0;border-bottom:1px solid var(--border)}.table td{padding:8px 12px 8px 0;border-bottom:1px solid var(--border);vertical-align:top}.table tr:last-child td{border-bottom:0}.search{display:flex;gap:8px;align-items:center;margin-bottom:16px}.search input{max-width:420px}.row-group+.row-group,.row-head+.row-group{border-top:1px solid var(--border)}.link-button{background:none;border:0;padding:0;font:inherit;color:var(--text);text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:3px}.link-button:hover{color:var(--primary);text-decoration-color:var(--primary)}.detail{display:flex;flex-direction:column;gap:14px;padding:4px 16px 18px;background:var(--surface-2)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.detail-list{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.detail-list li{display:flex;justify-content:space-between;max-width:420px;font-size:.9rem}.pill-warn{color:#fbbf24;border-color:#fbbf24}.pill-danger{color:var(--danger);border-color:var(--danger)}.pill-off{color:var(--text-muted);border-style:dashed}.allergen-picker{border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin:0}.allergen-picker legend{padding:0 6px}.allergen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-top:8px}.allergen-chip{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);font-size:.85rem;cursor:pointer}.allergen-chip.selected.contains{color:var(--danger);border-color:var(--danger)}.allergen-chip.selected.traces{color:#fbbf24;border-color:#fbbf24}.allergen-contains{color:var(--danger)}
