:root { --navy:#071426; --navy-2:#10243d; --gold:#b8872d; --gold-light:#f4e7c8; --paper:#f6f5f1; --white:#fff; --ink:#101828; --muted:#667085; --line:#e5e7eb; --green:#247a57; --green-bg:#e9f5ef; --amber:#9a6700; --amber-bg:#fff3d6; --red:#b42318; --red-bg:#fef0ee; --blue:#175cd3; --blue-bg:#eff6ff; }
* { box-sizing:border-box; }
html { background:var(--paper); color:var(--ink); }
body { margin:0; font-family:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size:16px; line-height:1.5; }
button,input,select,textarea { font:inherit; }
button,select,summary { cursor:pointer; }
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid #e8bd68; outline-offset:2px; }
button:disabled { cursor:not-allowed; opacity:.4; }
.app-shell { min-height:100vh; padding-bottom:80px; }
.topbar { height:86px; background:var(--navy); color:white; display:flex; align-items:center; justify-content:space-between; padding:18px max(20px,calc((100vw - 1160px)/2)); border-bottom:1px solid rgba(255,255,255,.1); }
.topbar h1 { margin:0; font-family:Georgia,serif; font-size:24px; font-weight:500; letter-spacing:-.02em; }
.eyebrow { margin:0 0 2px; font-size:10px; font-weight:800; letter-spacing:.17em; color:#aeb9c8; }
.eyebrow.gold,.gold { color:#b8872d; }
.avatar { width:52px;height:44px;border:1px solid #d2ab61;background:transparent;color:#f0d9a5;border-radius:999px;display:grid;place-items:center;font:800 9px Inter,sans-serif;letter-spacing:.08em; }
.access-screen { min-height:100vh;width:100%;padding:24px;display:grid;place-items:center;background:radial-gradient(circle at 50% 8%,#1a3555 0,#071426 42%,#030b15 100%); }
.access-card { width:min(410px,100%);padding:36px 26px 28px;border:1px solid rgba(210,171,97,.35);border-radius:24px;background:rgba(255,255,255,.97);box-shadow:0 28px 90px rgba(0,0,0,.42);text-align:center; }
.access-mark { width:68px;height:68px;margin:0 auto 22px;border:1px solid #d2ab61;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#f0d9a5;font:600 20px Georgia,serif; }
.access-card h1 { margin:4px 0 7px;font:600 31px Georgia,serif;letter-spacing:-.025em; }.access-card>p:not(.eyebrow) { margin:0 auto 24px;color:var(--muted);font-size:14px; }
.access-card form { text-align:left; }.access-card label { display:block;margin-bottom:7px;color:#344054;font-size:12px;font-weight:800; }.access-card input { width:100%;height:58px;border:1px solid #cdd2da;border-radius:13px;background:white;text-align:center;font-size:25px;font-weight:800;letter-spacing:.32em;padding-left:.32em; }
.access-card form button { width:100%;min-height:52px;margin-top:13px;border:0;border-radius:12px;background:var(--navy);color:white;font-size:13px;font-weight:900; }.access-card small { display:block;margin-top:19px;color:#98a2b3;font-size:10px; }.access-error { margin:9px 0 0!important;color:var(--red)!important;font-size:12px!important;text-align:center; }
.tabbar { position:sticky; top:0; z-index:30; background:var(--navy); display:flex; overflow-x:auto; padding:0 max(12px,calc((100vw - 1160px)/2)); scrollbar-width:none; }
.tabbar button { min-height:50px; border:0; border-bottom:3px solid transparent; background:none; color:#aeb9c8; padding:0 18px; font-size:13px; font-weight:700; white-space:nowrap; }
.tabbar button.active { color:white; border-color:#d2ab61; }
main { width:min(1160px,100%); margin:auto; }
.hero-dashboard { margin:20px 16px 14px; padding:22px; background:var(--navy-2); color:white; border-radius:18px; display:grid; grid-template-columns:1fr auto; gap:16px; box-shadow:0 14px 35px rgba(7,20,38,.12); }
.hero-copy h2 { margin:4px 0 0; font-size:19px; line-height:1.2; }
.hero-copy h2 span { font-family:Georgia,serif; font-size:34px; color:#f3d79c; font-weight:500; }
.hero-copy>p:last-child { color:#aeb9c8; font-size:13px; margin:6px 0 0; }
.completion-ring { --progress:0deg; width:78px;height:78px;border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at center,var(--navy-2) 56%,transparent 57%),conic-gradient(#d6a94f var(--progress),#334861 0); }
.completion-ring strong { font-size:19px; line-height:1; }
.completion-ring span { color:#aeb9c8; font-size:9px; margin-top:3px; }
.progress-track { grid-column:1/-1; height:7px; border-radius:999px; background:#30445d; overflow:hidden; }
.progress-track span { display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#a9751c,#e1bf73);transition:width .25s ease; }
.metrics { grid-column:1/-1; display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding-top:2px; }
.metrics div { border-right:1px solid #30445d; padding:2px 7px; }
.metrics div:first-child { padding-left:0; }.metrics div:last-child { border:0; }
.metrics strong { display:block;font-size:20px;font-family:Georgia,serif;color:#f8e7c1; }.metrics span { color:#aeb9c8;font-size:10px; }
.record-stats { grid-column:1/-1; display:flex;flex-wrap:wrap;gap:8px 14px;padding-top:12px;border-top:1px solid #30445d;color:#bcc5d0;font-size:11px; }.record-stats b { color:white; }.record-stats .danger,.record-stats .danger b { color:#ffb4ab; }
.controls { position:sticky;top:50px;z-index:20;background:rgba(246,245,241,.96);backdrop-filter:blur(12px);padding:12px 16px 10px;border-bottom:1px solid var(--line); }
.search { display:block;position:relative; }.search>span { position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:0; }.search>span::before { content:"";display:block;width:15px;height:15px;border:2px solid #667085;border-radius:50%; }.search>span::after { content:"";position:absolute;width:7px;height:2px;background:#667085;transform:rotate(45deg);right:-5px;bottom:-2px; }
.search input { width:100%;height:48px;border:1px solid #d5d9df;border-radius:12px;background:white;padding:0 14px 0 44px;font-size:15px;box-shadow:0 1px 2px rgba(16,24,40,.03); }
.filter-row { display:flex;gap:8px;margin-top:9px;overflow-x:auto;scrollbar-width:none; }.filter-row select { min-height:42px;max-width:140px;border:1px solid #d5d9df;background:white;border-radius:10px;padding:0 30px 0 11px;font-size:12px;font-weight:700;color:#344054; }.missing-toggle { min-height:42px;display:flex;align-items:center;gap:7px;background:white;border:1px solid #d5d9df;border-radius:10px;padding:0 12px;white-space:nowrap;font-size:12px;font-weight:700; }.missing-toggle input { width:17px;height:17px;accent-color:var(--gold); }
.results-count { font-size:11px;color:var(--muted);margin:8px 2px 0; }
.inventory-list { padding:12px 16px 40px;display:grid;gap:12px; }
.inventory-card { background:white;border:1px solid #e1e4e8;border-radius:15px;padding:12px;display:grid;grid-template-columns:98px minmax(0,1fr);gap:13px;box-shadow:0 2px 8px rgba(16,24,40,.035); }
.inventory-card.issue { border-color:#ef9a91;box-shadow:0 0 0 2px var(--red-bg); }.inventory-card.overage { border-color:#e8bd68; }
.product-image { position:relative;width:98px;height:112px;border:0;background:#f2f2f0;border-radius:11px;padding:0;overflow:hidden;align-self:start; }.product-image img { width:100%;height:98px;object-fit:cover;display:block; }.zoom-label { position:absolute;bottom:0;left:0;right:0;height:20px;display:grid;place-items:center;background:rgba(7,20,38,.88);color:white;font-size:8px;letter-spacing:.05em;text-transform:uppercase; }.image-placeholder { width:100%;height:100%;display:grid;place-items:center;text-align:center;padding:8px;color:#8a7450;background:#f7f1e4;font-size:11px;font-weight:700; }
.product-heading { display:flex;justify-content:space-between;gap:8px;align-items:start; }.category-label { color:#9a6700;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase; }.product-heading h3 { margin:2px 0 1px;font-family:Georgia,serif;font-weight:600;font-size:17px;line-height:1.2;letter-spacing:-.015em; }.product-heading p { margin:0;color:var(--muted);font-size:12px; }.status-badge { flex:0 0 auto;border-radius:999px;padding:4px 7px;font-size:8px;font-weight:900;letter-spacing:.06em; }.status-badge.pending { background:#f2f4f7;color:#475467; }.status-badge.partial { background:var(--amber-bg);color:var(--amber); }.status-badge.complete { background:var(--green-bg);color:var(--green); }.status-badge.overage { background:#fff1df;color:#a15c07; }.status-badge.issue { background:var(--red-bg);color:var(--red); }
.quantity-summary { display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:12px 0 9px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.04em; }.quantity-summary span { border-left:1px solid var(--line);padding-left:7px; }.quantity-summary span:first-child { border:0;padding-left:0; }.quantity-summary b { display:block;color:var(--ink);font-size:15px;letter-spacing:0; }.quantity-summary .overage-text,.quantity-summary .overage-text b { color:#a15c07; }
.quantity-controls { height:50px;display:grid;grid-template-columns:52px 1fr 52px;border:1px solid #d6d9df;border-radius:12px;overflow:hidden;background:#fafafa; }.quantity-controls button { border:0;background:white;color:var(--navy);font-size:28px;font-weight:400; }.quantity-controls button:last-child { background:var(--navy);color:white; }.quantity-controls>span { display:grid;place-items:center;font-size:21px;font-weight:800;border-left:1px solid var(--line);border-right:1px solid var(--line); }
.issue-banner { margin-top:9px;border-radius:9px;background:var(--red-bg);color:var(--red);padding:9px;display:flex;justify-content:space-between;align-items:center;font-size:11px; }.issue-banner p { margin:2px 0 0;color:#912018; }.issue-banner button { min-height:35px;border:1px solid #e57d73;border-radius:8px;background:white;color:var(--red);font-size:11px;font-weight:800; }
.card-actions { grid-column:1/-1;display:flex;align-items:center;gap:4px;margin-top:10px;border-top:1px solid var(--line);padding-top:9px;flex-wrap:wrap; }.card-actions>button,.card-actions summary { min-height:38px;display:flex;align-items:center;border:0;background:none;padding:0 9px;color:#475467;font-size:11px;font-weight:800;list-style:none; }.card-actions>button { color:var(--red);margin-left:auto; }.card-actions details { position:relative; }.card-actions textarea { position:absolute;z-index:5;top:42px;left:0;width:min(300px,75vw);height:92px;border:1px solid #d5d9df;border-radius:10px;padding:10px;background:white;box-shadow:0 12px 28px rgba(16,24,40,.18); }.details-panel dl { position:absolute;z-index:5;top:42px;right:0;width:260px;margin:0;border:1px solid #d5d9df;border-radius:10px;padding:10px;background:white;box-shadow:0 12px 28px rgba(16,24,40,.18); }.details-panel dl div { display:flex;justify-content:space-between;gap:12px;padding:6px;border-bottom:1px solid var(--line);font-size:11px; }.details-panel dl div:last-child { border:0; }.details-panel dt { color:var(--muted); }.details-panel dd { margin:0;text-align:right;font-weight:700; }
.empty-state { grid-column:1/-1;text-align:center;border:1px dashed #cbd0d8;border-radius:14px;padding:42px 20px;background:rgba(255,255,255,.5); }.empty-state h3 { margin:0;font-family:Georgia,serif; }.empty-state p { margin:5px 0;color:var(--muted);font-size:13px; }
.secondary-view { padding:28px 16px 60px; }.secondary-view>h2 { margin:3px 0 2px;font-family:Georgia,serif;font-size:28px; }.secondary-view>p:not(.eyebrow) { margin:0 0 20px;color:var(--muted);font-size:13px; }
.warning-banner,.reconciliation-banner { margin:20px 0;padding:16px;border:1px solid #efd28d;border-radius:12px;background:var(--amber-bg);display:flex;flex-direction:column;color:#6f4c00; }.warning-banner span,.reconciliation-banner span { margin-top:4px;font-size:12px; }.reconciliation-banner.success { background:var(--green-bg);border-color:#9fd4bd;color:#176345; }
.refund-grid,.issue-list { display:grid;gap:10px; }.refund-grid article,.issue-list article { display:grid;grid-template-columns:70px 1fr auto;gap:12px;align-items:center;background:white;border:1px solid var(--line);border-radius:13px;padding:10px; }.refund-grid img,.issue-list img { width:70px;height:70px;border-radius:9px;object-fit:cover;background:#f3f3f2; }.refund-grid h3,.issue-list h3 { margin:0;font:600 15px Georgia,serif; }.refund-grid p,.issue-list p { margin:2px 0;color:var(--muted);font-size:11px; }.refund-grid span { font-size:11px;color:#8a5d00; }.refund-grid>article>strong { font-size:12px; }.issue-list article { grid-template-columns:64px 1fr; }.issue-list img { width:64px;height:64px; }.issue-list article>button { grid-column:2;justify-self:start;min-height:40px;border:1px solid #d5d9df;border-radius:9px;background:white;padding:0 12px;font-size:11px;font-weight:800; }.issue-list article span { color:var(--red);font-size:10px;font-weight:900;text-transform:uppercase; }.issue-list blockquote { margin:7px 0 0;padding-left:8px;border-left:2px solid #e57d73;color:#667085;font-size:11px; }
.summary-actions { display:flex;gap:8px;margin:15px 0 22px; }.summary-actions button,.primary-button,.error-screen button { min-height:46px;border:1px solid #cbd0d8;border-radius:10px;background:white;padding:0 16px;font-size:12px;font-weight:800; }.primary-button { background:var(--navy)!important;color:white!important;border-color:var(--navy)!important; }
.category-table { background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden; }.category-table>div { display:grid;grid-template-columns:1.4fr repeat(4,.8fr);padding:12px 10px;border-top:1px solid var(--line);font-size:11px;text-align:right; }.category-table>div>*:first-child { text-align:left; }.category-table .table-head { border:0;background:#f2f4f7;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:800; }
.admin-cards { display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px; }.admin-cards article { background:white;border:1px solid var(--line);border-radius:12px;padding:13px 9px; }.admin-cards strong { display:block;font:600 22px Georgia,serif; }.admin-cards span { color:var(--muted);font-size:9px;line-height:1.2;display:block; }
.activity-title { margin-top:34px!important;font-size:22px!important; }.activity-list { background:white;border:1px solid var(--line);border-radius:13px;padding:0 13px; }.activity-list article { display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line); }.activity-list article:last-child { border:0; }.activity-dot { width:8px;height:8px;border-radius:50%;background:var(--gold); }.activity-list b { font-size:11px; }.activity-list p { margin:1px 0;color:var(--muted);font-size:10px; }.activity-list time { color:#98a2b3;font-size:9px; }.quiet { color:var(--muted);font-size:12px;padding:16px; }
.modal-backdrop { position:fixed;inset:0;z-index:60;background:rgba(2,10,20,.78);display:grid;place-items:center;padding:18px;backdrop-filter:blur(5px); }.image-modal,.form-modal { position:relative;width:min(440px,100%);max-height:92vh;overflow:auto;background:white;border-radius:18px;padding:18px;box-shadow:0 24px 80px rgba(0,0,0,.35); }.modal-close { display:block;margin-left:auto;min-height:40px;border:0;background:#f2f4f7;border-radius:9px;padding:0 12px;font-size:11px;font-weight:800; }.image-modal img { width:100%;aspect-ratio:1;object-fit:contain;border-radius:12px;background:#f4f4f2;margin-top:12px; }.image-modal h2,.form-modal h2 { margin:13px 0 2px;font:600 24px Georgia,serif; }.image-modal p,.form-modal>p:not(.eyebrow) { margin:0;color:var(--muted); }.image-placeholder.large { aspect-ratio:1;margin-top:12px;border-radius:12px; }.form-modal label { display:block;margin:18px 0 0;color:#344054;font-size:12px;font-weight:800; }.form-modal select,.form-modal textarea { width:100%;border:1px solid #d5d9df;border-radius:10px;background:white;margin-top:6px;padding:11px;font-weight:400; }.form-modal select { height:46px; }.form-modal textarea { height:92px;resize:vertical; }.form-modal .primary-button { width:100%;margin-top:18px; }
.undo-toast { position:fixed;z-index:70;left:50%;bottom:18px;transform:translateX(-50%);width:min(360px,calc(100% - 32px));height:54px;border-radius:13px;background:#101828;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 16px;box-shadow:0 16px 45px rgba(16,24,40,.35);font-size:12px; }.undo-toast button { height:40px;border:0;border-radius:9px;background:#f3d79c;color:#543b0f;padding:0 16px;font-weight:900; }.error-toast { position:fixed;z-index:80;top:16px;left:50%;transform:translateX(-50%);width:min(520px,calc(100% - 32px));min-height:52px;border:1px solid #e57d73;border-radius:11px;background:var(--red-bg);color:var(--red);box-shadow:0 12px 35px rgba(16,24,40,.16); }.loading-screen,.error-screen { min-height:100vh;display:grid;place-content:center;text-align:center;background:var(--navy);color:white;padding:24px; }.loading-mark { margin:auto;width:58px;height:58px;border:1px solid #d2ab61;border-radius:50%;display:grid;place-items:center;font:600 18px Georgia,serif;color:#f0d9a5; }.loading-screen p { color:#aeb9c8;font-size:13px; }.error-screen h1 { font-family:Georgia,serif; }.error-screen button { margin:auto; }

@media (min-width:760px) { .topbar { height:94px; }.topbar h1 { font-size:28px; }.hero-dashboard { margin:28px 20px 18px;padding:26px 30px; }.controls { padding-left:20px;padding-right:20px; }.inventory-list { grid-template-columns:repeat(2,minmax(0,1fr));padding:18px 20px 60px; }.secondary-view { padding:36px 20px 70px; }.refund-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.issue-list { grid-template-columns:repeat(2,minmax(0,1fr)); }.summary-view { max-width:900px;margin:auto; }.hero-copy h2 { font-size:24px; }.hero-copy h2 span { font-size:42px; } }
@media (min-width:1100px) { .inventory-list { grid-template-columns:repeat(3,minmax(0,1fr)); }.refund-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.controls { border:1px solid var(--line);border-radius:14px;margin:0 20px;top:56px; }.hero-dashboard { border-radius:20px; }.inventory-card { grid-template-columns:88px minmax(0,1fr); }.product-image { width:88px;height:102px; }.product-image img { height:88px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important;transition:none!important;animation:none!important; } }
@media print { .topbar,.tabbar,.controls,.summary-actions,.undo-toast,.error-toast { display:none!important; }.app-shell { padding:0; }.secondary-view { padding:0; }.reconciliation-banner,.category-table,.admin-cards,.activity-list { break-inside:avoid; } body { background:white; } }
