/* ═══════════════════════════════════════════════════════════════
   Кабинет ученика СМЕНЫ. Дизайн-система Оли на экране телефона:
   Ivory Mist — фон, Night Bordeaux — текст, Powder Pink и Cool Horizon — заливки.
   Шрифты локальные, рендер не зависит от сети.
   ═══════════════════════════════════════════════════════════════ */
@import url("/fonts/fonts.css");

:root{
  --ivory:#F7F2E0; --paper:#FFFCF4; --bordeaux:#5B0015; --pink:#F8BBD0; --blue:#80AEE8;
  --soft:rgba(91,0,21,.62); --line:rgba(91,0,21,.14); --line2:rgba(91,0,21,.26);
  --head:'Unbounded',system-ui,sans-serif;
  --body:'Montserrat',system-ui,sans-serif;
  --hand:'Comfortaa',system-ui,sans-serif;
  --r:22px; --r-s:14px; --pill:999px;
  --sh:0 10px 28px rgba(91,0,21,.10);
  --gap:18px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--ivory);color:var(--bordeaux);font-family:var(--body);
  font-size:16px;line-height:1.5;font-weight:500;min-height:100vh}
a{color:var(--bordeaux)}
img{max-width:100%}

/* ─── каркас ─── */
.shapka{position:sticky;top:0;z-index:10;background:rgba(247,242,224,.94);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.shapka .in{max-width:900px;margin:0 auto;padding:12px 16px;display:flex;align-items:center;
  gap:10px;flex-wrap:wrap}
.logo{font-family:var(--head);font-weight:600;font-size:15px;letter-spacing:-.02em;
  text-decoration:none;margin-right:auto}
.logo span{color:var(--soft);font-weight:400}
.nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.vstroku{display:inline}
.nav a,.nav button{font-family:var(--body);font-size:13px;font-weight:600;text-decoration:none;
  color:var(--bordeaux);background:transparent;border:1px solid transparent;border-radius:var(--pill);
  padding:7px 12px;cursor:pointer}
.nav a:hover,.nav button:hover{background:rgba(91,0,21,.06)}
.nav a.on{background:var(--bordeaux);color:var(--ivory)}
.kont{max-width:900px;margin:0 auto;padding:22px 16px 72px;display:flex;flex-direction:column;gap:var(--gap)}
.podval{max-width:900px;margin:0 auto;padding:0 16px 40px;font-size:12px;color:var(--soft)}

/* ─── типографика ─── */
h1{font-family:var(--head);font-weight:600;font-size:26px;line-height:1.1;letter-spacing:-.03em}
h2{font-family:var(--head);font-weight:600;font-size:19px;line-height:1.15;letter-spacing:-.02em}
h3{font-family:var(--head);font-weight:600;font-size:15px;line-height:1.2}
.lbl{display:block;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--soft)}
.soft{color:var(--soft)}
.small{font-size:13px}
.pusto{color:var(--soft);font-size:14px;font-style:italic}

/* ─── карточки ─── */
.kart{background:var(--paper);border-radius:var(--r);box-shadow:var(--sh);padding:18px 16px;
  display:flex;flex-direction:column;gap:12px}
