:root{--primary: #0d5c3d;--primary-light: #1a8f5f;--accent: #f4a623;--bg: #f0f4f2;--card: #ffffff;--text: #1a2e24;--muted: #5a7268;--border: #d4e0da;--danger: #c0392b;--sidebar-w: 280px;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);background:linear-gradient(180deg,#0a4a32,#0d5c3d);color:#fff;display:flex;flex-direction:column;position:fixed;height:100vh;overflow-y:auto;z-index:100}.sidebar-brand{padding:1.5rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.15)}.sidebar-brand h1{font-size:1.5rem;font-weight:700;letter-spacing:.05em}.sidebar-brand span{font-size:.75rem;opacity:.85;display:block;margin-top:.25rem}.nav-group-title{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;opacity:.6;padding:1rem 1.25rem .35rem}.nav-link{display:flex;align-items:center;gap:.6rem;padding:.55rem 1.25rem;font-size:.88rem;opacity:.9;transition:background .15s}.nav-link:hover,.nav-link.active{background:#ffffff1f;opacity:1}.main-content{margin-left:var(--sidebar-w);flex:1;padding:1.5rem 2rem;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.topbar h2{font-size:1.35rem;color:var(--primary)}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border:none;border-radius:8px;font-size:.9rem;cursor:pointer;font-weight:500;transition:transform .1s,opacity .15s}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-light)}.btn-secondary{background:#e8f0ec;color:var(--primary)}.btn-danger{background:var(--danger);color:#fff}.card{background:var(--card);border-radius:12px;padding:1.25rem;box-shadow:0 2px 12px #0d5c3d14;border:1px solid var(--border);margin-bottom:1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--card);border-radius:12px;padding:1.25rem;border-left:4px solid var(--accent);box-shadow:0 2px 8px #0000000d}.stat-card strong{display:block;font-size:1.75rem;color:var(--primary)}.stat-card span{font-size:.85rem;color:var(--muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{padding:.65rem .75rem;text-align:left;border-bottom:1px solid var(--border)}th{background:#e8f2ed;color:var(--primary);font-weight:600}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.form-group label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.35rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;font-size:.9rem}.brand-logo{display:flex;align-items:center;gap:.65rem}.brand-logo__img{width:auto;object-fit:contain;flex-shrink:0}.brand-logo--sidebar .brand-logo__img{mix-blend-mode:screen;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.brand-logo--card .brand-logo__img,.brand-logo--card picture img{mix-blend-mode:normal}.brand-logo__text{display:flex;flex-direction:column;line-height:1.2;min-width:0}.brand-logo__text strong{font-size:1rem;letter-spacing:.04em}.brand-logo__text span{font-size:.68rem;opacity:.85;margin-top:.15rem}.brand-logo--sidebar .brand-logo__text strong{color:#fff;font-size:.95rem}.brand-logo--sidebar .brand-logo__text span{color:#fffc}.brand-logo--card{flex-direction:column;text-align:center;margin-bottom:.5rem}.brand-logo--card .brand-logo__text strong{font-size:1.35rem;color:var(--primary)}.brand-logo--card .brand-logo__text span{color:var(--muted)}.login-page--split{display:grid;grid-template-columns:1fr 420px;min-height:100vh;background:#0a1628}.login-delivery-bg{position:relative;overflow:hidden;min-height:100vh}.login-delivery-bg__canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.login-delivery-bg__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,#0a16284d,#0d5c3d26);pointer-events:none}.login-delivery-bg__brand{position:relative;z-index:2;padding:3rem 2.5rem;max-width:520px;color:#fff}.login-delivery-bg__logo{height:100px;width:auto;margin-bottom:1.25rem;filter:drop-shadow(0 4px 20px rgba(61,184,240,.35))}.login-delivery-bg__brand h1{font-size:2rem;font-weight:700;letter-spacing:.06em;margin-bottom:.5rem}.login-delivery-bg__brand>p{font-size:1rem;opacity:.9;line-height:1.5;margin-bottom:1.5rem}.login-delivery-bg__tags{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}.login-delivery-bg__tags li{background:#3db8f033;border:1px solid rgba(61,184,240,.4);padding:.4rem .85rem;border-radius:999px;font-size:.8rem}.login-panel{display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--bg)}.login-card{background:var(--card);padding:2rem 2.25rem;border-radius:16px;width:100%;max-width:380px;box-shadow:0 12px 40px #0000001f;border:1px solid var(--border)}.login-card__tagline{text-align:center;color:var(--muted);font-size:.88rem;margin-bottom:1.25rem}.login-card__hint{margin-top:1rem;font-size:.78rem;color:#888;text-align:center}.dashboard-charts{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.chart-card h3{font-size:.95rem;color:var(--primary);margin-bottom:.75rem;font-weight:600}.chart-card--wide{grid-column:1 / -1}@media (max-width: 1100px){.login-page--split{grid-template-columns:1fr}.login-delivery-bg{min-height:42vh}.dashboard-charts{grid-template-columns:1fr}}.map-container{height:420px;border-radius:12px;overflow:hidden;border:1px solid var(--border)}.chart-container{height:320px}.alert{padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem}.alert-error{background:#fdecea;color:var(--danger)}.alert-success{background:#e8f5e9;color:var(--primary)}.alert-info{background:#e3f2fd;color:#1565c0}.user-badge{font-size:.85rem;color:var(--muted)}@media (max-width: 900px){.sidebar{width:72px}.brand-logo__text,.nav-group-title,.nav-link span:last-child{display:none}.brand-logo--sidebar .brand-logo__img{height:32px!important}.main-content{margin-left:72px}}
