*{font-family:'Inter',sans-serif;box-sizing:border-box;}
:root{--brand:#0284c7;--brand-light:#e0f2fe;--sidebar:#0b2545;--sidebar-item:#13355e;--accent:#38bdf8;}
html,body{height:100%;margin:0;}
body{background:#f0f4f8;overflow:hidden;}
#app{height:100vh;overflow:hidden;}

/* ── Sidebar ── */
#sidebar{width:248px;height:100vh;background:var(--sidebar);display:flex;flex-direction:column;transition:width .22s cubic-bezier(.4,0,.2,1);flex-shrink:0;overflow:hidden;}
#sidebar.collapsed{width:66px;}
#sidebar.collapsed .nav-label,#sidebar.collapsed .brand-text,#sidebar.collapsed .section-label{display:none;}
#sidebar.collapsed .nav-item{justify-content:center;padding:10px;}
#sidebar.collapsed #logo-wrap{justify-content:center;padding:16px 0;}
.section-label{font-size:10px;font-weight:700;color:#475569;letter-spacing:.08em;text-transform:uppercase;padding:12px 16px 4px;}
.nav-item{display:flex;align-items:center;gap:11px;padding:9px 14px;border-radius:8px;margin:1px 8px;cursor:pointer;color:#94a3b8;transition:all .15s;font-size:13.5px;font-weight:500;text-decoration:none;}
.nav-item:hover{background:var(--sidebar-item);color:#e2e8f0;}
.nav-item.active{background:var(--brand);color:#fff;box-shadow:0 2px 8px rgba(2,132,199,.35);}
.nav-item svg{flex-shrink:0;width:17px;height:17px;}
.nav-badge{background:#ef4444;color:#fff;font-size:10px;font-weight:700;border-radius:99px;padding:1px 6px;margin-left:auto;}

/* ── Topbar ── */
#topbar{height:66px;background-color:#e3f1ff;border-bottom:1px solid #cfe6fb;display:flex;align-items:center;padding:0 20px;gap:10px;position:sticky;top:0;z-index:40;box-shadow:0 1px 3px rgba(0,0,0,.06);}
#topbar::before{content:'';position:absolute;top:0;bottom:0;left:0;width:300%;z-index:-1;background-image:url('../img/topbar-ocean.svg');background-repeat:repeat-x;background-size:1130px 100%;background-position:0 bottom;animation:topbar-sail 34s linear infinite;pointer-events:none;}
@keyframes topbar-sail{from{transform:translateX(0);}to{transform:translateX(-1130px);}}
@media (prefers-reduced-motion:reduce){#topbar::before{animation:none;}}

/* ── Pages ── */
.page{display:none;animation:fadeUp .2s ease;}
.page.active{display:block;}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ── Cards ── */
.card{background:#fff;border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,.07),0 4px 16px rgba(0,0,0,.04);}
.card-header{padding:16px 20px;border-bottom:1px solid #f1f5f9;display:flex;align-items:center;justify-content:space-between;}
.card-title{font-size:14px;font-weight:700;color:#1e293b;}

/* ── Stat cards ── */
.kpi{border-radius:14px;padding:20px 22px;position:relative;overflow:hidden;}
.kpi::after{content:'';position:absolute;right:-20px;top:-20px;width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.1);}

/* ── Inputs ── */
.inp{width:100%;border:1.5px solid #e2e8f0;border-radius:9px;padding:8px 12px;font-size:13.5px;color:#1e293b;outline:none;transition:border .15s,box-shadow .15s;background:#fff;}
.inp:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(2,132,199,.1);}
select.inp{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px;}
.lbl{font-size:12px;font-weight:600;color:#475569;margin-bottom:5px;display:block;}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;gap:6px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .15s;padding:8px 16px;}
.btn-primary{background:var(--brand);color:#fff;box-shadow:0 1px 4px rgba(2,132,199,.3);}
.btn-primary:hover{background:#0c4a6e;box-shadow:0 2px 8px rgba(2,132,199,.4);}
.btn-ghost{background:transparent;color:#475569;border:1.5px solid #e2e8f0;}
.btn-ghost:hover{background:#f8fafc;color:#1e293b;}
.btn-danger{background:#fee2e2;color:#dc2626;}
.btn-danger:hover{background:#fecaca;}
.btn-sm{padding:5px 12px;font-size:12px;border-radius:7px;}
.btn-icon{padding:7px;border-radius:8px;background:transparent;border:1.5px solid #e2e8f0;color:#64748b;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s;}
.btn-icon:hover{background:#f1f5f9;color:#1e293b;}

/* ── Tables ── */
table{width:100%;border-collapse:collapse;}
thead th{background:#f8fafc;color:#64748b;font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;padding:10px 14px;border-bottom:1.5px solid #e2e8f0;text-align:left;white-space:nowrap;}
tbody tr{border-bottom:1px solid #f1f5f9;transition:background .1s;}
tbody tr:hover{background:#f8fafc;}
tbody td{padding:11px 14px;color:#334155;font-size:13.5px;}

/* ── Badges ── */
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:99px;font-size:11px;font-weight:700;}
.badge-blue{background:#e0f2fe;color:#075985;}
.badge-green{background:#dcfce7;color:#15803d;}
.badge-amber{background:#fef9c3;color:#b45309;}
.badge-red{background:#fee2e2;color:#dc2626;}
.badge-slate{background:#f1f5f9;color:#475569;}

/* ── Toggle ── */
.toggle{display:flex;background:#f1f5f9;border-radius:9px;padding:3px;gap:2px;}
.toggle-btn{padding:5px 13px;border-radius:7px;font-size:12.5px;font-weight:600;cursor:pointer;color:#64748b;transition:all .15s;border:none;background:transparent;}
.toggle-btn.active{background:#fff;color:var(--brand);box-shadow:0 1px 4px rgba(0,0,0,.1);}

/* ── Dropdown ── */
.dd-wrap{position:relative;display:inline-block;}
.dd-menu{display:none;position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.12);min-width:240px;z-index:100;overflow:hidden;animation:fadeUp .15s ease;}
.dd-menu.open{display:block;}
.dd-item{padding:10px 16px;font-size:13.5px;color:#334155;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background .1s;}
.dd-item:hover{background:#f8fafc;}
.dd-divider{border:none;border-top:1px solid #f1f5f9;margin:4px 0;}

/* ── Notification ── */
.notif-dot{width:8px;height:8px;background:#ef4444;border-radius:50%;position:absolute;top:6px;right:6px;border:2px solid #fff;}

/* ── Modal ── */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(3px);z-index:200;align-items:center;justify-content:center;}
.modal-bg.open{display:flex;}
.modal{background:#fff;border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.2);padding:0;overflow:hidden;width:100%;animation:fadeUp .2s ease;}
.modal-header{padding:20px 24px;border-bottom:1px solid #f1f5f9;display:flex;align-items:center;justify-content:space-between;}
.modal-body{padding:24px;}
.modal-footer{padding:16px 24px;border-top:1px solid #f1f5f9;display:flex;justify-content:flex-end;gap:10px;background:#f8fafc;}

/* ── Upload zone ── */
.upload-zone{border:2px dashed #cbd5e1;border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .15s;}
.upload-zone:hover{border-color:var(--brand);background:#f0f9ff;}

/* ── Reminders ── */
.reminder-item{border:1.5px solid #e2e8f0;border-radius:10px;padding:14px 16px;position:relative;}
.reminder-item.urgent{border-color:#fca5a5;background:#fff7f7;}
.reminder-item.admin{border-color:#7dd3fc;background:#f0f9ff;}

/* ── Login ── */
#login-page{min-height:100vh;background:linear-gradient(135deg,#0b2545 0%,#0284c7 60%,#38bdf8 100%);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
#login-page::before{content:'';position:absolute;width:600px;height:600px;border-radius:50%;background:rgba(255,255,255,.03);top:-200px;left:-100px;}
#login-page::after{content:'';position:absolute;width:400px;height:400px;border-radius:50%;background:rgba(255,255,255,.04);bottom:-150px;right:-50px;}

/* ── Chart ── */
.chart-box{position:relative;height:190px;}

/* ── Scrollbar ── */
::-webkit-scrollbar{width:5px;height:5px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:99px;}

/* ── Aging cards ── */
.aging-red{background:linear-gradient(135deg,#ef4444,#b91c1c);}
.aging-orange{background:linear-gradient(135deg,#f97316,#c2410c);}
.aging-green{background:linear-gradient(135deg,#22c55e,#15803d);}
.aging-blue{background:linear-gradient(135deg,#0284c7,#38bdf8);}

/* ── Topbar items ── */
.tb-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:1.5px solid #e2e8f0;background:#fff;color:#374151;transition:all .15s;white-space:nowrap;}
.tb-btn:hover{background:#f8fafc;border-color:#cbd5e1;}
.tb-select{padding:6px 28px 6px 10px;border-radius:8px;font-size:13px;font-weight:600;border:1.5px solid #e2e8f0;background:#fff;color:#374151;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;cursor:pointer;outline:none;}

/* ── Progress bar ── */
.prog-bar{height:6px;background:#e2e8f0;border-radius:99px;overflow:hidden;}
.prog-fill{height:100%;border-radius:99px;background:var(--brand);}

/* ── Report list ── */
.rpt-item{padding:12px 14px;cursor:pointer;border-radius:9px;transition:background .1s;border:1.5px solid transparent;}
.rpt-item:hover{background:#f8fafc;}
.rpt-item.active{background:#f0f9ff;border-color:#bae6fd;}

/* ── Avatar ── */
.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#0284c7,#38bdf8);display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700;flex-shrink:0;cursor:pointer;}

/* ── Invoice History Timeline ── */
.tl-wrap{position:relative;padding-left:52px;}
.tl-wrap::before{content:'';position:absolute;left:19px;top:8px;bottom:8px;width:2px;background:linear-gradient(to bottom,#0284c722,#0284c755,#0284c722);}
.tl-entry{position:relative;margin-bottom:0;padding-bottom:32px;}
.tl-entry:last-child{padding-bottom:0;}
.tl-dot{position:absolute;left:-40px;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:1;}
.tl-dot-blue{background:linear-gradient(135deg,#0284c7,#38bdf8);}
.tl-dot-green{background:linear-gradient(135deg,#16a34a,#22c55e);}
.tl-dot-red{background:linear-gradient(135deg,#dc2626,#ef4444);}
.tl-dot-amber{background:linear-gradient(135deg,#b45309,#f59e0b);}
.tl-dot-purple{background:linear-gradient(135deg,#7c3aed,#a855f7);}
.tl-dot-slate{background:linear-gradient(135deg,#475569,#94a3b8);}
.tl-card{background:#fff;border:1.5px solid #e2e8f0;border-radius:14px;padding:16px 18px;transition:box-shadow .15s,border-color .15s;cursor:default;}
.tl-card:hover{box-shadow:0 4px 20px rgba(2,132,199,.1);border-color:#bae6fd;}
.tl-time{font-size:11px;color:#94a3b8;font-weight:600;letter-spacing:.03em;}
.tl-actor{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.tl-actor-av{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff;flex-shrink:0;}
.tl-title{font-size:14px;font-weight:700;color:#1e293b;margin-bottom:3px;}
.tl-desc{font-size:12.5px;color:#64748b;line-height:1.5;}
.tl-note{background:#f8fafc;border-left:3px solid #0284c7;border-radius:0 8px 8px 0;padding:8px 12px;margin-top:10px;font-size:12px;color:#475569;font-style:italic;}
.tl-note-red{border-left-color:#ef4444;background:#fff7f7;}
.tl-note-green{border-left-color:#22c55e;background:#f0fdf4;}
.tl-note-amber{border-left-color:#f59e0b;background:#fffbeb;}
.inv-summary-bar{background:linear-gradient(135deg,#0b2545 0%,#0284c7 100%);border-radius:16px;padding:24px 28px;color:#fff;margin-bottom:28px;position:relative;overflow:hidden;}
.inv-summary-bar::after{content:'';position:absolute;right:-40px;top:-40px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.05);}
.inv-summary-bar::before{content:'';position:absolute;right:60px;bottom:-30px;width:100px;height:100px;border-radius:50%;background:rgba(255,255,255,.04);}
@keyframes tl-slide-in{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:translateX(0)}}
.tl-entry{animation:tl-slide-in .3s ease both;}
.tl-entry:nth-child(1){animation-delay:.03s}
.tl-entry:nth-child(2){animation-delay:.08s}
.tl-entry:nth-child(3){animation-delay:.13s}
.tl-entry:nth-child(4){animation-delay:.18s}
.tl-entry:nth-child(5){animation-delay:.23s}
.tl-entry:nth-child(6){animation-delay:.28s}
.tl-entry:nth-child(7){animation-delay:.33s}
.tl-entry:nth-child(8){animation-delay:.38s}

/* ── Skeleton loaders ── */
.skeleton{background:linear-gradient(90deg,#eef2f7 25%,#e2e8f0 37%,#eef2f7 63%);background-size:400% 100%;animation:sk 1.4s ease infinite;border-radius:8px;}
@keyframes sk{0%{background-position:100% 50%}100%{background-position:0 50%}}
.sk-line{height:12px;margin:7px 0;}
.empty-row td{text-align:center;color:#94a3b8;padding:40px 0;font-size:13px;}
/* Team cards */
.team-card{background:#fff;border:1.5px solid #e2e8f0;border-radius:16px;padding:24px;text-align:center;transition:box-shadow .15s,transform .15s,border-color .15s;}
.team-card:hover{box-shadow:0 12px 32px rgba(2,132,199,.12);transform:translateY(-3px);border-color:#bae6fd;}
.team-av{width:84px;height:84px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;font-weight:800;margin:0 auto 14px;box-shadow:0 6px 18px rgba(0,0,0,.12);}

/* ───────────── AWS-style console + logistics ───────────── */
:root{--accent2:#ff9900;--accent2-dark:#c2410c;}
.console-hero{background:radial-gradient(125% 150% at 0% 0%, #0c4a6e 0%, #0b2545 55%, #071a2f 100%);border-radius:18px;padding:30px 34px;color:#fff;position:relative;overflow:hidden;}
.console-hero::after{content:'';position:absolute;right:-50px;top:-70px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle, rgba(255,153,0,.20), transparent 70%);}
.console-hero::before{content:'';position:absolute;right:120px;bottom:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle, rgba(56,189,248,.18), transparent 70%);}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.svc-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:18px;cursor:pointer;transition:box-shadow .15s,border-color .15s,transform .15s;display:flex;gap:14px;align-items:flex-start;}
.svc-card:hover{box-shadow:0 12px 30px rgba(2,132,199,.14);border-color:#7dd3fc;transform:translateY(-3px);}
.svc-ico{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;}
.svc-ico svg{width:24px;height:24px;}
.svc-title{font-weight:700;color:#1e293b;font-size:14px;}
.svc-desc{font-size:12px;color:#64748b;line-height:1.45;margin-top:2px;}
.svc-stat{font-size:11px;font-weight:700;color:#0284c7;margin-top:7px;letter-spacing:.02em;}
.cat-label{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#94a3b8;margin:20px 0 10px;}
.breadcrumb{display:flex;align-items:center;gap:7px;font-size:12px;color:#64748b;padding:7px 24px;background:#fff;border-bottom:1px solid #eef2f7;}
.breadcrumb .bc-home{color:var(--accent2-dark);font-weight:700;cursor:pointer;}
.svc-btn{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;border:1.5px solid #fed7aa;background:#fff7ed;color:#c2410c;white-space:nowrap;}
.svc-btn:hover{background:#ffedd5;border-color:#fdba74;}
.tl-track{display:flex;align-items:flex-start;margin:18px 0 6px;}
.tl-step{flex:1;text-align:center;position:relative;}
.tl-step .dot{width:28px;height:28px;border-radius:50%;background:#e2e8f0;color:#94a3b8;display:flex;align-items:center;justify-content:center;margin:0 auto;font-weight:800;font-size:13px;position:relative;z-index:1;}
.tl-step.done .dot{background:linear-gradient(135deg,#0284c7,#075985);color:#fff;}
.tl-step .bar{position:absolute;top:13px;left:-50%;width:100%;height:3px;background:#e2e8f0;}
.tl-step.done .bar{background:#0284c7;}
.tl-step:first-child .bar{display:none;}
.tl-step .lbl{font-size:11px;color:#475569;margin-top:7px;font-weight:600;}
.rpt-table-wrap{max-height:60vh;overflow:auto;}
