:root{--border:#e4e0d5;--text:#14202b;--muted:#52606d;--bg:#fff9f2;--bg2:#efe7da;--card:#ffffff;--accent:#00a884;--accent-2:#ffb300;--accent-3:#1d4ed8;--bad:#e23b3b;--good:#00a884;--focus:#1d4ed8;--shadow:rgba(20,32,43,0.12);--glow:rgba(0,168,132,0.18);--heat-1:#e7faf5;--heat-2:#ccf3e9;--heat-3:#a6e6d7;--heat-4:#67d1b8;--heat-5:#27b192}
*{box-sizing:border-box}
body{margin:0;font-family:"Bahnschrift","Trebuchet MS","Gill Sans","Segoe UI",sans-serif;color:var(--text);background:radial-gradient(circle at 15% 10%,#ffffff 0%,#fff4dd 28%,#f3ead8 62%,#efe4d0 100%),radial-gradient(circle at 85% 5%,rgba(0,168,132,0.18) 0%,rgba(0,168,132,0) 45%),repeating-linear-gradient(45deg,rgba(29,78,216,0.04) 0 14px,rgba(29,78,216,0.02) 14px 28px);background-attachment:fixed}
a{color:inherit}
.container{max-width:1200px;margin:0 auto;padding:16px}
.topbar{background:rgba(255,250,240,0.92);border-bottom:1px solid var(--border);position:static;backdrop-filter:blur(10px)}
.topbar__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.brand{font-weight:900;letter-spacing:.8px;text-transform:uppercase;color:var(--accent-3)}
.nav{display:flex;align-items:center;gap:12px;flex:1;justify-content:flex-end}
.nav-shell{display:flex;align-items:center;gap:12px;flex:1;justify-content:flex-end}
.nav-panel{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:flex-end}
.nav-panel__left,.nav-panel__right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.nav-panel__right{margin-left:auto}
.nav-link{padding:8px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent-3) 12%, var(--border));background:#fff;text-decoration:none;font-weight:700;box-shadow:0 6px 14px rgba(20,32,43,0.08);transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.nav-link:hover{background:#fff1cf;border-color:color-mix(in srgb,var(--accent-2) 55%, var(--border));box-shadow:0 8px 16px rgba(255,179,0,0.2);transform:translateY(-1px)}
.city-switch{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:14px;border:1px solid color-mix(in srgb,var(--accent-3) 12%, var(--border));background:#fff;box-shadow:0 6px 14px var(--shadow)}
.city-switch__label{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.6px}
.city-switch__select{min-width:180px;padding:6px 10px;border-radius:10px}
.nav a{text-decoration:none;padding:8px 12px;border-radius:12px;border:1px solid transparent;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.nav a:hover{background:#fff1cf;border-color:color-mix(in srgb,var(--accent-2) 45%, var(--border));box-shadow:0 6px 14px rgba(255,179,0,0.18);transform:translateY(-1px)}
.nav__user{padding:6px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent-3) 22%, var(--border));background:#fff;font-size:12px;font-weight:800;color:var(--accent-3);box-shadow:0 6px 14px var(--shadow)}
.nav__logout{padding:8px 12px}
.card{background:var(--card);border:1px solid color-mix(in srgb,var(--accent-3) 10%, var(--border));border-radius:20px;padding:18px;margin:16px 0;box-shadow:0 16px 30px var(--shadow);animation:rise .5s ease}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;align-items:start}
.col-5{grid-column:span 5}
.col-7{grid-column:span 7}
.col-6{grid-column:span 6}
.col-12{grid-column:span 12}
@media (max-width:900px){.col-5,.col-7,.col-6{grid-column:span 12}}
@media (max-width:900px){
	.topbar__inner{flex-direction:column;align-items:flex-start}
	.nav{width:100%}
	.nav-shell{width:100%}
	.nav-panel{width:100%;flex-direction:column;align-items:stretch;gap:12px;background:rgba(255,250,240,0.98);border:1px solid var(--border);border-radius:16px;padding:10px;box-shadow:0 14px 28px var(--shadow)}
	.nav-panel__left,.nav-panel__right{width:100%;flex-direction:column;align-items:stretch}
	.nav-link{width:100%;text-align:left}
	.city-switch{width:100%;justify-content:space-between}
	.nav__user{text-align:center;width:100%}
	.nav__logout{width:100%}
	.dashboard__meta{justify-content:flex-start}
}
.label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;font-weight:700}
.input{width:100%;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent-3) 10%, var(--border));border-radius:14px;background:#fff;box-shadow:0 6px 14px rgba(20,32,43,0.06) inset}
.input:focus{outline:2px solid color-mix(in srgb,var(--focus) 40%, transparent);border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 18%, transparent)}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--accent-3) 12%, var(--border));background:#fff;cursor:pointer;font-weight:700;transition:transform .15s ease,box-shadow .15s ease}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px var(--shadow)}
.btn.primary{background:linear-gradient(135deg,var(--accent-3),#2563eb);color:#fff;border-color:color-mix(in srgb,var(--accent-3) 70%, #2563eb)}
.btn.danger{background:linear-gradient(135deg,var(--bad),#ff6b6b);border-color:color-mix(in srgb,var(--bad) 70%, #ff6b6b);color:#fff}
.btn:disabled{opacity:.5;cursor:not-allowed}
.muted{color:var(--muted)}
.bad{color:var(--bad)}
.good{color:var(--good)}
.kv{display:flex;gap:10px;flex-wrap:wrap}
.kv .pill{padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:#fffaf0}
.table{width:100%;border-collapse:collapse}
.table th,.table td{border-bottom:1px solid color-mix(in srgb,var(--accent-3) 10%, var(--border));padding:10px 8px;text-align:left;vertical-align:top}
.table th{font-size:12px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.4px}
.table-wrap{width:100%;overflow-x:auto}
.table-actions{width:1%;white-space:nowrap;text-align:right}
.table-actions__form{display:flex;justify-content:flex-end}
.table-strong tbody tr:hover{background:#fff7e3}
.table-strong td:first-child{font-weight:800;color:var(--accent-3)}
@media (max-width:720px){
	.table{display:block;width:100%}
	.table thead{display:none}
	.table tbody{display:grid;gap:12px}
	.table tr{display:grid;gap:8px;padding:12px;border:1px solid color-mix(in srgb,var(--accent-3) 10%, var(--border));border-radius:16px;background:#fff;box-shadow:0 10px 18px rgba(20,32,43,0.06)}
	.table td{display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:0;padding:0}
	.table td::before{content:attr(data-label);font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:800}
	.table-actions{width:auto;text-align:left}
	.table-actions__form{justify-content:flex-start;width:100%}
	.table-actions__form .btn{width:100%}
	.table td .numbers{justify-content:flex-start}
}
.badge{display:inline-block;padding:3px 8px;border-radius:999px;border:1px solid var(--border);font-size:12px}
.badge.good{border-color:color-mix(in srgb,var(--good) 35%, var(--border));color:var(--good)}
.badge.bad{border-color:color-mix(in srgb,var(--bad) 35%, var(--border));color:var(--bad)}
.tag{display:inline-flex;align-items:center;gap:6px;margin-left:6px;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;border:1px solid transparent}
.tag-min{color:var(--good);background:color-mix(in srgb,var(--good) 12%, #fff);border-color:color-mix(in srgb,var(--good) 30%, var(--border))}
.tag-max{color:var(--bad);background:color-mix(in srgb,var(--bad) 10%, #fff);border-color:color-mix(in srgb,var(--bad) 30%, var(--border))}
.progress{display:flex;align-items:center;gap:10px}
.progress progress{width:100%;height:14px}
.numbers{display:flex;flex-wrap:wrap;gap:6px}
.number{display:inline-flex;align-items:center;justify-content:center;min-width:34px;padding:6px 8px;border:1px solid color-mix(in srgb,var(--accent-3) 12%, var(--border));border-radius:12px;background:#fff;box-shadow:0 6px 14px rgba(20,32,43,0.06)}
.number.active{border-color:color-mix(in srgb,var(--accent) 55%, var(--border));background:color-mix(in srgb,var(--accent) 12%, #fff)}
.flash{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--accent-3) 12%, var(--border));background:#fff;box-shadow:0 10px 20px var(--shadow)}
.flash.good{border-color:color-mix(in srgb,var(--good) 35%, var(--border))}
.flash.bad{border-color:color-mix(in srgb,var(--bad) 35%, var(--border))}
.small{font-size:12px}
.form-errors{margin-top:10px}
.form-actions{display:flex;gap:10px;align-items:center;justify-content:flex-start}
.stacked{margin-top:10px}

.filters{margin-top:14px;padding:12px;border-radius:16px;border:1px dashed color-mix(in srgb,var(--accent-2) 45%, var(--border));background:#fff1d6}
.filters__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;align-items:end}
.filters__field{grid-column:span 3}
.filters__actions{grid-column:span 3;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
@media (max-width:900px){.filters__field,.filters__actions{grid-column:span 12;justify-content:flex-start}}

.csv-import{border:1px dashed color-mix(in srgb,var(--accent-3) 18%, var(--border));border-radius:16px;padding:10px 12px;background:#fff;opacity:.95}
.csv-import summary{cursor:pointer;font-size:12px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.4px}
.csv-import__body{margin-top:10px}

.panel__label{font-size:12px;color:var(--muted);font-weight:800;margin-bottom:6px;text-transform:uppercase;letter-spacing:.3px}
.panel{display:grid;grid-template-columns:repeat(25,minmax(0,1fr));gap:6px}
@media (max-width:1100px){.panel{grid-template-columns:repeat(10,minmax(0,1fr))}}
@media (max-width:700px){.panel{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:700px){
	.stats-grid{grid-template-columns:1fr}
	.form-actions{flex-direction:column;align-items:flex-start}
}
.panel__cell{border:1px solid color-mix(in srgb,var(--accent-3) 12%, var(--border));border-radius:14px;background:#fff;padding:8px;min-height:74px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 8px 18px rgba(20,32,43,0.06)}
.panel__cell.good{border-color:color-mix(in srgb,var(--good) 30%, var(--border));background:color-mix(in srgb,var(--good) 8%, #fff)}
.panel__cell.bad{border-color:color-mix(in srgb,var(--bad) 30%, var(--border));background:color-mix(in srgb,var(--bad) 6%, #fff)}
.panel__rank{font-size:11px;color:var(--muted);font-weight:700}
.panel__num{font-size:18px;font-weight:800}
.panel__count{font-size:12px;color:var(--muted);font-weight:700}

.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--accent-3);font-weight:800}
.dashboard__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.dashboard__meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}
.chip{background:#fff1cf;border:1px solid color-mix(in srgb,var(--accent-2) 55%, var(--border));border-radius:999px;padding:6px 10px;font-weight:700;font-size:12px;box-shadow:0 6px 12px rgba(255,179,0,0.18)}

.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.stat-card{border:1px solid color-mix(in srgb,var(--accent-3) 12%, var(--border));border-radius:14px;padding:10px;background:#fff3df;box-shadow:0 8px 18px rgba(20,32,43,0.06)}
.stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:800}
.stat-value{font-size:20px;font-weight:900;color:var(--accent-3)}

.pager{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:12px;flex-wrap:wrap}
.pager__actions{display:flex;gap:8px;align-items:center}

.auth-shell{display:flex;justify-content:center;align-items:center;min-height:70vh}
.auth-card{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;max-width:980px;width:100%;padding:22px;border-radius:22px;border:1px solid color-mix(in srgb,var(--accent-3) 12%, var(--border));background:linear-gradient(120deg,#fff6e6 0%,#f3e9d7 100%);box-shadow:0 20px 42px var(--shadow)}
.auth-hero{padding:12px 6px}
.auth-hero h1{margin:6px 0 8px;font-size:32px;color:var(--accent-3)}
.auth-hero__bullets{margin-top:14px;display:grid;gap:8px}
.auth-hero__item{padding:8px 12px;border-radius:12px;border:1px dashed color-mix(in srgb,var(--accent) 35%, var(--border));background:#fff; font-weight:700; font-size:13px}
.auth-form{background:#fff;border:1px solid color-mix(in srgb,var(--accent-3) 10%, var(--border));border-radius:18px;padding:18px;box-shadow:0 14px 28px var(--shadow)}
.auth-form__grid{display:grid;gap:12px;margin-top:12px}
.auth-submit{width:100%}
.auth-flash{margin-top:12px}
@media (max-width:900px){.auth-card{grid-template-columns:1fr}}

.strip{margin-top:12px;border-top:1px dashed var(--border);padding-top:10px}
.strip__label{font-size:12px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}

.faq{display:grid;gap:10px}
.faq details{border:1px solid color-mix(in srgb,var(--accent-3) 10%, var(--border));border-radius:14px;background:#fff;box-shadow:0 10px 18px rgba(20,32,43,0.06);padding:10px 12px}
.faq summary{cursor:pointer;font-weight:800;color:var(--accent-3)}
.faq p{margin:8px 0 0;color:var(--text)}

.matrix-wrap{overflow:visible;padding-bottom:6px}
.matrix-board{display:grid;gap:12px}
.matrix-title{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--accent-3)}
.matrix-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.matrix-cell{display:flex;align-items:center;justify-content:center;min-height:78px;border:1px solid color-mix(in srgb,var(--accent-3) 12%, var(--border));border-radius:16px;background:#fff;font-weight:800;flex-direction:column;gap:4px;padding:8px;text-align:center}
.matrix__num{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.3px}
.matrix__value{font-size:16px;font-weight:900;color:var(--text)}
.matrix__delta{font-size:11px;font-weight:700;color:var(--muted)}
.heat-0{background:#fff}
.heat-1{background:var(--heat-1)}
.heat-2{background:var(--heat-2)}
.heat-3{background:var(--heat-3)}
.heat-4{background:var(--heat-4);color:#0b2b28}
.heat-5{background:var(--heat-5);color:#07312b}
.cell-top{outline:2px solid color-mix(in srgb,var(--good) 70%, transparent)}
.cell-bottom{outline:2px solid color-mix(in srgb,var(--bad) 70%, transparent)}
.cell-pos{outline:2px solid color-mix(in srgb,var(--good) 70%, transparent)}
.cell-neg{outline:2px solid color-mix(in srgb,var(--bad) 70%, transparent)}
@media (max-width:1200px){
	.matrix-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:900px){
	.matrix-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:600px){
	.matrix-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

.legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.legend__chip{padding:4px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent-3) 12%, var(--border));font-size:11px;font-weight:800;background:#fff}
.legend__chip.heat-1,.legend__chip.heat-3,.legend__chip.heat-5{border-color:transparent}
.legend__chip--top{border-color:color-mix(in srgb,var(--good) 35%, var(--border));color:var(--good)}
.legend__chip--bottom{border-color:color-mix(in srgb,var(--bad) 35%, var(--border));color:var(--bad)}

@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.card{animation:none}}
