/* De Svitlo. Напрям і токени: docs/design/direction.md. Бурштин = лише «світло є» і головна дія. */
/* AMI-846: одна мова кольору на всіх сторінках, як на карті: --lamp-strip = «світло є» (зелений), ніч = «світла немає»;
   бурштин (--lamp) лише для бренду й головної кнопки, а як стан — тільки «діють графіки відключень». */
:root{--bg:#f6f7f9;--surface:#fff;--sunk:#eef0f4;--ink:#1e2433;--muted:#5b6475;--line:#e1e4ea;--line-2:#b8bfcb;--lamp:#ffc21a;--lamp-strip:#2f9e44;--on-soft:#e6f6e9;--lamp-soft:#fff4cc;--on-lamp:#1e2433;--night:#262c3b;--alert:#b3261e;--alert-soft:#fdecea;--needle:#fff;--sun:linear-gradient(180deg,#fff1bf 0%,#fff8e1 45%,rgba(255,248,225,0) 100%);
--r:16px;--r-s:10px;--gut:16px;--max:1080px;--font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color-scheme:light}
:root[data-theme=dark]{--sun:linear-gradient(180deg,#2a2412 0%,rgba(16,18,22,0) 100%);--bg:#101216;--surface:#1a1d23;--sunk:#23262e;--ink:#eceef2;--muted:#a4aab6;--line:#2c3038;--line-2:#4a505c;--lamp-strip:#40c057;--on-soft:#17301d;--lamp-soft:#3a2f0e;--night:#050608;--alert:#ff8a80;--alert-soft:#3a1614;--needle:#fff;color-scheme:dark}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.55 var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:-999px}.skip:focus{left:var(--gut);top:8px;background:var(--surface);padding:8px 12px;z-index:9}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
h1,h2,h3{text-wrap:balance}
h1{font-size:clamp(1.75rem,6.8vw,2.75rem);line-height:1.06;letter-spacing:-.035em;font-weight:800;margin:.35em 0 .25em}
h2{font-size:1.3125rem;line-height:1.2;letter-spacing:-.02em;font-weight:750;margin:1.8em 0 .55em}
h3{font-size:1.0625rem;margin:1.2em 0 .4em}
p{margin:0 0 .8em}
.lead{font-size:1.125rem;color:var(--muted);max-width:52ch;margin:0}.meta{color:var(--muted);margin:0 0 .6em;max-width:64ch;font-size:.9375rem}.fine{font-size:.875rem;color:var(--muted);max-width:70ch}

/* шапка */
.top{display:flex;align-items:center;gap:4px;max-width:var(--max);margin:0 auto;padding:8px var(--gut);min-height:60px}
.brand{display:inline-flex;align-items:center;gap:9px;margin-right:auto;color:var(--ink);text-decoration:none;font-weight:800;font-size:1.25rem;letter-spacing:-.045em;white-space:nowrap;min-height:44px}
.brand svg{width:26px;height:26px;flex:none}
.top nav{display:flex}.top nav a{color:var(--ink);text-decoration:none;padding:10px;border-radius:var(--r-s);font-size:.9375rem;font-weight:600;white-space:nowrap}
.top nav a:hover{background:var(--sunk)}
@media(max-width:479px){.top .nav-wide{display:none}}
.theme{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;visibility:hidden}
.js .theme{visibility:visible}.theme:hover{background:var(--sunk)}.theme svg{width:22px;height:22px}
.theme .i-sun{display:none}:root[data-theme=dark] .theme .i-sun{display:block}:root[data-theme=dark] .theme .i-moon{display:none}

main{max-width:var(--max);margin:0 auto;padding:0 var(--gut) 48px;min-height:60vh}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px;padding:4px 0 0;margin:0;font-size:.875rem;color:var(--muted)}
.crumbs li+li::before{content:"/";margin-right:4px}.crumbs a{color:var(--muted);display:inline-block;padding:3px 0;min-height:24px;line-height:18px}
.page-head{padding-top:2px}
.fresh{color:var(--muted);font-size:.9375rem;margin:0 0 14px}
.fresh::before{content:"";display:inline-block;margin-right:7px;vertical-align:0;width:9px;height:9px;border-radius:50%;border:2px solid var(--muted);box-sizing:border-box}

/* кнопки й поля */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink);font:650 1rem var(--font);text-decoration:none;cursor:pointer}
.btn:hover{border-color:var(--ink)}
.btn.primary{background:var(--lamp);border-color:var(--lamp);color:var(--on-lamp)}.btn.primary:hover{border-color:var(--on-lamp)}
.btn svg{width:20px;height:20px;flex:none}
.btn[hidden]{display:none}.btn[data-install][hidden]{display:inline-flex;visibility:hidden}
select{min-height:48px;font:inherit;padding:0 12px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink);max-width:100%}
label{font-weight:600;display:block}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 6px}
code{background:var(--sunk);padding:2px 6px;border-radius:6px}

/* головна */
.hero{padding:10px 0 4px}
.hero h1{font-size:clamp(2rem,8.4vw,3.5rem);margin-top:.25em;max-width:14ch}
.search{position:relative;margin-top:18px}
.search input{width:100%;height:60px;font:600 1.1875rem var(--font);padding:0 18px 0 50px;border-radius:var(--r);border:2px solid var(--ink);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235a6070' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m15.5 15.5 5 5'/%3E%3C/svg%3E") 16px 50%/22px no-repeat;color:var(--ink);appearance:none}
.search input::placeholder{color:var(--muted);font-weight:400}
.results{list-style:none;margin:6px 0 0;padding:6px;position:absolute;z-index:5;left:0;right:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 16px 40px rgba(21,23,28,.18);max-height:60vh;overflow:auto}
.results a{display:flex;flex-direction:column;padding:10px 12px;min-height:48px;text-decoration:none;color:var(--ink);border-radius:10px}
.results a[aria-selected=true],.results a:hover{background:var(--sunk)}.results small{color:var(--muted)}
.results .hint{padding:10px 12px;line-height:1.4}
.picks-row{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.picks-row a{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 16px 0 14px;border-radius:999px;background:var(--surface);border:1.5px solid var(--line);color:var(--ink);text-decoration:none;font-weight:650}
.picks-row a:hover{border-color:var(--ink)}
.addr{margin-top:10px}.addr summary{cursor:pointer;min-height:48px;display:inline-flex;align-items:center;font-weight:600;text-decoration:underline;text-underline-offset:.18em}
.addr form{padding:4px 0 8px;max-width:520px}.addr input{width:100%;height:52px;font:inherit;padding:0 14px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink);margin:6px 0 12px}.addr select{width:100%;margin:6px 0 12px}.addr .btn{width:100%}.addr-out{min-height:5em;margin-top:12px}
.saved{min-height:0}
.saved:not([hidden]),.has-choice .saved[hidden]{display:block;min-height:124px;margin:10px 0 6px;padding:16px 18px 14px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--ink)}
.has-choice .saved[hidden]{visibility:hidden}
.saved a{font-weight:650;color:var(--muted)}.saved p{font-size:1.25rem;line-height:1.3;letter-spacing:-.01em}
.home-sub{display:grid;gap:0 40px}@media(min-width:720px){.home-sub{grid-template-columns:1fr 1fr}}
.cta-band{margin-top:36px;padding:20px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}
.cta-band h2{margin-top:0}.cta-band .btn[data-install][hidden]{display:none}.cta-band .actions{margin-top:12px}

