:root{--bg: #f2f4f3;--surface: #ffffff;--surface-2: #f7f9f8;--border: #e4e8e6;--text: #17201d;--text-2: #5d6b66;--text-3: #93a09b;--brand: #00695c;--brand-soft: #e0f2ee;--brand-2: #00897b;--accent: #f9a825;--pos: #00897b;--neg: #d84343;--radius: 16px;--shadow: 0 1px 3px rgba(20, 40, 35, .07)}@media(prefers-color-scheme:dark){:root{--bg: #101614;--surface: #1a2320;--surface-2: #212c28;--border: #2b3833;--text: #e8eeec;--text-2: #9fb0aa;--text-3: #6b7a75;--brand: #2bbba7;--brand-soft: #123832;--brand-2: #35cdb8;--shadow: 0 1px 3px rgba(0, 0, 0, .35)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}button{font-family:inherit}.shell{display:flex;min-height:100vh}.sidebar{display:none;width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:20px 12px;position:sticky;top:0;height:100vh;flex-direction:column}.sidebar .brand{display:flex;align-items:center;gap:10px;padding:4px 8px 20px}.sidebar .brand-mark{width:38px;height:38px;border-radius:11px;background:var(--brand);color:#fff;font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar .brand h1{font-size:16px;font-weight:700}.sidebar .brand span{font-size:11px;color:var(--text-3)}.side-nav{display:flex;flex-direction:column;gap:14px;flex:1;overflow-y:auto}.side-group{display:flex;flex-direction:column;gap:2px}.side-group-title{font-size:10px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.6px;padding:0 12px 4px}.sidebar .nav-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:var(--text-2);font-size:14px;font-weight:500}.sidebar .nav-link .ico{width:18px;text-align:center}.sidebar .nav-link:hover{background:var(--surface-2)}.sidebar .nav-link.active{background:var(--brand-soft);color:var(--brand);font-weight:600}.sidebar .logout{border:none;background:none;color:var(--text-3);font-size:13px;text-align:left;padding:10px 12px;cursor:pointer}.main{flex:1;min-width:0;padding:20px 16px 90px;max-width:1080px;margin:0 auto;width:100%}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav .nav-link{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 0 7px;color:var(--text-3);font-size:10px;font-weight:500}.bottom-nav .nav-link .ico{font-size:19px;line-height:1}.bottom-nav .nav-link.active{color:var(--brand)}@media(min-width:900px){.sidebar{display:flex}.bottom-nav{display:none}.main{padding:28px 32px 40px}}.subnav{display:flex;gap:4px;margin-bottom:18px;overflow-x:auto;background:var(--surface-2);padding:4px;border-radius:12px;-webkit-overflow-scrolling:touch}.subnav-item{flex:1;text-align:center;white-space:nowrap;padding:9px 14px;border-radius:9px;font-size:13px;font-weight:500;color:var(--text-2)}.subnav-item.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow)}.skel{background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.toast-wrap{position:fixed;left:50%;bottom:84px;transform:translate(-50%);z-index:50;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}@media(min-width:900px){.toast-wrap{bottom:24px}}.toast{background:var(--text);color:var(--bg);padding:10px 16px;border-radius:999px;font-size:13px;font-weight:600;box-shadow:0 4px 16px #0003;animation:toastin .2s ease}.toast.err{background:var(--neg);color:#fff}@keyframes toastin{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.hero{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;border-radius:20px;padding:20px 22px;margin-bottom:16px;box-shadow:0 6px 20px color-mix(in srgb,var(--brand) 30%,transparent)}.hero .hero-label{font-size:12px;opacity:.85;text-transform:uppercase;letter-spacing:.5px}.hero .hero-value{font-size:34px;font-weight:800;margin:6px 0 4px;line-height:1}.hero .hero-meta{font-size:13px;opacity:.92;display:flex;gap:14px;flex-wrap:wrap}.hero .hero-badge{background:#fff3;border-radius:999px;padding:2px 10px;font-weight:700}.global-daterange{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:8px 0 12px;margin-bottom:6px;display:flex;justify-content:flex-end}.datepicker{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.date-controls{display:flex;align-items:center;gap:6px}.date-controls input[type=date]{padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-size:13px}.date-controls .nav-btn{width:34px;height:34px;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:18px;cursor:pointer;line-height:1}.date-controls .nav-btn:active{transform:scale(.94)}.date-sep{color:var(--text-3)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}.page-head h2{font-size:22px;font-weight:700}.page-head .sub{font-size:13px;color:var(--text-2);margin-top:3px}.sec-label{font-size:13px;font-weight:600;color:var(--text-2);margin:22px 0 10px;text-transform:uppercase;letter-spacing:.4px}.card{background:var(--surface);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin-bottom:14px}.card h3{font-size:15px;font-weight:600;margin-bottom:12px}.card .hint{font-size:12px;color:var(--text-3);margin-top:8px}.grid-2{display:grid;grid-template-columns:1fr;gap:14px}.grid-3{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media(min-width:720px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}}.stat-card{background:var(--surface);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.stat-card .label{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.4px}.stat-card .value{font-size:24px;font-weight:700;margin-top:4px}.stat-card .meta{font-size:12px;color:var(--text-2);margin-top:4px}.trend-badge{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px}.trend-badge.up{color:var(--pos);background:color-mix(in srgb,var(--pos) 12%,transparent)}.trend-badge.down{color:var(--neg);background:color-mix(in srgb,var(--neg) 12%,transparent)}.trend-badge.flat{color:var(--text-3);background:var(--surface-2)}.field{margin-bottom:14px}.field label{display:block;font-size:12px;color:var(--text-2);margin-bottom:6px;font-weight:500}.field input,.field select{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:10px;font-size:14px;background:var(--surface-2);color:var(--text)}.field input:focus,.field select:focus{outline:2px solid var(--brand);outline-offset:-1px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 18px;border:none;border-radius:10px;background:var(--brand);color:#fff;font-size:14px;font-weight:600;cursor:pointer}.btn:disabled{opacity:.5;cursor:default}.btn.secondary{background:var(--brand-soft);color:var(--brand)}.btn.small{padding:7px 12px;font-size:13px}.seg{display:inline-flex;background:var(--surface-2);border-radius:10px;padding:3px;gap:2px}.seg button{border:none;background:none;padding:7px 13px;border-radius:8px;font-size:13px;color:var(--text-2);cursor:pointer;font-weight:500}.seg button.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow)}.list-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--border);font-size:14px}.list-row:last-child{border-bottom:none}.list-row .l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row .l .cat{font-size:11px;color:var(--text-3);display:block}.list-row .r{font-weight:600;white-space:nowrap;font-size:13px}.list-row .r .sub{font-weight:400;color:var(--text-3)}.badge{display:inline-flex;width:20px;height:20px;border-radius:6px;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;margin-right:8px;flex-shrink:0}.badge.A{background:var(--brand)}.badge.B{background:#00838f}.badge.C{background:var(--text-3)}.pill{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--text-2)}.pill.ok{background:color-mix(in srgb,var(--pos) 14%,transparent);color:var(--pos)}.pill.err{background:color-mix(in srgb,var(--neg) 14%,transparent);color:var(--neg)}.pill.warn{background:color-mix(in srgb,var(--accent) 18%,transparent);color:#9a6c00}.empty{text-align:center;color:var(--text-3);padding:32px 16px;font-size:14px}.loading{text-align:center;color:var(--text-3);padding:40px;font-size:14px}.error-box{background:color-mix(in srgb,var(--neg) 8%,transparent);color:var(--neg);border-radius:12px;padding:12px 14px;font-size:13px;margin-bottom:14px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:380px;background:var(--surface);border-radius:20px;padding:32px 28px;box-shadow:var(--shadow)}.login-card .logo{text-align:center;margin-bottom:24px}.login-card .logo .mark{width:56px;height:56px;border-radius:16px;background:var(--brand);color:#fff;font-size:22px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px}.login-card .logo h1{font-size:20px;font-weight:700}.login-card .logo p{font-size:12px;color:var(--text-3);margin-top:4px}.forecast-card{background:linear-gradient(135deg,var(--brand-soft),var(--surface));border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.forecast-card .name{font-size:15px;font-weight:700;margin-bottom:10px}.forecast-turni{display:grid;grid-template-columns:1fr 1fr;gap:10px}.forecast-turno{background:var(--surface);border-radius:12px;padding:10px 12px;text-align:center}.forecast-turno .lbl{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.4px}.forecast-turno .num{font-size:26px;font-weight:800;color:var(--brand);line-height:1.2}.forecast-turno .note{font-size:11px;color:var(--text-2);min-height:14px}.cmp-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}@media(min-width:720px){.cmp-grid{grid-template-columns:repeat(4,1fr)}}.cmp-box{background:var(--surface-2);border-radius:12px;padding:10px 12px}.cmp-box .t{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.3px}.cmp-box .v{font-size:15px;font-weight:700;margin-top:4px}.cmp-box .v .prev{font-weight:400;color:var(--text-3);font-size:13px}.cmp-box .p{margin-top:3px}.cmp-box .s{font-size:11px;color:var(--text-2);margin-top:4px}.pay-row{display:flex;align-items:center;gap:10px;margin-bottom:9px}.pay-label{font-size:12px;width:96px;color:var(--text-2);flex-shrink:0}.pay-track{flex:1;height:18px;background:var(--surface-2);border-radius:5px;overflow:hidden}.pay-fill{height:100%;border-radius:5px;background:var(--brand);opacity:.75}.pay-val{font-size:12px;font-weight:600;width:120px;text-align:right;flex-shrink:0}.pay-pct{color:var(--text-3);font-weight:400}.anomaly-row{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--border)}.anomaly-row:last-child{border-bottom:none}.anomaly-row .dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex-shrink:0}.anomaly-row .dot.up{background:var(--pos)}.anomaly-row .dot.down{background:var(--neg)}.anomaly-row .txt{font-size:13px}.anomaly-row .txt .when{color:var(--text-3);font-size:11px}.foot{text-align:center;font-size:11px;color:var(--text-3);margin-top:28px}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{text-align:left;font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.3px;padding:8px;border-bottom:1px solid var(--border)}table.data td{padding:9px 8px;border-bottom:1px solid var(--border)}table.data tr:last-child td{border-bottom:none}table.data td.num{text-align:right;font-variant-numeric:tabular-nums}table.data th.num{text-align:right}
