/* Single-anime site — look of the original jut-su single sites (dark + light themes). */
:root{--p:#9aa777;--p-h:#8b9669;--pc:#363a37;--s:#202020;--a:#212722;--b1:#2e332f;--b2:#b2b5b8;--b3:#e0e7ff;--bc:#ffffff;--bc8:rgb(255 255 255/.8);--line:rgb(255 255 255/.1);--title-b:#666b66;--icon:#727974;--btn-t:#202020;--site:#1f1f1f;color-scheme:dark}
:root[data-theme=light]{--p:#9dc532;--p-h:#8db12d;--pc:#eef5cd;--s:#ffffff;--a:#d9f1a7;--b1:#d9f1a7;--b2:#3f464c;--b3:#e0e7ff;--bc:#3f464c;--bc8:rgb(63 70 76/.8);--line:rgb(63 70 76/.1);--title-b:#b4d225;--icon:#727974;--btn-t:#ffffff;--site:#ffffff;color-scheme:light}
*,:before,:after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;line-height:1.5;background:var(--site) no-repeat top center;background-size:100%}
@media(min-width:1024px){html{background-image:var(--site-shade,linear-gradient(180deg,rgb(31 31 31/.45),#1f1f1f 56rem)),var(--site-bg,none)}}
body{margin:0;color:var(--bc);font-family:ui-sans-serif,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}
h1,h2{margin:0;font-size:inherit;font-weight:inherit}
.i{width:24px;height:24px;fill:currentColor;flex:none}
.muted{opacity:.7}
.center{text-align:center}

.page{width:100%;max-width:64rem;margin:0 auto}
@media(min-width:1024px){.page{margin-top:4rem;margin-bottom:4rem}}

/* logo */
.logo{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto;max-width:346px;min-height:116px;text-align:center}
.logo img{display:block;width:100%;height:auto;max-height:116px;margin:0 auto}
.logo-name{font-size:52px;font-weight:900;line-height:1;letter-spacing:.03em;text-transform:uppercase;color:#fff;text-shadow:0 0 2px #9aa777,0 3px 12px rgb(0 0 0/.6)}
.logo-brand{margin-top:4px;color:#fff;font-size:14px;text-shadow:0 1px 4px rgb(0 0 0/.6)}

/* header */
.top{position:relative;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:1.25rem;padding:1.5rem;filter:drop-shadow(0 4px 4px rgb(0 0 0/.25));background:linear-gradient(180deg,#334633,#1d351d)}
:root[data-theme=light] .top{background:linear-gradient(180deg,#cbe473,#95c361)}
@media(min-width:1024px){.top{padding-left:2rem;padding-right:2rem;margin:1.25rem -10px -10px;border-radius:10px}}
.circle{display:inline-grid;place-items:center;width:3rem;height:3rem;border-radius:9999px;background:var(--a);color:var(--icon);transition:background .2s}
.circle:hover{background:color-mix(in oklab,var(--a) 90%,black)}
.circle .i{grid-area:1/1}
.share-top{display:flex;gap:4px}
.share-top #share[hidden]{display:none}
.search{position:relative;width:50%}
.search-box{display:flex;align-items:center;gap:.5rem;height:3rem;padding:0 1rem;border-radius:.5rem;border:1px solid rgb(255 255 255/.2);background:var(--b1);color:var(--bc)}
:root[data-theme=light] .search-box{border-color:rgb(63 70 76/.2)}
.search-box:focus-within{outline:0;border-color:rgb(255 255 255/.45);box-shadow:0 0 0 3px rgb(255 255 255/.08)}
.search-box input{flex:1;min-width:0;border:0;background:transparent;outline:0;color:inherit;font:inherit}
.search-box input::placeholder{color:#9ca3af}
.search-box .i{width:16px;height:16px;opacity:.7}
.results{position:absolute;z-index:99999;left:0;right:0;top:100%;width:100%;margin:.5rem 0 0;padding:.4rem;list-style:none;font-size:.875rem;background:var(--b1);border:1px solid rgb(255 255 255/.12);border-radius:.5rem;box-shadow:0 16px 36px rgb(0 0 0/.4);max-height:min(420px,60vh);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;display:none}
:root[data-theme=light] .results{border-color:rgb(63 70 76/.15);box-shadow:0 16px 36px rgb(0 0 0/.18)}
.results.open{display:flex;flex-direction:column}
.results li{display:flex;flex-direction:column}
.results a{display:flex;align-items:center;padding:.45rem .75rem;border-radius:.5rem;font-weight:600;font-size:1rem;line-height:1.35}
.results a img{flex:none;width:3.25rem;height:3.25rem;margin-right:.85rem;border-radius:9999px;object-fit:cover}
.results a:hover,.results a.sel{background:rgb(255 255 255/.1)}
:root[data-theme=light] .results a:hover,:root[data-theme=light] .results a.sel{background:rgb(63 70 76/.1)}
.results a .t{display:flex;flex-direction:column;min-width:0}
.results a small{font-weight:400;font-size:.875rem;line-height:1.3;opacity:.6}
.results .msg{display:block;padding:.75rem;font-weight:600;font-size:1.125rem}
.search-toggle{display:none;margin-left:.75rem}
.search-toggle .i:last-child{display:none}
.search-open .search-toggle .i:first-child{display:none}
.search-open .search-toggle .i:last-child{display:block}

/* article */
.box{background:var(--s);padding:3.5rem 1.5rem;box-shadow:0 4px 6px -1px rgb(0 0 0/.1),0 2px 4px -2px rgb(0 0 0/.1)}
@media(min-width:1024px){.box{padding-left:5rem;padding-right:5rem}}
.title{position:relative;display:flex;align-items:center;margin-left:1rem;padding:1.25rem 1.25rem 1.25rem 7rem;border-radius:.5rem;border:1px solid var(--title-b);background:var(--pc);font-weight:700;font-size:18px;line-height:21px}
.title img{position:absolute;left:-16px;top:50%;transform:translateY(-50%);width:100px;height:100px;border-radius:9999px;border:1px solid var(--title-b);object-fit:cover;user-select:none;background:var(--pc)}
.category{flex:none;margin-left:.75rem;padding:.375rem .75rem;border-radius:.5rem;border:1px solid var(--title-b);background:var(--s);font-weight:400;font-size:16px;line-height:21px}
.title-text{min-width:0}

.part h2,.box>h2{margin:2.5rem 0;font-weight:700;font-size:18px;line-height:21px;text-align:center}
.buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:.75rem}
.btn{display:inline-flex;align-items:center;justify-content:center;height:2.5rem;min-height:2.5rem;min-width:7rem;padding:0 1rem;border-radius:.5rem;border:1px solid var(--b2);background:var(--b2);color:var(--btn-t);font-weight:700;font-size:16px;line-height:1;text-align:center;white-space:nowrap;transition:background .2s,border-color .2s,transform .1s}
.btn:hover{background:var(--b3);border-color:var(--b3);color:#202020}
.btn:active{transform:scale(.95)}
.buttons .btn.seen,.buttons .btn.active,.buttons .btn.last{background:var(--p);border-color:var(--p);color:var(--btn-t)}
.buttons .btn.seen:hover,.buttons .btn.active:hover,.buttons .btn.last:hover{background:var(--p-h);border-color:var(--p-h)}
.divider{display:flex;align-items:center;height:1rem;margin:2rem 0 -.5rem}.divider::before{content:"";flex:1;height:2px;background:var(--line)}
.continue{text-align:center;margin-top:2rem}
.continue .btn{background:var(--p);border-color:var(--p)}
a:focus-visible,button:focus-visible{outline:2px solid var(--p);outline-offset:2px}

/* description */
.description{margin-top:0;padding:3.5rem 1.5rem;background:var(--pc);border-radius:0 0 .5rem .5rem;box-shadow:0 4px 6px -1px rgb(0 0 0/.1),0 2px 4px -2px rgb(0 0 0/.1)}
@media(min-width:1024px){.description{padding-left:5rem;padding-right:5rem}}
.prose{color:var(--bc8);font-size:1rem;line-height:1.75}
.prose h2{margin:2.5rem 0 1.25rem;color:var(--bc);font-weight:700;font-size:24px;line-height:1.3;text-align:center}
.prose h2:first-child{margin-top:0}
.prose p{margin:1.25em 0}
.prose img{display:block;width:100%;max-width:800px;height:auto;margin:2em auto;border-radius:.5rem}
.prose ol,.prose ul{margin:1.25em 0;padding-left:1.625em}
.prose li{margin:.5em 0;padding-left:.375em}
.prose li p{margin:.75em 0}
.prose li::marker{color:var(--bc8)}
.prose strong{color:var(--bc);font-weight:600}

.ad{display:flex;justify-content:center;max-width:100%}

/* episode */
.players{justify-content:flex-start;padding-top:1.5rem;margin-top:.75rem}
.player{position:relative;margin-top:1.5rem;padding-top:56.25%}
.player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ep-nav{display:flex;flex-wrap:wrap;margin-top:1.25rem}
.ep-nav .btn{width:100%}
.nav-prev{width:50%;padding-right:.625rem}
.nav-next{width:50%;padding-left:.625rem}
.nav-list{order:9;width:100%;margin-top:1.25rem}
@media(min-width:1024px){.ep-nav{justify-content:space-between}.nav-prev,.nav-next,.nav-list{width:auto;padding:0;margin:0;order:0}}

/* emoji rating: grey at rest (like the reference), colour + Telegram-style burst on tap */
.react{display:flex;justify-content:space-around;align-items:center;margin-top:1.75rem;padding:1.6rem 0 1.4rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.react button{position:relative;display:flex;flex-direction:column;align-items:center;gap:.45rem;min-width:3.5rem;color:#b3b3b3;transition:color .15s}
.react .emo{position:relative;display:block;width:40px;height:40px}
.react .emo img{display:block;width:40px;height:40px;filter:grayscale(1) brightness(.78) contrast(1.1);transition:filter .25s,transform .25s cubic-bezier(.3,1.6,.5,1)}
.react button:hover .emo img{filter:grayscale(.2) brightness(.95);transform:scale(1.08)}
.react button.on .emo img{filter:none}
.react .n{font-weight:700;font-size:18px;line-height:1;transition:color .2s}
.react button.on{color:var(--p)}
.react button:active .emo img{transform:scale(.85)}
:root[data-theme=light] .react button{color:#8b9096}
:root[data-theme=light] .react .emo img{filter:grayscale(1) brightness(.9)}
:root[data-theme=light] .react button.on .emo img{filter:none}
:root[data-theme=light] .react button.on{color:#7fa221}
/* the effect layer: a big animated emoji flying out of the button + particles */
.fx{position:fixed;z-index:9999;pointer-events:none;width:132px;height:132px;margin:-66px 0 0 -66px;animation:fx-in .9s cubic-bezier(.2,1.4,.4,1) both}
.fx svg{width:100%!important;height:100%!important}
.fx.out{animation:fx-out .35s ease-in forwards}
@keyframes fx-in{0%{transform:translateY(24px) scale(.3);opacity:0}35%{opacity:1}100%{transform:translateY(-58px) scale(1)}}
@keyframes fx-out{to{transform:translateY(-10px) scale(.25);opacity:0}}
.spark{position:fixed;z-index:9998;pointer-events:none;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;animation:spark .75s cubic-bezier(.1,.8,.3,1) forwards}
@keyframes spark{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}
.react button.pop .emo img{animation:react-pop .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes react-pop{0%{transform:scale(.6)}50%{transform:scale(1.3)}100%{transform:scale(1)}}
@media(max-width:640px){.react .emo,.react .emo img{width:34px;height:34px}.react .n{font-size:16px}.react button{min-width:0}}
@media(prefers-reduced-motion:reduce){.fx,.spark{display:none}}

/* comments */
.box>h2.c-title,.c-title{margin:2.5rem 0;font-weight:700;font-size:18px;line-height:21px;text-align:left}
.box>.c-title:first-child{margin-top:0}
.cform{display:flex;flex-direction:column;margin-top:1.25rem}
.fc{display:flex;flex-direction:column;width:100%}
.fc+.fc{margin-top:.5rem}
.label{display:flex;align-items:center;justify-content:space-between;padding:.5rem .25rem;font-size:.875rem;line-height:1.25rem}
.field{width:100%;height:3rem;padding:0 1rem;border-radius:.5rem;border:1px solid rgb(255 255 255/.2);background:var(--b1);color:var(--bc);font:inherit;font-size:1rem}
textarea.field{height:auto;min-height:3rem;padding:.5rem 1rem;font-size:.875rem;line-height:2;resize:vertical}
:root[data-theme=light] .field{border-color:rgb(63 70 76/.2)}
.field:focus{outline:2px solid rgb(255 255 255/.2);outline-offset:2px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.cform-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:.5rem}
.cform-row .fc{width:auto}
.cform-row .btn{flex:none}
.avatars{display:flex}
.avatars button{margin-right:.5rem;border-radius:9999px;border:3px solid #f3f4f6;box-shadow:0 0 0 3px rgb(59 130 246/.5);opacity:.5;transition:opacity .15s}
.avatars button.on{opacity:1}
.avatars img{display:block;width:2.5rem;height:2.5rem;border-radius:9999px;object-fit:cover}
.alert{display:block;margin-bottom:.75rem;padding:1rem;border-radius:1rem;background:#f87272;color:#000;font-size:.875rem}
.alert[hidden]{display:none}
.reply-to .label button{color:inherit}
.reply-to .label .i{width:20px;height:20px}
.quote{padding:.75rem;border-radius:.5rem;background:var(--pc);font-size:1rem}
.quote .c-act,.quote .comment{display:none}
.comments{margin-top:6px}
.comment{display:flex;margin-top:1.25rem;width:100%;border-radius:.5rem;font-size:1rem}
.ava{flex:none;display:grid;place-items:center;width:2.75rem;height:2.75rem;margin-right:1.25rem;border-radius:9999px;background:hsl(var(--h,120) 30% 40%);color:#fff;font-weight:700;object-fit:cover}
.c-main{width:100%;min-width:0}
.c-head{display:flex;align-items:center;margin-bottom:.5rem}
.c-head b{margin-right:.75rem;color:var(--p);font-size:.875rem;font-weight:700}
.c-head time{color:#4b5563;font-size:.875rem}
:root[data-theme=dark] .c-head time{color:#9ca3af}
.c-main p{margin:0;word-break:break-all}
.c-act{display:flex;align-items:center;gap:1rem;width:100%;margin-top:1rem}
.c-act button{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:var(--b2)}
.c-act .i{width:16px;height:16px}
.c-act button:first-child:hover{text-decoration:underline}
.c-act .like.done,.c-act .rep.done{color:#f87272}
.c-act .rep{margin-left:auto}

/* theme switch: Telegram-like eclipse — the new theme grows as a circle from the button */
.eclipse{width:24px;height:24px;overflow:visible}
.eclipse .ecl-shadow{transition:cx .5s cubic-bezier(.65,0,.35,1),cy .5s cubic-bezier(.65,0,.35,1)}
.eclipse .ecl-disc{transition:r .5s cubic-bezier(.65,0,.35,1)}
.eclipse .ecl-rays{transform-origin:12px 12px;transition:transform .5s cubic-bezier(.65,0,.35,1),opacity .35s}
:root[data-theme=dark] .eclipse .ecl-shadow{cx:17;cy:7}
:root[data-theme=dark] .eclipse .ecl-disc{r:9}
:root[data-theme=dark] .eclipse .ecl-rays{transform:rotate(-90deg) scale(.4);opacity:0}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
::view-transition-new(root){z-index:2}
@media(prefers-reduced-motion:reduce){.eclipse *{transition:none!important}}

/* admin */
.card{background:var(--s);padding:2rem 1.5rem}
.admin .adm-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.seg{display:flex;gap:6px;margin:12px 0}
.seg a{padding:6px 14px;border-radius:.5rem;background:var(--b2);color:var(--btn-t);font-size:14px;font-weight:700}
.seg a.on{background:var(--p)}
.adm{width:100%;border-collapse:collapse;font-size:14px}
.adm td,.adm th{padding:10px 8px;border-top:1px solid var(--line);text-align:left;vertical-align:top}
.adm tr.off{opacity:.5}
.adm-act{display:flex;flex-direction:column;gap:6px}
.adm-act button{padding:4px 10px;border-radius:.5rem;background:var(--b2);color:var(--btn-t)}
.adm-act .danger{background:#f87272}
.tag{padding:1px 8px;border-radius:99px;background:#f8727233;color:#f87272;font-size:12px}

.foot{max-width:64rem;margin:.75rem auto 0;padding:.75rem;text-align:center;color:#fff;font-size:1rem}
.foot a{text-decoration:none}
.foot a:hover{text-decoration:underline}
.foot .credit{display:block;margin-top:.5rem;font-size:12px;opacity:.55}

@media(max-width:1023px){
  /* like the original: the search button hides the other header controls and shows the field in their place */
  .search{display:none;width:auto;flex:1}
  .search-toggle{display:inline-grid}
  .search-open .search{display:block}
  .search-open #theme,.search-open .share-top{display:none}
  .share-top{margin-left:auto}
}
@media(max-width:640px){
  .c-act .rep span{display:none}
}
}
.ep-info{margin:2rem 0 0;color:var(--bc8);font-size:15px;line-height:1.7}
.ep-info a{color:var(--p);text-decoration:underline;text-underline-offset:2px}

/* ---- usability layer (same look as the original, better on phones) ---- */
a,button,.btn{touch-action:manipulation}
.description{content-visibility:auto;contain-intrinsic-size:auto 2400px}

/* quick jump between seasons/parts */
.jump{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin:2rem 0 -.5rem}
.jump a{display:inline-flex;align-items:center;height:2rem;padding:0 .85rem;border-radius:.5rem;background:var(--pc);border:1px solid var(--title-b);font-size:14px;font-weight:700;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}
.jump a:hover,.jump a.on{background:var(--p);border-color:var(--p);color:var(--btn-t)}
.part{scroll-margin-top:4.5rem}

/* episode strip on the episode page */
.strip{margin-top:1.5rem}
.strip-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.75rem}
.strip-head b{font-size:16px}
.strip-head a{color:var(--p);font-size:14px;font-weight:600;white-space:nowrap}
.strip-row{display:flex;gap:.6rem;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:2px 2px 6px;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent)}
.strip-row::-webkit-scrollbar{display:none}
.strip-row .btn{flex:none;min-width:6.5rem;scroll-snap-align:center}
.strip-row .btn.seen{background:var(--p);border-color:var(--p)}
.strip-row .btn.active{background:var(--bc);border-color:var(--bc);color:var(--s);box-shadow:0 0 0 2px var(--p)}

/* back to top */
.to-top{position:fixed;z-index:50;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));box-shadow:0 6px 18px rgb(0 0 0/.35);opacity:0;transform:translateY(12px);transition:opacity .2s,transform .2s;color:#cfd6cc}
.to-top.show{opacity:1;transform:none}
.to-top[hidden]{display:none}
#share[hidden]{display:none}

@media(max-width:640px){
  /* episode buttons: 3 per row instead of 2 — the list gets about half as long */
  .part .buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
  .part .buttons .btn{min-width:0;padding:0 .4rem;font-size:15px}
  .part .buttons .btn.named{grid-column:1/-1;white-space:normal;height:auto;min-height:2.5rem;padding:.55rem .75rem;line-height:1.25}
  /* the season jump bar sticks to the top while scrolling the long list */
  .jump{position:sticky;top:0;z-index:20;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;margin:1.25rem -1.5rem -.5rem;padding:.6rem 1.5rem;background:var(--s);box-shadow:0 6px 12px -6px rgb(0 0 0/.5)}
  .jump::-webkit-scrollbar{display:none}
  /* bigger video: the player runs edge to edge */
  .player{margin-left:-1.5rem;margin-right:-1.5rem}
  .players .btn{flex:1;min-width:0}
  .strip-row .btn{min-width:5.75rem;font-size:15px}
}
@media(max-width:360px){.part .buttons .btn{font-size:14px}}

/* ---- phones: header, title plate and search, tidied ---- */
@media(max-width:640px){
  .logo{min-height:0;max-width:260px;padding-top:10px}
  .logo img{max-height:88px}
  .top{gap:8px;margin-top:.75rem;padding:.75rem 1rem}
  .top .circle{width:2.75rem;height:2.75rem}
  .top .circle .i{width:22px;height:22px}
  .share-top{gap:8px}
  .search-toggle{margin-left:0}
  .search-box{height:2.75rem}
  .results{margin-top:.75rem;left:0;right:0;padding:.35rem;max-height:calc(100dvh - 12rem);box-shadow:0 18px 30px rgb(0 0 0/.45)}
  .results a{padding:.45rem .6rem;font-size:1rem;line-height:1.3}
  .results a img{width:3rem;height:3rem;margin-right:.75rem}
  .results .msg{font-size:1rem}
  /* title plate: poster inside on the left, title and age badge on the right */
  .box{padding-top:1.75rem}
  .title{margin-left:0;min-height:6rem;padding:.875rem 1rem .875rem 6.25rem;flex-wrap:wrap;align-content:center;gap:.4rem .6rem;font-size:17px;line-height:1.3}
  .title img{left:.75rem;top:50%;transform:translateY(-50%);width:4.75rem;height:4.75rem}
  .title-text{flex:0 1 auto}
  .category{margin:0;padding:.2rem .55rem;font-size:14px}
}
/* "Продолжить: 2 сезон 2 часть 7 серия" must wrap on narrow screens instead of widening the page */
.continue .btn{max-width:100%;white-space:normal;height:auto;min-height:2.5rem;padding:.55rem 1.25rem;line-height:1.3}

/* ---- features: countdown, player report, views, spoilers, next-episode hint, admin stats ---- */
.countdown{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;margin:1.25rem 0 0 1rem;padding:.75rem 1rem;border-radius:.5rem;border:1px dashed var(--title-b);background:color-mix(in srgb,var(--pc) 70%,transparent);font-size:15px}
.countdown .i{width:20px;height:20px;color:var(--p)}
.countdown .cd-what{font-weight:700}
.countdown .cd-when{color:var(--bc8)}
.countdown .cd-left{margin-left:auto;font-weight:800;font-variant-numeric:tabular-nums;color:var(--p);font-size:17px}
.article-ep .countdown{margin-left:0}

.ptools{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.75rem;font-size:14px;color:var(--bc8)}
.ptools .views{display:inline-flex;align-items:center;gap:.35rem}
.ptools .views .i{width:18px;height:18px;opacity:.8}
.ptools .views b{color:var(--bc)}
.report-open{font-size:14px;text-decoration:underline;text-underline-offset:3px}
.report{margin-top:.75rem;padding:1rem;border-radius:.5rem;background:var(--pc);border:1px solid var(--title-b)}
.report[hidden]{display:none}
.report-reasons{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}
.report-reasons label{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:.5rem;background:var(--s);cursor:pointer;font-size:14px}
.report-reasons input{accent-color:var(--p)}
.report-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.report-hint{font-size:13px;color:var(--bc8)}
.report.done{color:var(--p);font-weight:700}

.spoiler{filter:blur(5px);background:rgb(255 255 255/.08);border-radius:4px;cursor:pointer;transition:filter .25s;user-select:none}
.spoiler.open{filter:none;user-select:text;cursor:auto}
.spoil-btn{margin-left:.5rem;padding:.1rem .5rem;border-radius:.4rem;border:1px solid var(--title-b);font-size:12px;color:var(--bc8)}
.spoil-btn:hover{color:var(--p);border-color:var(--p)}

.next-hint{position:fixed;z-index:60;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translate(-50%,140%);display:flex;align-items:center;gap:.75rem;max-width:calc(100vw - 2rem);padding:.6rem .6rem .6rem 1rem;border-radius:.75rem;background:var(--pc);border:1px solid var(--title-b);box-shadow:0 12px 30px rgb(0 0 0/.45);transition:transform .35s cubic-bezier(.2,1,.3,1)}
.next-hint.show{transform:translate(-50%,0)}
.next-hint span{font-size:14px;line-height:1.3}
.next-hint .btn{flex:none;background:var(--p);border-color:var(--p)}
.next-hint .x{flex:none;width:2rem;height:2rem;border-radius:50%;color:var(--bc8)}

.adm-tabs{margin:0 0 1rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin:1rem 0 1.5rem}
.kpis div{padding:1rem;border-radius:.5rem;background:var(--pc);border:1px solid var(--title-b)}
.kpis b{display:block;font-size:26px;line-height:1.1}
.kpis span{font-size:13px;color:var(--bc8)}
.bars{display:grid;grid-template-columns:repeat(14,1fr);align-items:end;gap:6px;height:160px;margin:1rem 0 1.5rem}
.bar{display:flex;flex-direction:column;justify-content:flex-end;height:100%;text-align:center}
.bar i{display:block;border-radius:4px 4px 0 0;background:var(--p)}
.bar span{font-size:11px;color:var(--bc8);margin-top:4px}
.card h2{margin:1.5rem 0 .5rem;font-size:18px;font-weight:700}

@media(max-width:640px){
  .countdown{margin-left:0}
  .countdown .cd-left{margin-left:0;width:100%}
  .ptools{flex-wrap:wrap;gap:.5rem}
  .report-row{flex-direction:column;align-items:stretch}
  .next-hint{left:1rem;right:1rem;transform:translateY(140%)}
  .next-hint.show{transform:none}
}
:root[data-theme=light] .foot{color:var(--bc)}

/* ---- snow mode ---- */
.lt{display:flex;gap:4px}
#snow[aria-pressed=true]{color:#cfe8ff;background:color-mix(in oklab,var(--a) 70%,#5b8db8)}
:root[data-theme=light] #snow[aria-pressed=true]{color:#fff;background:#7fb0d8}
.snow-layer{position:fixed;inset:0;z-index:45;pointer-events:none;width:100vw;height:100vh}
@media(max-width:1023px){.search-open .lt{display:none}}
@media(max-width:640px){.lt{gap:8px}}

/* ---- AJAX navigation: thin progress line at the top ---- */
.nav-bar{position:fixed;z-index:100;left:0;top:0;height:3px;width:0;background:var(--p);box-shadow:0 0 8px var(--p);opacity:0;pointer-events:none}
.nav-bar.run{opacity:1;width:80%;transition:width 6s cubic-bezier(.1,.6,.2,1),opacity .1s}
.nav-bar.done{opacity:0;width:100%;transition:width .2s ease-out,opacity .3s .15s}
h1[tabindex="-1"]:focus{outline:none}
