:root{--ink:#17202a;--muted:#6b7280;--line:#e5e7eb;--surface:#fff;--background:#f5f7fb;--blue:#2563eb;--green:#15936a;--red:#d94343}*{box-sizing:border-box}body{background:var(--background);color:var(--ink);margin:0;font-family:Arial,sans-serif}.shell{max-width:1180px;margin:0 auto;padding:48px 24px 32px}.topbar{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:32px;display:flex}.topbar-actions{justify-items:end;gap:10px;display:grid}.eyebrow{color:var(--muted);letter-spacing:.12em;margin:0 0 7px;font-size:11px;font-weight:700}h1,h2,p{margin-top:0}h1{letter-spacing:-.04em;margin-bottom:8px;font-size:clamp(28px,4vw,42px)}h2{letter-spacing:-.02em;margin-bottom:0;font-size:20px}.muted{color:var(--muted);font-size:13px}.phase{color:#136c51;background:#effcf7;border:1px solid #b9ead8;border-radius:14px;align-items:center;gap:10px;min-width:230px;padding:13px 16px;display:flex}.phase-wait{color:#8a5a0a;background:#fff9e9;border-color:#f0dca8}.phase-closed{color:#a33a3a;background:#fff4f4;border-color:#e8caca}.phase strong,.phase span{display:block}.phase strong{font-size:12px}.phase span:not(.dot){margin-top:4px;font-size:11px}.phase .window-timestamp{line-height:1.35}.dot{background:var(--green);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 4px #c9f4e4}.logout-button{color:#475569;cursor:pointer;font:inherit;background:#fff;border:1px solid #d5dae3;border-radius:8px;padding:8px 12px;font-size:11px;font-weight:700}.logout-button:hover{background:#f8fafc;border-color:#94a3b8}.logout-button:disabled{cursor:wait;opacity:.65}.summary-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.summary-card,.panel{border:1px solid var(--line);background:var(--surface);border-radius:18px;box-shadow:0 8px 24px #14233c0a}.summary-card{padding:20px}.summary-card span{color:var(--muted);font-size:13px}.summary-card strong{letter-spacing:-.04em;margin-top:12px;font-size:34px;display:block}.summary-card.green strong{color:var(--green)}.summary-card.blue strong{color:var(--blue)}.summary-card.red strong{color:var(--red)}.content-grid{grid-template-columns:1.45fr .85fr;gap:18px;display:grid}.panel{padding:22px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.badge,.role{color:#4b5563;white-space:nowrap;background:#f1f3f6;border-radius:999px;align-items:center;padding:6px 10px;font-size:11px;font-weight:700;display:inline-flex}.badge-green{color:#126c51;background:#e1f8ef}.cart-grid{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.cart-chip{color:#334155;min-height:40px;font:inherit;text-align:center;background:#fbfcfe;border:1px solid #dfe5ef;border-radius:9px;padding:8px 5px;font-size:11px}.cart-chip:not(:disabled){cursor:pointer}.cart-chip:not(:disabled):hover{background:#eff6ff;border-color:#2563eb}.cart-chip:disabled{cursor:not-allowed;opacity:.8}.cart-chip-unavailable{color:#a33a3a;background:#fff4f4;border-color:#f1c6c6;text-decoration:line-through}.cart-chip-allocated{color:#6b7280;background:#f3f4f6;border-color:#e5e7eb}.cart-chip-own{color:#126c51;background:#e7faf2;border-color:#9de3ca;font-weight:700}.cart-chip small{letter-spacing:.08em;margin-top:3px;font-size:8px;display:block}.allocation-help{color:var(--muted);justify-content:space-between;gap:12px;margin:-4px 0 14px;font-size:11px;display:flex}.allocation-help span:last-child{color:#334155;text-align:right;font-weight:700}.allocation-error{margin:0 0 12px}.admin-user-box{background:#fbfcfe;border:1px solid #e6eaf0;border-radius:14px;margin-bottom:20px;padding:16px}.admin-section-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.admin-section-heading h3{margin:0;font-size:16px}.admin-user-form{gap:10px;display:grid}.admin-user-form label{color:#374151;gap:6px;font-size:11px;font-weight:700;display:grid}.admin-user-form input,.admin-user-form select{width:100%;color:var(--ink);font:inherit;background:#fff;border:1px solid #d5dae3;border-radius:8px;padding:9px 10px;font-size:12px}.admin-user-form input:focus,.admin-user-form select:focus{border-color:var(--blue);outline:3px solid #dbeafe}.admin-user-form button{color:#fff;background:var(--blue);cursor:pointer;font:inherit;border:0;border-radius:8px;padding:10px 12px;font-size:12px;font-weight:700}.admin-user-form button:disabled{cursor:wait;opacity:.65}.form-success{color:var(--green);margin:0;font-size:12px}.admin-cart-controls{gap:14px;display:grid}.admin-cycle-controls{background:#fbfcfe;border:1px solid #e6eaf0;border-radius:14px;margin-bottom:18px;padding:16px}.window-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.window-action{color:#1d4ed8;cursor:pointer;min-height:42px;font:inherit;text-align:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:9px;justify-content:center;align-items:center;padding:9px 11px;font-size:11px;font-weight:700;line-height:1.3;display:flex}.window-action:hover{background:#dbeafe;border-color:#60a5fa}.window-action:disabled{cursor:wait;opacity:.6}.window-action.admin-action-danger{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.window-action.admin-action-danger:hover{background:#fee2e2;border-color:#f87171}.window-action.admin-action-muted{color:#4b5563;background:#f9fafb;border-color:#d1d5db}.window-action.admin-action-muted:hover{background:#f3f4f6;border-color:#9ca3af}.window-action:nth-child(5){grid-column:1/-1}.custom-window-box{background:#fafbfc;border:1px solid #e5e7eb;border-radius:10px;gap:10px;margin-top:12px;padding:12px;display:grid}.custom-window-title{color:#374151;margin:0;font-size:11px;font-weight:700}.custom-window-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.custom-window-grid label{color:#4b5563;gap:5px;font-size:10px;font-weight:700;display:grid}.custom-window-grid input{width:100%;color:var(--ink);font:inherit;background:#fff;border:1px solid #d5dae3;border-radius:7px;padding:8px;font-size:11px}.custom-window-grid input:focus{border-color:var(--blue);outline:3px solid #dbeafe}.admin-cart-form{background:#fafbfc;border:1px solid #e5e7eb;border-radius:12px;grid-template-columns:1fr 1.5fr;gap:12px;padding:14px;display:grid}.admin-cart-form label{color:#374151;gap:7px;font-size:11px;font-weight:700;display:grid}.admin-cart-form select,.admin-cart-form input{width:100%;color:var(--ink);font:inherit;background:#fff;border:1px solid #d5dae3;border-radius:8px;padding:9px 10px;font-size:12px}.admin-cart-form select:focus,.admin-cart-form input:focus{border-color:var(--blue);outline:3px solid #dbeafe}.footnote{margin:18px 0 0}.user-list{gap:8px;margin-top:16px;display:grid}.user-list-toolbar{justify-content:space-between;align-items:center;gap:10px;margin-top:14px;display:flex}.user-row{background:#fbfcfe;border:1px solid #edf0f4;border-radius:12px;align-items:center;gap:11px;padding:11px 12px;display:flex}.user-row-inactive{opacity:.62}.user-status-button{color:#475569;cursor:pointer;font:inherit;background:#fff;border:1px solid #d5dae3;border-radius:7px;padding:6px 8px;font-size:10px;font-weight:700}.user-status-button:disabled{cursor:wait;opacity:.6}.user-row-actions{gap:6px;display:flex}.user-role-select{cursor:pointer;min-width:104px;font:inherit;border:0;border-radius:999px;padding:6px 8px;font-size:11px;font-weight:700}.user-role-select:disabled{cursor:default;opacity:1}.user-delete-button{color:#b91c1c;cursor:pointer;font:inherit;background:#fff4f4;border:1px solid #fecaca;border-radius:7px;padding:6px 8px;font-size:10px;font-weight:700}.user-delete-button:disabled{cursor:wait;opacity:.6}.avatar{color:#fff;background:#253858;border-radius:50%;place-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:grid}.user-info{flex:1;min-width:0}.user-info strong,.user-info span{display:block}.user-info strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.user-info span{color:var(--muted);margin-top:3px;font-size:11px}.role-regular{color:#1d4ed8;background:#eaf1ff}.role-daily{color:#92540b;background:#fff3dc}.role-admin{color:#7e22ce;background:#f6eaff}.admin-history-panel{margin-top:18px}.history-export{color:#1d4ed8;cursor:pointer;font:inherit;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:8px 12px;font-size:11px;font-weight:700}.history-export:disabled{cursor:not-allowed;opacity:.5}.history-toolbar{align-items:end;gap:10px;margin-bottom:14px;display:flex}.history-date-filter{color:var(--muted);white-space:nowrap;gap:5px;font-size:10px;font-weight:700;display:grid}.history-date-filter input{color:var(--ink);font:inherit;background:#fff;border:1px solid #d5dae3;border-radius:8px;padding:9px 11px;font-size:12px}.history-date-filter input:focus{border-color:var(--blue);outline:3px solid #dbeafe}.history-toolbar input{min-width:260px;color:var(--ink);font:inherit;background:#fff;border:1px solid #d5dae3;border-radius:8px;flex:1;padding:9px 11px;font-size:12px}.history-toolbar input:focus{border-color:var(--blue);outline:3px solid #dbeafe}.history-table-wrap{overflow-x:auto}.history-table{border-collapse:collapse;width:100%;font-size:12px}.history-table th{color:var(--muted);letter-spacing:.08em;text-align:left;text-transform:uppercase;border-bottom:1px solid #e5e7eb;padding:9px 10px;font-size:10px}.history-table td{white-space:nowrap;border-bottom:1px solid #f0f1f4;padding:11px 10px}.history-table td strong,.history-table td small{display:block}.history-table td small{color:var(--muted);margin-top:3px;font-size:10px}.history-affected{color:#b91c1c;font-size:10px;font-weight:700}.history-empty{text-align:center;margin:16px 0 0}.footer{color:var(--muted);text-align:center;padding-top:24px;font-size:12px}.auth-shell{background:var(--background);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{border:1px solid var(--line);background:var(--surface);border-radius:20px;width:min(100%,430px);padding:32px;box-shadow:0 18px 48px #14233c14}.auth-card h1{margin-bottom:8px;font-size:32px}.auth-form{gap:16px;margin-top:26px;display:grid}.auth-form label{color:#374151;gap:7px;font-size:13px;font-weight:700;display:grid}.auth-form input,.auth-form select{width:100%;color:var(--ink);font:inherit;background:#fff;border:1px solid #d5dae3;border-radius:9px;padding:12px 13px}.auth-form input:focus,.auth-form select:focus{border-color:var(--blue);outline:3px solid #dbeafe}.password-field{position:relative}.password-field input{padding-right:82px}.password-toggle{color:#64748b;cursor:pointer;background:0 0;border:0;place-items:center;width:28px;height:28px;padding:0;display:grid;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.password-toggle:hover{color:var(--blue)}.password-toggle svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:19px;height:19px}.password-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}.admin-user-form .password-field input{width:100%;color:var(--ink);font:inherit;background:#fff;border:1px solid #d5dae3;border-radius:8px;padding:9px 82px 9px 10px;font-size:12px}.admin-user-form .password-field input:focus{border-color:var(--blue);outline:3px solid #dbeafe}.auth-form button{color:#fff;background:var(--blue);cursor:pointer;font:inherit;border:0;border-radius:9px;padding:12px 14px;font-weight:700}.auth-form button:disabled{cursor:wait;opacity:.65}.auth-form .password-toggle,.admin-user-form .password-toggle{color:#64748b;width:28px;height:28px;box-shadow:none;font-size:inherit;background:0 0;border:0;border-radius:50%;padding:0}.auth-form .password-toggle:hover,.admin-user-form .password-toggle:hover{color:var(--blue);background:0 0}.auth-link-button{color:var(--blue);cursor:pointer;font:inherit;background:0 0;border:0;margin:16px auto 0;padding:0;font-size:12px;font-weight:700;display:block}.auth-link-button:disabled{cursor:wait;opacity:.55}.form-error{color:var(--red);margin:0;font-size:13px}.auth-note{color:var(--muted);margin:22px 0 0;font-size:12px;line-height:1.5}.auth-switch{color:var(--muted);text-align:center;margin:18px 0 0;font-size:12px}.auth-switch a{color:var(--blue);font-weight:700}@media (max-width:800px){.shell{padding-top:28px}.topbar,.content-grid{display:block}.topbar-actions{justify-items:start}.phase{margin-top:18px}.summary-grid{grid-template-columns:repeat(2,1fr)}.panel+.panel{margin-top:18px}.cart-grid{grid-template-columns:repeat(4,1fr)}.admin-cart-form,.window-actions{grid-template-columns:1fr}.window-action:nth-child(5){grid-column:auto}.history-toolbar{flex-direction:column;align-items:stretch}.history-date-filter input{width:100%}.history-toolbar input{min-width:0}.user-list-toolbar{flex-direction:column;align-items:stretch}}
