/* Layout: one column workbook — line chips on top, the task sheet in the middle, progress and teacher views as tabs. Bordeaux, gold and cream from Anna's cheat sheets. */
:root{
  --bg:#f6efe4;
  --paper:#fffaf2;
  --ink:#3a0d18;
  --ink-soft:#6e3b46;
  --wine:#6d1426;
  --wine-deep:#4a0c19;
  --gold:#b88a2e;
  --gold-soft:#ecdcb3;
  --line:#e4d3bd;
  --on-wine:#fbf3e3;
  --ok:#2f7a4f; --ok-bg:#e3f1e7;
  --part:#9a6a0b; --part-bg:#f7ecd1;
  --bad:#a3283a; --bad-bg:#f8e1e3;
  --heat1:#efd9c4; --heat2:#d9a59a; --heat3:#a8475a; --heat4:#6d1426;
  --f-display:"Cormorant Garamond", "Times New Roman", serif;
  --f-body:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#1d0a10; --paper:#2a1018; --ink:#f4e7d3; --ink-soft:#c9aeae; --wine:#8a2337; --wine-deep:#3b0e19;
  --gold:#d8ae55; --gold-soft:#4a3418; --line:#4a2530; --on-wine:#fbf3e3;
  --ok:#79c893; --ok-bg:#16301f; --part:#e1b65b; --part-bg:#3a2a10; --bad:#ef8b98; --bad-bg:#3d1720;
  --heat1:#4a2530; --heat2:#7a2f42; --heat3:#a8475a; --heat4:#d8ae55;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#1d0a10; --paper:#2a1018; --ink:#f4e7d3; --ink-soft:#c9aeae; --wine:#8a2337; --wine-deep:#3b0e19;
  --gold:#d8ae55; --gold-soft:#4a3418; --line:#4a2530; --on-wine:#fbf3e3;
  --ok:#79c893; --ok-bg:#16301f; --part:#e1b65b; --part-bg:#3a2a10; --bad:#ef8b98; --bad-bg:#3d1720;
  --heat1:#4a2530; --heat2:#7a2f42; --heat3:#a8475a; --heat4:#d8ae55;
  color-scheme:dark}

*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.55;padding-inline:16px;padding-block:0 48px}
.wrap{max-width:1040px;margin:0 auto}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
sub,sup{font-size:.72em;line-height:0}