/* позначки стану міста: форма, а не лише колір */
.st{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;font-weight:500;color:var(--muted)}
.st::before,.dot{content:"";width:12px;height:12px;border-radius:50%;flex:none;box-sizing:border-box;background:var(--line-2)}
.st.no_outages::before,.dot.no_outages{background:transparent;border:3px solid var(--lamp-strip)}
.st.waiting::before,.dot.waiting{background:transparent;border:2px dashed var(--line-2)}
.st.stale::before,.st.unavailable::before,.st.blocked::before,.st.parse_error::before,.st.needs_input::before,.dot.stale,.dot.unavailable,.dot.blocked,.dot.parse_error{background:var(--alert);border-radius:3px;transform:rotate(45deg) scale(.8)}
.st.unavailable,.st.stale,.st.blocked,.st.parse_error{color:var(--alert)}
.cities{list-style:none;margin:0;padding:0;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(172px,1fr))}
.cities a{display:flex;flex-direction:column;gap:2px;padding:12px 14px;background:var(--surface);border-radius:12px;border:1px solid var(--line);text-decoration:none;color:var(--ink);min-height:60px}
.cities a:hover{border-color:var(--ink)}.cities strong{font-size:1.0625rem}

ul.plain{list-style:none;padding:0;margin:0}.plain li a{display:block;padding:9px 0;text-decoration:none}.plain li a:hover{text-decoration:underline}
ul.plain.cols{columns:2;gap:24px}
.home-sub ul.plain{columns:2;gap:20px}.home-sub .plain li a{padding:7px 0;font-size:.9375rem}
.block{margin-top:8px}.two{display:grid;gap:0 32px}@media(min-width:640px){.two{grid-template-columns:1fr 1fr}}

/* статус «зараз за графіком» */
.status{margin:6px 0 18px;padding:16px 18px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--line-2)}
.status:has(.now[data-power=on]){border-left-color:var(--lamp-strip)}.status:has(.now[data-power=off]){border-left-color:var(--night)}
.status:has(.now[data-power=possible_off]){border-left-color:var(--lamp-strip);border-left-style:dashed}
.status.nodata{border-left-color:var(--alert);border-left-style:solid}.status.st-waiting{border-left-color:var(--line-2);border-left-style:dashed}
.status .lbl{margin:0 0 4px;font-size:.875rem;font-weight:650;color:var(--muted)}
.now{min-height:4.6em;margin:0;font-weight:650;font-size:1.1875rem;line-height:1.35;letter-spacing:-.01em}
.now .now-head{display:block;font-size:1rem;font-weight:650;color:var(--muted)}
.now .now-time{display:block;font-size:clamp(1.875rem,8.2vw,3rem);font-weight:800;letter-spacing:-.04em;line-height:1.08}
.now .now-in{display:block;font-size:1.125rem;font-weight:650}.now small{display:block;margin-top:4px;font-size:.875rem;font-weight:400;color:var(--muted)}
.now.big{font-size:1.5rem;line-height:1.25;min-height:4.5em}
@media(min-width:640px){.now{min-height:3.2em}}
.status.nodata .now{min-height:0;font-weight:500;font-size:1.0625rem}
.crowd:not([hidden]){min-height:2.6em;margin:.2em 0;color:var(--muted);font-size:.9375rem}
.choose{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.choose[hidden]{display:none}.js .choose[hidden]{display:flex;visibility:hidden}
.choose label{width:100%;font-size:.875rem;color:var(--muted)}.choose select{flex:1 1 120px;min-width:0}

/* ноти про стан (чесність, спека 3.4) */
.note{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;margin:.6em 0;max-width:70ch;border:1.5px solid var(--line-2);background:var(--surface)}
.note::before{content:"";flex:none;width:12px;height:12px;margin-top:.4em;border-radius:50%}
.note.ok{border-color:var(--lamp-strip);background:var(--on-soft)}.note.ok::before{border:3px solid var(--lamp-strip)}
.note.wait{border-style:dashed}.note.wait::before{border:2px dashed var(--muted)}
.note.warn{border-color:var(--alert);background:var(--alert-soft);color:var(--ink)}.note.warn::before{background:var(--alert);border-radius:3px;transform:rotate(45deg) scale(.85)}

/* сьогодні / завтра: вкладки на радіокнопках, працюють без JS */
.days{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.dtab-in{position:absolute;opacity:0;pointer-events:none}
.dtab{display:inline-flex;align-items:baseline;gap:8px;min-height:48px;padding:12px 16px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);font-weight:700;cursor:pointer}
.dtab small{font-weight:500;color:var(--muted);font-size:.875rem}
.dtab-in:checked+.dtab{background:var(--ink);border-color:var(--ink);color:var(--bg)}.dtab-in:checked+.dtab small{color:inherit;opacity:.8}
.dtab-in:focus-visible+.dtab{outline:3px solid var(--ink);outline-offset:2px}
.day{width:100%;margin-top:6px}
.dtab-in:nth-of-type(1):checked~.day:nth-of-type(2),.dtab-in:nth-of-type(2):checked~.day:nth-of-type(1){display:none}

/* 24-годинна стрічка */
.board{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:8px 14px 12px}
.axis{position:relative;height:22px;margin-left:calc(3.25rem + 12px);font-size:.75rem;color:var(--muted)}
.axis span{position:absolute;top:4px;transform:translateX(-50%)}.axis span:first-child{transform:none}.axis span:last-child{transform:translateX(-100%)}
.strip{position:relative;height:24px;border-radius:6px;background:var(--lamp-strip);overflow:hidden;margin:6px 0 0}
.strip::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(12.5% - 1px),rgba(21,23,28,.22) calc(12.5% - 1px) 12.5%);pointer-events:none}
.seg{position:absolute;top:0;bottom:0;background:var(--night)}
.seg.possible_off{background:repeating-linear-gradient(135deg,var(--night) 0 5px,var(--lamp-strip) 5px 9px)}
.needle{position:absolute;z-index:1;top:0;bottom:0;width:3px;margin-left:-1.5px;background:#15171c;box-shadow:0 0 0 2px #fff}
.bar-empty{height:24px;margin:6px 0 0;border-radius:6px;border:2px dashed var(--line-2);background:repeating-linear-gradient(135deg,transparent 0 8px,var(--sunk) 8px 10px)}
.ticks{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);margin-top:4px}
.times{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin-top:6px}
.t{font-size:.9375rem;font-weight:700}.t small{font-weight:500;color:var(--muted)}.t.none{color:var(--muted);font-weight:500}
.tag{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:6px;font-size:.8125rem;font-weight:650;border:1.5px dashed var(--ink)}
.tag.alert{border:1.5px solid var(--alert);color:var(--alert)}