.kart.tm{background:var(--bordeaux);color:var(--ivory);box-shadow:none}
.kart.tm .lbl,.kart.tm .soft{color:rgba(247,242,224,.72)}
.kart.tm a{color:var(--ivory)}
.ryad{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.mezhdu{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.dva{display:grid;gap:14px}
.dva.odna{grid-template-columns:1fr}
@media (min-width:680px){.dva{grid-template-columns:1fr 1fr}.dva.odna{grid-template-columns:1fr}}
hr{border:none;border-top:1px solid var(--line)}

/* ─── шапка блока направления ─── */
.nom{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:26px;
  border-radius:var(--pill);background:var(--bordeaux);color:var(--ivory);
  font-family:var(--head);font-weight:600;font-size:12px;padding:0 9px}
.of{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}

/* ─── шкала оценки ─── */
.tochki{display:inline-flex;gap:5px;align-items:center}
.tochki i{width:12px;height:12px;border-radius:50%;border:2px solid var(--blue);display:block}
.tochki i.on{background:var(--blue)}
.tochki em{font-style:normal;font-size:12px;color:var(--soft);margin-left:4px}

/* ─── списки ─── */
ul.spis{list-style:none;display:flex;flex-direction:column;gap:7px}
ul.spis li{position:relative;padding-left:16px;font-size:14px;line-height:1.45}
ul.spis li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:50%}
ul.spis.plus li::before{background:var(--blue)}
ul.spis.rost li::before{background:var(--pink)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips span{font-size:12px;color:var(--soft);border:1px solid var(--line);border-radius:var(--pill);
  padding:4px 10px;background:var(--paper)}

/* ─── прогресс ─── */
.polosa{height:10px;border-radius:var(--pill);background:rgba(91,0,21,.10);overflow:hidden;flex:1;min-width:120px}
.polosa i{display:block;height:100%;background:var(--bordeaux);border-radius:var(--pill);width:0}
/* ширина полосы классом: инлайновые стили запрещены политикой безопасности */
.polosa i.w0{width:0%}
.polosa i.w5{width:5%}
.polosa i.w10{width:10%}
.polosa i.w15{width:15%}
.polosa i.w20{width:20%}
.polosa i.w25{width:25%}
.polosa i.w30{width:30%}
.polosa i.w35{width:35%}
.polosa i.w40{width:40%}
.polosa i.w45{width:45%}
.polosa i.w50{width:50%}
.polosa i.w55{width:55%}
.polosa i.w60{width:60%}
.polosa i.w65{width:65%}
.polosa i.w70{width:70%}
.polosa i.w75{width:75%}
.polosa i.w80{width:80%}
.polosa i.w85{width:85%}
.polosa i.w90{width:90%}
.polosa i.w95{width:95%}
.polosa i.w100{width:100%}
.polosa.sv i{background:var(--blue)}
.bloki6{display:flex;gap:5px}
.bloki6 b{width:16px;height:16px;border-radius:50%;border:2px solid var(--line2);display:block}
.bloki6 b.dv{border-color:var(--blue)}
.bloki6 b.ok{background:var(--bordeaux);border-color:var(--bordeaux)}

/* ─── статусы ─── */
.st{display:inline-block;font-size:12px;font-weight:600;border-radius:var(--pill);padding:4px 11px;
  border:1px solid var(--line2);color:var(--soft);white-space:nowrap}
.st.rab{background:var(--blue);border-color:var(--blue);color:var(--bordeaux)}
.st.prov{background:var(--pink);border-color:var(--pink);color:var(--bordeaux)}
.st.ok{background:var(--bordeaux);border-color:var(--bordeaux);color:var(--ivory)}
.pri{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.pri.vys{color:var(--bordeaux)}

/* ─── задачи ─── */
.zad{border:1px solid var(--line);border-radius:var(--r-s);padding:13px;display:flex;
  flex-direction:column;gap:9px;background:var(--paper)}
.zad.ok{border-color:var(--line2);background:rgba(248,187,208,.14)}
.zad b{font-size:15px;font-weight:600;line-height:1.3}
.zad .rez{font-size:13px;color:var(--soft)}
.sdacha{font-size:13px;background:rgba(128,174,232,.16);border-radius:var(--r-s);padding:10px}
.sdacha a{word-break:break-all}
.otvet{font-size:13px;border-left:3px solid var(--pink);padding-left:10px}

/* ─── формы ─── */
label.pole{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}
input[type=text],input[type=password],input[type=url],textarea,select{
  font-family:var(--body);font-size:15px;font-weight:500;color:var(--bordeaux);background:var(--paper);
  border:1px solid var(--line2);border-radius:var(--r-s);padding:11px 12px;width:100%;
  text-transform:none;letter-spacing:0}
textarea{min-height:76px;resize:vertical;line-height:1.45}
input:focus,textarea:focus,select:focus{outline:2px solid var(--blue);outline-offset:1px}
.knopka{font-family:var(--body);font-size:14px;font-weight:600;border:none;border-radius:var(--pill);
  padding:11px 18px;background:var(--bordeaux);color:var(--ivory);cursor:pointer;text-decoration:none;
  display:inline-block;text-align:center}
.knopka:hover{opacity:.9}
.knopka.svet{background:var(--blue);color:var(--bordeaux)}
.knopka.ten{background:transparent;color:var(--bordeaux);border:1px solid var(--line2)}
.knopka.mal{font-size:13px;padding:8px 14px}
form.stolb{display:flex;flex-direction:column;gap:11px}
details{border:1px solid var(--line);border-radius:var(--r-s);padding:0}
details>summary{cursor:pointer;padding:11px 13px;font-size:14px;font-weight:600;list-style:none}
details>summary::-webkit-details-marker{display:none}
details>summary::after{content:" ▾";color:var(--soft)}
details[open]>summary::after{content:" ▴"}
details .telo{padding:0 13px 13px;display:flex;flex-direction:column;gap:11px}

/* ─── сообщения ─── */
.soob{border-radius:var(--r-s);padding:12px 14px;font-size:14px;background:rgba(128,174,232,.20)}
.soob.err{background:rgba(248,187,208,.38)}
.klyuchi{font-family:var(--hand);font-size:16px;font-weight:700;background:var(--paper);
  border:2px dashed var(--line2);border-radius:var(--r-s);padding:12px;word-break:break-word;
  white-space:pre-line;line-height:1.6;-webkit-user-select:all;user-select:all}

/* ─── доска ─── */
.stroka{display:grid;gap:10px;grid-template-columns:1fr;padding:13px 0;border-bottom:1px solid var(--line)}
.stroka:last-child{border-bottom:none}
@media (min-width:680px){.stroka{grid-template-columns:1.3fr 2fr auto;align-items:center}}
.stroka .kto{font-size:15px;font-weight:600}
.stroka .kto span{display:block;font-size:12px;color:var(--soft);font-weight:500}
.cifra{font-family:var(--head);font-weight:600;font-size:15px;white-space:nowrap}

/* ─── вход ─── */
.vhod{max-width:420px;margin:8vh auto 0;padding:0 16px;display:flex;flex-direction:column;gap:16px}
.vhod h1{font-size:28px}
