/* Форма регистрации ученика. Отдельно от kr-pilot.css: она живёт на своих
   страницах и не должна зависеть от того, что там происходит с лендингами. */

.kr-eksam-form{display:flex;flex-direction:column;gap:18px;max-width:420px}
.kr-eksam-form label{display:flex;flex-direction:column;gap:6px}
.kr-eksam-form label>span{font-weight:600;font-size:15px}
.kr-eksam-form input[type=text],
.kr-eksam-form input[type=email]{
  padding:12px 14px;font-size:16px; /* 16px — иначе iOS зумит страницу при фокусе */
  border:1px solid #C9D1DC;border-radius:8px;background:#fff;color:#171B22;width:100%;
  height:auto;min-height:48px;line-height:1.25;
}
.kr-eksam-form input:focus{outline:2px solid #1B4B8F;outline-offset:1px;border-color:#1B4B8F}
.kr-eksam-form small{font-size:13.5px;color:#5C6672;line-height:1.45}
.kr-eksam-form button{
  padding:14px 22px;font-size:16px;font-weight:600;cursor:pointer;
  border:0;border-radius:8px;background:#1B4B8F;color:#fff;align-self:flex-start;
}
.kr-eksam-form button:hover{background:#12376B}

/* Ловушка для ботов: убрана с экрана, но не display:none — часть ботов
   такие поля пропускает. */
.kr-eksam-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.kr-eksam-error{
  margin:0;padding:12px 14px;border-radius:8px;
  background:#F7E4E2;border-left:3px solid #A63229;color:#7A241D;font-size:15px;
}

.kr-eksam-panel{max-width:520px;padding:20px 22px;border-radius:10px;border:1px solid #D8DCE4;background:#fff}
.kr-eksam-panel h2{margin:0 0 8px;font-size:22px;line-height:1.25}
.kr-eksam-panel p{margin:0;font-size:16px;line-height:1.55;color:#4B5563}
.kr-eksam-ok{border-left:3px solid #2E6F4C}
.kr-eksam-err{border-left:3px solid #A63229}

/* ---------------------------------------------------------------
   Карта, кабинет ученика и учительская форма.
   Мобильный размер — основной: карту заполняют с телефона в машине.
   --------------------------------------------------------------- */

:root{
  --kre-ink:#171B22; --kre-ink2:#4B5563; --kre-ink3:#78808D;
  --kre-line:#D8DCE4; --kre-soft:#EDEFF3; --kre-accent:#1B4B8F;
  --kre-ok:#2E6F4C; --kre-ok-bg:#E2F0E8;
  --kre-warn:#96660A; --kre-warn-bg:#F6EDD8;
  --kre-crit:#A63229; --kre-crit-bg:#F7E4E2;
  --kre-idle:#6B7280; --kre-idle-bg:#E9EBEF;
}

.kr-eksam-warn{max-width:520px;padding:16px 18px;border-radius:10px;border:1px solid var(--kre-line);
  border-left:3px solid var(--kre-warn);background:#fff}
.kr-eksam-warn p{margin:0 0 6px;font-size:15px;color:var(--kre-ink2)}
.kr-eksam-warn p:last-child{margin-bottom:0}
.kr-eksam-panel ul{margin:8px 0 0;padding-left:1.2em;font-size:15px;color:var(--kre-ink2)}
.kr-hint{font-size:14px;color:var(--kre-ink3);line-height:1.5;margin:6px 0 14px;max-width:60ch}
.kr-back{margin:0 0 14px;font-size:15px}
.kr-pdf{margin:14px 0 0;max-width:720px}
.kr-pdf a{display:inline-block;padding:12px 20px;border-radius:8px;background:var(--kre-accent);
  color:#fff;text-decoration:none;font-size:15px;font-weight:600}

/* --- значения оценок --- */
.kr-v{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:600;
  padding:2px 7px;border-radius:4px;letter-spacing:.03em;white-space:nowrap}
.kr-v-h{background:var(--kre-idle-bg);color:var(--kre-idle)}
.kr-v-a{background:var(--kre-ok-bg);color:var(--kre-ok)}
.kr-v-am{background:var(--kre-warn-bg);color:var(--kre-warn)}
.kr-v-ma{background:var(--kre-crit-bg);color:var(--kre-crit)}
.kr-t{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;font-weight:400;color:var(--kre-ink3)}

/* --- карта --- */
.kr-card{border:1px solid var(--kre-line);border-radius:10px;background:#fff;overflow:hidden;max-width:720px;
  box-shadow:0 1px 2px rgba(16,24,40,.05),0 8px 24px -14px rgba(16,24,40,.2)}
.kr-card-head{display:flex;flex-wrap:wrap;gap:10px 16px;justify-content:space-between;align-items:baseline;
  padding:14px 18px;border-bottom:2px solid var(--kre-ink)}
.kr-card-brand b{display:block;font-size:14px;letter-spacing:.02em}
.kr-card-brand span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--kre-ink3)}
.kr-card-verdict{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kr-chip-type{font-size:11px;letter-spacing:.04em;padding:3px 8px;border-radius:5px;
  background:#E4EBF6;color:#12376B;font-weight:600}
.kr-card-band{display:flex;flex-wrap:wrap;gap:5px 20px;padding:12px 18px;background:var(--kre-soft);
  border-bottom:1px solid var(--kre-line);font-size:14px}
.kr-card-band span{color:var(--kre-ink3)}
.kr-card-body{padding:16px 18px;display:flex;flex-direction:column;gap:20px}
.kr-block h3{margin:0 0 8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--kre-ink3);font-weight:600}
.kr-row{display:flex;justify-content:space-between;gap:14px;align-items:baseline;font-size:15px;
  padding:6px 0;border-bottom:1px dotted var(--kre-line)}
.kr-row-right{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
.kr-group{margin-top:10px}
.kr-group h4{margin:0 0 4px;font-size:14px;font-weight:600;color:var(--kre-ink2)}
.kr-comp{display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-size:14.5px;padding:4px 0}
.kr-note{margin:4px 0 8px;padding:8px 11px;background:var(--kre-warn-bg);border-left:2px solid var(--kre-warn);
  border-radius:0 6px 6px 0;font-size:13.5px;color:var(--kre-ink2);line-height:1.5}
.kr-card-foot{padding:13px 18px;border-top:1px solid var(--kre-line);font-size:12.5px;color:var(--kre-ink3)}

/* --- кабинет --- */
.kr-cab-list h2{font-size:22px;margin:0 0 14px}
.kr-sum{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;text-decoration:none;color:inherit;
  border:1px solid var(--kre-line);border-radius:10px;padding:14px 16px;margin-bottom:10px;background:#fff}
.kr-sum:hover{border-color:var(--kre-accent)}
.kr-sum-date{font-weight:600;font-size:16px}
.kr-sum-type{font-size:13px;color:var(--kre-ink3)}
.kr-sum-res{margin-left:auto;font-size:14px;font-weight:600}
.kr-sum-pass .kr-sum-res{color:var(--kre-ok)}
.kr-sum-fail .kr-sum-res{color:var(--kre-crit)}

/* --- учительская форма --- */
.kr-teach{max-width:640px}
.kr-teach h2{font-size:21px;margin:0 0 12px}
.kr-teach h4{margin:16px 0 6px;font-size:14px;color:var(--kre-ink2)}
/* min-width:0 обязателен: fieldset по умолчанию не сжимается уже своего
   min-content, и ряд «подпись + четыре кнопки» выпихивал страницу вбок. */
.kr-teach fieldset{border:1px solid var(--kre-line);border-radius:10px;padding:14px 16px;margin:0 0 16px;
  background:#fff;min-width:0}
.kr-teach legend{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--kre-ink3);font-weight:600;padding:0 6px}
.kr-teach label{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.kr-teach label>span{font-size:14px;font-weight:600}
/* Тема жёстко задаёт полям height:40px, а 16px шрифта с отступами по 11px
   требуют 45 — из-за этого у букв срезало низ. height:auto возвращает
   нормальную высоту, min-height держит палец. */
.kr-teach input[type=text],.kr-teach input[type=date],.kr-teach input[type=time],
.kr-teach select,.kr-teach textarea{
  font-size:16px;padding:11px 12px;border:1px solid #C9D1DC;border-radius:8px;background:#fff;
  color:var(--kre-ink);width:100%;font-family:inherit;
  height:auto;min-height:46px;line-height:1.25}
.kr-teach textarea{min-height:64px}
.kr-teach textarea{resize:vertical}
/* Имя kr-grid уже занято собственным CSS сайта (сетка подвала), и его
   правило для узких экранов ломало нашу разметку. Отсюда префикс kre-. */
.kre-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.kr-slot{border-top:1px solid var(--kre-soft);padding-top:10px;margin-top:10px}
.kr-slot:first-of-type{border-top:0;padding-top:0;margin-top:0}
.kr-slot label{margin-bottom:8px}
.kr-slot-line{display:flex;gap:8px;align-items:stretch;margin-bottom:8px}
.kr-seg-res{flex:1 1 auto;min-width:0}
.kr-seg-res label{flex:1 1 0;margin:0}
.kr-seg-res span{min-width:0;font-family:inherit;font-size:13px;padding:6px}
.kr-dur{flex:0 0 84px;width:84px!important;text-align:center;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.kr-slot-fail{display:flex;flex-direction:column;gap:8px}
.kr-js .kr-slot .kr-slot-fail{display:none}
.kr-js .kr-slot.kr-need .kr-slot-fail{display:flex}
.kr-slot.kr-need{border-left:3px solid var(--kre-crit);padding-left:10px;margin-left:-13px}

/* --- компетенции: 21 строка должна помещаться на телефоне --- */
.kr-fs-comp{padding:12px 12px}
.kr-grp{border-top:1px solid var(--kre-soft);margin:0}
.kr-grp:first-of-type{border-top:0}
.kr-grp>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;
  padding:12px 2px;font-size:15px;font-weight:600;color:var(--kre-ink);min-width:0}
.kr-grp>summary>span{min-width:0;overflow-wrap:break-word}
.kr-grp>summary::-webkit-details-marker{display:none}
.kr-grp>summary::before{content:"";width:0;height:0;border:5px solid transparent;
  border-left-color:var(--kre-ink3);margin-right:2px;transition:transform .15s}
.kr-grp[open]>summary::before{transform:rotate(90deg) translateX(-2px)}
.kr-grp-n{margin-left:auto;font-size:12px;font-weight:600;background:var(--kre-accent);color:#fff;
  min-width:20px;height:20px;border-radius:10px;display:grid;place-items:center;padding:0 6px}

.kr-comp-row{padding:7px 0;border-top:1px solid var(--kre-soft)}
.kr-comp-head{display:flex;align-items:center;gap:8px;justify-content:space-between}
.kr-comp-title{font-size:14.5px;line-height:1.3;flex:1 1 auto;min-width:0;
  color:var(--kre-ink);font-weight:400}
.kr-comp-remark{font-size:15px!important;padding:9px 11px!important;margin-top:7px}

/* Сегменты вместо выпадающего списка: одно касание вместо трёх,
   и текст не обрезается на узком экране. */
.kr-seg{display:flex;flex:0 0 auto;border:1px solid #C9D1DC;border-radius:8px;overflow:hidden;background:#fff}
.kr-seg label{margin:0;position:relative;display:block}
.kr-seg input{position:absolute;opacity:0;width:100%;height:100%;left:0;top:0;margin:0;cursor:pointer}
/* 34px по ширине хватает пальцу, потому что высота полная (44px), зато
   подписи вроде «Juhtimisseadmete» перестают ломаться посреди слова. */
.kr-seg span{display:flex;align-items:center;justify-content:center;min-width:34px;min-height:44px;padding:6px 3px;text-align:center;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;font-weight:600;
  color:var(--kre-ink3);border-left:1px solid #E3E8EF;line-height:1.1}
.kr-seg label:first-child span{border-left:0}
.kr-seg input:checked+span{color:#fff;background:var(--kre-idle)}
.kr-seg-a input:checked+span{background:var(--kre-ok)}
.kr-seg-am input:checked+span{background:var(--kre-warn)}
.kr-seg-ma input:checked+span{background:var(--kre-crit)}
.kr-seg input:focus-visible+span{outline:2px solid var(--kre-accent);outline-offset:-2px}

/* Со скриптом комментарий появляется там, где он нужен. Без скрипта
   видны все — форма длиннее, но рабочая. */
.kr-js .kr-comp-row .kr-comp-remark{display:none}
.kr-js .kr-comp-row.kr-need .kr-comp-remark{display:block}
.kr-comp-row[data-grade="MA"] .kr-comp-title{font-weight:600}

/* --- панель сохранения всегда под рукой --- */
.kr-teach-actions{position:sticky;bottom:0;z-index:5;display:flex;gap:8px;
  padding:10px 0 12px;background:linear-gradient(180deg,rgba(255,255,255,0) 0,#fff 22%)}
.kr-teach-actions button{flex:1 1 0;padding:15px 10px;font-size:15.5px}

/* Виджет чата закрывает кнопки — на этих страницах он лишний. */
body.kr-eksam-page .chaty-widget,
body.kr-eksam-page #chaty-widget-0,
body.kr-eksam-page .chaty-main-widget{display:none!important}

/* На рабочих экранах подвал сайта — половина длины страницы и ноль пользы:
   учитель заполняет карту, а не изучает контакты. */
body.kr-eksam-app footer.site-footer{display:none!important}
body.kr-eksam-app .kr-teach{padding-bottom:4px}

/* Баннер согласия на этих страницах не нужен: они закрыты от индексации,
   открываются по ссылке и не для того, чтобы на них принимать решения про
   cookie. Прячем и сам баннер, и круглую кнопку возврата к согласию — она
   стояла ровно под кнопкой сохранения.

   Это не включает никакой слежки: CookieYes держит сторонние скрипты
   заблокированными, пока согласия нет, и скрытый баннер согласия не даёт.
   На публичных страницах всё остаётся как было. */
body.kr-eksam-page .cky-consent-container,
body.kr-eksam-page .cky-btn-revisit-wrapper,
body.kr-eksam-page .cky-overlay,
body.kr-eksam-page .cky-modal{display:none!important}
.kr-teach-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.kr-teach button{font-size:16px;font-weight:600;padding:14px 22px;border:0;border-radius:8px;
  background:var(--kre-accent);color:#fff;cursor:pointer}
.kr-teach button:hover{background:#12376B}
.kr-btn-ghost{background:#fff!important;color:var(--kre-accent)!important;border:1px solid var(--kre-accent)!important}
.kr-teach-drafts a{display:flex;flex-wrap:wrap;gap:5px 14px;align-items:baseline;text-decoration:none;color:inherit;
  border:1px solid var(--kre-line);border-radius:10px;padding:13px 15px;margin-bottom:9px;background:#fff}
.kr-teach-drafts a:hover{border-color:var(--kre-accent)}
.kr-teach-drafts span{font-size:13.5px;color:var(--kre-ink3)}

@media (min-width:700px){
  .kr-fs-comp{padding:14px 16px}
  .kr-comp-title{font-size:15px}
}
/* Тип и дата занимают строку целиком, начало и конец стоят рядом:
   на телефоне четыре поля в столбик — половина экрана впустую. */
.kr-wide{grid-column:1 / -1}
.kr-grp>summary{min-height:44px}

/* ---------------------------------------------------------------
   Секундомер. Крупные цифры и большие кнопки: на них смотрят и по ним
   попадают, не глядя, во время движения.
   --------------------------------------------------------------- */

.kr-timer{border:1px solid var(--kre-line);border-radius:12px;background:#fff;padding:14px 16px;
  margin:0 0 16px;position:sticky;top:0;z-index:6;
  box-shadow:0 1px 2px rgba(16,24,40,.05),0 10px 24px -18px rgba(16,24,40,.5)}
/* Панель администратора WordPress прибита к верху только на широком экране;
   на телефоне она уезжает вместе со страницей, и отступ там не нужен. */
@media screen and (min-width:783px){ body.admin-bar .kr-timer{top:32px} }
.kr-timer-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.kr-timer-cap{display:block;font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--kre-ink3)}
.kr-timer-clock{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:34px;font-weight:600;
  line-height:1.1;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--kre-ink)}
.kr-timer-clock.kr-goal{color:var(--kre-ok)}
.kr-timer-btn{flex:0 0 auto;min-width:118px;min-height:52px;padding:12px 18px;font-size:16px;font-weight:600;
  border:0;border-radius:10px;background:var(--kre-accent);color:#fff;cursor:pointer}
.kr-timer-btn.kr-btn-ghost{background:#fff!important;color:var(--kre-accent)!important;
  border:1px solid var(--kre-accent)!important}

.kr-timer-man{margin-top:12px;padding-top:12px;border-top:1px solid var(--kre-soft)}
.kr-timer-left{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;font-weight:600;
  font-variant-numeric:tabular-nums;color:var(--kre-ink);letter-spacing:0;text-transform:none}
.kr-timer-left.kr-warn{color:var(--kre-warn)}
.kr-timer-left.kr-over{color:var(--kre-crit)}
.kr-timer-slots{display:flex;gap:8px;margin-top:8px}
.kr-timer-slots button{flex:1 1 0;min-height:60px;padding:8px 4px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  border:1px solid #C9D1DC;border-radius:10px;background:#fff;color:var(--kre-ink2);font-family:inherit}
.kr-timer-slots button span{font-size:11.5px;line-height:1.15;text-align:center}
.kr-timer-slots button b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;
  font-variant-numeric:tabular-nums}
.kr-timer-slots button.kr-running{background:var(--kre-ok);border-color:var(--kre-ok);color:#fff}

.kr-sync{margin-top:10px;font-size:13px;min-height:18px}
.kr-sync-ok{color:var(--kre-ink3)}
.kr-sync-wait{color:var(--kre-warn);font-weight:600}

@media (max-width:360px){
  .kr-timer-clock{font-size:29px}
  .kr-timer-btn{min-width:96px;padding:12px}
}