/* таблиця черг міста */
.qlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.qlist li{display:grid;grid-template-columns:3.25rem 1fr;column-gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.qlist li:first-child{border-top:0}
.qlist li>:not(.qcode){grid-column:2}
.qlist .strip,.qlist .bar-empty{margin:0}
.qcode{grid-row:1/span 2;align-self:start;display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:10px;background:var(--sunk);font-weight:800;font-size:1.0625rem;letter-spacing:-.02em;text-decoration:none;color:var(--ink)}
.qcode:hover{background:var(--ink);color:var(--bg)}
.qsum{color:var(--muted);font-size:.8125rem;font-weight:500;margin-left:auto}
.qlist li.mine{margin:0 -14px;padding-inline:8px 14px;border-left:6px solid var(--ink);background:var(--sunk)}
.qlist li.mine .qcode{background:var(--ink);color:var(--surface)}
.legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 4px;padding:0;list-style:none;font-size:.8125rem;color:var(--muted)}
.legend li{display:inline-flex;align-items:center;gap:6px}.legend i{width:18px;height:12px;border-radius:3px;background:var(--lamp-strip)}
.legend .off{background:var(--night)}.legend .possible_off{background:repeating-linear-gradient(135deg,var(--night) 0 3px,var(--lamp-strip) 3px 6px)}
.legend .unk{background:transparent;border:1.5px dashed var(--line-2)}.legend .now-i{width:3px;background:#15171c;box-shadow:0 0 0 2px #fff,0 0 0 3px var(--line-2)}
.prov h2{margin:1.1em 0 .4em;font-size:1.0625rem;color:var(--muted);font-weight:650;letter-spacing:0}
@media(min-width:900px){
  .city-grid{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:0 28px;align-items:start}
  .city-grid .page-head{grid-column:1/-1}
  .city-grid .status{position:sticky;top:12px}
  .city-grid .prov:first-of-type h2{margin-top:0}
}

/* сторінка черги */
.qday{margin:0 0 12px;padding:4px 16px 16px}
.qday .dh{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;font-size:1.125rem;margin:.8em 0 .6em}
.qday .dh small{font-size:.875rem;font-weight:500;color:var(--muted)}
.qday .strip,.qday .bar-empty{height:44px;border-radius:10px}
.qday .ticks{font-size:.8125rem}
.qday .times{gap:4px 18px;margin-top:10px}.qday .t{font-size:1.5rem;font-weight:800;letter-spacing:-.03em}.qday .t.none{font-size:1rem}
.status .actions{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line)}
.status .actions .btn{flex:1 1 auto}
.status:has(.now[data-power=off]) .actions{border-top-color:#343844}
.delta{margin-top:4px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0}.chips a{display:inline-flex;align-items:center;justify-content:center;min-width:56px;height:48px;padding:0 12px;border-radius:12px;background:var(--surface);border:1.5px solid var(--line);text-decoration:none;font-weight:700;color:var(--ink)}
.chips a:hover{border-color:var(--ink)}.chips a[aria-current]{background:var(--ink);border-color:var(--ink);color:var(--bg)}

/* партнерський блок: тихий і позначений (спека 6.6) */
.prep{margin-top:40px;padding:16px 18px;border-radius:var(--r);border:1px solid var(--line)}
.prep h2{margin:0 0 4px;font-size:1.0625rem}.prep .tag{border-style:solid;border-color:var(--line-2);color:var(--muted);font-weight:500;margin-bottom:8px}
.prep ul{list-style:none;margin:0;padding:0}.prep li{display:flex;flex-direction:column;padding:10px 0;border-top:1px solid var(--line)}.prep li:first-child{border-top:0}
.prep li a{font-weight:600}.prep li span{color:var(--muted);font-size:.9375rem}.prep .fine{margin:8px 0 0}

/* FAQ і тексти: без карток */
.faq{max-width:760px}
.faq details{border-top:1px solid var(--line)}.faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 0;font-weight:650;min-height:52px;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:10px;height:10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translate(-2px,-2px)}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq details p{margin:0 0 16px;color:var(--ink);max-width:68ch}
.prose{max-width:68ch}.prose p,.prose li{line-height:1.7}
.slots{list-style:none;padding:0;display:grid;gap:12px}
.slots li{display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}.slots em{color:var(--muted);font-style:normal;font-size:.9375rem}
.guide-list{list-style:none;padding:0;display:grid;gap:10px}.guide-list a{display:flex;flex-direction:column;gap:4px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink)}
.guide-list a:hover{border-color:var(--ink)}.guide-list span{color:var(--muted)}
.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:520px}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}

/* розіграш: місце зарезервоване, закриття без стрибка (клас no-give до малювання) */
.give{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center;min-height:96px;margin:28px 0 8px;padding:12px 44px 12px 16px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);position:relative}
.give p{margin:0;grid-column:1/-1}.give .btn{min-height:44px;justify-self:start}
.give-x{position:absolute;top:4px;right:4px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:1.5rem;cursor:pointer}
.no-give .give{display:none}
@media(min-width:640px){.give{grid-template-columns:1fr auto;min-height:64px}.give p{grid-column:1}}

