:root{--orange:#ff6900;--dark:#241106;--cream:#fff3e6;--border:#ead7c6;--muted:#6b5a50;--green:#159947;--yellow:#e5a100;--red:#e64225}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:linear-gradient(180deg,#fff1e3,#fffaf5);color:var(--dark)}.topbar{display:flex;justify-content:space-between;align-items:center;padding:28px 40px;background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.eyebrow{color:var(--orange);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:12px}h1{margin:4px 0 0;font-size:34px}h2{margin-top:0}nav a{margin-left:16px;color:var(--dark);font-weight:800;text-decoration:none}.layout{max-width:1480px;margin:0 auto;padding:28px}.panel{background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:28px;padding:24px;box-shadow:0 10px 32px rgba(86,40,12,.07);margin-bottom:22px}.hero{display:flex;justify-content:space-between;align-items:center}.big{font-size:76px;font-weight:900;color:var(--orange);line-height:1}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.kpis div,.summaryBox{background:var(--cream);border-radius:22px;padding:18px;text-align:center}.kpis b{display:block;font-size:34px}.kpis span{color:var(--muted)}.toolbar,.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;align-items:end}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px}.tableWrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;border-bottom:1px solid #f0e0d2;text-align:left;vertical-align:top}th{color:var(--muted);font-size:13px}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:16px;padding:14px;font-size:16px;background:#fff}textarea{min-height:96px}label{font-weight:800;color:#4a362b}button{border:none;border-radius:16px;padding:14px 20px;font-weight:900;font-size:16px;cursor:pointer;background:var(--dark);color:#fff}button.primary{background:var(--orange)}.badge{display:inline-block;border-radius:999px;padding:6px 10px;font-weight:900;font-size:12px}.green{background:#e7f8ed;color:var(--green)}.yellow{background:#fff4cf;color:#9a6500}.red{background:#ffe5df;color:var(--red)}.cards{display:grid;gap:12px}.card{background:#fff8f1;border:1px solid var(--border);border-radius:20px;padding:16px}.hidden{display:none}.login{max-width:720px}.violationRow{display:grid;grid-template-columns:1.5fr 100px 1fr 2fr 44px;gap:10px;align-items:start;margin-bottom:10px}.msg{font-weight:900;color:var(--orange)}.modal{min-width:min(620px,90vw);display:grid;gap:12px}.row{display:flex;gap:10px;justify-content:flex-end}@media(max-width:900px){.grid2,.hero{grid-template-columns:1fr;display:grid}.kpis{grid-template-columns:1fr}.topbar{padding:20px;align-items:flex-start;gap:12px;flex-direction:column}.violationRow{grid-template-columns:1fr}.layout{padding:16px}.big{font-size:54px}}

.darkChart{background:#101c25;color:#f4f7fb;border-color:#304151;box-shadow:none}.darkChart h2{color:#f4f7fb}.chartHead{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:12px}.chartHead span{color:#aeb8c4;font-weight:900}.chartGrid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:22px;align-items:stretch}.chartGrid canvas{width:100%;max-width:100%;border-radius:16px;background:#101c25}.chartStats{border:1px solid #304151;border-radius:16px;padding:18px;background:#101c25}.chartStats h3{margin:0 0 6px;color:#f4f7fb;font-size:17px}.chartStats b{display:block;color:#4ade80;font-size:28px;margin:0 0 20px;text-align:right}.legend{display:flex;gap:12px;align-items:center;justify-content:center;color:#aeb8c4;font-weight:900;margin-top:10px}.lg{display:inline-block;width:34px;height:12px;border-radius:4px}.redMark{background:#ff4b55}.yellowMark{background:#facc15}.greenMark{background:#4ade80}@media(max-width:900px){.chartGrid{grid-template-columns:1fr}.chartStats b{text-align:left}}


/* Аккуратная презентационная диаграмма */
.chartPanel{margin-top:22px;padding:34px 36px;border-radius:34px;background:linear-gradient(180deg,#101c25 0%,#0d1820 100%);border:1px solid #2c4154;box-shadow:0 18px 40px rgba(15,23,42,.18)}
.chartHead{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.chartHead h2{font-size:30px;line-height:1.15;margin:0;color:#f8fafc}.chartHead h2 span{color:#aeb8c4}.chartHead p{margin:8px 0 0;color:#92a0af;font-weight:700}.chartHead>span{white-space:nowrap;color:#aeb8c4;font-weight:900;font-size:18px;margin-top:6px}.chartGrid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:26px;align-items:stretch}.chartGrid canvas{display:block;width:100%;border-radius:22px;background:#0d1820;border:1px solid rgba(148,163,184,.12)}.chartStats{border:1px solid #314559;border-radius:24px;padding:24px;background:rgba(13,24,32,.92);display:grid;align-content:center;gap:14px}.chartStats div{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:14px}.chartStats span{color:#f8fafc;font-weight:900;font-size:17px}.chartStats b{display:block;color:#4ade80;font-size:30px;margin:0;text-align:right}.legend{display:flex;gap:12px;align-items:center;justify-content:center;color:#aeb8c4;font-weight:900;margin-top:18px;font-size:16px}.lg{display:inline-block;width:38px;height:12px;border-radius:999px}.topCards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.redMark{background:#ff4b55}.yellowMark{background:#facc15}.greenMark{background:#4ade80}@media(max-width:900px){.chartPanel{padding:24px 18px}.chartHead{flex-direction:column}.chartGrid{grid-template-columns:1fr}.chartStats b{text-align:left}.chartStats div{grid-template-columns:1fr}.chartHead h2{font-size:24px}}

.autoStatus{display:inline-flex;align-items:center;gap:8px;padding:13px 16px;border-radius:16px;background:#fff5e8;border:1px solid #efd8c7;font-weight:800;color:#301307;white-space:nowrap}
.autoStatus span{width:10px;height:10px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.14)}
.autoStatus.bad span{background:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.14)}
.autoStatus.bad{color:#ef4444}


/* v2.2: четкая SVG-диаграмма и кнопка ручного обновления */
.autoStatus{appearance:none;border:1px solid #efd8c7;background:#fff5e8;color:#301307;justify-content:center;min-height:48px}
.autoStatus:hover{filter:brightness(.98);transform:translateY(-1px)}
.chartPanel{max-width:none;padding:40px 44px;border-radius:36px}
.chartGrid{grid-template-columns:minmax(720px,1fr) 320px;gap:30px;align-items:stretch}
.barChartSvg{width:100%;min-height:430px;border-radius:24px;background:#0d1820;border:1px solid rgba(148,163,184,.12);overflow:hidden;padding:0}
.barChartSvg svg{display:block;width:100%;height:auto;min-height:430px;font-family:Inter,Arial,sans-serif;text-rendering:geometricPrecision;shape-rendering:geometricPrecision}
.chartStats{min-height:430px}.chartHead h2{font-size:34px}.chartHead p{max-width:760px}
@media(max-width:1100px){.chartGrid{grid-template-columns:1fr}.barChartSvg,.barChartSvg svg,.chartStats{min-height:360px}.chartPanel{padding:26px 18px}.chartHead h2{font-size:26px}}


/* v2.3 compact UI */
body{background:linear-gradient(180deg,#fff4e8,#fffaf5);font-size:14px}.topbar{padding:18px 32px}.eyebrow{font-size:10px}h1{font-size:26px}h2{font-size:22px;margin-bottom:14px}h3{font-size:18px;margin:12px 0}.layout{max-width:1260px;padding:18px}.panel{border-radius:20px;padding:18px;margin-bottom:16px}.hero{padding:18px 22px}.big{font-size:52px}.kpis div,.summaryBox{border-radius:16px;padding:12px}.kpis b{font-size:26px}.toolbar,.formgrid{gap:10px}.toolbar{grid-template-columns:220px 260px 240px 260px}.grid2{gap:16px}th,td{padding:9px 8px}input,select,textarea{border-radius:12px;padding:11px 12px;font-size:15px}textarea{min-height:72px}button{border-radius:12px;padding:11px 16px;font-size:15px}.card{border-radius:14px;padding:12px}.badge{padding:4px 8px;font-size:11px}.login{max-width:560px}.violationRow{grid-template-columns:minmax(280px,1.6fr) 80px 120px minmax(260px,2fr) 44px;gap:8px;margin-bottom:8px}.summaryBox{margin-top:8px;padding:12px;font-size:16px}.chartPanel{padding:24px 26px;border-radius:26px}.chartHead{margin-bottom:12px}.chartHead h2{font-size:26px}.chartHead p{font-size:13px;margin-top:5px}.chartHead>span{font-size:15px}.chartGrid{grid-template-columns:minmax(620px,1fr) 260px;gap:18px}.barChartSvg{min-height:330px;border-radius:16px}.barChartSvg svg{min-height:330px}.chartStats{min-height:330px;border-radius:16px;padding:18px;gap:8px}.chartStats span{font-size:15px}.chartStats b{font-size:25px}.legend{margin-top:10px;font-size:14px}.lg{width:30px;height:10px}.topCards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.autoStatus{min-height:42px;padding:10px 14px}.cabinetHeader{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px}.cabinetHeader h2{margin:0}.mutedText{color:var(--muted);margin:4px 0 0;font-weight:700}.smallBtn{padding:9px 14px;border-radius:12px;background:#fff2e4;color:var(--dark);border:1px solid var(--border)}
@media(max-width:1100px){.toolbar{grid-template-columns:1fr 1fr}.chartGrid{grid-template-columns:1fr}.violationRow{grid-template-columns:1fr 80px 120px 1fr 44px}.layout{padding:14px}.topbar{padding:16px 20px}}
@media(max-width:760px){.toolbar,.formgrid,.grid2,.hero{grid-template-columns:1fr;display:grid}.violationRow{grid-template-columns:1fr}.chartPanel{padding:18px}.cabinetHeader{align-items:flex-start;flex-direction:column}.big{font-size:44px}h1{font-size:23px}}

/* v2.4 appeals details + locked processed appeals */
.appealCard{display:grid;gap:8px}
.appealTop{display:flex;justify-content:space-between;align-items:center;gap:12px}
.appealStatus{display:inline-flex;border-radius:999px;padding:5px 10px;font-weight:900;font-size:12px}
.appealStatus.new{background:#fff4cf;color:#9a6500}
.appealStatus.processed{background:#e7f8ed;color:#159947}
.appealMeta{display:flex;flex-wrap:wrap;gap:8px 12px;color:#6b5a50;font-size:13px}
.appealMeta span{background:#fff;border:1px solid #f0e0d2;border-radius:999px;padding:5px 9px}
.appealPoint{font-weight:900}
.appealEmail,.appealComment,.appealViolationComment{font-size:14px}
.appealViolationComment{color:#6b5a50;background:#fff;border:1px dashed #ead7c6;border-radius:12px;padding:8px}
.appealCard.locked{opacity:.86;background:#f6f6f6}
.processedBox{background:#fff;border:1px solid #e1e1e1;border-radius:12px;padding:10px;color:#5f5f5f;font-weight:800}