/* header */
.top{background:var(--wine-deep);color:var(--on-wine);margin-inline:-16px;padding:22px 16px 0}
.top .in{max-width:1040px;margin:0 auto}
.brand{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.brand h1{font-family:var(--f-display);font-weight:700;font-size:clamp(28px,6vw,38px);line-height:1.05;margin:0;letter-spacing:.2px;text-wrap:balance}
.brand h1 em{font-style:italic;color:var(--gold)}
.handle{font-family:var(--f-mono);font-size:12px;color:var(--gold);letter-spacing:.06em}
.sub{margin:6px 0 16px;font-size:13.5px;opacity:.82;max-width:52ch}
.tabs{display:flex;gap:4px;overflow-x:auto}
.tab{background:none;border:0;color:var(--on-wine);opacity:.7;padding:10px 14px 12px;font-weight:600;font-size:14px;border-bottom:3px solid transparent;white-space:nowrap}
.tab[aria-selected="true"]{opacity:1;border-bottom-color:var(--gold)}

.view{padding-top:20px}

/* line chips */
.lines{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:14px;scrollbar-width:thin}
.chip{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:8px 12px 9px;min-width:74px;text-align:left}
.chip .n{font-family:var(--f-mono);font-size:13px;font-weight:600;color:var(--wine)}
.chip[aria-pressed="true"]{background:var(--wine);border-color:var(--wine)}
.chip[aria-pressed="true"] .n{color:var(--gold-soft)}
.dots{display:flex;gap:4px}
.dot{width:7px;height:7px;border-radius:50%;background:var(--line)}
.dot.ok{background:var(--ok)}.dot.part{background:var(--part)}.dot.bad{background:var(--bad)}
.chip[aria-pressed="true"] .dot:not(.ok):not(.part):not(.bad){background:rgba(255,255,255,.28)}

/* sheet */
.sheet{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:20px 20px 22px;display:flex;flex-direction:column;gap:16px}
.sheet-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.pill{background:var(--gold-soft);color:var(--wine-deep);font-weight:700;font-size:12.5px;padding:4px 11px;border-radius:999px;letter-spacing:.02em}
:root[data-theme="dark"] .pill{color:var(--gold)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .pill{color:var(--gold)}}
.topic{font-family:var(--f-display);font-size:22px;font-weight:600;line-height:1.15}
.src{margin-left:auto;font-family:var(--f-mono);font-size:11.5px;color:var(--ink-soft)}
.pager{display:flex;gap:6px;flex:1 1 100%;min-width:0;overflow-x:auto;padding:4px 4px 6px;scrollbar-width:thin;overscroll-behavior-x:contain}
.sheet>*{min-width:0}
.pg{flex:none;width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:transparent;font-family:var(--f-mono);font-weight:600;position:relative}
.pg[aria-current="true"]{border-color:var(--wine);background:var(--wine);color:var(--on-wine)}
.pg i{position:absolute;right:-3px;top:-3px;width:9px;height:9px;border-radius:50%;border:2px solid var(--paper)}
.pg i.ok{background:var(--ok)}.pg i.part{background:var(--part)}.pg i.bad{background:var(--bad)}
.q{font-size:16px;line-height:1.6}
.opts{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 18px}
.opts li{display:flex;gap:8px}
.opts b{font-family:var(--f-mono);color:var(--wine);font-weight:600;min-width:1.4em}
.match{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.match h4{margin:0 0 6px;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);font-weight:700}
.match ol{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.match li{display:flex;gap:8px}
.match li b{font-family:var(--f-mono);color:var(--wine);min-width:1.6em}
@media (max-width:560px){.match{grid-template-columns:1fr}}
.tbl{overflow-x:auto}
.tbl table{border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:14px}
.tbl td,.tbl th{border:1px solid var(--line);padding:6px 12px;text-align:center}
.tbl th{font-weight:600;background:var(--bg)}
.tbl td:first-child,.tbl th:first-child{text-align:left}

.answer{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;border-top:1px dashed var(--line);padding-top:16px}
.field{display:flex;flex-direction:column;gap:5px;flex:1 1 200px;min-width:0}
.field label{font-size:12.5px;color:var(--ink-soft)}
.field input{font-family:var(--f-mono);font-size:22px;letter-spacing:.35em;padding:10px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%}
.field input:disabled{opacity:.8}
.btn{border:0;border-radius:12px;padding:12px 18px;font-weight:700;font-size:14.5px;background:var(--wine);color:var(--on-wine)}
.btn:disabled{opacity:.45;cursor:default}
.btn.ghost{background:transparent;border:1.5px solid var(--line);color:var(--ink)}
.btn.gold{background:var(--gold);color:#2a0b12}
.row{display:flex;flex-wrap:wrap;gap:8px}

.hint{background:var(--bg);border-radius:12px;padding:12px 14px;font-size:14px;color:var(--ink-soft)}
.hint strong{color:var(--ink)}

.verdict{border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.verdict.ok{background:var(--ok-bg)}.verdict.part{background:var(--part-bg)}.verdict.bad{background:var(--bad-bg)}
.verdict h3{margin:0;font-size:16px}
.verdict.ok h3{color:var(--ok)}.verdict.part h3{color:var(--part)}.verdict.bad h3{color:var(--bad)}
.verdict .cmp{font-family:var(--f-mono);font-size:13.5px}
.expl{border-left:3px solid var(--gold);padding:2px 0 2px 14px;display:flex;flex-direction:column;gap:6px}
.expl h4,.ai h4{margin:0;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);font-weight:700}
.ai{background:var(--bg);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.ai p{margin:0}
.ai .note{font-size:12.5px;color:var(--ink-soft)}
.nav{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}

/* progress */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}
@media (max-width:560px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.stat .v{font-family:var(--f-display);font-size:30px;font-weight:700;line-height:1;color:var(--wine);font-variant-numeric:tabular-nums}
:root[data-theme="dark"] .stat .v{color:var(--gold)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .stat .v{color:var(--gold)}}
.stat .k{font-size:12.5px;color:var(--ink-soft);margin-top:6px}
h2.sec{font-family:var(--f-display);font-size:24px;font-weight:700;margin:24px 0 10px}
.syncnote{font-size:13px;color:var(--ink-soft);display:flex;gap:8px;align-items:center;margin-bottom:14px}
.syncnote i{width:8px;height:8px;border-radius:50%;background:var(--part);flex:0 0 auto}
.syncnote.on i{background:var(--ok)}
.bars{display:flex;flex-direction:column;gap:8px}
.bar{display:grid;grid-template-columns:minmax(0,190px) 1fr 52px;gap:10px;align-items:center;font-size:13.5px}
.bar .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar .nm b{font-family:var(--f-mono);color:var(--wine);margin-right:6px}
.track{height:10px;border-radius:6px;background:var(--line);overflow:hidden;display:flex}
.track span{display:block;height:100%}
.track .s-ok{background:var(--ok)}.track .s-part{background:var(--part)}.track .s-bad{background:var(--bad)}
.bar .pc{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-soft)}
@media (max-width:480px){.bar{grid-template-columns:1fr 46px}.bar .track{grid-column:1 / -1;order:3}}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-soft);margin-top:8px}
.legend span{display:flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}

.cal{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:16px}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.cal-head strong{font-family:var(--f-display);font-size:21px;text-transform:capitalize}
.cal-head button{background:none;border:1px solid var(--line);border-radius:10px;width:34px;height:34px}
.grid7{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.wd{font-size:11px;text-align:center;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}
.day{aspect-ratio:1;max-width:100%;border-radius:10px;border:0;background:var(--bg);font-family:var(--f-mono);font-size:12.5px;display:flex;align-items:center;justify-content:center;position:relative;color:var(--ink)}
.day.l1{background:var(--heat1)}.day.l2{background:var(--heat2)}.day.l3{background:var(--heat3);color:var(--on-wine)}.day.l4{background:var(--heat4);color:var(--on-wine)}
.day.plan{box-shadow:inset 0 0 0 2px var(--gold)}
.day.today{outline:2px solid var(--wine);outline-offset:1px}
.day.empty{visibility:hidden}
.day:disabled{cursor:default}
.cal-foot{margin-top:12px;font-size:12.5px;color:var(--ink-soft)}

/* teacher */
.students{display:flex;flex-direction:column;gap:12px}
.stu{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.stu-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.stu-top img{width:32px;height:32px;border-radius:50%}
.stu-top .nm{font-weight:700;font-size:15.5px}
.stu-top .meta{margin-left:auto;font-size:12.5px;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.cells{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:4px}
.cell{border-radius:7px;padding:5px 0 4px;text-align:center;font-family:var(--f-mono);font-size:11px;background:var(--bg);color:var(--ink-soft)}
.cell.ok{background:var(--ok-bg);color:var(--ok)}.cell.part{background:var(--part-bg);color:var(--part)}.cell.bad{background:var(--bad-bg);color:var(--bad)}
.strip{display:grid;grid-template-columns:repeat(14,1fr);gap:3px}
.strip i{height:12px;border-radius:3px;background:var(--bg)}
.strip i.l1{background:var(--heat1)}.strip i.l2{background:var(--heat2)}.strip i.l3{background:var(--heat3)}.strip i.l4{background:var(--heat4)}
.strip i.plan{box-shadow:inset 0 0 0 1.5px var(--gold)}
.lab{font-size:11.5px;color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase;font-weight:700}
.empty-state{background:var(--paper);border:1px dashed var(--line);border-radius:16px;padding:20px;color:var(--ink-soft)}
.empty-state strong{color:var(--ink);display:block;margin-bottom:6px;font-size:16px}
.foot{margin-top:28px;font-size:12px;color:var(--ink-soft)}
@media (prefers-reduced-motion:no-preference){.verdict,.ai{animation:rise .25s ease-out}@keyframes rise{from{transform:translateY(4px);opacity:.6}to{transform:none;opacity:1}}}

/* --- сайт: базовый сброс и экран входа --- */
[hidden]{display:none!important}
img{max-width:100%}
.top .userbar{display:flex;align-items:center;gap:10px;font-size:13px}
.top .userbar img{width:28px;height:28px;border-radius:50%}
.top .userbar button{background:none;border:1px solid rgba(255,255,255,.3);color:var(--on-wine);border-radius:999px;padding:4px 12px;font-size:12.5px}
.login{max-width:520px;margin:28px auto 0;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:24px 22px;display:flex;flex-direction:column;gap:16px}
.login h2{font-family:var(--f-display);font-size:28px;margin:0;line-height:1.1}
.login ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--ink-soft)}
.consent input{margin-top:4px;width:18px;height:18px;accent-color:var(--wine);flex:0 0 auto}
.consent a{color:var(--wine)}
.tg-slot{min-height:46px;display:flex;align-items:center}
.err{color:var(--bad);font-size:13.5px}
.confirm{background:var(--bad-bg);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;font-size:14px}
.account{margin-top:28px;display:flex;gap:8px;flex-wrap:wrap}
.legal{max-width:720px;margin:0 auto;padding-block:28px}
.legal h1{font-family:var(--f-display);font-size:34px;margin:0 0 12px}
.legal h2{font-family:var(--f-display);font-size:22px;margin:22px 0 8px}
.legal .ph{background:var(--gold-soft);padding:0 4px;border-radius:4px}

/* --- конспекты --- */
.notes{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.note-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:10px}
.note-title{font-family:var(--f-display);font-size:21px;font-weight:700;line-height:1.15;color:var(--ink);text-decoration:none}
.note-title:hover{color:var(--wine)}
.note-meta{font-size:12.5px;color:var(--ink-soft);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.note-card .row{margin-top:auto}
.note-card .btn{font-size:13.5px;padding:9px 14px}
.upload{background:var(--paper);border:1px dashed var(--gold);border-radius:16px;padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.upload .field input,.upload .field select{font-family:var(--f-body);letter-spacing:0;font-size:15px;padding:10px 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%}
.upload .field:first-child,.upload .row,.upload .err{grid-column:1 / -1}
@media (max-width:560px){.upload{grid-template-columns:1fr}}
.note-links{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:13.5px;color:var(--ink-soft)}
.note-links a{color:var(--wine);font-weight:600}

/* --- вход по логину --- */
.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--bg);border-radius:12px;padding:4px;gap:4px}
.seg button{border:0;background:transparent;border-radius:9px;padding:10px 8px;font-weight:600;font-size:14px;color:var(--ink-soft)}
.seg button[aria-selected="true"]{background:var(--paper);color:var(--wine);box-shadow:0 1px 3px rgba(74,12,25,.12)}
.authf{display:flex;flex-direction:column;gap:12px}
.authf .field input{font-family:var(--f-body);letter-spacing:0;font-size:16px;padding:11px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%}
.authf .btn{align-self:flex-start}
.reset-box{background:var(--gold-soft);border-radius:12px;padding:12px 14px;font-size:14px}
.reset-box code{font-family:var(--f-mono);font-weight:600;user-select:all}
.stu-actions{display:flex;gap:8px;flex-wrap:wrap}
.stu-actions .btn{font-size:12.5px;padding:7px 12px}
.authf .field{flex:none}

/* --- каталог по классам --- */
:root{--tag-a:#e3efe2;--tag-a-ink:#2f6a45;--tag-b:#f3e1e4;--tag-b-ink:#8a2337;--tag-c:#efe6f5;--tag-c-ink:#6a3f8a;--tag-d:#f4ead2;--tag-d-ink:#7a5a12;
  --blk0:#a8475a;--blk1:#b88a2e;--blk2:#2f7a4f;--blk3:#5a6fae;--blk4:#8a5a9e}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--tag-a:#1c3324;--tag-a-ink:#8fd0a5;--tag-b:#3d1720;--tag-b-ink:#ef9aa6;--tag-c:#2e2140;--tag-c-ink:#c9a7e6;--tag-d:#3a2c10;--tag-d-ink:#e1c06d;
  --blk0:#d0697c;--blk1:#d8ae55;--blk2:#79c893;--blk3:#8ea2dc;--blk4:#c39ad6}}
:root[data-theme="dark"]{--tag-a:#1c3324;--tag-a-ink:#8fd0a5;--tag-b:#3d1720;--tag-b-ink:#ef9aa6;--tag-c:#2e2140;--tag-c-ink:#c9a7e6;--tag-d:#3a2c10;--tag-d-ink:#e1c06d;
  --blk0:#d0697c;--blk1:#d8ae55;--blk2:#79c893;--blk3:#8ea2dc;--blk4:#c39ad6}
.catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 28px;background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:26px 28px 30px;box-shadow:0 10px 30px rgba(74,12,25,.06)}
@media (max-width:820px){.catalog{grid-template-columns:1fr;padding:20px 18px;gap:6px}.cat-col+.cat-col{border-top:1px solid var(--line);padding-top:16px;margin-top:10px}}
.cat-col{display:flex;flex-direction:column;gap:2px;min-width:0}
.cat-grade{font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink-soft)}
.cat-title{font-family:var(--f-display);font-size:34px;font-weight:700;line-height:1.05;color:var(--wine);margin-bottom:6px}
:root[data-theme="dark"] .cat-title{color:var(--gold)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .cat-title{color:var(--gold)}}
.cat-group{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:14px}
.tag{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:5px 12px;border-radius:999px;margin-bottom:4px}
.tag-a{background:var(--tag-a);color:var(--tag-a-ink)}.tag-b{background:var(--tag-b);color:var(--tag-b-ink)}.tag-c{background:var(--tag-c);color:var(--tag-c-ink)}.tag-d{background:var(--tag-d);color:var(--tag-d-ink)}
.cat-link{background:none;border:0;padding:5px 0;text-align:left;display:flex;flex-direction:column;gap:0;width:100%}
.cat-link .t{font-size:17px;font-weight:600;line-height:1.3;color:var(--ink)}
.cat-link .c{font-size:12.5px;color:var(--ink-soft)}
.cat-link:not(:disabled):hover .t{color:var(--wine);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
.cat-link.off{cursor:default}.cat-link.off .t{color:var(--ink-soft);opacity:.7}
.crumbs{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--ink-soft)}
.back{background:none;border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-weight:600;font-size:13px}
.vscore{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin-bottom:14px;display:flex;flex-direction:column;gap:8px}
.vscore b{font-family:var(--f-display);font-size:30px;color:var(--wine)}
.vscore .k{font-size:12.5px;color:var(--ink-soft)}
.dots small{font-size:10px;color:var(--ink-soft);margin-left:2px}
.chip[aria-pressed="true"] .dots small{color:var(--gold-soft)}
.field input.num{letter-spacing:.08em}
.selfcheck{background:var(--bg);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.selfcheck p{margin:0}
.row.pts .btn{min-width:92px}
.muted{color:var(--ink-soft);font-size:13.5px;margin:0 0 10px}
.sheet{max-width:820px}

/* --- элементы и таблица Менделеева --- */
.el-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:16px;background:var(--bg);border:1.5px dashed var(--line);color:var(--ink-soft);flex:0 0 auto}
.el-tile .z{position:absolute;left:10px;top:7px;font-family:var(--f-mono);font-size:13px;font-weight:600}
.el-tile .sym{font-family:var(--f-display);font-weight:700;line-height:1}
.el-tile .nm{font-size:13px;font-weight:600}
.el-tile.lit{background:linear-gradient(150deg,#e6c372,#b88a2e);border:0;color:#3a0d18;box-shadow:0 8px 24px rgba(184,138,46,.35)}
.el-tile.big{width:150px;height:164px}.el-tile.big .sym{font-size:72px;margin-top:6px}
.el-tile.sm{width:54px;height:58px;border-radius:12px}.el-tile.sm .sym{font-size:26px;margin-top:8px}.el-tile.sm .z{font-size:10px;left:6px;top:4px}
.el-tile.xs{width:32px;height:32px;border-radius:9px}.el-tile.xs .sym{font-size:17px}
@media (prefers-reduced-motion:no-preference){.el-tile.big.lit{animation:glow 3.2s ease-in-out infinite}@keyframes glow{50%{box-shadow:0 8px 34px rgba(216,174,85,.6)}}}
.hero{background:var(--wine-deep);color:var(--on-wine);border-radius:24px;padding:22px;display:flex;flex-direction:column;gap:18px;margin-bottom:18px}
.hero-top{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.hero-txt{flex:1 1 260px;min-width:0}
.hero-txt .lab{color:var(--gold)}
.hero-txt h2{font-family:var(--f-display);font-size:clamp(28px,5vw,38px);margin:4px 0 6px;line-height:1.05}
.hero-txt p{margin:0 0 4px;opacity:.9}.hero-txt p.small{font-size:13px;opacity:.7}
.ptable{display:grid;grid-template-columns:repeat(18,minmax(0,1fr));grid-template-rows:repeat(7,auto) 8px repeat(2,auto);gap:3px}
.pt{aspect-ratio:1;border-radius:4px;background:rgba(251,243,227,.09);display:flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-size:clamp(6px,1.25vw,12px);color:rgba(251,243,227,.35);overflow:hidden}
.pt.lit{background:#d8ae55;color:#3a0d18;font-weight:600}
.pt.cur{outline:2px solid var(--on-wine);outline-offset:1px}
.pt.next{background:rgba(216,174,85,.25);color:var(--on-wine)}
@media (max-width:420px){.pt span{display:none}}
.hero .btn.gold{align-self:flex-start}
.lvl-strip{display:flex;align-items:center;gap:14px;width:100%;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:12px 16px;margin-bottom:16px;text-align:left}
.lvl-txt{display:flex;flex-direction:column;min-width:0;flex:1}
.lvl-txt b{font-size:15.5px}.lvl-txt span{font-size:13px;color:var(--ink-soft)}
.lvl-strip .go{font-size:13px;font-weight:700;color:var(--wine);white-space:nowrap}
@media (max-width:480px){.lvl-strip .go{display:none}}
.unlock{display:flex;gap:14px;align-items:center;background:var(--gold-soft);border-radius:14px;padding:12px 14px;font-size:14px}
@media (prefers-reduced-motion:no-preference){.unlock{animation:pop .5s cubic-bezier(.2,1.4,.4,1)}@keyframes pop{from{transform:scale(.92);opacity:0}to{transform:none;opacity:1}}}

/* --- карта экзамена --- */
.emaps{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.emap{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.emap-head{display:flex;align-items:baseline;gap:10px}
.emap-head b{font-family:var(--f-display);font-size:24px}.emap-head span{font-size:12.5px;color:var(--ink-soft)}
.emap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:5px}
.etile{position:relative;aspect-ratio:1;border-radius:9px;background:var(--bg);overflow:hidden;border-top:4px solid var(--c)}
.etile .n{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;height:100%;font-family:var(--f-mono);font-size:12.5px;font-weight:600}
.etile .f{position:absolute;left:0;right:0;bottom:0;background:var(--c);opacity:.85}
.etile.m4 .n,.etile.m3 .n{color:#fff}
.etile.m1{box-shadow:inset 0 0 0 1.5px var(--bad)}
.etile.none{background:transparent;border:1.5px dashed var(--line);border-top:4px solid var(--line)}
.etile.none .n{color:var(--ink-soft);opacity:.6}
.b0{--c:var(--blk0)}.b1{--c:var(--blk1)}.b2{--c:var(--blk2)}.b3{--c:var(--blk3)}.b4{--c:var(--blk4)}
.emap-legend{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:11.5px;color:var(--ink-soft)}
.emap-legend span{display:flex;gap:5px;align-items:center}.emap-legend i{width:10px;height:10px;border-radius:3px;background:var(--c)}

/* --- банк заданий --- */
.bank{display:flex;flex-direction:column;gap:12px;margin-top:10px}
.how{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px 16px;font-size:14px}
.how summary{font-weight:700;cursor:pointer}
.paste{width:100%;font-family:var(--f-mono);font-size:12.5px;padding:12px;border-radius:12px;border:1.5px solid var(--line);background:var(--paper);color:var(--ink);resize:vertical}
.preview{background:var(--paper);border:1px dashed var(--gold);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.preview p,.preview ul{margin:0}.preview ul{padding-left:18px;font-size:13.5px}
.preview .btn{align-self:flex-start}
h3.sub3{font-size:15px;margin:10px 0 0}
.bgroup{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:10px 14px;font-size:14px}
.bgroup summary{cursor:pointer;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.bgroup summary span{color:var(--ink-soft);font-size:12.5px}
.bgroup ul{list-style:none;margin:10px 0;padding:0;display:flex;flex-direction:column;gap:6px}
.bgroup li{display:flex;gap:10px;align-items:center;justify-content:space-between}
.bgroup li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.btn.xs{font-size:12px;padding:5px 10px;flex:0 0 auto}
.cells{grid-template-columns:repeat(auto-fill,minmax(40px,1fr))}
.cal{max-width:560px}

/* --- гостевой режим --- */
.gate{background:var(--gold-soft);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.gate b{display:block;font-size:15px;color:var(--wine-deep)}
.gate span{font-size:13px;color:var(--ink-soft)}
:root[data-theme="dark"] .gate b{color:var(--gold)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .gate b{color:var(--gold)}}
.top .userbar button.primary{background:var(--gold);border-color:var(--gold);color:#2a0b12;font-weight:700}
.login .back{align-self:flex-start}
#login-pitch h2{font-family:var(--f-display);font-size:28px;margin:0 0 10px;line-height:1.1}
#login-pitch ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.catalog.solo{grid-template-columns:1fr}
.catalog.solo .cat-col{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 28px}
.catalog.solo .cat-grade,.catalog.solo .cat-title{grid-column:1/-1}
@media (max-width:820px){.catalog.solo .cat-col{grid-template-columns:1fr}}
.trialnote{background:var(--ok-bg);color:var(--ink);border-radius:14px;padding:12px 16px;font-size:14px;margin-bottom:16px}
.gate.pay{background:var(--paper);border:1.5px solid var(--gold)}
.acc-ctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;width:100%;border-top:1px dashed var(--line);padding-top:10px}
.acc-ctl input{font:inherit;padding:6px 10px;border-radius:9px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink)}
/* задание дня */
.daycard{display:flex;align-items:center;gap:14px;width:100%;background:var(--wine);color:var(--on-wine);border:0;border-radius:18px;padding:14px 16px;margin:-6px 0 16px;text-align:left}
.daycard .d-lab{flex:none;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;background:var(--gold);color:var(--wine-deep);border-radius:999px;padding:5px 10px}
.daycard .d-txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.daycard .d-txt b{font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.daycard .d-txt span{font-size:13px;opacity:.8}
.daycard .go{font-size:13px;font-weight:700;color:var(--gold);white-space:nowrap}
.daycard.done{background:var(--paper);color:var(--ink);border:1px solid var(--line)}
.daycard.done .go{color:var(--wine)}
@media (max-width:480px){.daycard{flex-wrap:wrap}.daycard .go{display:none}}
.dayteach{margin-top:28px}
.dayteach .small{font-size:13px;color:var(--ink-soft)}
.dayq{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:10px 0;display:flex;flex-direction:column;gap:8px}
.dayq-h{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.dayq-h span{font-family:var(--f-mono);font-size:11.5px;color:var(--ink-soft)}
.daycard .d-txt span.d-sub{font-family:var(--f-mono);font-size:11.5px;opacity:.9;color:var(--gold)}
.daycard.done .d-txt span.d-sub{color:var(--wine)}
/* моли и призы */
.coin-ic{flex:none;width:54px;height:54px;border-radius:50%;background:var(--wine);color:var(--gold);display:grid;place-items:center;font-family:var(--f-mono);font-weight:700;font-size:18px}
.coins .stats{margin-bottom:10px}
.prizes{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.prize{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.prize .pz-t{flex:1 1 220px;min-width:0;font-weight:600}
.prize .pz-c{font-family:var(--f-mono);font-size:13px;color:var(--wine);white-space:nowrap}
.prize .btn{font-size:13px;padding:8px 14px}
.prize.edit input{font:inherit;font-size:14px;padding:8px 10px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);flex:1 1 220px;min-width:0}
.prize.edit input.cost{flex:0 0 90px}
.orders{display:flex;flex-direction:column;gap:6px;margin:8px 0 16px}
.order{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border-bottom:1px dashed var(--line);padding:8px 0;font-size:14px}
.order .row{gap:8px}.order .btn{font-size:13px;padding:7px 12px}
.st{font-family:var(--f-mono);font-size:11.5px;padding:3px 9px;border-radius:999px;background:var(--gold-soft);color:var(--wine-deep);white-space:nowrap}
.st.done{background:transparent;border:1px solid var(--line);color:var(--ink-soft)}
.st.cancel{background:transparent;color:var(--ink-soft);text-decoration:line-through}
.prize .pz-ask{flex:1 1 100%;font-size:13px;color:var(--ink-soft)}
.prize input.contact{flex:1 1 100%;font:inherit;font-size:15px;padding:9px 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);min-width:0}
/* рейтинг недели */
.lb{margin:6px 0 18px}
.lb-list{list-style:none;margin:8px 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}
.lb-list li{display:flex;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:8px 12px}
.lb-list .pl{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-mono);font-weight:700;font-size:13px;background:var(--bg);color:var(--ink-soft)}
.lb-list .p1 .pl,.lb-list .p2 .pl,.lb-list .p3 .pl{background:var(--gold);color:var(--wine-deep)}
.lb-list .nk{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.lb-list .sc{font-family:var(--f-mono);font-size:13px;color:var(--wine)}
.lb-list li.me{border-color:var(--wine);box-shadow:inset 0 0 0 1px var(--wine)}
.lb-me{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:14px}
.lb-me .btn{font-size:13px;padding:7px 12px}
.lb-join{display:flex;gap:8px;flex-wrap:wrap}
.lb-join input{flex:1 1 200px;min-width:0;font:inherit;font-size:15px;padding:9px 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink)}
.fairnote{margin:0;font-size:13px;color:var(--ink-soft);border-left:3px solid var(--line);padding:2px 0 2px 10px}
/* условия над стрелкой: →[KMnO4, t°] */
.rx{display:inline-flex;flex-direction:column;justify-content:flex-end;vertical-align:.32em;margin:0 .3em;line-height:1.05}
.rx-c{font-size:.76em;padding:0 .5em 2px;white-space:nowrap;text-align:center}
.rx-a{position:relative;min-width:1.8em;height:0;border-top:1.5px solid currentColor}
.rx-a::after{content:"";position:absolute;right:-2px;top:-5.5px;border-style:solid;border-width:4.75px 0 4.75px 8px;border-color:transparent transparent transparent currentColor}

/* вопросы преподавателю */
.tab .badge{display:inline-block;min-width:18px;height:18px;line-height:18px;margin-left:6px;padding:0 5px;border-radius:999px;background:var(--gold);color:var(--wine-deep);font-size:11.5px;font-weight:700;text-align:center;vertical-align:1px}
.ask{margin-top:18px;border-top:1px dashed var(--line);padding-top:14px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.ask.open{border-top:0;padding-top:0;margin:6px 0 18px}
.ask-btn{background:var(--gold-soft);border:0;border-radius:12px;padding:11px 16px;color:var(--wine-deep);text-align:left;font-size:14.5px}
.ask-btn b{font-weight:700}
.ask-prev,.linkish{background:none;border:0;padding:0;color:var(--wine);text-decoration:underline;text-underline-offset:3px;font-size:13.5px;text-align:left}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .ask-prev,:root:not([data-theme="light"]) .linkish{color:var(--gold)}}
:root[data-theme="dark"] .ask-prev,:root[data-theme="dark"] .linkish{color:var(--gold)}
.ask-lab{font-size:13.5px;color:var(--ink-soft)}
.ask p{margin:0}
.view textarea{width:100%;font:inherit;font-size:15px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px;resize:vertical;min-height:64px}
.small.lead{font-size:14px;color:var(--ink-soft);margin-top:-4px}
.thread{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px;margin:12px 0;display:flex;flex-direction:column;gap:10px}
.thread.fresh{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.thread-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:14px}
.thread-head .st{margin-left:auto}
.st.new{background:var(--wine);color:var(--on-wine)}
.msg{max-width:88%;border-radius:14px;padding:9px 12px;font-size:14.5px;overflow-wrap:anywhere}
.msg .who{font-size:12px;color:var(--ink-soft);margin-bottom:2px}
.msg.mine{align-self:flex-end;background:var(--gold-soft)}
.msg.their{align-self:flex-start;background:var(--bg);border:1px solid var(--line)}
.thread .row .btn{font-size:13.5px;padding:9px 14px}
.qteach .hist,.hist{margin:12px 0}
.hist summary{cursor:pointer;font-weight:600;font-size:14px;padding:6px 0}

/* занятия и абонемент */
.pack{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:16px;margin:8px 0 16px;display:flex;flex-direction:column;gap:10px}
.pack.warn{border-color:var(--bad);background:var(--bad-bg)}
.pack-n{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.pack-n b{font-family:var(--f-display);font-size:42px;line-height:1;color:var(--wine)}
.pack-n span{font-size:15px}
.pack-msg{margin:0;font-size:14px;font-weight:600}
.pack .small{margin:0;font-size:13.5px;color:var(--ink-soft)}
.lessons{display:flex;flex-direction:column}
.lesson{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;border-bottom:1px dashed var(--line);padding:9px 0;font-size:14.5px}
.lesson .when{font-weight:600}
.lesson.past .when{font-weight:500;color:var(--ink-soft)}
.lesson.next{font-size:15.5px}
.lesson .small{color:var(--ink-soft);font-size:13px}
.lesson select{margin-left:auto}
.lesson .st.unpaid{margin-left:auto;color:var(--bad);text-decoration:none;border:1px solid var(--bad)}
.lesson.past>span:last-child:not(.when){margin-left:auto}
.btn.x{padding:4px 10px;font-size:16px;line-height:1}
.sched{border-top:1px solid var(--line);margin-top:12px;padding-top:12px;display:flex;flex-direction:column;gap:10px}
.sched-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px}
.sched-form b{flex-basis:100%}
.sched input,.sched select,.lesson select{font:inherit;font-size:14px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:7px 9px}
.sched input.cost{width:70px}.sched input.price{width:120px}
.sched .btn{font-size:13.5px;padding:8px 14px}
.warnrow b{color:var(--bad)}
.sched-form .quick{gap:6px}.sched-form .quick .btn{padding:7px 12px}
/* календарь занятий */
.lcal{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:12px;margin:16px 0;max-width:460px}
.lcal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.lcal-head .btn{padding:6px 12px}
.lcal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.lcal-grid .wd{font-size:11.5px;color:var(--ink-soft);text-transform:uppercase}
.lcal-grid .day{border-radius:10px;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:14px;line-height:1.1}
.lcal-grid .day b{font-weight:500}
.lcal-grid .day small{font-size:10.5px;font-family:var(--f-mono)}
.lcal-grid .day.has{background:var(--wine);color:var(--on-wine)}
.lcal-grid .day.has b{font-weight:700}
.lcal-grid .day.has.past{background:var(--gold-soft);color:var(--wine-deep)}
.lcal-grid .day.cancelled b{text-decoration:line-through;color:var(--ink-soft)}
.lcal-grid .day.today{box-shadow:inset 0 0 0 2px var(--gold)}
.calsub{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px;margin:12px 0;display:flex;flex-direction:column;gap:8px}
.calsub p{margin:0}.calsub .small{font-size:13px;color:var(--ink-soft)}
.calsub a.btn{text-decoration:none;display:inline-block}