/* підвал */
.foot{border-top:1px solid var(--line);background:var(--surface);color:var(--muted);padding:28px var(--gut) 40px;font-size:.9375rem}
.foot-cols,.foot .fine{max-width:var(--max);margin:0 auto}.foot-cols{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}
.foot strong{color:var(--ink)}.foot ul{list-style:none;padding:0;margin:8px 0 0}.foot-cols>div:first-child ul{columns:2;gap:16px}
.foot a{color:var(--ink);display:inline-block;padding:6px 0;text-decoration:none}.foot a:hover{text-decoration:underline}.foot .fine{margin-top:24px}
@media(min-width:720px){.foot-cols>div:first-child ul{columns:3}}
.now .now-time:not(:has(+ .now-in)){font-size:1.25rem;letter-spacing:-.01em;line-height:1.3}
.saved[data-power=off]{border-left-color:var(--night)}.saved[data-power=unknown]{border-left-color:var(--line-2);border-left-style:dashed}
.saved[data-power=possible_off]{border-left-style:dashed}
.saved .now{min-height:0;margin:4px 0 0}
/* «за графіком світла немає»: картка стає ніччю, щоб стан читався без тексту */
.status:has(.now[data-power=off]),.saved[data-power=off]{background:#15171c;color:#f3f4f6;border-color:#15171c;border-left-color:#15171c}
.status:has(.now[data-power=off]) .lbl,.status:has(.now[data-power=off]) .now-head,.status:has(.now[data-power=off]) small,.status:has(.now[data-power=off]) .choose label,.saved[data-power=off] a,.saved[data-power=off] .now-head,.saved[data-power=off] small{color:#b8bdc8}
.status:has(.now[data-power=off]) .choose{border-top-color:#343844}
:root[data-theme=dark] .status:has(.now[data-power=off]),:root[data-theme=dark] .saved[data-power=off]{background:#050608;border-color:#2c3038}
/* моя черга нагорі, решта за перемикачем (працює без JS; закріплення ставить інлайн-скрипт до малювання) */
.qlist li.mine{order:-1;border-top:0}
.allq-in{display:none}.allq-in:has(+.qlist.pinned){display:block;position:absolute;opacity:0;pointer-events:none}
.allq{display:none;align-items:center;justify-content:center;min-height:48px;margin-top:8px;border-radius:12px;border:1.5px solid var(--line);font-weight:650;cursor:pointer}
.allq:hover{border-color:var(--ink)}
.qlist.pinned~.allq{display:flex}
.allq-in:focus-visible~.allq{outline:3px solid var(--ink);outline-offset:2px}
.allq-in:not(:checked)+.qlist.pinned>li:not(.mine){display:none}
.allq-in:checked~.allq .allq-more,.allq-in:not(:checked)~.allq .allq-less{display:none}
.st.planned::before,.dot.planned{background:transparent;border:2px solid var(--line-2)}
.city-main>.btn[data-install][hidden]{display:none}
.ye .now{min-height:5.4em}
.ye-pick{align-items:stretch}.ye-pick>div{flex:1 1 150px;min-width:0}.ye-pick label{margin-bottom:6px}.ye-pick select{width:100%}
.ye{max-width:680px}
/* темна тема: межа стрічки ≥3:1 до картки й тла (WCAG 1.4.11), щоб «немає світла» на краях доби не зливалося з тлом */
:root[data-theme=dark] .strip,:root[data-theme=dark] .legend i{box-shadow:0 0 0 1px #767d8c}
:root[data-theme=dark] .legend .unk{box-shadow:none}:root[data-theme=dark] .legend .now-i{box-shadow:0 0 0 2px #fff}
.fresh.tpl::before{display:none}
.fine a{display:inline-block;padding:4px 0}.chips+.fine{margin-top:12px}
/* довгі тексти: гайди й довідка */
.read-head .lead{max-width:60ch;color:var(--ink);font-size:1.1875rem;line-height:1.5}
.toc{margin:18px 0 8px;padding:12px 16px 16px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}
.toc summary{cursor:pointer;font-weight:700;min-height:40px;display:flex;align-items:center}
.toc ol{margin:2px 0 12px;padding-left:1.4em;color:var(--muted)}.toc li{padding:5px 0;font-size:.9375rem;line-height:1.35}.toc a{color:var(--ink);text-decoration:none}.toc a:hover{text-decoration:underline}
.toc .btn{width:100%}
.prose{font-size:1.0625rem}.prose h2{font-size:1.375rem;margin:1.9em 0 .5em;scroll-margin-top:16px}
.prose ul{padding-left:1.2em}.prose ul li{margin:.35em 0;padding-left:.2em}.prose ul li::marker{color:var(--muted)}
.picks{margin-top:2.4em;padding-top:4px;border-top:1px solid var(--line)}.picks .tag{border-style:solid;border-color:var(--line-2);color:var(--muted);font-weight:500;margin-bottom:10px}
.slots li strong{font-size:1.0625rem;line-height:1.35}.slots li .btn{margin-top:6px;min-height:44px}
.related{margin-top:2em}.related .plain a{text-decoration:underline;padding:6px 0}
.prose .cta-band{margin-top:40px}.prose .cta-band h2{margin-top:0;font-size:1.25rem}
@media(min-width:960px){
  .read{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:0 48px;align-items:start}
  .read-head{grid-column:1/-1}.read .prose{grid-column:1;grid-row:2}
  .read .toc{grid-column:2;grid-row:2;position:sticky;top:16px;margin-top:1.9em}
}
.guide-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.guide-list strong{font-size:1.0625rem;line-height:1.3}
.prose ul.plain{padding-left:0}.prose ul.plain li{padding-left:0}
/* розіграш: спокійно, позначено як промо, перевірка читається */
.promo .page-head .tag,.give .tag{border-style:solid;border-color:var(--line-2);color:var(--muted);font-weight:600}
.promo .page-head .tag{margin-top:10px}.promo h1{margin-top:.2em}
.give .tag{margin-right:6px;vertical-align:1px}
.facts{display:grid;gap:8px;margin:20px 0 8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.facts div{padding:12px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.facts dt{font-size:.8125rem;color:var(--muted);font-weight:600}.facts dd{margin:2px 0 0;font-weight:650}
.steps{list-style:none;counter-reset:st;padding:0;margin:14px 0}
.steps li{counter-increment:st;position:relative;padding:0 0 18px 48px;margin:0}
.steps li::before{content:counter(st);position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--ink);color:var(--bg);font-weight:800;font-size:.9375rem}
.steps li:not(:last-child)::after{content:"";position:absolute;left:15px;top:36px;bottom:4px;width:2px;background:var(--line)}
.prose code{font-size:.875em;overflow-wrap:anywhere}
.verify{margin:8px 0 20px;padding:14px 16px;border-radius:12px;border:1.5px solid var(--ink);background:var(--surface)}
.verify-h{font-weight:700;margin:0 0 6px}.verify ul{margin:0;padding-left:1.2em}.verify li{margin:.3em 0}
/* ===== v2: світла тепла тема, карта, єдиний пошук ===== */
html{overflow-x:clip}
body{background:var(--sun) no-repeat 0 0/100% 620px,var(--bg)}
.top{background:transparent}
.hero{padding:6px 0 8px}
.hero-in{display:grid;gap:8px 48px;align-items:start}
@media(min-width:900px){.hero-in{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}.hero-map{padding-top:18px}}
.hero h1{font-size:clamp(2.125rem,8.6vw,3.75rem);letter-spacing:-.04em;max-width:12ch}
.hero .lead{color:#4a5263}
.find-label{margin:22px 0 8px;font-size:1rem}
.find-row{display:flex;gap:8px}
.find-row input{flex:1;min-width:0;height:60px;font:600 1.1875rem var(--font);padding:0 16px 0 48px;border-radius:var(--r);border:2px solid var(--ink);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6475' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m15.5 15.5 5 5'/%3E%3C/svg%3E") 15px 50%/21px no-repeat;color:var(--ink);appearance:none;box-shadow:0 8px 24px rgba(180,120,0,.12)}
.find-row input::placeholder{color:var(--muted);font-weight:400}
.find-row .btn{height:60px;padding:0 22px;border-radius:var(--r);font-size:1.0625rem}
@media(max-width:420px){.find-row .btn{padding:0 16px}}
.search .find-row+.results{top:100%}
.addr-out:empty{min-height:0;margin:0}.addr-out{margin-top:10px}
.addr-out:not(:empty){padding:12px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.addr-out p{margin:0 0 6px}
.addr summary{font-size:.9375rem;color:var(--muted)}
.addr-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.addr-grid .fld-street{grid-column:1/-1}.addr-grid .btn{grid-column:1/-1}
@media(min-width:560px){.addr-grid{grid-template-columns:1fr 2fr 90px}.addr-grid .fld-street{grid-column:auto}}
.addr-grid label{font-size:.875rem;color:var(--muted)}
.find{margin:20px 0}.find .addr-grid{max-width:520px}.find .addr-grid input{width:100%;height:52px;font:inherit;padding:0 14px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink);margin:6px 0 12px}
.find-all{font-size:1rem;margin:16px 0 8px}.tiles-sm{grid-template-columns:repeat(auto-fill,minmax(52px,1fr))}.tiles-sm .tile{min-height:48px}.tiles-sm .tile b{font-size:1rem}
.picks-row{margin-top:16px}
.picks-row a{background:rgba(255,255,255,.85)}

/* карта */
.hero-map h2{margin:18px 0 6px;font-size:1.125rem}
.map{margin:0}
.map-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.8125rem;color:var(--muted)}
.map-legend li{display:inline-flex;align-items:center;gap:6px}
.map-list{margin-top:8px;font-size:.9375rem}.map-list summary{cursor:pointer;min-height:44px;display:inline-flex;align-items:center;color:var(--muted);text-decoration:underline;text-underline-offset:.18em}
@media(max-width:520px){.map-list ul{columns:1}}

/* переваги */
.perks{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:12px}
@media(min-width:760px){.perks{grid-template-columns:repeat(3,1fr)}}
.perks li{display:flex;gap:14px;align-items:flex-start;padding:16px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}
.perks svg{flex:none;width:44px;height:44px;padding:10px;border-radius:50%;background:var(--lamp-soft);color:#8a5a00}
.perks strong{display:block}.perks span{color:var(--muted);font-size:.9375rem}
:root[data-theme=dark] .perks svg{color:var(--lamp)}
:root[data-theme=dark] .hero .lead{color:var(--muted)}
.map-lbl{font:800 30px var(--font);fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:6px;stroke-linejoin:round;pointer-events:none}
/* порожні стани: 404 і офлайн */
.empty{padding:24px 0 8px;max-width:640px}
.empty-art{width:96px;height:96px;color:var(--ink);margin-bottom:4px}
.empty .actions{margin-top:18px}
.offline-list{margin:16px 0 0;max-width:640px}
.offline-list li a{display:flex;align-items:center;min-height:52px;padding:0 16px;margin-bottom:8px;border-radius:12px;background:var(--surface);border:1px solid var(--line);font-weight:650;text-decoration:none}
.offline-list li a:hover{border-color:var(--ink)}

/* карта v3: стан кодується формою й кольором; межі й візерунки ≥3:1 до тла (QA) */
.map-svg{display:block;width:100%;height:auto;overflow:visible}
.map-svg .rg path,.map-svg path.rg,.map-svg .rg circle{stroke-width:1.3;stroke-linejoin:round;vector-effect:non-scaling-stroke}
/* карта v5 — табло стану (палітра власника 2026-10-09): зелений — світло є за графіком; чорний — світла немає за графіком;
   суміш зеленого й чорного — частка підтверджених черг зі світлом (--sw-l/--sw-d інлайн з regions.blend); чорний із червоною межею —
   аварійні відключення; бурштиновий — діють графіки відключень; червоний — помилка даних оператора (НЕ аварійні);
   світло-зелений — за нашою інформацією світло є. Карта, легенда, чипи й списки — ті самі змінні. */
:root{--c-on:#2f9e44;--c-off:#15171c}
:root[data-theme=dark]{--c-on:#40c057;--c-off:#000}
.s-on{--sw:var(--c-on);--sw-b:#1b5e20}
.s-off{--sw:var(--c-off);--sw-b:#000}
.s-share{--sw:var(--sw-l,#22582f);--sw-b:#15171c}
.s-emergency{--sw:#15171c;--sw-b:#e03131}
.s-notice{--sw:#f59f00;--sw-b:#8a5a00}
.s-broken{--sw:#e03131;--sw-b:#8f1d1d}
.s-assumed,.s-none{--sw:#c3ecc9;--sw-b:#5c9e68}
:root[data-theme=dark] .s-on{--sw-b:#b2f2bb}
:root[data-theme=dark] .s-off{--sw-b:#adb5bd}
:root[data-theme=dark] .s-share{--sw:var(--sw-d,#205c2c);--sw-b:#adb5bd}
:root[data-theme=dark] .s-emergency{--sw:#000;--sw-b:#ff6b6b}
:root[data-theme=dark] .s-notice{--sw:#fab005;--sw-b:#ffe8a3}
:root[data-theme=dark] .s-broken{--sw:#f03e3e;--sw-b:#ffc9c9}
:root[data-theme=dark] .s-assumed,:root[data-theme=dark] .s-none{--sw:#2b4a33;--sw-b:#8ce99a}
.map-svg .rg path,.map-svg path.rg,.map-svg .rg circle{fill:var(--sw,#c3ecc9);stroke:var(--sw-b,#5c9e68)}
.map-svg .s-emergency path,.map-svg path.s-emergency,.map-svg .s-emergency circle{stroke-width:3}
.map-svg .s-none path,.map-svg path.s-none{stroke-dasharray:1 3}
.map-legend i.sw,.map-list .dot.sw,.picks-row .dot.sw,.st.sw::before{width:16px;height:14px;border-radius:3px;flex:none;box-sizing:border-box;background:var(--sw);border:1.5px solid var(--sw-b);transform:none}
.map-legend i.sw.s-emergency,.map-list .dot.sw.s-emergency,.picks-row .dot.sw.s-emergency,.st.sw.s-emergency::before{border-width:3px}
.map-legend i.sw.s-share{background:linear-gradient(90deg,var(--c-on) 0 50%,var(--c-off) 50%)}
.st.op::before{display:none}
.map-svg a.rg:hover path,.map-svg a.rg:focus-visible path,.map-svg a.rg:hover circle,.map-svg a.rg:focus-visible circle{stroke:var(--ink);stroke-width:3;filter:brightness(.93)}
.map-svg a.rg:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.map-svg .city circle{stroke:var(--ink);stroke-width:2.5}
@media (prefers-reduced-motion:no-preference){.map-svg .rg path,.map-svg .rg circle{transition:filter .12s}}
.hero-map h2 small{font-size:.875rem;font-weight:500;color:var(--muted)}
.map-note{margin:8px 0 0}
.map-list ul{list-style:none;margin:4px 0 0;padding:0;columns:2;gap:20px}
.map-list li{display:flex;align-items:center;gap:6px;min-height:44px;break-inside:avoid;border-bottom:1px solid var(--line)}
.map-list li a{display:flex;align-items:center;min-height:44px;flex:1}
.map-list .dot{display:inline-block;margin-left:auto}
@media(max-width:520px){.map-list ul{columns:1}}
:root[data-theme=dark] .picks-row a{background:var(--surface)}
/* узгодженість v2: довгі назви (однойменні н. п. з районом) не розпирають мобільний макет */
body{overflow-wrap:break-word}
h1,h2,.crumbs,.cities strong,.foot a,.map-list a,.picks-row a,.qcode{overflow-wrap:anywhere}
.cities{grid-template-columns:repeat(auto-fill,minmax(min(172px,100%),1fr))}
.cities li,.foot-cols>div{min-width:0}
.foot-cols{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
.foot-cols>div:first-child li{break-inside:avoid}
table{min-width:0}th,td{overflow-wrap:anywhere}
@media(max-width:479px){.foot-cols{grid-template-columns:1fr}.foot-cols>div:last-child ul{columns:2;gap:16px}}
/* ноти: блочна верстка, щоб <strong> і текст не розпадалися на flex-колонки */
.note{display:block;position:relative;padding-left:38px}
.note::before{position:absolute;left:14px;top:calc(12px + .4em);margin:0}
/* not_connected: оператора ще підключаємо — нейтрально, ніколи не як збій */
.note.neutral{border-color:var(--line-2);background:var(--surface)}.note.neutral::before{border:2px solid var(--muted);border-radius:50%;background:transparent}
.st.not_connected::before,.dot.not_connected{background:transparent;border:2px solid var(--line-2);border-radius:50%;transform:none}
.st.not_connected{color:var(--muted)}
.tag.neutral{border:1.5px solid var(--line-2);color:var(--muted)}
.ops{list-style:none;margin:0;padding:0;max-width:640px}
.ops li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;min-height:52px;padding:8px 0;border-bottom:1px solid var(--line)}
.ops a{font-weight:650}
.op-state{margin:0 0 8px}
.note.io p{margin:0 0 10px}.note.io .btn{min-height:44px}
.map-svg a.rg{cursor:pointer}
.note .retry{margin:8px 0 0}
/* AMI-846: стан і формою — візерунки карти (#mp-* у _map.html.j2) і ті самі візерунки у зразках легенди, чипах і списках */
.map-svg .s-share path,.map-svg path.s-share,.map-svg .s-share circle{fill:url(#mp-share)}
.map-svg .s-notice path,.map-svg path.s-notice,.map-svg .s-notice circle{fill:url(#mp-notice)}
.map-svg .s-broken path,.map-svg path.s-broken,.map-svg .s-broken circle{fill:url(#mp-broken)}
.map-svg .s-assumed path,.map-svg path.s-assumed,.map-svg .s-assumed circle,.map-svg .s-none path,.map-svg path.s-none{fill:url(#mp-assumed)}
:root[data-theme=dark] #mp-share rect:first-child{fill:#40c057}:root[data-theme=dark] #mp-share rect+rect{fill:#000}
:root[data-theme=dark] #mp-notice rect:first-child{fill:#fab005}
:root[data-theme=dark] #mp-broken rect:first-child{fill:#f03e3e}:root[data-theme=dark] #mp-broken rect+rect{fill:#1a1d23}
:root[data-theme=dark] #mp-assumed rect{fill:#2b4a33}:root[data-theme=dark] #mp-assumed circle{fill:#8ce99a}
.map-legend i.sw.s-share,.map-list .dot.sw.s-share,.picks-row .dot.sw.s-share{background:repeating-linear-gradient(45deg,var(--c-on) 0 4px,var(--c-off) 4px 7px)}
.st.sw.s-share::before{background:repeating-linear-gradient(45deg,var(--c-on) 0 4px,var(--c-off) 4px 7px)}
.map-legend i.sw.s-notice,.map-list .dot.sw.s-notice,.picks-row .dot.sw.s-notice,.st.sw.s-notice::before{background:repeating-linear-gradient(45deg,var(--sw) 0 3px,#a35200 3px 4.5px)}
.map-legend i.sw.s-broken,.map-list .dot.sw.s-broken,.picks-row .dot.sw.s-broken,.st.sw.s-broken::before{background:repeating-linear-gradient(45deg,transparent 0 3px,#ffffff 3px 4px),repeating-linear-gradient(-45deg,var(--sw) 0 3px,#ffffff 3px 4px)}
.map-legend i.sw.s-assumed,.map-list .dot.sw.s-assumed,.picks-row .dot.sw.s-assumed,.st.sw.s-assumed::before,.map-legend i.sw.s-none,.map-list .dot.sw.s-none{background:radial-gradient(circle,var(--sw-b) 0 1.3px,transparent 1.8px) 0 0/5px 5px,var(--sw)}
/* картка регіону під картою: дотик на телефоні показує стан і кнопку «Відкрити»; місце зарезервоване */
.map-card{min-height:9.6em;margin:10px 0 8px;padding:12px 14px;border-radius:var(--r-s);background:var(--surface);border:1px solid var(--line);box-sizing:border-box}
.map-card p{margin:0}.map-card-h{font-weight:750;font-size:1.0625rem}.map-card-st{color:var(--muted);font-size:.9375rem;line-height:1.4;margin-top:2px!important}
.map-card-go[hidden],.map-legend li[hidden]{display:none!important}
.map-card-go{display:inline-flex;align-items:center;min-height:44px;font-weight:700}.map-card-go::after{content:" →";white-space:pre}
.map-svg .rg.sel path,.map-svg .rg.sel circle,.map-svg path.rg.sel{stroke:var(--ink);stroke-width:3.5}
.map-svg a.rg{-webkit-tap-highlight-color:transparent}
.map-svg .city .map-lbl{font-size:34px}
/* хаб області */
.hub-ops{list-style:none;margin:0;padding:0;display:grid;gap:10px;max-width:760px}
.hub-ops li{padding:14px 16px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}
.hub-op-h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px}.hub-op-h a{font-weight:700;font-size:1.0625rem}
.hub-op-a{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.hub-op-a:empty{display:none}.hub-op-a .btn{min-height:44px}
.hub-addr{margin-top:28px;padding:18px;border-radius:var(--r);background:var(--lamp-soft);border:1px solid var(--line);max-width:760px}
.hub-addr h2{margin-top:0;font-size:1.1875rem}
.src-link{font-size:.875rem;margin-left:4px}
/* шапка: 4 пункти; на вузьких екранах — другим рядком, короткі підписи */
.top{flex-wrap:wrap}
.main-nav{display:flex;flex-wrap:wrap}
.main-nav .n-short{display:none}
@media(max-width:719px){
  .top{row-gap:0;padding-bottom:4px}
  .main-nav{order:3;flex:1 0 100%;flex-wrap:nowrap;justify-content:space-between;margin:0 -6px}
  .main-nav a{padding:10px 6px;font-size:.9375rem;white-space:nowrap}
  .main-nav .n-long{display:none}
  .main-nav .n-short{display:inline}
}
#addr,#map{scroll-margin-top:12px}
.home-sub>section,.hero-in>div{min-width:0}
/* схема відключень: плитка на чергу, стан «зараз за графіком» (форма + колір, як у легенді карти) */
.scheme{margin:4px 0 18px}
.scheme-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.scheme-head h2{margin:.6em 0 .5em;font-size:1.125rem}
.tiles{list-style:none;margin:0;padding:0;display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(62px,1fr))}
.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:62px;border-radius:12px;text-decoration:none;color:var(--ink);border:2px solid transparent;line-height:1.15}
.tile b{font-size:1.125rem;font-weight:800}.tile-st{font-size:.6875rem;font-weight:600}
.tile.t-on,.tile-legend .t-on{background:var(--lamp-strip);border-color:#1b5e20;color:#10140f}
.tile.t-off,.tile-legend .t-off{background:#262c3b;border-color:#262c3b;color:#fff}
.tile.t-possible_off,.tile-legend .t-possible_off{background:repeating-linear-gradient(135deg,#262c3b 0 5px,var(--lamp-strip) 5px 10px);border-color:#262c3b;color:#fff}
.tile.t-possible_off b,.tile.t-possible_off .tile-st{background:#262c3b;padding:0 4px;border-radius:4px}
.tile.t-unknown,.tile-legend .t-unknown{background:var(--surface);border:2px dashed var(--line-2);color:var(--muted)}
.tile:hover{outline:3px solid var(--ink);outline-offset:1px}
.tile-legend{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.8125rem;color:var(--muted)}
.tile-legend li{display:inline-flex;align-items:center;gap:6px}.tile-legend i{width:16px;height:14px;border-radius:3px;border-width:1.5px;border-style:solid}
.scheme-note{margin:6px 0 0}
:root[data-theme=dark] .tile.t-off{background:#050608;border-color:#767d8c}
.tile.t-unknown,.tile-legend .t-unknown{background:var(--surface);border:2px dashed var(--line-2);color:var(--ink)}
.status:has(.now[data-power=unknown]){border-left-color:var(--line-2);border-left-style:dashed}
.tile.t-pending{background:var(--surface);border:2px solid var(--line);color:var(--ink)}
.tile-legend .lg-unknown{display:none}.scheme:has(.tile.t-unknown) .tile-legend .lg-unknown{display:inline-flex}
/* картка статусу без підтвердженого графіка: аварійні — червона межа; діють графіки — бурштин; (B) — світло-зелена */
.status.nodata{border-left-color:var(--line-2)}
.status.nodata.st-emergency{border-left-color:#e03131;border-left-style:solid}
.status.nodata.st-notice{border-left-color:#f59f00;border-left-style:solid}
.status.nodata.st-assumed{border-left-color:#8ce99a;border-left-style:solid}
:root[data-theme=dark] .status.nodata.st-emergency{border-left-color:#ff6b6b}
.status.st-emergency .now .now-head,.now[data-kind=emergency] .now-head{font-size:1.375rem;font-weight:800;color:#c92a2a}
:root[data-theme=dark] .status.st-emergency .now .now-head,:root[data-theme=dark] .now[data-kind=emergency] .now-head{color:#ff8787}
.status.st-notice .now .now-head,.status.st-assumed .now .now-head,.now[data-kind=notice] .now-head,.now[data-kind=assumed] .now-head{font-size:1.25rem;font-weight:750;color:var(--ink)}
.now .now-expl,.now .now-extra{display:block;margin-top:8px;font-size:.9375rem;font-weight:500;color:var(--ink)}
.now .now-checked{display:block;margin-top:4px;font-size:.8125rem;font-weight:400;color:var(--muted)}
.note.k-emergency{border-color:#e03131}.note.k-emergency::before{border-color:#e03131;background:#e03131}
.note.k-notice{border-color:#f59f00}.note.k-notice::before{border-color:#f59f00;background:#f59f00}
.note .now-head{font-weight:700}.note .now-note{display:inline}.note .now-expl,.note .now-extra{display:block;margin-top:4px}.note .now-checked{display:block;color:var(--muted)}
.tag.k-emergency{border-color:#e03131;color:#c92a2a}
:root[data-theme=dark] .tag.k-emergency{border-color:#ff6b6b;color:#ff8787}
.tile.t-emergency,.tile-legend .t-emergency{background:#15171c;border-color:#e03131;color:#fff}
.tile.t-notice,.tile-legend .t-notice{background:#f59f00;border-color:#8a5a00;color:#1e2433}
.tile-legend .lg-emergency,.tile-legend .lg-notice{display:none}
.scheme:has(.tile.t-emergency) .tile-legend .lg-emergency,.scheme:has(.tile.t-notice) .tile-legend .lg-notice{display:inline-flex}
.lp{margin-top:10px}
.lp-cap{margin:0 0 6px;font-size:.875rem;font-weight:650;color:var(--muted)}
.lp-strip{position:relative;height:24px;border-radius:6px;background:var(--sunk);border:1.5px dashed var(--line-2);overflow:hidden}
.lp-strip .seg{background:var(--line-2)}
.lp-strip .seg.possible_off{background:repeating-linear-gradient(135deg,var(--line-2) 0 5px,transparent 5px 9px)}
.lp-strip::after{content:"";position:absolute;left:0;right:0;top:calc(50% - 1px);height:2px;background:var(--muted)}
.qday .lp-strip{height:44px;border-radius:10px}
.lp-times .t{color:var(--muted);font-weight:600;text-decoration:line-through}
.qday .lp-times .t{font-size:1.125rem;font-weight:650}
/* Київ-коло: аварійні — червона межа й тут (загальне правило .city circle ставить колір тексту) */
.map-svg .city.s-emergency circle,.map-svg .city.s-emergency path{stroke:#e03131;stroke-width:3.5}
:root[data-theme=dark] .map-svg .city.s-emergency circle,:root[data-theme=dark] .map-svg .city.s-emergency path{stroke:#ff6b6b}
.now .now-link{display:inline-block;margin-top:8px;font-size:.9375rem;font-weight:650}
.regions-map{max-width:760px}.regions-map .map-list summary{display:none}
/* AMI-846: стан області з підтвердженими графіками — суцільна межа кольору стану, без зарезервованого місця під відлік (його тут немає) */
.status.area:has(.now){border-left-style:solid}.status.area .now{min-height:0}
.status.area.area-on:has(.now),.status.area.area-share:has(.now){border-left-color:var(--lamp-strip)}
.status.area.area-off:has(.now){border-left-color:var(--c-off)}
:root[data-theme=dark] .status.area.area-off:has(.now){border-left-color:#767d8c}
/* картки міст на хабах: підпис стану під назвою на всю ширину, а не вузьким стовпчиком біля позначки */
.cities .st{display:flex;align-items:flex-start;gap:6px}.cities .st::before{margin-top:.2em}
/* список регіонів: назва першим рядком, позначка й стан другим — довгий підпис стану не стискає назву */
.map-list li{flex-wrap:wrap;gap:2px 6px;padding:6px 0}.map-list .map-nm{flex:1 0 100%;min-height:32px;display:flex;align-items:center;font-weight:650}
.map-list .dot{margin-left:0}.map-list .map-st{flex:1;min-width:0;font-size:.875rem;color:var(--muted)}
.map-list a.map-nm{min-height:44px}
@media(min-width:640px){.map-card{min-height:6.6em}}
/* AMI-1093: відповідь першою. Картка стану — найсильніший елемент сторінки (тло за станом, великий час), Telegram — вторинна дія поруч, не всередині відповіді */
.ans{margin:6px 0 18px}.ans .status{margin:0}
.status{padding:18px 20px 16px;border-left-width:8px}
.status .lbl{font-size:.9375rem}
.status .now .now-head{display:block;font-size:1.5rem;font-weight:800;line-height:1.15;letter-spacing:-.025em;color:var(--ink)}
.status .now .now-time{font-size:clamp(2.5rem,13vw,3.75rem);font-weight:800;letter-spacing:-.045em;line-height:1.05;margin-top:2px}
.status .now .now-in{font-size:1.25rem;font-weight:650;margin-top:2px}
.status.nodata .now .now-head{font-size:clamp(1.5rem,6.6vw,2rem);font-weight:800;line-height:1.15}
.status.nodata .now{font-weight:500}
.status:has(.now[data-kind=assumed]),.status:has(.now[data-power=on]),.status:has(.now[data-power=possible_off]){background:var(--on-soft)}
.status:has(.now[data-kind=notice]){background:var(--lamp-soft)}
.status:has(.now[data-kind=emergency]){background:var(--alert-soft)}
.status:has(.now[data-power=off]){background:#15171c}
.status:has(.now[data-power=off]) .now-head{color:#fff}
.ans .status .now[data-now-for]{min-height:8.5rem}
.actions.quiet{margin:10px 0 0;gap:8px}.ans>.fine{margin:6px 0 0}
.actions.quiet .btn,.q-act .btn{min-height:44px;padding:0 14px;font-size:.9375rem;font-weight:600}
.actions.quiet .btn{flex:1 1 auto}
.actions.quiet .btn.primary,.q-act .btn.primary{background:var(--surface);border-color:var(--line-2);color:var(--ink)}
.actions.quiet [data-save-choice]{order:-1}
.actions.quiet [data-push]{flex:1 1 100%;border-color:transparent;background:transparent;text-decoration:underline;text-underline-offset:.18em}
.q-act .actions{margin-top:20px}
@media(min-width:900px){.city-grid .ans{position:sticky;top:12px}.city-grid .ans .status{position:static}}
/* пошук черги: компактно, усі посилання в HTML */
.qpick{margin:10px 0 0}
.qpick-mine{margin:0 0 10px}.qpick-mine[hidden]{display:none}
.qpick-mine .btn{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.qpick-d>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:0 16px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);font-weight:650;cursor:pointer;list-style:none}
.qpick-d>summary::-webkit-details-marker{display:none}
.qpick-d>summary::after{content:"";flex:none;width:10px;height:10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translate(-2px,-2px)}
.qpick-d[open]>summary::after{transform:rotate(-135deg)}
.qpick-d>summary:hover{border-color:var(--ink)}
.qpick-f{display:block;width:100%;height:48px;margin:10px 0 8px;padding:0 14px;font:inherit;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink)}
.qpick-f[hidden],.qpick-l li[hidden],.qpick .fine[hidden]{display:none}
.qpick-l{margin-top:10px}.qpick-f+.qpick-l{margin-top:0}
.qpick .tile[aria-current]{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.find .addr-grid{grid-template-columns:minmax(0,1fr) auto;max-width:640px}
.find .addr-grid .fld-street{grid-column:1/-1}
.find .addr-grid .fld-house{min-width:0}
.find .addr-grid .btn{grid-column:auto;align-self:end;height:52px;margin-bottom:12px}
@media(min-width:560px){.find .addr-grid{grid-template-columns:minmax(0,1fr) 110px auto}.find .addr-grid .fld-street{grid-column:auto}}
/* графіки операторів: коли черг багато, згорнуті; час усіх черг лишається в HTML */
.provd>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;cursor:pointer;list-style:none}
.provd>summary::-webkit-details-marker{display:none}
.provd>summary h2{margin:0}
.provd-more{flex:none;font-size:.875rem;color:var(--muted);text-decoration:underline;text-underline-offset:.18em}
.provd[open]>summary .provd-more{display:none}
.qlist li.q-none{padding:4px 0}.qlist li.q-none .times{margin-top:0}
/* головна: одна пропозиція Telegram, переваги — звичайним текстом, міста — рядками */
.perks{margin:24px 0 0;gap:12px 32px;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}
.perks li{padding:0;border:0;border-radius:0;background:none}
.perks svg{width:36px;height:36px;padding:8px}
.cities{gap:0 32px;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr))}
.cities a{align-items:flex-start;gap:0;min-height:56px;padding:8px 4px;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0}
.cities a:hover{background:var(--sunk)}
/* рядок міста — посилання: шеврон праворуч і підкреслена назва, щоб навіть один рядок читався як клікабельний */
.cities a{position:relative;padding-right:32px}.cities strong{text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--line-2);text-underline-offset:.18em}
.cities a::after{content:"";position:absolute;right:10px;top:50%;width:8px;height:8px;border-top:2px solid var(--muted);border-right:2px solid var(--muted);transform:translateY(-50%) rotate(45deg)}
.cities a:hover::after{border-color:var(--ink)}.cities a:hover strong{text-decoration-color:var(--ink)}
/* хаб області: сайт оператора — другорядне текстове посилання поруч із кнопками */
.hub-op-a{align-items:center}.op-ext{font-size:.875rem;color:var(--muted);text-underline-offset:.18em;padding:6px 0}
.cta-band{display:grid;gap:4px 24px;align-items:center;margin-top:32px;padding:16px 18px;background:var(--lamp-soft);border-color:transparent}
.cta-band h2{font-size:1.1875rem;margin:0}.cta-band p{margin:0;color:var(--muted);font-size:.9375rem}.cta-band .actions{margin:10px 0 0}
@media(min-width:720px){.cta-band{grid-template-columns:1fr auto}.cta-band h2,.cta-band p{grid-column:1}.cta-band .actions{grid-column:2;grid-row:1/span 2;margin:0}}
/* картка регіону до вибору: регіони, де зараз щось відбувається (посилання), замість порожньої рамки */
.map-card{display:grid;grid-template-columns:minmax(0,1fr);min-height:13em;align-content:start}
.map-card>*{grid-column:1}.map-card-h{grid-row:1}.map-card-st{grid-row:2}.map-card-go,.map-card-hot{grid-row:3}
.map-card .map-card-go[hidden]{display:inline-flex!important;visibility:hidden}
.map-card .map-card-hot[hidden]{display:flex;visibility:hidden}
.map-card-hot{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:0 14px}
.map-card-hot a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:.9375rem;font-weight:600;text-decoration:none}
.map-card-hot a:hover{text-decoration:underline}
.map-card-hot .dot.sw{display:inline-block;width:16px;height:14px;border-radius:3px;flex:none;box-sizing:border-box;background:var(--sw);border:1.5px solid var(--sw-b)}
.map-card-hot .dot.sw.s-emergency{border-width:3px}
.map-card-hot .dot.sw.s-share{background:repeating-linear-gradient(45deg,var(--c-on) 0 4px,var(--c-off) 4px 7px)}
.map-card-hot .dot.sw.s-notice{background:repeating-linear-gradient(45deg,var(--sw) 0 3px,#a35200 3px 4.5px)}
.map-card-hot .dot.sw.s-broken{background:repeating-linear-gradient(45deg,transparent 0 3px,#fff 3px 4px),repeating-linear-gradient(-45deg,var(--sw) 0 3px,#fff 3px 4px)}
.scheme-d{margin-top:4px}.scheme-d>.tiles{margin-top:10px}
.scheme-d .qpick-f{margin:10px 0 0}.scheme-d li[hidden]{display:none}
@media(max-width:639px){.map-card{min-height:14.8em}}
.now .now-note,.now .now-checked{white-space:pre-line}
.stamp{margin:2px 0 8px}.stamp span{display:block}
/* AMI-1096: плитка показує наступну зміну й години без світла сьогодні (за графіком), а не лише «Так» */
.scheme .tiles{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
.scheme .tile{min-height:84px;padding:6px 4px;text-align:center}
.scheme .tile-st{font-size:.8125rem}
.tile-next{font-size:.8125rem;font-weight:700;min-height:1.1em}.tile-h{font-size:.6875rem;font-weight:500;min-height:1.1em;opacity:.9}
.tile-next:empty,.tile-h:empty{display:block}
.tile.t-possible_off .tile-next,.tile.t-possible_off .tile-h{background:#262c3b;padding:0 4px;border-radius:4px}
