:root{--bg:#eef4fb;--ink:#102033;--muted:#65758b;--line:#d9e4f1;--accent:#0f766e;--accent2:#2563eb;--danger:#b91c1c;--card:#ffffff;--shadow:0 22px 60px rgba(15,35,65,.16)}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:linear-gradient(135deg,#eef4fb 0,#f8fbff 45%,#eef6ff 100%);color:var(--ink)}a{text-decoration:none}.button{border:0;border-radius:14px;padding:11px 16px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary{background:linear-gradient(135deg,var(--accent2),var(--accent));color:white;box-shadow:0 12px 30px rgba(37,99,235,.22)}.secondary{background:#edf5ff;color:#15395f;border:1px solid #d3e3f8}.full{width:100%}.input,input,select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#fff;font-size:14px;outline:none}.input:focus,input:focus,select:focus,textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 4px rgba(96,165,250,.16)}.message{display:block;color:var(--danger);margin-top:14px;font-weight:700}.app-body{min-height:100vh}.side-nav{position:fixed;left:0;top:0;bottom:0;width:280px;padding:26px;background:linear-gradient(180deg,#0f172a,#123f5f 55%,#0f766e);color:white;box-shadow:10px 0 40px rgba(15,23,42,.22);z-index:8}.brand-mark{width:78px;height:78px;border-radius:24px;background:linear-gradient(135deg,#38bdf8,#2dd4bf);display:flex;align-items:center;justify-content:center;font-size:23px;font-weight:950;letter-spacing:1px;box-shadow:0 18px 45px rgba(45,212,191,.3)}.side-nav h2{margin:22px 0 8px;font-size:28px}.side-nav p{color:#d8eef8;line-height:1.45}.nav-pill{display:block;color:white;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);border-radius:16px;padding:12px 14px;margin-top:12px;font-weight:800}.nav-pill:hover,.nav-pill.active{background:rgba(255,255,255,.25)}.logout-link{margin-top:26px}.main-board{margin-left:280px;padding:28px}.glass{background:rgba(255,255,255,.82);border:1px solid rgba(216,228,241,.9);box-shadow:var(--shadow);backdrop-filter:blur(16px)}.hero-card{min-height:230px;border-radius:32px;padding:34px;display:flex;justify-content:space-between;align-items:center;overflow:hidden;position:relative}.eyebrow{display:inline-block;background:#dff7f1;color:#0f766e;border-radius:999px;padding:7px 12px;font-weight:900;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.hero-card h1{font-size:42px;line-height:1.05;margin:16px 0 10px}.hero-card p{font-size:17px;color:var(--muted);max-width:760px}.hero-visual{width:210px;height:170px;position:relative}.orb{position:absolute;right:0;top:6px;width:132px;height:132px;border-radius:42px;background:linear-gradient(135deg,#2563eb,#2dd4bf);box-shadow:0 24px 60px rgba(37,99,235,.33);transform:rotate(12deg)}.mini-chart{position:absolute;left:0;bottom:0;width:150px;height:95px;border-radius:22px;background:#fff;box-shadow:0 15px 45px rgba(15,35,65,.18);display:flex;align-items:flex-end;gap:10px;padding:18px}.mini-chart span{flex:1;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,#38bdf8,#0f766e)}.mini-chart span:nth-child(1){height:35%}.mini-chart span:nth-child(2){height:62%}.mini-chart span:nth-child(3){height:48%}.mini-chart span:nth-child(4){height:82%}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}.stat-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:0 14px 40px rgba(15,35,65,.08)}.stat-card strong{display:block;font-size:30px;color:#0f766e}.stat-card span{color:var(--muted);font-weight:650}.tip-card strong{font-size:18px;color:#2563eb}.tool-row{border-radius:24px;padding:16px;display:grid;grid-template-columns:1fr 260px;gap:14px;margin-bottom:20px}.report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:18px}.report-card{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:28px;padding:22px;box-shadow:0 14px 36px rgba(15,35,65,.09);transition:.18s transform,.18s box-shadow;min-height:235px;display:flex;flex-direction:column}.report-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.card-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.badge,.db-tag{display:inline-block;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900}.badge{background:#e0f2fe;color:#075985}.db-tag{background:#ecfdf5;color:#047857}.report-card h3{margin:16px 0 8px;font-size:20px}.report-card p{color:var(--muted);line-height:1.45;flex:1}.report-card small{color:#7c8aa0;word-break:break-word}.card-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.topbar{height:72px;display:flex;align-items:center;gap:24px;padding:0 28px;background:#0f172a;color:white;border-bottom:1px solid rgba(255,255,255,.12);position:sticky;top:0;z-index:5}.topbar .back{color:white;font-weight:900}.topbar div{display:flex;flex-direction:column}.topbar span{font-size:12px;color:#c6d5e8;margin-top:3px}.report-shell{display:grid;grid-template-columns:365px 1fr;gap:22px;padding:22px}.panel{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:28px;padding:22px;box-shadow:0 15px 42px rgba(15,35,65,.1)}.filter-panel{height:calc(100vh - 116px);overflow:auto;position:sticky;top:92px}.panel-title{font-size:18px;font-weight:950;margin-bottom:14px}.small-title{font-size:14px;margin:0 0 8px}.filter-panel label{display:block;font-size:13px;font-weight:900;margin:14px 0 7px;color:#29425f}.field-tip{font-size:12px;color:#718096;margin-top:6px}.smart-help,.hint{padding:13px;border:1px dashed #a8c4df;border-radius:16px;background:#f6fbff;color:#5f7187;margin:14px 0;line-height:1.45}.actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.stacked-actions .button{flex:1}.email-panel{background:#f8fbff;border:1px solid var(--line);border-radius:18px;padding:14px;margin-top:16px}.result-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.result-toolbar input{max-width:430px}.toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.count-pill{background:#ecfdf5;color:#047857;border-radius:999px;padding:10px 14px;font-weight:900}.column-panel{background:#f8fbff;border:1px solid var(--line);border-radius:18px;padding:14px;margin-bottom:14px}.field-list{display:flex;flex-wrap:wrap;gap:8px;max-height:150px;overflow:auto}.field-chip{background:white;border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;color:#34445c}.quick-insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:14px}.insight-card{background:linear-gradient(135deg,#f8fbff,#eef7ff);border:1px solid var(--line);border-radius:18px;padding:13px}.insight-card b{display:block;color:#15395f}.insight-card span{display:block;color:#64748b;margin-top:4px;font-size:13px}.table-wrap{overflow:auto;max-height:calc(100vh - 255px);border-radius:18px;border:1px solid var(--line)}.data-grid{width:100%;border-collapse:separate;border-spacing:0;background:#fff;font-size:13px}.data-grid th{position:sticky;top:0;background:#123f5f;color:#fff;text-align:left;padding:12px;white-space:nowrap;z-index:2}.data-grid th a{color:#fff}.data-grid td{padding:10px 12px;border-bottom:1px solid #edf2f7;white-space:nowrap}.data-grid tr:nth-child(even) td{background:#f8fbff}.login-body{min-height:100vh;background:radial-gradient(circle at top left,#284b63 0,#101820 40%,#071018 100%);display:flex;align-items:center;justify-content:center;margin:0;font-family:Segoe UI,Arial,sans-serif;color:#fff}.login-wrap{width:min(1050px,94vw);display:grid;grid-template-columns:1.2fr .8fr;gap:28px}.login-art{padding:44px;border-radius:28px;background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.04));box-shadow:0 30px 80px rgba(0,0,0,.35);min-height:420px;display:flex;flex-direction:column;justify-content:center}.big-logo{width:130px;height:130px;border-radius:34px;background:linear-gradient(135deg,#1fb6ff,#2dd4bf);display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:900;letter-spacing:2px;box-shadow:0 20px 60px rgba(45,212,191,.25);margin-bottom:24px}.login-art h1{font-size:44px;line-height:1.05;margin:0 0 12px}.login-art p{font-size:18px;color:#d7e5ed}.login-card{background:#fff;color:#17212b;border-radius:28px;padding:34px;box-shadow:0 30px 80px rgba(0,0,0,.38);align-self:center}.login-card h2{margin:0 0 8px;font-size:30px}.login-card label{display:block;font-weight:700;margin:18px 0 7px}.error{color:#b91c1c}@media(max-width:1050px){.side-nav{position:relative;width:auto}.main-board{margin-left:0}.report-shell{grid-template-columns:1fr}.filter-panel{position:relative;height:auto;top:0}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.hero-card{flex-direction:column;align-items:flex-start}.hero-card h1{font-size:32px}.tool-row{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr}.result-toolbar{align-items:flex-start;flex-direction:column}.login-wrap{grid-template-columns:1fr}.login-art{min-height:auto}.login-art h1{font-size:34px}}
.shell{padding:24px;display:grid;gap:18px}.btn{border:0;border-radius:14px;padding:11px 16px;font-weight:800;cursor:pointer;background:linear-gradient(135deg,var(--accent2),var(--accent));color:white}.grid{width:100%;border-collapse:collapse;background:white}.grid th{background:#123f5f;color:white;padding:10px;text-align:left}.grid td{border-bottom:1px solid #edf2f7;padding:9px}.ghost{color:white;background:rgba(255,255,255,.16);border-radius:14px;padding:10px 14px;font-weight:800}


/* SWI perpetual inventory report */
.swi-hero { background: radial-gradient(circle at top left,#193957,#0d1728 62%,#07101e); color:#fff; }
.swi-hero h1 { color:#fff; margin:8px 0 10px; font-size:32px; }
.swi-hero p { color:#dbeafe; max-width:840px; }
.tip-card { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.24); border-radius:18px; padding:16px; min-width:260px; box-shadow:0 18px 50px rgba(0,0,0,.18); }
.metric-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:18px 0; }
.metric { background:#fff; border:1px solid #e5e7eb; border-radius:18px; padding:18px; box-shadow:0 14px 35px rgba(15,23,42,.08); }
.metric span { display:block; color:#64748b; font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.metric b { display:block; font-size:22px; color:#0f172a; margin-top:6px; }
.status-line { display:block; margin:14px 0; padding:12px 14px; background:#eef6ff; color:#0f3b66; border-left:5px solid #2563eb; border-radius:12px; }
.muted { color:#64748b; }
@media(max-width:900px){.metric-row{grid-template-columns:1fr}.swi-hero{display:block}.tip-card{margin-top:12px}}
.featured-card { border:2px solid #38bdf8; background:linear-gradient(145deg,#ffffff,#eff8ff); }


/* Movable dashboard widgets */
.dashboard-tool-row{grid-template-columns:1fr 260px 190px;align-items:center}.layout-note{border-radius:18px;padding:12px 16px;margin:-6px 0 18px;color:#334155}.widget-grid{align-items:stretch}.widget-card{position:relative;cursor:grab}.widget-card.dragging{opacity:.48;transform:scale(.98);cursor:grabbing}.drag-handle{position:absolute;right:16px;top:14px;background:#f1f5f9;border:1px solid #dbe7f3;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;color:#475569;user-select:none}.widget-card .card-top{margin-top:22px}.widget-card:hover .drag-handle{background:#e0f2fe;color:#075985}.report-card[style*="display: none"]{order:9999}@media(max-width:860px){.dashboard-tool-row{grid-template-columns:1fr}.drag-handle{position:static;display:inline-block;margin-bottom:8px}.widget-card .card-top{margin-top:0}}


/* Global animated report loading overlay */
.report-loading-overlay{position:fixed;inset:0;background:rgba(7,16,30,.72);backdrop-filter:blur(6px);z-index:99999;display:none;align-items:center;justify-content:center;padding:20px}.report-loading-card{width:min(430px,92vw);background:#fff;border:1px solid #dbe7f3;border-radius:26px;padding:28px;text-align:center;box-shadow:0 30px 90px rgba(0,0,0,.35)}.report-spinner{width:72px;height:72px;margin:0 auto 18px;border-radius:50%;border:7px solid #e5eef8;border-top-color:#2563eb;border-right-color:#0f766e;animation:reportSpin .85s linear infinite}.report-loading-card h3{margin:0 0 8px;color:#0f172a;font-size:24px}.report-loading-card p{margin:0;color:#64748b;line-height:1.45}.report-loading-time{margin-top:14px;font-weight:900;color:#0f766e;font-variant-numeric:tabular-nums}.report-loading-sub{margin-top:10px;background:#eef6ff;color:#15395f;border-radius:14px;padding:10px;font-size:13px}.load-complete-toast{position:fixed;right:22px;bottom:22px;background:#052e24;color:#ecfdf5;border:1px solid rgba(45,212,191,.5);border-radius:18px;padding:14px 18px;box-shadow:0 18px 50px rgba(5,46,36,.25);z-index:99998;font-weight:800;display:none}.load-complete-toast span{display:block;color:#a7f3d0;font-size:12px;font-weight:700;margin-top:2px}.report-cancel-button{margin-top:18px;border:0;border-radius:14px;padding:12px 18px;background:#ef4444;color:#fff;font-weight:900;cursor:pointer;box-shadow:0 12px 28px rgba(239,68,68,.28)}.report-cancel-button:hover{background:#dc2626}.report-cancel-button:active{transform:translateY(1px)}@keyframes reportSpin{to{transform:rotate(360deg)}}
