:root{color-scheme:light;font-family:Lato,Segoe UI,Helvetica Neue,sans-serif;--bg:#eef1f7;--surface:#ffffff;--surface-border:#d8dfeb;--muted:#5f6b7a;--text:#111827;--primary:#1f3c88;--chip:#e5e7eb;--danger:#b42318;--sidebar-width:272px;--topbar-height:56px}*{box-sizing:border-box}body,html{margin:0;max-width:100%;overflow-x:hidden}body{min-height:100vh;background:radial-gradient(1200px 380px at 10% -10%,#dce4f5 0,transparent 55%),radial-gradient(1000px 280px at 100% 0,#e3ecdf 0,transparent 50%),var(--bg);color:var(--text)}.dashboard-layout,.page{min-height:100vh;overflow-x:hidden}.sidebar-backdrop{position:fixed;inset:0;z-index:30;border:0;background:rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .25s ease}.sidebar-backdrop.open{opacity:1;pointer-events:auto}.dashboard-sidebar{position:fixed;top:0;left:0;bottom:0;z-index:40;width:var(--sidebar-width);border-right:1px solid var(--surface-border);background:var(--surface);transform:translateX(-100%);transition:transform .25s ease;display:grid;grid-template-rows:auto auto 1fr}.dashboard-sidebar.open{transform:translateX(0)}.sidebar-brand{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;border-bottom:1px solid #edf1f8}.sidebar-brand-title{font-size:20px;font-weight:700}.sidebar-close{border:0;background:transparent;font-size:28px;line-height:1;padding:2px 6px}.sidebar-caption{margin:0;padding:12px 16px 8px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.sidebar-nav{display:grid;grid-gap:4px;gap:4px;padding:0 10px 12px;align-content:start;overflow-y:auto}.sidebar-link{border:0;background:transparent;text-align:left;border-radius:10px;padding:10px 12px;font:inherit;color:#1f2937}.sidebar-link.active{background:#e9eef9;color:#152f6a;font-weight:700}.dashboard-main{min-height:100vh}.dashboard-topbar{position:fixed;top:0;left:0;right:0;z-index:20;height:var(--topbar-height);display:flex;align-items:center;gap:10px;padding:0 12px;border-bottom:1px solid var(--surface-border);background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sidebar-open{border:0;background:transparent;font-size:24px;line-height:1;padding:4px 8px}.topbar-path{margin:0;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-live{margin-left:auto;border:1px solid #b7e6c5;background:#ecfdf3;color:#207946;border-radius:999px;font-size:12px;font-weight:700;padding:4px 10px}.dashboard-content{padding:calc(var(--topbar-height) + 10px) 10px 14px;display:grid;grid-gap:10px;gap:10px}.card{width:min(100%,1080px);margin:0 auto;background:var(--surface);border:1px solid var(--surface-border);border-radius:18px;padding:14px 12px;box-shadow:0 8px 26px rgba(17,24,39,.06)}.dashboard-frame{display:grid;grid-gap:12px;gap:12px}.dashboard-head{display:grid;grid-gap:3px;gap:3px}.dashboard-title{margin:0;font-size:34px;line-height:1;letter-spacing:-.03em}.dashboard-subtitle{margin:0;color:var(--muted);font-size:14px}.date-controls{display:grid;grid-template-columns:1fr;grid-gap:8px;gap:8px}.date-field{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.date-label{font-size:17px}.date-input{border:1px solid var(--surface-border);border-radius:10px;background:#fff;color:#111827;padding:8px 9px;font:inherit;min-width:0}.date-chip{border-radius:999px;background:var(--chip);padding:5px 11px;font-size:13px;line-height:1}.section-title{margin:0 0 10px;font-size:clamp(34px,9.2vw,62px);line-height:.96;letter-spacing:-.02em}.section-subtitle{margin:0 0 10px;color:var(--muted);font-size:14px}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:8px 10px;gap:8px 10px;font-size:15px}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.dashboard-table{width:100%;min-width:560px;border-collapse:collapse;font-size:14px}.dashboard-table td,.dashboard-table th{padding:7px 8px;border-bottom:1px solid #edf1f8;vertical-align:top}.dashboard-table th{text-align:left;font-weight:700;color:#1e293b}.mobile-cards{display:grid;grid-gap:10px;gap:10px}.mobile-card{border:1px solid #e7edf7;border-radius:12px;background:#fbfcff;padding:10px 11px}.mobile-card-title{margin:0 0 8px;font-size:16px;line-height:1.2;word-break:break-word}.mobile-kv{margin:0;display:grid;grid-gap:6px;gap:6px}.mobile-kv-row{display:grid;grid-template-columns:minmax(90px,40%) 1fr;grid-gap:8px;gap:8px;align-items:start}.mobile-kv-row dt{margin:0;color:var(--muted);font-size:13px;font-weight:600}.mobile-kv-row dd{margin:0;text-align:right;font-size:14px;word-break:break-word}.settings-form-row{display:grid;grid-template-columns:1fr;grid-gap:8px;gap:8px;margin-bottom:10px}.text-input{width:100%;min-width:0;border:1px solid var(--surface-border);border-radius:10px;background:#fff;color:#111827;padding:10px 12px;font:inherit}.button{border:0;border-radius:999px;background:var(--chip);color:#1b1f24;padding:7px 16px;font-size:16px;line-height:1;min-height:36px;width:-moz-fit-content;width:fit-content}.button-small{min-height:30px;font-size:14px;padding:6px 12px}.settings-list{margin:0 0 14px;padding-left:0;list-style:none;display:grid;grid-gap:8px;gap:8px}.settings-list li{line-height:1.5;word-break:break-word;border:1px solid #e7edf7;border-radius:10px;background:#fbfcff;padding:9px 10px}.error-text{color:var(--danger);margin:0}.auth-error-block{display:grid;grid-gap:10px;gap:10px}h3{margin:18px 0 10px;font-size:clamp(24px,7.2vw,40px);line-height:1.02;letter-spacing:-.01em}@media (max-width:860px){.dashboard-title{font-size:30px}.dashboard-subtitle{font-size:13px}.topbar-path{max-width:62vw}.topbar-live{padding:3px 8px;font-size:11px}.card{border-radius:14px;padding:12px 10px}.date-input{width:min(190px,100%)}}@media (min-width:960px){.sidebar-backdrop{display:none}.dashboard-sidebar{transform:none}.sidebar-close{display:none}.dashboard-main{padding-left:var(--sidebar-width)}.dashboard-topbar{left:var(--sidebar-width);padding:0 16px}.sidebar-open{display:none}.dashboard-content{padding:calc(var(--topbar-height) + 14px) 14px 18px}.card{padding:20px 18px}.date-controls{grid-template-columns:1fr 1fr;gap:12px}.settings-form-row{grid-template-columns:minmax(220px,1fr) minmax(140px,220px) auto;align-items:center}}