.kp-user-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.kp-user-modal{background:#fff;border-radius:14px;width:min(560px,100%);max-height:92vh;display:flex;flex-direction:column;box-shadow:0 24px 60px #0f172a40;overflow:hidden}.kp-user-modal__header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--kp-border);background:#f8fafc}.kp-user-modal__header h3{margin:0;font-size:17px}.kp-user-modal__close{background:transparent;border:0;font-size:18px;cursor:pointer;color:var(--kp-text-muted);width:28px;height:28px;border-radius:6px}.kp-user-modal__close:hover{background:var(--kp-border);color:var(--kp-text)}.kp-user-modal__body{padding:16px 20px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.kp-user-modal__row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.kp-user-field{display:flex;flex-direction:column;gap:4px;font-size:13px}.kp-user-field>span{color:var(--kp-text-muted);font-weight:600;font-size:12px}.kp-user-field>span em{color:var(--kp-danger);font-style:normal}.kp-user-field input,.kp-user-field select{border:1px solid var(--kp-border);border-radius:8px;padding:8px 10px;font-size:13.5px;font-family:inherit}.kp-user-field input:focus,.kp-user-field select:focus{outline:none;border-color:var(--kp-primary);box-shadow:0 0 0 3px #2563eb1f}.kp-user-field small{font-size:11.5px}.kp-user-modal__error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:10px 12px;border-radius:8px;font-size:13px}.kp-user-modal__actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.kp-user-modal__danger{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid #fecaca;border-radius:10px;background:#fef2f2}.kp-user-modal__danger strong{font-size:13px;color:#991b1b}.kp-user-modal__danger p{margin:4px 0 0;font-size:12px;line-height:1.45}.kp-btn--danger{align-self:flex-start;background:#dc2626;border-color:#dc2626;color:#fff}.kp-btn--danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}@media (max-width: 600px){.kp-user-modal__row{grid-template-columns:1fr}}.kp-bell{position:relative}.kp-bell__trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1px solid var(--kp-border);background:var(--kp-bg-elevated);color:var(--kp-text);transition:background .15s ease,border-color .15s ease}.kp-bell__trigger:hover{background:#f7f9fd;border-color:var(--kp-border-strong)}.kp-bell__trigger--has-open{border-color:var(--kp-warn);color:var(--kp-warn)}.kp-bell__icon{font-size:14px;line-height:1}.kp-bell__badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--kp-danger);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px var(--kp-bg-elevated)}.kp-bell__panel{position:absolute;top:calc(100% + 8px);right:0;width:380px;max-width:calc(100vw - 32px);max-height:70vh;display:flex;flex-direction:column;gap:10px;padding:14px;z-index:50}.kp-bell__head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--kp-border);padding-bottom:8px}.kp-bell__head strong{font-size:15px}.kp-bell__sections{display:flex;flex-direction:column;gap:12px;overflow-y:auto;max-height:55vh}.kp-bell__section-title{margin:0 0 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--kp-text)}.kp-bell__section-title--read{color:var(--kp-text-muted);font-weight:600}.kp-bell__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;overflow-y:auto;max-height:50vh}.kp-bell__item{border:1px solid var(--kp-border);border-radius:var(--kp-radius-sm);padding:10px 12px;background:#fafbff;display:flex;flex-direction:column;gap:5px}.kp-bell__item--unread{border-color:#bfdbfe;background:#f8fbff}.kp-bell__item--read{opacity:.88;background:#f8fafc}.kp-bell__item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;font-size:11px}.kp-bell__item-head-end{display:flex;align-items:center;gap:6px;flex-shrink:0}.kp-bell__sev{display:inline-flex;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:600}.kp-bell__sev--info{background:var(--kp-primary-soft);color:var(--kp-primary-strong)}.kp-bell__sev--warning{background:var(--kp-warn-soft);color:var(--kp-warn)}.kp-bell__sev--critical{background:var(--kp-danger-soft);color:var(--kp-danger)}.kp-bell__time{color:var(--kp-text-muted)}.kp-bell__title{font-size:13.5px;font-weight:600;color:var(--kp-text)}.kp-bell__item--read .kp-bell__title{font-weight:500;color:var(--kp-text-muted)}.kp-bell__read-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid var(--kp-primary);border-radius:6px;background:#fff;color:var(--kp-primary);font-size:14px;font-weight:800;line-height:1;cursor:pointer}.kp-bell__read-btn:hover{background:var(--kp-primary-soft)}.kp-bell__read-btn--marked{border-color:#86efac;background:#dcfce7;color:#15803d}.kp-bell__read-btn--marked:hover{background:#bbf7d0}.kp-bell__read-done{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;background:#dcfce7;color:#15803d;font-size:13px;font-weight:800}.kp-bell__msg{font-size:12.5px;color:var(--kp-text-muted);line-height:1.4}.kp-bell__meta{font-size:11px;color:var(--kp-text-muted)}@media (max-width: 600px){.kp-bell__panel{width:calc(100vw - 32px);right:0}}.kp-list-stats{position:fixed;left:12px;bottom:10px;z-index:30;display:inline-flex;align-items:center;gap:8px;max-width:min(420px,calc(100vw - 24px));padding:6px 12px;border-radius:999px;border:1px solid var(--kp-border);background:#fffffff0;box-shadow:var(--kp-shadow);font-size:12px;font-weight:600;color:var(--kp-text-muted);pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.kp-list-stats__dot{width:7px;height:7px;border-radius:50%;background:var(--kp-primary);flex-shrink:0}@media (max-width: 900px){.kp-list-stats{left:10px;bottom:8px;font-size:11px;padding:5px 10px}}.kp-shell{display:flex;flex-direction:column;height:100%;min-height:100vh;min-height:100dvh;width:100%}.kp-shell__sidebar{position:fixed;top:0;left:0;bottom:0;width:min(220px,78vw);background:#0f172a;color:#e2e8f0;display:flex;flex-direction:column;padding:12px 8px;overflow-x:hidden;overflow-y:auto;transform:translate(-105%);transition:transform .22s ease;z-index:100;box-shadow:4px 0 24px #0003;pointer-events:none;visibility:hidden}.kp-shell--nav-open .kp-shell__sidebar{transform:translate(0);pointer-events:auto;visibility:visible}.kp-shell__sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px 14px;border-bottom:1px solid #1e293b;margin-bottom:4px}.kp-shell__sidebar-close{flex-shrink:0;width:32px;height:32px;border:1px solid #334155;border-radius:8px;background:#1e293b;color:#e2e8f0;font-size:22px;line-height:1;cursor:pointer}.kp-shell__sidebar-close:hover{background:#334155}.kp-shell__brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.kp-shell__brand-mark{width:32px;height:32px;background:var(--kp-primary);border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:12px;letter-spacing:.5px;flex-shrink:0}.kp-shell__brand-text{display:flex;flex-direction:column;line-height:1.1;min-width:0}.kp-shell__brand-text strong{font-size:13px;color:#fff}.kp-shell__brand-text span{font-size:11px;color:#94a3b8}.kp-shell__nav{display:flex;flex-direction:column;gap:2px;margin-top:16px;flex:1;overflow-y:auto}.kp-shell__nav-item{display:block;padding:8px 10px;border-radius:8px;color:#cbd5e1;font-size:13px;line-height:1.3;transition:background .15s ease,color .15s ease}.kp-shell__nav-item:hover{background:#1e293b;color:#fff}.kp-shell__nav-item--active{background:var(--kp-primary);color:#fff}.kp-shell__nav-item--active:hover{background:var(--kp-primary-strong)}.kp-shell__user{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:12px 8px 4px;border-top:1px solid #1e293b;margin-top:12px}.kp-shell__user-info{display:flex;flex-direction:column;line-height:1.2;min-width:0}.kp-shell__user-info strong{color:#fff;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kp-shell__user-info span{color:#94a3b8;font-size:11px;text-transform:uppercase;letter-spacing:.4px}.kp-shell__user-actions{display:flex;gap:6px;flex-wrap:wrap}.kp-shell__user .kp-btn{padding:5px 10px;background:transparent;border-color:#334155;color:#e2e8f0}.kp-shell__user .kp-btn:hover{background:#1e293b;border-color:#475569}.kp-shell__main{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-width:0;min-height:0;overflow-x:hidden}.kp-shell__topbar{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px;padding:6px 20px;background:var(--kp-bg-elevated);border-bottom:1px solid var(--kp-border);position:sticky;top:0;z-index:20}.kp-shell__topbar-title{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--kp-text-muted);font-weight:600;line-height:1.2}.kp-shell__topbar--calendar{justify-content:space-between;min-height:44px;padding-top:6px;padding-bottom:6px}.kp-shell__content{flex:1 1 auto;display:flex;flex-direction:column;align-items:stretch;width:100%;min-width:0;min-height:0;padding:18px 20px;box-sizing:border-box;background:var(--kp-bg)}.kp-shell--viewport-fill .kp-shell__main{overflow-y:hidden}.kp-shell--viewport-fill .kp-shell__content{overflow:hidden}.kp-shell__content>*{width:100%;max-width:none;box-sizing:border-box}.kp-shell:not(.kp-shell--calendar) .kp-shell__content>*{flex:1 1 auto;min-height:0}.kp-shell__topbar-start{display:flex;align-items:center;gap:8px;min-width:0}.kp-shell__menu-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--kp-border);border-radius:8px;background:var(--kp-bg-elevated);color:var(--kp-text);cursor:pointer;flex-shrink:0}.kp-shell__menu-btn:hover{background:var(--kp-bg-muted, #f1f5f9)}.kp-shell--nav-open .kp-shell__menu-btn{border-color:var(--kp-primary);background:#2563eb14}.kp-shell__menu-icon{display:block;width:16px;height:2px;background:currentColor;border-radius:1px;box-shadow:0 -5px 0 currentColor,0 5px 0 currentColor}.kp-shell__backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;border:none;padding:0;margin:0;background:#0f172a73;cursor:pointer}.kp-shell--calendar .kp-shell__content{padding-top:16px;padding-bottom:16px;overflow:hidden}.kp-shell--calendar .kp-shell__content>*{flex:1 1 auto;min-height:0}@media (max-width: 900px){.kp-shell__topbar{min-height:40px;padding:5px 14px}.kp-shell__content{padding:16px}}.kp-table-sort{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:none;font:inherit;font-size:11px;text-transform:none;letter-spacing:normal;color:var(--kp-text-muted);cursor:pointer}.kp-table-sort:hover{color:var(--kp-primary-strong)}.kp-table-sort--active{color:var(--kp-primary-strong);font-weight:700}.kp-table-sort__icon{font-size:10px;opacity:.85}.kp-pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 0 4px}.kp-pagination__info{font-size:13px;color:#64748b;min-width:160px;text-align:center}.kp-pagination__btn{min-width:92px}.kp-audit{display:flex;flex-direction:column;gap:14px;width:100%;flex:1 1 auto;min-height:0;height:100%;max-height:100%;overflow:hidden}.kp-audit__header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;flex-shrink:0}.kp-audit__header h1{margin:0 0 4px;font-size:22px}.kp-audit__header p{margin:0;color:var(--kp-text-muted);font-size:13px;line-height:1.45}.kp-audit__header-actions{display:flex;gap:8px}.kp-audit__filters{display:flex;flex-direction:column;gap:10px;padding:14px;flex-shrink:0}.kp-audit__filters-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.kp-audit__filters-row--actions{display:flex;flex-wrap:wrap;gap:6px}.kp-audit__field{display:flex;flex-direction:column;gap:4px;font-size:13px}.kp-audit__field>span{font-size:11.5px;color:var(--kp-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.3px}.kp-audit__field--wide{grid-column:1 / -1}.kp-audit__table-wrap{padding:0;flex:1 1 auto;min-height:240px;display:flex;flex-direction:column;overflow:hidden;width:100%}.kp-audit__table-wrap>.kp-loading,.kp-audit__table-wrap>.kp-empty{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:120px}.kp-audit__table-scroll{flex:1 1 auto;min-height:200px;overflow:auto}.kp-audit__error{flex-shrink:0}.kp-audit__table-scroll .kp-audit__table{min-width:720px}.kp-audit__table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--kp-font-data-size, 13px)}.kp-audit__table th,.kp-audit__table td{padding:8px 12px;text-align:left}.kp-audit__table thead th{position:sticky;top:0;z-index:1;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--kp-text-muted);box-shadow:0 1px 0 var(--kp-border)}.kp-audit__cell-date{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:inherit}.kp-audit__mono{font-family:inherit;font-variant-numeric:tabular-nums;font-size:12px;color:var(--kp-text-muted)}.kp-audit__badge{display:inline-flex;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap}.kp-audit__badge--create{background:#ecfdf5;color:#065f46}.kp-audit__badge--update{background:#eff6ff;color:#1d4ed8}.kp-audit__badge--delete{background:#fef2f2;color:#b91c1c}.kp-audit__badge--system{background:#fdf4ff;color:#86198f}.kp-audit__badge--neutral{background:#f3f4f6;color:#374151}.kp-audit__pagination{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-top:1px solid var(--kp-border);background:#fafbff;flex-shrink:0}.kp-audit__pagination-buttons{display:flex;gap:6px}.kp-audit-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;justify-content:flex-end;z-index:1000}.kp-audit-drawer{width:min(720px,95vw);background:#fff;box-shadow:-16px 0 40px #0f172a40;display:flex;flex-direction:column;height:100%;animation:kp-audit-slide .18s ease-out}@keyframes kp-audit-slide{0%{transform:translate(20px);opacity:.6}to{transform:translate(0);opacity:1}}.kp-audit-drawer__header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--kp-border);background:#f8fafc}.kp-audit-drawer__meta{display:flex;gap:6px;margin-top:6px;color:var(--kp-text-muted);font-size:12px;align-items:center}.kp-audit-drawer__close{background:transparent;border:0;font-size:18px;cursor:pointer;width:30px;height:30px;border-radius:6px;color:var(--kp-text-muted)}.kp-audit-drawer__close:hover{background:var(--kp-border);color:var(--kp-text)}.kp-audit-drawer__sub{padding:10px 20px;font-size:13px;border-bottom:1px solid var(--kp-border);background:#fff;display:flex;flex-direction:column;gap:4px}.kp-audit-drawer__body{padding:16px 20px;overflow-y:auto;flex:1}.kp-audit-drawer__diff{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 720px){.kp-audit-drawer__diff{grid-template-columns:1fr}}.kp-audit__json{display:flex;flex-direction:column;border:1px solid var(--kp-border);border-radius:10px;overflow:hidden;background:#fafbff}.kp-audit__json header{padding:6px 10px;background:#eef2ff;font-size:11.5px;color:#374151;font-weight:600}.kp-audit__json pre{margin:0;padding:10px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-x:auto;max-height:60vh;background:#fff}.kp-audit__json-empty{padding:10px;color:var(--kp-text-muted);font-size:13px}@media (max-width: 600px){.kp-audit__filters-row{grid-template-columns:1fr}}.kp-cohort-filter{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr)) auto;gap:8px;align-items:center}.kp-cohort-filter__error{grid-column:1 / -1;font-size:12px;color:var(--kp-danger, #c0392b)}@media (max-width: 720px){.kp-cohort-filter{grid-template-columns:1fr 1fr}.kp-cohort-filter button{grid-column:1 / -1}}.kp-autoplan{display:flex;flex-direction:column;gap:16px;width:100%;flex:1 1 auto}.kp-autoplan__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.kp-autoplan__header h1{margin:0;font-size:22px;color:#0f172a}.kp-autoplan__header p{margin:4px 0 0;font-size:13px;color:#475569;max-width:720px}.kp-autoplan__steps{display:flex;gap:8px}.kp-autoplan__step{border:1px solid #cbd5f5;background:#fff;color:#475569;border-radius:999px;padding:6px 14px;font-size:13px;cursor:pointer;font-weight:600}.kp-autoplan__step:disabled{opacity:.55;cursor:not-allowed}.kp-autoplan__step.is-active{background:#2563eb;color:#fff;border-color:#2563eb}.kp-autoplan__configure{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,2fr);gap:16px}@media (max-width: 960px){.kp-autoplan__configure{grid-template-columns:1fr}}.kp-autoplan__students{display:flex;flex-direction:column;gap:10px;max-height:70vh}.kp-autoplan__students-head{display:flex;align-items:center;justify-content:space-between}.kp-autoplan__students-head h3{margin:0;font-size:14px;color:#0f172a}.kp-autoplan__pill{background:#2563eb;color:#fff;border-radius:999px;padding:3px 12px;font-size:12px;font-weight:600}.kp-autoplan__cohort{margin-bottom:4px}.kp-autoplan__students-actions{display:flex;gap:8px}.kp-autoplan__student-list{flex:1;overflow-y:auto;border:1px solid #e2e8f0;border-radius:8px;padding:6px;background:#fff}.kp-autoplan__student-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px}.kp-autoplan__student-item:hover{background:#f1f5f9}.kp-autoplan__student-name{font-weight:500;color:#0f172a}.kp-autoplan__student-phone{margin-left:auto;color:#64748b;font-size:12px}.kp-autoplan__params h3{margin:0 0 12px;font-size:14px;color:#0f172a}.kp-autoplan__branch-field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:12px;color:#475569;font-weight:600}.kp-autoplan__form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media (max-width: 720px){.kp-autoplan__form-grid{grid-template-columns:1fr}}.kp-autoplan__form-grid label{display:flex;flex-direction:column;font-size:12px;color:#475569;font-weight:600;gap:4px}.kp-autoplan__weekdays{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px;font-size:13px;color:#475569}.kp-autoplan__weekday{border:1px solid #cbd5f5;background:#fff;color:#0f172a;padding:4px 10px;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600}.kp-autoplan__weekday.is-active{background:#fee2e2;border-color:#fca5a5;color:#b91c1c}.kp-autoplan__actions{display:flex;justify-content:flex-end;margin-top:12px}.kp-autoplan__preview{display:flex;flex-direction:column;gap:16px}.kp-autoplan__summary-row{display:flex;flex-wrap:wrap;gap:10px}.kp-autoplan__badge{border-radius:10px;padding:8px 14px;background:#f1f5f9;display:flex;flex-direction:column;min-width:110px}.kp-autoplan__badge-label{font-size:11px;text-transform:uppercase;color:#64748b;font-weight:600}.kp-autoplan__badge-value{font-size:18px;font-weight:700;color:#0f172a}.kp-autoplan__badge--info{background:#dbeafe}.kp-autoplan__badge--ok{background:#dcfce7}.kp-autoplan__badge--warn{background:#fef3c7}.kp-autoplan__preview-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:#64748b;margin-top:8px}.kp-autoplan__planned{display:flex;flex-direction:column;gap:14px}.kp-autoplan__student-block{border:1px solid #e2e8f0;border-radius:8px;background:#fff;overflow:hidden}.kp-autoplan__student-block-head{display:flex;justify-content:space-between;padding:8px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:13px}.kp-autoplan__table{width:100%;border-collapse:collapse;font-size:13px}.kp-autoplan__table th,.kp-autoplan__table td{text-align:left;padding:6px 14px;border-bottom:1px solid #f1f5f9}.kp-autoplan__table th{background:#f8fafc;color:#475569;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.kp-autoplan__table td.mono{font-family:inherit;font-variant-numeric:tabular-nums;font-size:var(--kp-font-data-size, 13px)}.kp-autoplan__commit-bar{display:flex;justify-content:flex-end;gap:10px}.kp-autoplan__history{display:flex;flex-direction:column;gap:16px}.kp-autoplan__history-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.kp-autoplan__history-head h3{margin:0;font-size:14px;color:#0f172a}.kp-autoplan__row-actions{display:flex;gap:6px}.kp-autoplan__status{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.kp-autoplan__status--preview{background:#fef3c7;color:#92400e}.kp-autoplan__status--committed{background:#dcfce7;color:#166534}.kp-autoplan__status--reverted{background:#e0e7ff;color:#3730a3}.kp-autoplan__status--failed{background:#fee2e2;color:#b91c1c}.kp-autoplan__lesson-list{margin:0;padding:8px 14px 12px;list-style:none;display:grid;grid-template-columns:1fr;gap:4px}.kp-autoplan__lesson-list li{display:grid;grid-template-columns:100px 160px 1fr 100px;gap:12px;font-size:13px;border-bottom:1px dashed #e2e8f0;padding:4px 0}@media (max-width: 720px){.kp-autoplan__lesson-list li{grid-template-columns:1fr}}.kp-success{background:#ecfdf5;border:1px solid #bbf7d0;color:#065f46;padding:10px 14px;border-radius:8px;font-size:13px}.kp-branches{display:flex;flex-direction:column;gap:14px;width:100%;flex:1 1 auto}.kp-branches__header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.kp-branches__header h1{margin:0 0 4px;font-size:22px}.kp-branches__header p{margin:0;color:var(--kp-text-muted);font-size:13px}.kp-branches__header-actions{display:flex;gap:8px;flex-wrap:wrap}.kp-branches__toolbar{display:grid;grid-template-columns:200px;gap:10px;padding:12px 14px}.kp-branches__table-wrap{padding:0;overflow-x:auto}.kp-branches__table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}.kp-branches__table th,.kp-branches__table td{padding:8px 12px;text-align:left}.kp-branches__table thead th{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--kp-text-muted)}.kp-branches__row--passive td{opacity:.65}.kp-branches__stats{display:flex;flex-wrap:wrap;gap:10px;color:var(--kp-text-muted);font-size:12px}.kp-branches__stats strong{color:var(--kp-text);font-weight:700;margin-right:4px}.kp-branches__stat-link{color:inherit;text-decoration:none}.kp-branches__stat-link:hover{color:var(--kp-primary, #2563eb);text-decoration:underline}.kp-branches__stat-link strong{color:var(--kp-primary, #2563eb)}.kp-branches__stat--empty{opacity:.55}.kp-branches__cell-text{display:block;max-width:280px;white-space:normal;line-height:1.35}.kp-muted{color:var(--kp-text-muted);font-size:12px}.kp-branches__badge{display:inline-flex;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600}.kp-branches__badge--active{background:#ecfdf5;color:#065f46}.kp-branches__badge--passive{background:#fef2f2;color:#991b1b}.kp-branches__actions{display:flex;gap:6px;flex-wrap:wrap}.kp-branch-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.kp-branch-modal{background:#fff;border-radius:14px;width:min(560px,100%);max-height:92vh;display:flex;flex-direction:column;box-shadow:0 24px 60px #0f172a40;overflow:hidden}.kp-branch-modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--kp-border);background:#f8fafc}.kp-branch-modal__header h3{margin:0;font-size:17px}.kp-branch-modal__close{background:transparent;border:0;font-size:18px;cursor:pointer;color:var(--kp-text-muted);width:28px;height:28px;border-radius:6px}.kp-branch-modal__close:hover{background:var(--kp-border);color:var(--kp-text)}.kp-branch-modal__body{padding:16px 20px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.kp-branch-modal__row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.kp-branch-field{display:flex;flex-direction:column;gap:4px;font-size:13px}.kp-branch-field>span{color:var(--kp-text-muted);font-weight:600;font-size:12px}.kp-branch-field>span em{color:var(--kp-danger);font-style:normal}.kp-branch-field input,.kp-branch-field textarea{border:1px solid var(--kp-border);border-radius:8px;padding:8px 10px;font-size:13.5px;font-family:inherit;resize:vertical}.kp-branch-field input:focus,.kp-branch-field textarea:focus{outline:none;border-color:var(--kp-primary);box-shadow:0 0 0 3px #2563eb1f}.kp-branch-modal__error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:10px 12px;border-radius:8px;font-size:13px}.kp-branch-modal__actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}@media (max-width: 600px){.kp-branch-modal__row{grid-template-columns:1fr}}.kp-schedule-export{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.kp-schedule-export__btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid #0f766e;border-radius:8px;background:#fff;color:#0f766e;font-size:13px;font-weight:600;line-height:1.2;white-space:nowrap;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.kp-schedule-export__btn:hover:not(:disabled){background:#f0fdfa;border-color:#0d9488;color:#0d9488}.kp-schedule-export__btn:disabled{opacity:.65;cursor:wait}.kp-schedule-export__icon{flex-shrink:0}.kp-schedule-export__err{font-size:12px;color:#b91c1c;max-width:220px}.kp-cal-ref-crumb{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--kp-text-muted);margin-bottom:4px}.kp-cal-ref-crumb a{color:var(--kp-primary);text-decoration:none;font-weight:600}.kp-cal-ref-crumb a:hover{text-decoration:underline}.kp-cal-ref-crumb__sep{opacity:.5}.kp-cal-ref-crumb__current{color:var(--kp-text);font-weight:600}.kp-cal-ref-build-id{margin-left:auto;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:#dcfce7;color:#166534;border:1px solid #86efac}.kp-cal-ref-head{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px 12px;margin-bottom:8px}.kp-cal-ref-head__actions{justify-self:center;display:flex;flex-direction:column;align-items:center;gap:6px}.kp-cal-ref-settings-btn{border:1px solid #93c5fd;background:#eff6ff;color:#1d4ed8;padding:5px 12px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.kp-cal-ref-settings-btn:hover{background:#dbeafe}.kp-cal-ref-head__title{margin:0;font-size:18px;font-weight:800;letter-spacing:-.02em;color:var(--kp-text);justify-self:start}.kp-cal-ref-head__views{justify-self:center;display:inline-flex;border:1px solid #cbd5e1;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 1px 2px #0f172a0f}.kp-cal-ref-head__view{border:none;background:transparent;padding:6px 16px;font-size:13px;font-weight:600;cursor:pointer;color:#64748b}.kp-cal-ref-head__view--alt{padding-left:14px;padding-right:14px;font-size:13px}.kp-cal-ref-head__view.is-active{background:#2563eb;color:#fff}.kp-cal-ref-head__nav{justify-self:end;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}.kp-cal-ref-nav-btn{border:1px solid #cbd5e1;background:#fff;border-radius:8px;padding:10px 14px;min-height:40px;font-size:14px;font-weight:600;color:var(--kp-text);cursor:pointer}.kp-cal-ref-nav-btn:hover{border-color:#94a3b8;background:#f8fafc}.kp-cal-ref-nav-btn--today{background:#f1f5f9;font-weight:700}.kp-cal-ref-date input{padding:6px 10px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px;font-weight:600;min-width:132px;min-height:34px;box-sizing:border-box}.kp-cal-ref-date input[type=date]::-webkit-inner-spin-button,.kp-cal-ref-date input[type=date]::-webkit-calendar-picker-indicator{opacity:.85;cursor:pointer;padding:4px;margin-left:4px;transform:scale(1.15);transform-origin:center}.kp-cal-ref-banner{display:flex;align-items:center;justify-content:center;gap:14px;padding:14px 20px;margin-bottom:12px;border-radius:8px;background:linear-gradient(90deg,#1e3a8a,#2563eb,#3b82f6);color:#fff}.kp-cal-ref-banner--today{box-shadow:0 4px 16px #2563eb59}.kp-cal-ref-banner--sub{background:linear-gradient(90deg,#1e40af,#2563eb);justify-content:space-between;flex-wrap:wrap}.kp-cal-ref-banner__text{font-size:14px;font-weight:700;letter-spacing:.02em}.kp-cal-ref-banner__badge{font-size:11px;font-weight:900;letter-spacing:.14em;padding:4px 12px;border-radius:999px;background:#ffffff38;border:1px solid rgba(255,255,255,.4)}.kp-cal-ref-banner__hint{font-size:12px;font-weight:600;opacity:.9}.kp-cal-ref-banner__cta{border:1px solid rgba(255,255,255,.5);background:#ffffff26;color:#fff;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:700;cursor:pointer}.kp-cal-ref-banner__cta:hover{background:#ffffff47}@media (max-width: 900px){.kp-cal-ref-head{grid-template-columns:1fr;justify-items:stretch}.kp-cal-ref-head__views{justify-self:center}.kp-cal-ref-head__nav{justify-self:stretch;justify-content:center}}.report-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.report-modal{width:min(720px,100%);max-height:92vh;display:flex;flex-direction:column;background:#fff;border-radius:14px;box-shadow:0 24px 48px #0f172a33;overflow:hidden}.report-modal__header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 20px;border-bottom:1px solid #e2e8f0;gap:16px}.report-modal__header h3{margin:0 0 4px;font-size:18px;font-weight:700;color:#0f172a}.report-modal__sub{font-size:13px;color:#475569;display:flex;flex-wrap:wrap;gap:6px}.report-modal__sub .mono{font-family:ui-monospace,monospace}.report-modal__close{border:0;background:#f1f5f9;color:#475569;width:32px;height:32px;border-radius:8px;font-size:18px;cursor:pointer}.report-modal__close:hover{background:#e2e8f0}.report-modal__body{padding:14px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--rp-gap, 14px)}.report-modal__loading,.report-modal__hint{background:#f1f5f9;border-radius:8px;padding:10px 12px;font-size:13px;color:#334155}.report-modal__hint{background:#fef3c7;color:#92400e}.report-modal__attendance{display:flex;gap:16px;font-size:14px;color:#1e293b}.report-modal__row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.report-modal__row label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#334155}.report-modal__delta{padding-bottom:6px}.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600}.report-modal__label{display:block;font-size:13px;font-weight:600;color:#0f172a;margin-bottom:4px}.report-modal__topics{display:flex;flex-direction:column;gap:8px}.report-modal__topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px 12px}.report-modal__topic{display:flex;align-items:center;gap:6px;font-size:13px;color:#334155}.report-modal__score{display:flex;flex-direction:column;gap:6px}.report-modal__star-row{display:flex;gap:4px;align-items:center}.report-modal__star{border:0;background:transparent;font-size:24px;cursor:pointer;color:#cbd5e1;padding:0 1px;line-height:1;min-width:28px;min-height:28px}.report-modal--v2 .report-modal__rating-row .report-modal__star{font-size:18px;min-width:20px;min-height:20px;padding:0}.report-modal__star.is-on{color:#f59e0b}.report-modal__score-text{margin-left:8px;font-size:13px;color:#475569}.report-modal__error{background:#fef2f2;color:#991b1b;padding:10px 12px;border-radius:8px;font-size:13px}.report-modal__success{background:#ecfdf5;color:#065f46;padding:10px 12px;border-radius:8px;font-size:13px}.report-modal__footer{padding:12px 20px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:8px;background:#f8fafc}.report-modal--v2{--rp-modal-w: 760px;--rp-title: 17px;--rp-text: 13px;--rp-text-sm: 12px;--rp-icon: 44px;--rp-gap: 14px;width:min(var(--rp-modal-w),100%)}.report-modal__req{color:#dc2626;font-weight:700}.report-modal__section{display:flex;flex-direction:column;gap:10px}.report-modal--v2 .report-modal__section{gap:8px}.report-modal__section-title{margin:0;font-size:var(--rp-text);font-weight:600;color:#0f172a}.report-modal__section-hint{margin:0;font-size:12px;color:#64748b}.report-modal__section--ratings{gap:8px}.report-modal__lesson-avg-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;margin-top:4px;padding:12px 16px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;position:static;width:100%;box-sizing:border-box}.report-modal__lesson-avg-caption-label{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#1d4ed8;line-height:1.2}.report-modal__lesson-avg-caption-value{font-size:28px;font-weight:800;line-height:1;color:#1e3a8a;font-variant-numeric:tabular-nums}.report-modal__lesson-avg-stars.lr-stars{flex-direction:column;align-items:center;gap:0}.report-modal__lesson-avg-stars .lr-stars__row{display:flex;gap:4px;line-height:1}.report-modal--v2 .report-modal__lesson-avg-stars .lr-stars__star{font-size:32px;line-height:1;min-width:auto;min-height:auto}.report-modal--v2 .report-modal__lesson-avg-stars .lr-stars__star.is-on{color:#f59e0b;text-shadow:0 1px 2px rgba(245,158,11,.35)}.report-modal__maneuver-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.report-modal__maneuver{display:flex;flex-direction:column;gap:4px;font-size:12px}.report-modal__maneuver-label{color:#334155;line-height:1.3}.report-modal__maneuver-input{max-width:72px}.report-modal__rating-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px;border:1px solid #e2e8f0;border-radius:12px;background:#f1f5f9}.report-modal--v2 .report-modal__rating-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:8px}.report-modal__rating-list::-webkit-scrollbar{width:10px}.report-modal__rating-list::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:6px;border:2px solid #e2e8f0}.report-modal__rating-row{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:6px 8px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;min-height:0;box-shadow:0 1px 2px #0f172a0a}.report-modal__rating-label{font-size:12px;font-weight:600;line-height:1.25;color:#0f172a;margin:0}.report-modal__rating-row .report-modal__star-row{display:flex;gap:0;flex-wrap:nowrap;justify-content:flex-start}.report-modal__exam-ready{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#0f172a}.report-modal--v2 .report-modal__header{position:sticky;top:0;z-index:10;background:#fff;padding:14px 18px 12px;box-shadow:0 1px #e2e8f0}.report-modal--v2 .report-modal__header h3{font-size:var(--rp-title);letter-spacing:-.02em}.report-modal--v2 .report-modal__sub{font-size:var(--rp-text-sm);color:#64748b}.report-modal__attendance-card{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.report-modal__attendance-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:10px;border:1px solid #e2e8f0}.report-modal__attendance-text{flex:0 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.report-modal__attendance-text strong{font-size:var(--rp-text);font-weight:600;color:#0f172a}.report-modal__attendance-text span{font-size:13px;color:#64748b}.report-modal__attendance-actions{display:flex;flex-wrap:nowrap;gap:8px;flex-shrink:0}.report-modal__detail-reports-link{margin-left:auto;flex-shrink:0;align-self:center;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#2563eb;text-decoration:none;white-space:nowrap;line-height:1.2;padding:0;border:0;background:transparent}.report-modal__detail-reports-link:hover{color:#1d4ed8;text-decoration:underline;text-underline-offset:3px}.report-modal__attendance-pill{border:1px solid #cbd5e1;background:#fff;color:#475569;font-size:12px;font-weight:600;padding:7px 12px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease}.report-modal__attendance-pill:hover{border-color:#94a3b8}.report-modal__attendance-pill.is-on--yes{background:#22c55e;border-color:#16a34a;color:#fff}.report-modal__attendance-pill.is-on--no{background:#fef2f2;border-color:#f87171;color:#b91c1c}.report-modal__section--maneuvers{margin-top:0}.report-modal__maneuver-list{list-style:none;margin:0;padding:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.report-modal__maneuver-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;column-gap:8px;row-gap:0;padding:8px 10px;background:#fff;border:1px solid #e8eef4;border-radius:8px;min-width:0}.report-modal__maneuver-main{display:contents}.report-modal__maneuver-row .report-modal__maneuver-label{font-size:var(--rp-text);font-weight:600;color:#0f172a;line-height:1.3;min-width:0;padding-right:2px}.report-modal__maneuver-row .maneuver-stepper{justify-self:end;flex-shrink:0}.report-maneuver-icon{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;overflow:hidden;flex-shrink:0;background:#f1f5f9;border:1px solid #e2e8f0}.report-maneuver-icon img{width:44px;height:44px;object-fit:contain;display:block}.report-modal__footer--v2{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 18px 14px;background:#fff}.report-modal__btn-cancel,.report-modal__btn-save{min-height:40px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .15s ease,border-color .15s ease,opacity .15s ease}.report-modal__btn-cancel{border:2px solid #ef4444;background:#fff;color:#dc2626}.report-modal__btn-cancel:hover:not(:disabled){background:#fef2f2}.report-modal__btn-save{border:none;background:#2563eb;color:#fff;box-shadow:0 2px 8px #2563eb59}.report-modal__btn-save:hover:not(:disabled){background:#1d4ed8}.report-modal__btn-cancel:disabled,.report-modal__btn-save:disabled{opacity:.55;cursor:not-allowed}.report-modal__btn-save-icon{display:inline-flex;align-items:center}@media (max-width: 900px){.report-modal__rating-list,.report-modal--v2 .report-modal__rating-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 900px){.report-modal__maneuver-list{grid-template-columns:1fr}}@media (max-width: 720px){.report-modal__maneuver-list,.report-modal__rating-list{grid-template-columns:1fr}}@media (max-width: 560px){.report-modal__attendance-card{flex-wrap:wrap;align-items:flex-start}.report-modal__attendance-actions{order:3;width:100%;justify-content:stretch}.report-modal__detail-reports-link{order:2;margin-left:auto;align-self:flex-start}.report-modal__attendance-pill{flex:1;text-align:center}.report-modal__maneuver-row{grid-template-columns:36px 1fr;grid-template-rows:auto auto;row-gap:10px}.report-modal__maneuver-row .report-maneuver-icon{grid-row:1;grid-column:1;align-self:center}.report-modal__maneuver-row .report-modal__maneuver-label{grid-column:2;grid-row:1}.report-modal__maneuver-row .maneuver-stepper{grid-column:1 / -1;grid-row:2;justify-self:end}}.schedule-settings-modal{width:min(920px,100%);max-height:min(92vh,100%)}.schedule-settings-modal form{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}.schedule-settings-modal__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:20px;padding:16px 20px 20px;flex:1 1 auto;min-height:0;overflow:auto}@media (max-width: 768px){.schedule-settings-modal__body{grid-template-columns:1fr}}.schedule-settings-form{display:flex;flex-direction:column;gap:12px}.schedule-settings-form__row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.schedule-settings-form__row--3{grid-template-columns:1fr 1fr 1fr}.schedule-settings-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:#475569}.schedule-settings-form input,.schedule-settings-form select{font-size:14px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px}.schedule-settings-form input:read-only{background:#f8fafc;color:#64748b}.schedule-settings-effective{display:flex;flex-direction:column;gap:8px}.schedule-settings-effective__shortcut{align-self:flex-start;font-size:12px;padding:6px 12px}.schedule-settings-effective__hint{margin:0;font-size:12px;color:#475569;line-height:1.4}.schedule-settings-impact{padding:10px 12px;border-radius:8px;font-size:13px;line-height:1.45}.schedule-settings-impact--warn{background:#fffbeb;border:1px solid #fcd34d;color:#92400e}.schedule-settings-impact--ok{background:#f0fdf4;border:1px solid #86efac;color:#166534}.schedule-settings-preview{border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:12px;display:flex;flex-direction:column;gap:10px;min-height:200px}.schedule-settings-preview h4{margin:0;font-size:13px;font-weight:700;color:#0f172a}.schedule-settings-preview__meta{font-size:12px;color:#475569}.schedule-settings-preview__meta strong{color:#0f172a}.schedule-settings-preview__warn{font-size:12px;color:#b45309;font-weight:600}.schedule-settings-preview__slots{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:280px;overflow-y:auto}.schedule-settings-preview__slots li{display:flex;align-items:center;gap:8px;font-size:13px;padding:6px 8px;background:#fff;border:1px solid #e2e8f0;border-radius:6px}.schedule-settings-preview__slots-item--lesson{background:#fff}.schedule-settings-preview__slots-item--free{background:#fef2f2;border-color:#fecaca;font-weight:700;color:#b91c1c}.schedule-settings-preview__slots-item--lunch{background:#fffbeb;border-color:#fcd34d;font-weight:600;color:#92400e}.schedule-settings-preview__label{font-size:11px;text-transform:uppercase;letter-spacing:.3px;min-width:5.5rem;flex-shrink:0}.schedule-settings-preview__slots .idx{font-weight:700;color:#64748b;min-width:1.5rem}.schedule-settings-modal__footer{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:12px 20px 16px;border-top:1px solid #e2e8f0;flex-shrink:0;background:#fff;box-shadow:0 -4px 12px #0f172a0f}.schedule-settings-modal__footer .kp-btn--primary{min-width:7rem;font-weight:600}.schedule-settings-modal__error{margin:0 20px;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:8px;font-size:13px}.kp-cal{display:flex;flex-direction:column;gap:14px}.kp-cal__grid{display:grid;background:var(--kp-bg-elevated);border:1px solid var(--kp-border);border-radius:var(--kp-radius);overflow:hidden;box-shadow:var(--kp-shadow)}.kp-cal__corner{background:#fafbff;border-right:1px solid var(--kp-border);border-bottom:1px solid var(--kp-border)}.kp-cal__day-head{padding:10px 8px;display:flex;flex-direction:column;align-items:center;gap:2px;background:#fafbff;border-bottom:1px solid var(--kp-border);border-right:1px solid var(--kp-border)}.kp-cal__day-head:last-child{border-right:none}.kp-cal__day-head--today{background:var(--kp-primary-soft)}.kp-cal__day-name{font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:var(--kp-text-muted)}.kp-cal__day-head--today .kp-cal__day-name{color:var(--kp-primary-strong)}.kp-cal__day-date{font-weight:600;font-size:14px;color:var(--kp-text)}.kp-cal__row{display:contents}.kp-cal__time{padding:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fafbff;border-right:1px solid var(--kp-border);border-bottom:1px solid var(--kp-border);font-size:12px;color:var(--kp-text-muted)}.kp-cal__time strong{font-size:13px;color:var(--kp-text)}.kp-cal__cell{position:relative;background:#fff;border:none;border-right:1px solid var(--kp-border);border-bottom:1px solid var(--kp-border);min-height:56px;padding:6px;display:flex;flex-wrap:wrap;gap:4px;align-content:flex-start;justify-content:flex-start;cursor:pointer;transition:background .12s ease;text-align:left;color:inherit}.kp-cal__cell:last-child{border-right:none}.kp-cal__cell--available:hover{background:var(--kp-primary-soft)}.kp-cal__cell--occupied{background:#fafbff}.kp-cal__cell--occupied:hover{background:#f1f4fb}.kp-cal__cell--selected{outline:2px solid var(--kp-primary);outline-offset:-2px;z-index:1}.kp-cal__cell--drag-over{background:var(--kp-primary-soft)!important;outline:2px dashed var(--kp-primary);outline-offset:-2px;z-index:1}.kp-cal__cell--gap{background:#f4f6fb;border-right:1px solid var(--kp-border);border-bottom:1px solid var(--kp-border)}.kp-cal__cell-empty{font-size:11px;color:var(--kp-text-muted);margin:auto;opacity:0;transition:opacity .12s ease}.kp-cal__cell--available:hover .kp-cal__cell-empty{opacity:1}.kp-cal-cell__chip{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.3px;text-transform:capitalize;border:1px solid transparent}.kp-cal-cell__chip--block{width:100%;align-self:stretch;flex-direction:column;align-items:stretch;gap:2px;max-width:100%;min-width:0;border-radius:8px;padding:5px 8px;text-transform:none;letter-spacing:0;white-space:normal;line-height:1.25;text-align:left}.kp-cal-cell__chip__row{display:flex;align-items:flex-start;justify-content:space-between;gap:4px;width:100%;min-width:0}.kp-cal-cell__chip__name{font-weight:700;font-size:11px;min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.kp-cal-cell__chip__sub{font-size:10px;font-weight:500;opacity:.92;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.kp-cal-cell__chip__flag{flex-shrink:0;font-size:12px;font-weight:800;color:var(--kp-danger, #b91c1c);line-height:1.1}.kp-cal-cell__chip--normal{background:var(--kp-lesson-normal-soft);color:var(--kp-lesson-normal-text);border-color:var(--kp-lesson-normal-border)}.kp-cal-cell__chip--special{background:var(--kp-lesson-special-soft);color:var(--kp-lesson-special-text);border-color:var(--kp-lesson-special-border)}.kp-cal-cell__chip--extra{background:var(--kp-lesson-extra-soft);color:var(--kp-lesson-extra-text);border-color:var(--kp-lesson-extra-border)}.kp-cal-cell__chip--conflict{outline:1px dashed var(--kp-danger);outline-offset:1px}.kp-cal-cell__chip--draggable{cursor:grab}.kp-cal-cell__chip--draggable:active{cursor:grabbing}.kp-cal-detail{padding:16px;display:flex;flex-direction:column;gap:12px}.kp-cal-detail__head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}.kp-cal-detail__head-actions{display:flex;gap:8px;flex-wrap:wrap}.kp-cal-detail__head strong{display:block;font-size:15px}.kp-cal-detail__head span{color:var(--kp-text-muted);font-size:13px}.kp-cal-detail__vehicle{display:block;font-size:12px;color:var(--kp-text-muted);margin-top:3px}.kp-cal-detail__empty{margin:0;color:var(--kp-text-muted);font-size:13px}.kp-cal-detail__toolbar-hint{margin:0 0 8px;padding:8px 10px;font-size:12px;line-height:1.4;color:var(--kp-text-muted);background:#2563eb0f;border-radius:var(--kp-radius-sm);border:1px solid rgba(37,99,235,.12)}.kp-cal-detail__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.kp-cal-detail__item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--kp-border);border-radius:var(--kp-radius-sm);background:#fafbff}.kp-cal-detail__meta{display:block;color:var(--kp-text-muted);font-size:12px}.kp-cal-detail__tags{display:flex;flex-wrap:wrap;gap:6px}.kp-cal-detail__tag{padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--kp-success-soft);color:var(--kp-success)}.kp-cal-detail__tag--planned{background:var(--kp-primary-soft);color:var(--kp-primary-strong)}.kp-cal-detail__tag--conflict{background:var(--kp-danger-soft);color:var(--kp-danger)}.kp-cal-detail__history-btn{padding:3px 8px;font-size:11px;border:1px solid var(--kp-border-strong);background:var(--kp-bg-elevated)}.kp-appt-audit{max-width:580px;width:100%}.kp-appt-audit__timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto}.kp-appt-audit__item{display:grid;grid-template-columns:18px 1fr;gap:10px;padding:10px 12px;border:1px solid var(--kp-border);border-radius:var(--kp-radius-sm);background:#fafbff;position:relative}.kp-appt-audit__dot{width:12px;height:12px;border-radius:50%;margin-top:5px;background:var(--kp-primary)}.kp-appt-audit__item--info .kp-appt-audit__dot{background:var(--kp-primary)}.kp-appt-audit__item--success .kp-appt-audit__dot{background:var(--kp-success)}.kp-appt-audit__item--warn .kp-appt-audit__dot{background:var(--kp-warn)}.kp-appt-audit__item--danger .kp-appt-audit__dot{background:var(--kp-danger)}.kp-appt-audit__item--warn{background:var(--kp-warn-soft);border-color:#b4530940}.kp-appt-audit__item--danger{background:var(--kp-danger-soft);border-color:#b91c1c40}.kp-appt-audit__head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.kp-appt-audit__head strong{font-size:13.5px}.kp-appt-audit__head span{color:var(--kp-text-muted);font-size:12px}.kp-appt-audit__actor{color:var(--kp-text-muted);font-size:12px;margin-top:2px}.kp-appt-audit__changes{margin:6px 0 0;padding:0 0 0 18px;font-size:12.5px;color:var(--kp-text)}.kp-appt-audit__changes li{margin:0}.cancel-appt-modal__body{display:flex;flex-direction:column;gap:14px}.cancel-appt-modal__hint{margin:0;font-size:13px;color:#64748b;line-height:1.45}.cancel-appt-modal__field{display:flex;flex-direction:column;gap:6px}.cancel-appt-modal__textarea{resize:vertical;min-height:72px}.cancel-appt-modal__error{padding:10px 12px;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:13px}.cancel-appt-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-top:1px solid #e2e8f0}.cancel-appt-modal__footer-actions{display:flex;justify-content:flex-end;gap:10px;flex-shrink:0}.cancel-appt-modal__delete-btn{border:1px solid #fecaca;background:#fff;color:#b91c1c;font-weight:600}.cancel-appt-modal__delete-btn:hover:not(:disabled){background:#fef2f2;border-color:#f87171}.cancel-appt-modal .kp-btn--danger{background:#dc2626;border-color:#dc2626;color:#fff}.cancel-appt-modal .kp-btn--danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.kp-daily-cal{display:flex;flex-direction:column;gap:0}.kp-daily-cal__table-wrap{overflow:auto;max-width:100%;border-radius:var(--kp-radius)}.kp-daily-cal__table{width:100%;border-collapse:separate;border-spacing:6px;min-width:720px;table-layout:fixed}.kp-daily-cal__th{text-align:center;vertical-align:middle;font-size:11px;font-weight:700;color:var(--kp-text-muted);padding:4px 2px}.kp-daily-cal__table thead tr{position:relative;z-index:1}.kp-daily-cal__th--corner{width:112px;min-width:100px}.kp-daily-cal__th--time{background:#f4f7fd;border-radius:8px;border:1px solid var(--kp-border);padding:6px 4px}.kp-daily-cal__time-range{display:block;color:var(--kp-text);font-size:13px;font-weight:700;line-height:1.25;white-space:nowrap}.kp-daily-cal__th-start,.kp-daily-cal__th-end{display:block;color:var(--kp-text);font-size:12px}.kp-daily-cal__th-sep{display:block;font-size:9px;opacity:.6}.kp-daily-cal__instr{text-align:left;vertical-align:middle;padding:8px 10px;background:#fafbff;border-radius:8px;border:1px solid var(--kp-border);width:140px;min-width:120px}.kp-daily-cal__instr-name{font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--kp-text)}.kp-daily-cal__td{vertical-align:stretch;padding:0;height:1px}.kp-daily-cal__cell{min-height:52px;height:100%;box-sizing:border-box;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6px 4px;border:1px solid transparent}.kp-daily-cal__cell--blocked{background:#eceff5;color:var(--kp-text-muted);border-color:#e2e6ef}.kp-daily-cal__dash{font-size:18px;opacity:.45}.kp-daily-cal__cell--leave{background:linear-gradient(165deg,#64748b,#475569 55%,#334155);border:2px solid #1e293b;box-shadow:inset 0 1px #ffffff1f}.kp-daily-cal__leave{display:block;font-size:13px;font-weight:800;letter-spacing:.05em;line-height:1.25;color:#fde047;text-shadow:0 1px 2px rgba(15,23,42,.55);text-align:center;padding:2px 6px}.kp-daily-cal__cell--rebookable{background:#f8fafc;border:1px solid #e2e8f0;align-items:stretch;justify-content:stretch}.kp-daily-cal__rebookable{display:flex;flex-direction:column;gap:4px;width:100%;min-height:100%}.kp-daily-cal__busy--compact{padding:4px 5px}.kp-daily-cal__busy--compact .kp-daily-cal__busy-name{font-size:11px}.kp-daily-cal__busy--compact .kp-daily-cal__busy-sub{font-size:9px;-webkit-line-clamp:1}.kp-daily-cal__cell--available{background:#ecfdf5;border:2px dashed #22c55e;align-items:stretch;justify-content:stretch}.kp-daily-cal__cell--available .kp-daily-cal__reserve{flex:1 1 auto;width:100%;display:flex;align-items:center;justify-content:center}.kp-daily-cal__reserve{border:none;background:transparent;color:#15803d;font-size:11px;font-weight:800;cursor:pointer;padding:6px 4px;border-radius:6px;line-height:1.25}.kp-daily-cal__reserve:hover{background:#22c55e1f}.kp-daily-cal__reserve--inline{flex:1 1 0;min-width:0;min-height:22px;border:1px dashed #4ade80;background:#ecfdf5;color:#15803d;font-size:10px;font-weight:700;padding:4px 2px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:5px;box-sizing:border-box;opacity:1;filter:none}.kp-daily-cal__cell--occupied{background:transparent;border:none;padding:2px;align-items:stretch;justify-content:stretch}.kp-daily-cal__busy{position:relative;width:100%;border-radius:8px;padding:6px;border:2px solid transparent;box-shadow:none}.kp-daily-cal__complete-mark,.kp-daily-cal__noshow-mark,.kp-daily-cal__eval-mark,.kp-daily-cal__cancel-mark{position:absolute;top:4px;right:4px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;font-size:11px;font-weight:900;line-height:1;box-shadow:0 1px 2px #00000026;z-index:1}.kp-daily-cal__cancel-mark{padding:0;background:#fff;overflow:hidden}.kp-daily-cal__busy-body{position:relative;width:100%;max-width:100%}.kp-daily-cal__busy--cancelled .kp-daily-cal__busy-body{opacity:.68;filter:grayscale(.4) saturate(.75)}.kp-daily-cal__complete-mark{background:#22c55e;color:#fff}.kp-daily-cal__noshow-mark{background:#ef4444;color:#fff;font-size:10px}.kp-daily-cal__eval-mark{background:#facc15;color:#854d0e;font-size:12px}.kp-daily-cal__busy--normal{background:var(--kp-lesson-normal-soft);color:var(--kp-lesson-normal-text);border-color:var(--kp-lesson-normal-border)}.kp-daily-cal__busy--special{background:var(--kp-lesson-special-soft);color:var(--kp-lesson-special-text);border-color:var(--kp-lesson-special-border)}.kp-daily-cal__busy--extra{background:var(--kp-lesson-extra-soft);color:var(--kp-lesson-extra-text);border-color:var(--kp-lesson-extra-border)}.kp-daily-cal__lesson-tag{display:block;font-size:10px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;margin-bottom:5px;line-height:1.2}.kp-daily-cal__busy-name{font-size:12px;font-weight:800;line-height:1.2;letter-spacing:.01em}.kp-daily-cal__busy-sub{font-size:10px;font-weight:600;line-height:1.3;margin-top:2px;opacity:.9;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.kp-daily-cal__busy-meta{display:flex;align-items:center;justify-content:center;gap:4px;font-size:10px;font-weight:600;margin-top:3px;opacity:.95}.kp-daily-cal__busy-meta--plate{margin-top:2px}.kp-daily-cal__busy-icon{font-size:11px;line-height:1}.kp-daily-cal__cell-actions{display:flex;flex-direction:column;gap:3px;width:100%;margin-top:4px}.kp-daily-cal__cell-actions-row{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch;gap:2px;width:100%}.kp-daily-cal__cell-actions-row .kp-daily-cal__mini{flex:1 1 0;min-width:0}.kp-daily-cal__mini{font-size:9px;font-weight:600;padding:3px 2px;min-height:22px;border-radius:4px;border:1px solid rgba(0,0,0,.12);background:#fff;color:var(--kp-text);cursor:pointer;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.kp-daily-cal__mini--wide{width:100%;flex:1 1 100%;white-space:normal}.kp-daily-cal__mini--on-lesson{background:#ffffffe6;border-color:#0000001f;color:var(--kp-text)}.kp-daily-cal__mini--cancel{color:#b91c1c;border-color:#fecaca;background:#fff5f5}.kp-daily-cal__mini--reactivate{color:#166534;border-color:#bbf7d0;background:#f0fdf4}.kp-daily-cal__cell-actions-row--cancelled .kp-daily-cal__mini{flex:1 1 0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.1;padding:3px 1px}.kp-daily-cal__cell-actions-row--cancelled .kp-daily-cal__mini--reactivate{color:#64748b;border-color:#e2e8f0;background:#f8fafc}.kp-daily-cal__cell-actions-row--cancelled .kp-daily-cal__reserve--inline:hover{background:#22c55e26}.kp-daily-cal__mini--report-done{background:#22c55e;border-color:#16a34a;color:#fff}.kp-daily-cal__mini--report-done:hover{background:#16a34a;border-color:#15803d;filter:none}.kp-daily-cal__mini:hover{filter:brightness(.97)}.kp-daily-week-stack{display:flex;flex-direction:column;gap:28px}.kp-daily-week-stack__mixed-note{margin:0 0 4px;padding:10px 14px;border-radius:8px;background:#eff6ff;border:1px solid #93c5fd;color:#1e40af;font-size:13px;font-weight:600}.kp-daily-week-stack__head-main{flex:1 1 auto;min-width:0;text-align:center}.kp-daily-week-stack__head-spacer{flex:0 0 132px;max-width:132px}.kp-daily-week-stack__day{scroll-margin-top:16px}.kp-daily-week-stack__day:not(:first-child){padding-top:4px;border-top:3px solid #cbd5e1}.kp-daily-week-stack__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px;padding:5px 12px;border-radius:6px;background:linear-gradient(90deg,#1e40af,#2563eb);color:#fff;box-shadow:0 1px 6px #2563eb38}.kp-daily-week-stack__day--today .kp-daily-week-stack__head{background:linear-gradient(90deg,#1e3a8a,#2563eb,#3b82f6);box-shadow:0 2px 10px #2563eb4d}.kp-daily-week-stack__title{margin:0;color:#fff}.kp-daily-week-stack__title-line{display:inline;font-size:1.05rem;font-weight:800;letter-spacing:.05em;line-height:1.25;text-transform:uppercase}.kp-daily-week-stack__slots-inline{margin-left:.35em;font-size:.82em;font-weight:600;letter-spacing:.02em;text-transform:none;color:#ffffffe6;white-space:nowrap}.kp-daily-week-stack__template-badge{padding:2px 8px;border-radius:999px;background:#fef3c7;color:#92400e;border:1px solid #fcd34d;font-size:10px;font-weight:800;letter-spacing:.06em;vertical-align:middle}.kp-daily-week-stack__today{margin-left:.5em;padding:1px 7px;border-radius:999px;background:#ffffff38;border:1px solid rgba(255,255,255,.45);color:#fff;font-size:.62em;font-weight:900;letter-spacing:.1em;vertical-align:middle}.kp-daily-week-stack__template-badge{margin-left:.45em}.kp-daily-week-stack__focus{flex:0 0 132px;max-width:132px;padding:0;border:none;background:none;color:#fffffff2;font-size:11px;font-weight:700;line-height:1.2;text-align:right;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.kp-daily-week-stack__focus:hover{color:#fff;text-decoration-thickness:2px}.kp-instr-pills{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:2px 0 4px}.kp-instr-pills__label{flex-shrink:0;font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--kp-text-muted)}.kp-instr-pills__status{font-size:12px;color:var(--kp-text-muted)}.kp-instr-pills__status--error{color:var(--kp-danger)}.kp-instr-pills__row{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-width:0}.kp-instr-pill{display:inline-flex;align-items:center;padding:4px 10px;border:1px solid var(--kp-border);border-radius:999px;background:#fff;color:var(--kp-text);font-size:11px;font-weight:700;line-height:1.2;white-space:nowrap;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.kp-instr-pill:hover:not(.is-selected){border-color:#93c5fd;background:#eff6ff}.kp-instr-pill.is-selected{background:#2563eb;border-color:#2563eb;color:#fff}.kp-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.kp-modal{width:100%;max-width:540px;padding:22px 22px 18px;display:flex;flex-direction:column;gap:14px;max-height:92vh;overflow-y:auto}.kp-modal__head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;border-bottom:1px solid var(--kp-border);padding-bottom:12px}.kp-modal__head strong{display:block;font-size:16px;margin-bottom:2px}.kp-modal__head span{color:var(--kp-text-muted);font-size:13px}.kp-modal__form{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.kp-modal__field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--kp-text-muted)}.kp-modal__field--full{grid-column:1 / -1}.kp-modal__error{grid-column:1 / -1;background:var(--kp-danger-soft);color:var(--kp-danger);padding:9px 12px;border-radius:var(--kp-radius-sm);font-size:13px}.kp-modal__suggestions{grid-column:1 / -1;background:var(--kp-warn-soft);color:#7c4a04;padding:10px 12px;border-radius:var(--kp-radius-sm);font-size:13px}.kp-modal__suggestions strong{display:block;margin-bottom:6px;color:#7c4a04}.kp-modal__suggestions ul{margin:0 0 6px 18px;padding:0}.kp-modal__suggestions li{margin:0}.kp-modal__suggestions small{display:block;color:#7c4a04;opacity:.75}.kp-modal__actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px;margin-top:4px;flex-wrap:wrap}.kp-btn--danger{background:var(--kp-danger);border-color:var(--kp-danger);color:#fff}.kp-btn--danger:hover:not(:disabled){background:#991b1b;border-color:#991b1b}.kp-modal__lesson-select--normal{background:var(--kp-lesson-normal-soft);border-color:var(--kp-lesson-normal-border);color:var(--kp-lesson-normal-text);font-weight:700}.kp-modal__lesson-select--extra{background:var(--kp-lesson-extra-soft);border-color:var(--kp-lesson-extra-border);color:var(--kp-lesson-extra-text);font-weight:700}.kp-modal__lesson-select--special{background:var(--kp-lesson-special-soft);border-color:var(--kp-lesson-special-border);color:var(--kp-lesson-special-text);font-weight:700}@media (max-width: 600px){.kp-modal__form{grid-template-columns:1fr}}.kp-month-cal{display:flex;flex-direction:column;gap:8px;padding:4px 0 8px}.kp-month-cal__weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--kp-text-muted);text-align:center}.kp-month-cal__weekday{padding:4px 2px}.kp-month-cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.kp-month-cal__cell{position:relative;min-height:56px;border-radius:10px;border:1px solid var(--kp-border);background:var(--kp-bg-elevated);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:6px 8px;cursor:pointer;font:inherit;text-align:left;transition:background .12s ease,border-color .12s ease,transform .08s ease}.kp-month-cal__cell:hover:not(:disabled){border-color:var(--kp-primary);transform:translateY(-1px)}.kp-month-cal__cell:disabled{cursor:default;opacity:.45;background:var(--kp-bg-subtle, rgba(0, 0, 0, .02))}.kp-month-cal__cell--muted:not(:disabled){opacity:.55}.kp-month-cal__cell--today{box-shadow:0 0 0 2px var(--kp-primary)}.kp-month-cal__cell--heat1{background:#ecfdf5}.kp-month-cal__cell--heat2{background:#bbf7d0}.kp-month-cal__cell--heat3{background:#4ade80;color:#052e16;font-weight:700}.kp-month-cal__cell--heat3 .kp-month-cal__badge{background:#052e1626;color:#052e16}.kp-month-cal__dom{font-size:15px;font-weight:800;line-height:1.1}.kp-month-cal__badge{margin-top:auto;font-size:11px;font-weight:800;padding:2px 7px;border-radius:999px;background:#2563eb1f;color:var(--kp-primary)}@media (max-width: 520px){.kp-month-cal__cell{min-height:48px;padding:4px 5px}.kp-month-cal__dom{font-size:13px}}.lr-stars{display:inline-flex;align-items:center;gap:6px}.lr-stars--empty{color:#94a3b8}.lr-stars__row{display:inline-flex;gap:1px;line-height:1}.lr-stars__star{font-size:15px;color:#cbd5e1}.lr-stars__star.is-on{color:#f59e0b}.lr-stars__star.is-half{background:linear-gradient(90deg,#f59e0b 50%,#cbd5e1 50%);-webkit-background-clip:text;background-clip:text;color:transparent}.lr-stars__value{font-size:var(--kp-font-data-size, 13px);font-weight:500;color:var(--kp-text-muted);font-variant-numeric:tabular-nums;font-family:inherit}.maneuver-stepper{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.maneuver-stepper__btn{width:34px;height:34px;border:none;border-radius:8px;font-size:20px;font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,transform .1s ease,opacity .15s ease;box-shadow:0 1px 2px #0f172a0f}.maneuver-stepper__btn:active:not(:disabled){transform:scale(.96)}.maneuver-stepper__btn:disabled{opacity:.35;cursor:not-allowed}.maneuver-stepper__btn--minus{background:#fee2e2;color:#b91c1c}.maneuver-stepper__btn--minus:hover:not(:disabled){background:#fecaca}.maneuver-stepper__btn--plus{background:#dcfce7;color:#15803d}.maneuver-stepper__btn--plus:hover:not(:disabled){background:#bbf7d0}.maneuver-stepper__value{min-width:36px;height:34px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box}.kp-calendar-page{display:flex;flex-direction:column;gap:14px;min-height:0;flex:1}.kp-calendar-page--ref{height:100%;gap:0}.kp-calendar-page__sticky{flex-shrink:0;display:flex;flex-direction:column;gap:8px;padding-bottom:8px;background:var(--kp-bg, #f8fafc);border-bottom:1px solid var(--kp-border);box-shadow:0 4px 14px #0f172a0f;z-index:5}.kp-calendar-page__scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-top:12px;padding-bottom:24px}.kp-calendar-page__mode-strip{padding:10px 14px;margin:0;border:1px solid var(--kp-border);border-radius:var(--kp-radius);background:var(--kp-bg-elevated);position:sticky;top:0;z-index:3;box-shadow:0 2px 10px #0f172a0f}.kp-calendar-page__mode-strip-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.kp-calendar-page__mode-hint{margin:0;flex:1;min-width:160px;font-size:12px;line-height:1.35;color:var(--kp-text-muted);text-align:right}@media (max-width: 720px){.kp-calendar-page__mode-hint{text-align:left;flex-basis:100%}}.kp-calendar-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.kp-calendar-page__header-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.kp-calendar-page__toolbar-new{font-size:13px;font-weight:600;padding:7px 14px;white-space:nowrap}@media (max-width: 560px){.kp-calendar-page__header-right{width:100%;align-items:stretch}.kp-calendar-page__toolbar-new{width:100%;text-align:center}.kp-calendar-page__actions{justify-content:flex-end}}.kp-calendar-page__header h1{margin:0 0 4px;font-size:22px}.kp-calendar-page__header p{margin:0;color:var(--kp-text-muted);font-size:13px}.kp-calendar-page__actions{display:flex;gap:6px;flex-wrap:wrap}.kp-calendar-instr--mini{padding:0;overflow:hidden}.kp-calendar-instr--mini>.kp-calendar-instr__summary{display:flex;align-items:center;gap:8px;padding:5px 10px;margin:0;list-style:none;cursor:pointer;font-size:12px;color:var(--kp-text);-webkit-user-select:none;user-select:none}.kp-calendar-instr--mini>.kp-calendar-instr__summary::-webkit-details-marker{display:none}.kp-calendar-instr__summary-label{flex-shrink:0;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--kp-text-muted)}.kp-calendar-instr__summary-value{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kp-calendar-instr__summary-chev{flex-shrink:0;font-size:9px;color:var(--kp-text-muted);transition:transform .15s ease}.kp-calendar-instr--mini[open] .kp-calendar-instr__summary-chev{transform:rotate(-180deg)}.kp-calendar-instr__body{padding:0 8px 6px 10px;border-top:1px solid var(--kp-border);background:var(--kp-bg-subtle, rgba(0, 0, 0, .02))}.kp-calendar-instr__meta{display:inline-block;margin-bottom:6px;font-size:10px;font-weight:600;color:var(--kp-lesson-normal, #2563eb)}.kp-calendar-instr__loading,.kp-calendar-instr__error{margin:0 0 6px;font-size:12px}.kp-calendar-instr__error{color:var(--kp-danger)}.kp-calendar-instr__checks{display:flex;flex-direction:column;gap:6px}.kp-calendar-instr__check{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:500;color:var(--kp-text);cursor:pointer;-webkit-user-select:none;user-select:none}.kp-calendar-instr__check input{width:14px;height:14px;flex-shrink:0;cursor:pointer}.kp-calendar-instr__check--all{padding-bottom:4px;margin-bottom:2px;border-bottom:1px solid var(--kp-border);font-weight:700;font-size:12px}.kp-calendar-instr__check-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kp-calendar-instr__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 10px;max-height:120px;overflow-y:auto;padding:2px 0 4px}.kp-calendar-page__legend{display:flex;flex-wrap:wrap;gap:8px 12px;padding:7px 10px;background:var(--kp-bg-elevated);border:1px solid var(--kp-border);border-radius:var(--kp-radius);font-size:11px;color:var(--kp-text-muted)}.kp-legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}.kp-legend-dot--normal{background:var(--kp-lesson-normal)}.kp-legend-dot--special{background:var(--kp-lesson-special)}.kp-legend-dot--extra{background:var(--kp-lesson-extra)}.kp-legend-dot--conflict{background:var(--kp-danger)}.kp-calendar-page__hint{margin-left:auto;font-style:italic;opacity:.85}.kp-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.kp-calendar-page__month-nav .kp-btn{font-size:12px;padding:6px 10px}.kp-calendar-page__view-toggle{display:inline-flex;flex-shrink:0;border:1px solid var(--kp-border);border-radius:10px;overflow:hidden;background:var(--kp-bg-elevated)}.kp-calendar-page__mode-strip .kp-calendar-page__view-btn{padding:9px 18px;font-size:14px}.kp-calendar-page__view-btn{border:none;background:transparent;padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer;color:var(--kp-text-muted)}.kp-calendar-page__view-btn.is-active{background:var(--kp-primary);color:#fff}.kp-calendar-page__week-range{margin:0;font-size:14px;color:var(--kp-text-muted);font-weight:600}.kp-calendar-page__daily-toolbar{display:flex;flex-direction:column;gap:10px;padding:12px 14px}.kp-calendar-page__daily-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:center}.kp-calendar-page__date-field input{padding:7px 10px;border:1px solid var(--kp-border);border-radius:var(--kp-radius-sm);font-size:14px}.kp-calendar-page__banner{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 14px;border-radius:8px;background:linear-gradient(90deg,#1e40af,#2563eb 55%,#3b82f6);color:#fff;font-weight:700;font-size:14px;letter-spacing:.02em}.kp-calendar-page__banner--today{box-shadow:0 4px 14px #2563eb59}.kp-calendar-page__banner-badge{font-size:11px;font-weight:900;letter-spacing:.12em;padding:4px 10px;border-radius:999px;background:#fff3;border:1px solid rgba(255,255,255,.35)}.kp-calendar-page__to-week{align-self:flex-start}.kp-calendar-page__month-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}.kp-calendar-page__month-title{margin:0;font-size:17px;font-weight:800;color:var(--kp-text)}.kp-calendar-page__month-hint{margin:0;font-size:12px;color:var(--kp-text-muted);flex:1;min-width:200px}.kp-calendar-page__legend--ref{flex-wrap:wrap;gap:6px 12px;align-items:center}.kp-calendar-page__schedule-export{margin-right:8px;padding-right:14px;border-right:1px solid #e2e8f0}.kp-calendar-page__legend-item{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;color:var(--kp-text)}.kp-legend-sq{display:inline-block;width:14px;height:14px;border-radius:4px;flex-shrink:0;border:1px solid rgba(0,0,0,.08)}.kp-calendar-page__legend-item--avail .kp-legend-sq{background:#ecfdf5;border:2px dashed #22c55e}.kp-legend-sq--lesson-normal{background:var(--kp-lesson-normal-soft);border:2px solid var(--kp-lesson-normal-border)}.kp-legend-sq--lesson-extra{background:var(--kp-lesson-extra-soft);border:2px solid var(--kp-lesson-extra-border)}.kp-legend-sq--lesson-special{background:var(--kp-lesson-special-soft);border:2px solid var(--kp-lesson-special-border)}.kp-calendar-page__legend-item--done .kp-legend-sq{background:#22c55e}.kp-calendar-page__legend-item--eval .kp-legend-sq{background:#facc15}.kp-calendar-page__legend-item--leave .kp-legend-sq{background:linear-gradient(165deg,#64748b,#475569);border:2px solid #1e293b;box-shadow:inset 0 1px #ffffff26}.kp-calendar-page__legend-item--noshow .kp-legend-sq{background:#f87171}.kp-calendar-page__legend-item--cancelled .kp-legend-sq{background:#fff;border:1px solid #fecaca;box-shadow:inset 0 6px #ef4444;position:relative;overflow:hidden}.kp-legend-sq--cancelled:after{content:"";position:absolute;left:-2px;right:-2px;top:50%;height:2px;background:#ef4444;transform:rotate(-42deg)}.kp-legend-sq--check:after{content:"✓";display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;color:#fff;height:100%}.kp-legend-sq--warn:after{content:"!";display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;color:#854d0e;height:100%}.kp-legend-sq--x:after{content:"✕";display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;color:#fff;height:100%}.kp-shell--calendar .kp-shell__content{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;padding-top:16px;padding-bottom:16px;max-width:none}.kp-shell--calendar .kp-shell__main{height:100vh;max-height:100vh;overflow:hidden}.kp-shell--calendar .kp-shell__topbar{flex-shrink:0}.kp-calendar-page--ref{--cal-gap: 6px}.kp-calendar-page--ref .kp-calendar-page__sticky{gap:var(--cal-gap);padding-bottom:var(--cal-gap)}.kp-calendar-page--ref .kp-calendar-page__scroll{padding-top:8px;padding-bottom:16px}.kp-calendar-page--ref .kp-cal-ref-crumb{font-size:11px;margin-bottom:2px}.kp-calendar-page--ref .kp-cal-ref-head{gap:6px 8px;margin-bottom:6px}.kp-calendar-page--ref .kp-cal-ref-head__title{font-size:15px;font-weight:700}.kp-calendar-page--ref .kp-cal-ref-head__view{padding:4px 12px;font-size:12px}.kp-calendar-page--ref .kp-cal-ref-nav-btn{padding:4px 9px;min-height:28px;font-size:12px;border-radius:6px}.kp-calendar-page--ref .kp-cal-ref-date input{padding:4px 8px;min-height:28px;min-width:118px;font-size:12px}.kp-calendar-page--ref .kp-cal-ref-banner{gap:8px;padding:6px 12px;margin-bottom:6px}.kp-calendar-page--ref .kp-cal-ref-banner__text{font-size:12px;font-weight:600}.kp-calendar-page--ref .kp-cal-ref-banner__badge{font-size:9px;padding:2px 8px}.kp-calendar-page--ref .kp-instr-pill{padding:3px 8px;font-size:10px}.kp-calendar-page--ref .kp-instr-pills__label{font-size:9px}.kp-calendar-page--ref .kp-calendar-page__legend{padding:5px 8px;gap:4px 8px;font-size:10px}.kp-calendar-page--ref .kp-calendar-page__legend--ref{gap:4px 10px}.kp-calendar-page--ref .kp-calendar-page__legend-item{font-size:10px;gap:4px}.kp-calendar-page--ref .kp-legend-sq{width:12px;height:12px}.kp-calendar-page--ref .kp-calendar-page__schedule-export .kp-btn{font-size:11px;padding:4px 10px}.kp-calendar-page--ref{--cal-instr-w: 118px}.kp-calendar-page--ref .kp-daily-cal{width:100%}.kp-calendar-page--ref .kp-daily-cal__table-wrap{width:100%;max-width:100%;overflow-x:auto;padding:6px 10px;box-sizing:border-box}.kp-calendar-page--ref .kp-daily-cal__table{width:100%;min-width:100%;border-spacing:4px;table-layout:fixed}.kp-calendar-page--ref .kp-daily-cal__col-instr{width:var(--cal-instr-w)}.kp-calendar-page--ref .kp-daily-cal__col-slot{width:auto}.kp-calendar-page--ref .kp-daily-cal__th--corner,.kp-calendar-page--ref .kp-daily-cal__instr{width:var(--cal-instr-w);min-width:var(--cal-instr-w);max-width:var(--cal-instr-w);padding:5px 8px}.kp-calendar-page--ref .kp-daily-cal__td{width:auto;max-width:none;vertical-align:stretch;height:1px}.kp-calendar-page--ref .kp-daily-cal__instr-name{font-size:10px;font-weight:700;letter-spacing:.02em}.kp-calendar-page--ref .kp-daily-cal__th--time{width:auto;min-width:0;max-width:none;padding:4px 3px;border-radius:6px}.kp-calendar-page--ref .kp-daily-cal__time-range{font-size:11px}.kp-calendar-page--ref .kp-daily-cal__th-start,.kp-calendar-page--ref .kp-daily-cal__th-end{font-size:10px}.kp-calendar-page--ref .kp-daily-cal__cell{width:100%;box-sizing:border-box;min-height:52px;height:100%;padding:5px;border-radius:6px}.kp-calendar-page--ref .kp-daily-cal__cell--available{min-height:52px;height:100%;padding:5px;background:#f8fafc;border:1px solid #e2e8f0;align-items:stretch;justify-content:stretch}.kp-calendar-page--ref .kp-daily-cal__cell--blocked{min-height:52px;height:100%}.kp-calendar-page--ref .kp-daily-cal__dash{font-size:14px}.kp-calendar-page--ref .kp-daily-cal__busy{padding:4px 4px 3px;border-radius:6px;border-width:1px}.kp-calendar-page--ref .kp-daily-cal__lesson-tag{font-size:8px;margin-bottom:2px;letter-spacing:.05em}.kp-calendar-page--ref .kp-daily-cal__busy-name{font-size:10px;font-weight:700}.kp-calendar-page--ref .kp-daily-cal__busy-sub{font-size:9px;margin-top:1px;-webkit-line-clamp:1}.kp-calendar-page--ref .kp-daily-cal__complete-mark,.kp-calendar-page--ref .kp-daily-cal__noshow-mark,.kp-calendar-page--ref .kp-daily-cal__eval-mark,.kp-calendar-page--ref .kp-daily-cal__cancel-mark{width:14px;height:14px;top:2px;right:2px;font-size:9px}.kp-calendar-page--ref .kp-daily-cal__cell-actions{gap:2px;margin-top:2px}.kp-calendar-page--ref .kp-daily-cal__cell-actions-row{gap:2px}.kp-calendar-page--ref .kp-daily-cal__mini{font-size:8px;padding:2px 1px;min-height:20px;border-radius:3px;line-height:1.1}.kp-calendar-page--ref .kp-daily-cal__reserve{width:100%;min-height:42px;flex:1 1 auto;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;padding:8px 6px;line-height:1.25;border:1px dashed #4ade80;border-radius:5px;background:#ecfdf5;box-sizing:border-box}.kp-calendar-page--ref .kp-daily-cal__cell-actions-row--cancelled .kp-daily-cal__reserve--inline{min-height:20px;font-size:10px;font-weight:700;padding:4px 2px;border:1px dashed #4ade80;background:#ecfdf5;color:#15803d;opacity:1;filter:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kp-calendar-page--ref .kp-daily-cal__cell--occupied{min-height:0;height:100%;padding:2px}.kp-calendar-page--ref .kp-daily-cal__busy{max-width:100%;box-sizing:border-box}.kp-calendar-page--ref .kp-daily-cal__leave{font-size:11px}.kp-calendar-page--ref .kp-daily-week-stack{gap:14px;width:100%;max-width:100%}.kp-calendar-page--ref .kp-daily-week-stack__day{width:100%}.kp-calendar-page--ref .kp-daily-week-stack__day .kp-daily-cal__table-wrap{margin:0;width:100%}.kp-calendar-page--ref .kp-calendar-page__scroll{width:100%}.kp-calendar-page--ref .kp-daily-week-stack__head{padding:4px 10px;margin-bottom:4px}.kp-calendar-page--ref .kp-daily-week-stack__title-line{font-size:clamp(.95rem,1.6vw,1.1rem);letter-spacing:.06em}@media (max-width: 720px){.kp-calendar-page--ref .kp-daily-week-stack__head-spacer{display:none}.kp-calendar-page--ref .kp-daily-week-stack__head{flex-wrap:wrap;justify-content:center}.kp-calendar-page--ref .kp-daily-week-stack__focus{flex:1 1 100%;max-width:none;text-align:center;margin-top:4px}}.kp-dashboard{display:flex;flex-direction:column;gap:14px;width:100%;max-width:none;flex:1 1 auto;min-height:0;overflow-y:auto}.kp-dash-hero{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px;padding:12px 18px;border-radius:12px;background:linear-gradient(135deg,#1e3a8a,#4f46e5 45%,#7c3aed);color:#fff;box-shadow:0 6px 18px #2563eb38}.kp-dash-hero__text{flex:1;min-width:200px}.kp-dash-hero__greet{margin:0 0 2px;font-size:12px;opacity:.92;line-height:1.2}.kp-dash-hero__headline{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px}.kp-dash-hero__title{margin:0;font-size:20px;font-weight:800;letter-spacing:-.02em;line-height:1.15;text-transform:uppercase}.kp-dash-hero__badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;background:#fff;color:#1e40af;font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap}.kp-dash-hero__date{font-size:12px;opacity:.88;white-space:nowrap}.kp-dash-hero__next{margin:6px 0 0;font-size:11px;line-height:1.3;padding:4px 8px;border-radius:6px;background:#ffffff24;border:1px solid rgba(255,255,255,.22);display:inline-block;max-width:100%}.kp-dash-hero__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.kp-dash-hero__chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.kp-dash-hero__chip{font-size:11px;padding:3px 8px;border-radius:999px;background:#ffffff2e;border:1px solid rgba(255,255,255,.3);line-height:1.25}.kp-dash-hero__chip strong{font-size:12px;margin-right:3px}.kp-dash-hero__btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap;transition:background .15s,transform .1s}.kp-dash-hero__btn--ghost{color:#fff;border:1px solid rgba(255,255,255,.55);background:#ffffff14}.kp-dash-hero__btn--ghost:hover{background:#fff3}.kp-dash-hero__btn--solid{color:#1e3a8a;background:#fff;box-shadow:0 4px 14px #0000001f}.kp-dash-hero__btn--solid:hover{transform:translateY(-1px)}.kp-dash-occ-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media (max-width: 960px){.kp-dash-occ-row{grid-template-columns:1fr}}.kp-dash-occ{padding:18px 20px;border-radius:14px;background:#fff;border:1px solid var(--kp-border);box-shadow:0 4px 18px #0f172a0f}.kp-dash-occ--blue{border-top:4px solid #2563eb}.kp-dash-occ--violet{border-top:4px solid #7c3aed}.kp-dash-occ--teal{border-top:4px solid #0d9488}.kp-dash-occ__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.kp-dash-occ__title{margin:0;font-size:17px;font-weight:800;color:var(--kp-text)}.kp-dash-occ__sub{margin:4px 0 0;font-size:12px;color:var(--kp-text-muted)}.kp-dash-occ__pct{font-size:28px;font-weight:800;color:var(--kp-primary);line-height:1}.kp-dash-occ--violet .kp-dash-occ__pct{color:#7c3aed}.kp-dash-occ--teal .kp-dash-occ__pct{color:#0d9488}.kp-dash-occ__bar{height:8px;border-radius:999px;background:#e8eef8;overflow:hidden;margin-bottom:12px}.kp-dash-occ__bar-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#3b82f6,#6366f1);transition:width .4s ease}.kp-dash-occ--violet .kp-dash-occ__bar-fill{background:linear-gradient(90deg,#7c3aed,#a78bfa)}.kp-dash-occ--teal .kp-dash-occ__bar-fill{background:linear-gradient(90deg,#0d9488,#2dd4bf)}.kp-dash-occ__stats{display:flex;flex-wrap:wrap;gap:12px 18px;font-size:13px;color:var(--kp-text)}.kp-dash-occ__stats em{font-style:normal;font-weight:800;font-size:16px;margin-right:3px}.kp-dash-occ__muted{color:var(--kp-text-muted);font-size:12px}.kp-dash-mini-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}@media (max-width: 900px){.kp-dash-mini-row{grid-template-columns:repeat(2,1fr)}}.kp-dash-mini{padding:14px 16px;border-radius:12px;background:#fff;border:1px solid var(--kp-border);display:flex;flex-direction:column;gap:4px}a.kp-dash-mini--link{text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}a.kp-dash-mini--link:hover{border-color:var(--kp-primary);box-shadow:0 2px 8px #2563eb1f}.kp-dash-mini--alert{border-color:#fdba74;background:#fff7ed}.kp-dash-mini--alert strong{color:#c2410c}.kp-dash-mini__label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--kp-text-muted);font-weight:600}.kp-dash-mini strong{font-size:22px;font-weight:800;color:var(--kp-text)}.kp-dash-mini--warn{border-color:#fcd34d;background:#fffbeb}.kp-dash-mini--warn strong{color:#b45309}.kp-dash-panels{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.kp-dash-panels--triple{grid-template-columns:minmax(0,1.1fr) minmax(0,1.1fr) minmax(260px,.85fr)}@media (max-width: 1280px){.kp-dash-panels--triple{grid-template-columns:1fr 1fr}.kp-dash-panels--triple .kp-dash-notify{grid-column:1 / -1}}@media (max-width: 1024px){.kp-dash-panels,.kp-dash-panels--triple{grid-template-columns:1fr}}.kp-dash-panel{padding:0;overflow:hidden}.kp-dash-panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--kp-border);background:#fafbff}.kp-dash-panel__head h2{margin:0;font-size:16px;font-weight:800}.kp-dash-panel__link{font-size:13px;font-weight:600;color:var(--kp-primary);text-decoration:none}.kp-dash-panel__link:hover{text-decoration:underline}.kp-dash-panel__badge{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:#dbeafe;color:#1d4ed8}.kp-dash-panel__foot{margin:0;padding:10px 18px 14px;font-size:12px;color:var(--kp-warn);border-top:1px dashed var(--kp-border)}.kp-dash-empty{padding:32px 24px;text-align:center;color:var(--kp-text-muted)}.kp-dash-empty p{margin:0 0 14px}.kp-dash-empty--compact{padding:16px 24px}.kp-dash-empty--compact p{margin:0}.kp-dash-upcoming{list-style:none;margin:0;padding:8px 0}.kp-dash-upcoming__item{display:grid;grid-template-columns:88px 1fr;gap:14px;padding:14px 18px;border-bottom:1px solid var(--kp-border)}.kp-dash-upcoming__item:last-child{border-bottom:none}.kp-dash-upcoming__item--next{background:linear-gradient(90deg,#eff6ff 0%,transparent 100%)}.kp-dash-upcoming__time{display:flex;flex-direction:column;gap:2px}.kp-dash-upcoming__time strong{font-size:18px;color:var(--kp-primary)}.kp-dash-upcoming__time span{font-size:12px;color:var(--kp-text-muted)}.kp-dash-upcoming__badge{display:inline-block;margin-top:6px;font-size:10px;font-style:normal;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:4px;background:#2563eb;color:#fff}.kp-dash-upcoming__student{margin:0 0 4px;font-size:15px;font-weight:700}.kp-dash-upcoming__meta{margin:0 0 6px;font-size:12px;color:var(--kp-text-muted)}.kp-dash-upcoming__until{font-size:12px;font-weight:600;color:#0d9488}.kp-dash-reports{list-style:none;margin:0;padding:0}.kp-dash-reports__item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--kp-border)}.kp-dash-reports__item:last-child{border-bottom:none}.kp-dash-reports__name{margin:0 0 2px;font-size:14px;font-weight:700}.kp-dash-reports__meta{margin:0 0 6px;font-size:12px;color:var(--kp-text-muted)}.kp-dash-reports__status{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;background:#f1f5f9;color:#64748b}.kp-dash-reports__status--ok{background:#dcfce7;color:#15803d}.kp-dash-reports__status--pending{background:#fef3c7;color:#b45309}.kp-dash-reports__btn{flex-shrink:0;padding:8px 14px;border-radius:8px;border:1px solid var(--kp-border);background:#fff;font-size:12px;font-weight:700;cursor:pointer;color:var(--kp-text)}.kp-dash-reports__btn:hover{border-color:var(--kp-primary);color:var(--kp-primary)}.kp-dash-reports__btn--primary{background:var(--kp-primary);border-color:var(--kp-primary);color:#fff}.kp-dash-reports__btn--primary:hover{filter:brightness(1.05);color:#fff}.kp-dash-vehicle-alerts{border-color:#fed7aa;box-shadow:0 4px 18px #ea580c14}.kp-dash-vehicle-alerts__content{padding:14px 18px 16px}.kp-dash-vehicle-alerts__sub{margin:4px 0 0;font-size:12px;color:#64748b}.kp-dash-vehicle-alerts__error{margin:0}.kp-dash-vehicle-alerts__counts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.kp-dash-vehicle-alerts__count{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;background:#f8fafc;color:#475569}.kp-dash-vehicle-alerts__count strong{font-size:14px;color:#0f172a}.kp-dash-vehicle-alerts__count--expired{background:#fef2f2;color:#991b1b}.kp-dash-vehicle-alerts__count--critical{background:#fff7ed;color:#c2410c}.kp-dash-vehicle-alerts__count--soon{background:#eff6ff;color:#1d4ed8}.kp-dash-vehicle-alerts__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.kp-dash-vehicle-alerts__item{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:10px;border:1px solid #e2e8f0;background:#fff}.kp-dash-vehicle-alerts__item--expired{border-color:#fecaca;background:snow}.kp-dash-vehicle-alerts__item--very_soon{border-color:#fed7aa;background:#fffbf5}.kp-dash-vehicle-alerts__plate{flex-shrink:0;font-family:ui-monospace,monospace;font-weight:700;font-size:13px;padding:4px 8px;border-radius:6px;background:#f1f5f9;color:#0f172a}.kp-dash-vehicle-alerts__body{min-width:0;flex:1}.kp-dash-vehicle-alerts__title{margin:0 0 4px;font-size:13px;font-weight:700;color:#0f172a;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.kp-dash-vehicle-alerts__meta{margin:0;font-size:12px;color:#64748b;line-height:1.35}.kp-dash-vehicle-alerts__badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.kp-dash-vehicle-alerts__badge--expired{background:#fee2e2;color:#991b1b}.kp-dash-vehicle-alerts__badge--very_soon{background:#ffedd5;color:#c2410c}.kp-dash-notify__head{flex-wrap:wrap}.kp-dash-notify__title-wrap{display:flex;align-items:center;gap:8px;min-width:0}.kp-dash-notify__title-wrap h2{margin:0}.kp-dash-notify__bell{font-size:18px;line-height:1}.kp-dash-notify__badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#dc2626;color:#fff;font-size:11px;font-weight:800}.kp-dash-notify__error{margin:0}.kp-dash-notify__list{list-style:none;margin:0;padding:10px 12px 14px;display:flex;flex-direction:column;gap:10px;max-height:420px;overflow-y:auto}.kp-dash-notify__item{padding:12px 14px;border-radius:10px;border:1px solid #e2e8f0;background:#fff}.kp-dash-notify__item--critical{border-color:#fed7aa;background:#fffbf5}.kp-dash-notify__item--warning{border-color:#fde68a;background:#fffbeb}.kp-dash-notify__item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}.kp-dash-notify__plate{font-family:ui-monospace,monospace;font-size:13px;font-weight:800;color:#0f172a}.kp-dash-notify__time{flex-shrink:0;font-size:11px;color:#64748b;white-space:nowrap}.kp-dash-notify__tag{display:inline-block;margin-bottom:6px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.kp-dash-notify__tag--critical{background:#ffedd5;color:#c2410c}.kp-dash-notify__tag--warning{background:#fef3c7;color:#b45309}.kp-dash-notify__tag--info{background:#e0f2fe;color:#0369a1}.kp-dash-notify__msg{margin:0;font-size:12px;line-height:1.45;color:#475569}.kp-dash-notify__sections{display:flex;flex-direction:column;gap:12px;padding:10px 12px 14px;max-height:420px;overflow-y:auto}.kp-dash-notify__section-title{margin:0 0 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#0f172a}.kp-dash-notify__section-title--read{color:#64748b;font-weight:600}.kp-dash-notify__item--unread .kp-dash-notify__plate{font-weight:800}.kp-dash-notify__item--read{opacity:.9;background:#f8fafc}.kp-dash-notify__item--read .kp-dash-notify__plate{font-weight:500;color:#64748b}.kp-dash-notify__msg--read{color:#94a3b8}.kp-dash-notify__item-actions{display:flex;align-items:center;gap:6px}.kp-dash-notify__read-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid var(--kp-primary);border-radius:6px;background:#fff;color:var(--kp-primary);font-size:13px;font-weight:800;cursor:pointer}.kp-dash-notify__read-btn:hover{background:#eff6ff}.kp-dash-notify__read-btn--marked{border-color:#86efac;background:#dcfce7;color:#15803d}.kp-dash-notify__read-btn--marked:hover{background:#bbf7d0}.kp-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e293b 60%,#2563eb 130%);padding:24px}.kp-login__card{width:100%;max-width:420px;padding:28px 28px 24px;display:flex;flex-direction:column;gap:14px}.kp-login__header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;margin-bottom:6px}.kp-login__brand{width:56px;height:56px;background:var(--kp-primary);color:#fff;border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;letter-spacing:1px;margin-bottom:6px}.kp-login__header h1{font-size:20px;margin:0}.kp-login__header p{margin:0;color:var(--kp-text-muted);font-size:13px}.kp-login__field{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--kp-text-muted)}.kp-login__hint{font-size:12px;color:var(--kp-text-muted);line-height:1.35}.kp-login__error{background:var(--kp-danger-soft);color:var(--kp-danger);padding:9px 12px;border-radius:var(--kp-radius-sm);font-size:13px}.kp-login__submit{margin-top:6px;padding:11px 14px;font-size:14px;font-weight:600}.kp-sched-summary__intro{margin:0 0 16px;font-size:13px;color:var(--kp-text-muted);line-height:1.5}.kp-sched-summary__intro a{color:var(--kp-primary, #2563eb);font-weight:600}.kp-sched-summary__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.kp-sched-summary__card{border:1px solid var(--kp-border);border-radius:10px;padding:14px;background:#fff}.kp-sched-summary__card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.kp-sched-summary__card-head h3{margin:0;font-size:15px;font-weight:700}.kp-btn--small{font-size:12px;padding:5px 10px}.kp-sched-summary__dl{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:0 0 12px;font-size:12px}.kp-sched-summary__dl dt{margin:0;color:var(--kp-text-muted);font-weight:600}.kp-sched-summary__dl dd{margin:0;color:var(--kp-text);font-weight:600}.kp-sched-summary__slots-title{margin:0 0 6px;font-size:12px;font-weight:700;color:var(--kp-text-muted)}.kp-sched-summary__slots{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.kp-sched-summary__slots li{font-size:11px;padding:3px 8px;border-radius:6px;background:#f1f5f9;border:1px solid #e2e8f0;font-weight:600}.kp-sched-summary__loading,.kp-sched-summary__empty{font-size:13px;color:var(--kp-text-muted)}.kp-sched-summary__error{margin:0;font-size:12px;color:#b91c1c}.kp-settings{display:flex;flex-direction:column;gap:14px;width:100%;flex:1 1 auto}.kp-settings__header h1{margin:0 0 4px;font-size:22px}.kp-settings__header p{margin:0;color:var(--kp-text-muted);font-size:13px}.kp-settings__tabs{display:flex;gap:4px;border-bottom:1px solid var(--kp-border);padding:0 4px;flex-wrap:wrap}.kp-settings__tab{background:transparent;border:none;padding:10px 16px;font-size:13.5px;font-weight:600;color:var(--kp-text-muted);cursor:pointer;border-bottom:2px solid transparent;border-top-left-radius:6px;border-top-right-radius:6px}.kp-settings__tab--active{color:var(--kp-primary, #2563eb);border-bottom-color:var(--kp-primary, #2563eb);background:#fafbff}.kp-settings__panel{padding:18px}.kp-settings__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media (max-width: 720px){.kp-settings__grid{grid-template-columns:1fr}}.kp-settings__field{display:flex;flex-direction:column;gap:4px;font-size:13px}.kp-settings__field--full{grid-column:1 / -1}.kp-settings__field span{font-weight:600;color:var(--kp-text)}.kp-settings__field em{color:#dc2626;font-style:normal}.kp-settings__field input[type=text],.kp-settings__field input[type=email],.kp-settings__field input[type=url],.kp-settings__field input[type=number],.kp-settings__field textarea,.kp-settings__field select{border:1px solid var(--kp-border);border-radius:8px;padding:8px 10px;font-size:14px;background:#fff}.kp-settings__field input[type=color]{width:60px;height:36px;padding:2px;border:1px solid var(--kp-border);border-radius:8px;background:#fff}.kp-settings__color-row{display:flex;align-items:center;gap:10px}.kp-settings__color-row input[type=text]{width:130px}.kp-settings__days{display:flex;flex-wrap:wrap;gap:8px}.kp-settings__day-chip{border:1px solid var(--kp-border);background:#fff;padding:8px 14px;border-radius:999px;font-size:13px;cursor:pointer;font-weight:600;color:var(--kp-text-muted)}.kp-settings__day-chip--active{background:#2563eb;color:#fff;border-color:#2563eb}.kp-settings__actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;border-top:1px solid var(--kp-border);padding-top:14px}.kp-settings__readonly{background:#fef3c7;border:1px solid #fcd34d;color:#92400e;padding:10px 12px;border-radius:10px;font-size:13px;margin-bottom:12px}.kp-settings__success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;padding:10px 12px;border-radius:10px;font-size:13px}.kp-settings__error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:10px 12px;border-radius:10px;font-size:13px}.kp-settings__placeholder{padding:16px;color:var(--kp-text-muted);font-size:13px}.kp-settings__placeholder a{color:var(--kp-primary, #2563eb)}.kp-wa-link{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:#25d366;color:#fff;text-decoration:none;flex-shrink:0;transition:background .15s ease,transform .1s ease}.kp-wa-link:hover{background:#128c7e;transform:scale(1.04)}.kp-wa-link svg{display:block}.kp-instructor-form{max-width:620px}.kp-instructor-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.kp-instructor-form__field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--kp-text-muted)}.kp-instructor-form__field--full{grid-column:1 / -1}.kp-instructor-form__error{grid-column:1 / -1;background:var(--kp-danger-soft);color:var(--kp-danger);padding:9px 12px;border-radius:var(--kp-radius-sm);font-size:13px}.kp-instructor-form__weekly-label{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--kp-text-muted)}.kp-instructor-form__weekdays{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.kp-instructor-form__weekday{border:1px solid var(--kp-border);background:#fff;color:var(--kp-text);border-radius:8px;padding:7px 9px;font-size:10px;font-weight:800;cursor:pointer}.kp-instructor-form__weekday--active{background:#2563eb;border-color:#2563eb;color:#fff}.kp-instructor-form__status-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--kp-text);cursor:pointer}.kp-instructor-form__status-hint{display:block;margin-top:4px;font-size:11px;color:var(--kp-text-muted);line-height:1.35}.kp-instructor-form__actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px;margin-top:4px;flex-wrap:wrap}@media (max-width: 600px){.kp-instructor-form__grid{grid-template-columns:1fr}}.kp-instructor-leave{max-width:520px;width:min(520px,calc(100vw - 32px));padding:22px 24px 20px}.kp-instructor-leave__title-wrap{text-align:center;margin-bottom:18px}.kp-instructor-leave__title{margin:0;font-size:22px;font-weight:800;color:var(--kp-text)}.kp-instructor-leave__instructor{margin:6px 0 0;font-size:14px;font-weight:700;letter-spacing:.06em;color:var(--kp-text-muted)}.kp-instructor-leave__subtitle{font-size:12px;line-height:1.45;color:var(--kp-text-muted);max-width:420px;margin:10px auto 0}.kp-instructor-leave__form{display:flex;flex-direction:column;gap:16px}.kp-instructor-leave__dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}.kp-instructor-leave__field{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--kp-text-muted)}.kp-instructor-leave__field--full{width:100%}.kp-instructor-leave__error{background:var(--kp-danger-soft);color:var(--kp-danger);padding:9px 12px;border-radius:var(--kp-radius-sm);font-size:13px}.kp-instructor-leave__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}@media (max-width: 520px){.kp-instructor-leave__dates{grid-template-columns:1fr}}.kp-instructors{display:flex;flex-direction:column;gap:14px;width:100%;flex:1 1 auto;min-height:0;height:100%;max-height:100%;overflow:hidden}.kp-instructors__header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;flex-shrink:0}.kp-instructors__header h1{margin:0 0 4px;font-size:22px}.kp-instructors__header p{margin:0;color:var(--kp-text-muted);font-size:13px}.kp-instructors__toolbar{display:grid;grid-template-columns:1fr 180px 200px auto;gap:10px;padding:12px 14px;align-items:center;flex-shrink:0}.kp-instructors>.kp-card.kp-error{flex-shrink:0}.kp-instructors__table-wrapper{padding:0;flex:1 1 auto;min-height:200px;overflow:auto;-webkit-overflow-scrolling:touch}.kp-instructors__table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}.kp-instructors__table th,.kp-instructors__table td{padding:8px 12px;text-align:left}.kp-instructors__table thead th{position:sticky;top:0;z-index:2;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--kp-text-muted);box-shadow:0 1px 0 var(--kp-border)}.kp-instructors__sub{display:block;color:var(--kp-text-muted);font-size:11px;margin-top:2px}.kp-instructors__contact{display:inline-flex;align-items:center;gap:6px}.kp-instructors__employment{display:inline-flex;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600}.kp-instructors__employment--full_time{background:var(--kp-primary-soft);color:var(--kp-primary-strong)}.kp-instructors__employment--daily_paid{background:#fff7ed;color:#c2410c}.kp-instructors__cert{display:flex;flex-direction:column;gap:2px}.kp-instructors__cert small{font-size:11px;color:var(--kp-text-muted)}.kp-instructors__cert--soon span{color:var(--kp-warn);font-weight:600}.kp-instructors__cert--soon small{color:var(--kp-warn)}.kp-instructors__cert--very-soon span{color:var(--kp-danger);font-weight:700}.kp-instructors__cert--very-soon small{color:var(--kp-danger)}.kp-instructors__cert--expired span{text-decoration:line-through;color:var(--kp-text-muted)}.kp-instructors__cert--expired small{color:var(--kp-danger);font-weight:600}.kp-instructors__status{display:inline-flex;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600}.kp-instructors__status--active{background:var(--kp-success-soft);color:var(--kp-success)}.kp-instructors__status--passive{background:#f1f5f9;color:var(--kp-text-muted)}.kp-instructors__row-actions{display:flex;gap:6px;flex-wrap:wrap}.kp-instructors__action{padding:4px 10px;font-size:12px}.kp-instructors__action--leave{border-color:#93c5fd;color:#1d4ed8;background:#eff6ff}.kp-instructors__pagination{display:flex;align-items:center;justify-content:center;gap:12px;font-size:13px;color:var(--kp-text-muted);flex-shrink:0}@media (max-width: 800px){.kp-instructors__toolbar{grid-template-columns:1fr}}.m-page{background:#f8fafc;min-height:100vh;padding:12px 12px 80px;max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:12px}.m-header{display:flex;justify-content:space-between;align-items:center;background:#fff;border-radius:12px;padding:12px 16px;border:1px solid #e2e8f0}.m-header__hello{display:block;font-size:12px;color:#64748b;letter-spacing:.05em;text-transform:uppercase}.m-header__name{display:block;font-size:16px;color:#0f172a;font-weight:700;margin-top:2px}.m-header__pc-link{font-size:12px;color:#2563eb;text-decoration:none;background:#eff6ff;padding:6px 10px;border-radius:8px;font-weight:500}.m-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#fff;border-radius:12px;padding:6px;border:1px solid #e2e8f0}.m-tabs button{background:transparent;border:0;border-radius:8px;padding:10px;cursor:pointer;font-size:14px;color:#475569;font-weight:500;-webkit-tap-highlight-color:transparent}.m-tabs button.is-active{background:#2563eb;color:#fff;font-weight:600}.m-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.m-stat{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px 8px;text-align:center}.m-stat--warn{background:#fef3c7;border-color:#fde68a}.m-stat__num{font-size:18px;font-weight:700;color:#0f172a}.m-stat--warn .m-stat__num{color:#92400e}.m-stat__label{font-size:10px;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-top:2px}.m-info,.m-error{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px;font-size:14px;text-align:center;color:#475569}.m-error{background:#fef2f2;color:#991b1b;border-color:#fecaca}.m-empty{text-align:center;background:#fff;border:1px dashed #cbd5e1;border-radius:12px;padding:32px 16px}.m-empty__icon{font-size:32px;color:#cbd5e1}.m-empty__text{margin-top:8px;color:#475569;font-size:14px}.m-list{display:flex;flex-direction:column;gap:10px}.m-week__day{margin-top:8px}.m-week__day-title{font-size:13px;font-weight:600;color:#1e293b;margin:8px 4px 6px;text-transform:capitalize}.m-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;box-shadow:0 1px 2px #0f172a0d}.m-card__head{display:flex;justify-content:space-between;align-items:center}.m-card__time{font-size:16px;color:#0f172a;font-weight:600}.m-card__time-sep{margin:0 4px;color:#94a3b8}.m-card__duration{margin-left:6px;font-size:12px;color:#64748b;font-weight:400}.m-card__row{display:flex;align-items:center;gap:10px}.m-card__row--muted{background:#f8fafc;border-radius:8px;padding:8px 10px;justify-content:space-between;font-size:13px;color:#475569}.m-card__row--meta{flex-wrap:wrap;gap:6px}.m-card__icon{width:36px;height:36px;border-radius:50%;background:#dbeafe;color:#1e40af;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.m-card__main{flex:1;min-width:0}.m-card__title{display:block;font-size:15px;color:#0f172a;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-card__sub{font-size:12px;color:#64748b;margin-top:2px}.m-card__contacts{display:flex;gap:6px}.m-iconbtn{background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:600;padding:6px 10px;border-radius:8px;text-decoration:none;-webkit-tap-highlight-color:transparent}.m-iconbtn--wp.kp-wa-link{width:36px;height:36px;padding:0;border-radius:8px}.m-card__veh{font-size:13px;color:#1e293b}.m-card__veh .mono{font-family:ui-monospace,monospace;font-weight:600}.m-card__km{text-align:right;font-size:12px;color:#475569}.m-card__km-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8}.m-card__km .mono{font-family:ui-monospace,monospace;font-size:14px;color:#0f172a}.m-tag{display:inline-block;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600}.m-tag--normal{background:#dbeafe;color:#1e40af}.m-tag--special{background:#fce7f3;color:#9d174d}.m-tag--extra{background:#ede9fe;color:#5b21b6}.m-tag--ok{background:#dcfce7;color:#166534}.m-tag--warn{background:#fef3c7;color:#92400e}.m-badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600}.m-badge--ok{background:#dcfce7;color:#166534}.m-badge--warn{background:#fef3c7;color:#92400e}.m-badge--info{background:#dbeafe;color:#1e40af}.m-badge--muted{background:#f1f5f9;color:#64748b}.m-card__actions{display:flex;gap:6px}.m-btn{flex:1;background:#2563eb;color:#fff;border:0;border-radius:10px;padding:12px;font-size:14px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.m-btn:disabled{background:#cbd5e1;cursor:not-allowed}.m-btn:active:not(:disabled){background:#1d4ed8}.m-btn--danger-outline{flex:0 0 auto;background:#fff;color:#dc2626;border:1px solid #fecaca}.m-btn--danger-outline:active:not(:disabled){background:#fef2f2}.m-btn--reactivate{flex:0 0 auto;background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.m-btn--reactivate:active:not(:disabled){background:#dcfce7}@media (min-width: 720px){.m-summary{gap:8px}.m-stat__num{font-size:20px}}.lr-note-cell{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:32px}.lr-note-cell--empty{color:#cbd5e1}.lr-note-cell__btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#2563eb;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.lr-note-cell__btn:hover,.lr-note-cell--open .lr-note-cell__btn{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.lr-note-cell--pinned .lr-note-cell__btn{background:#dbeafe;border-color:#60a5fa;box-shadow:0 0 0 2px #2563eb33}.lr-note-cell__popover,.lr-note-cell__popover--floating{padding:10px 12px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 12px 28px #0f172a24;text-align:left}.lr-note-cell__popover--floating{position:fixed;z-index:200;width:min(280px,calc(100vw - 16px));margin:0;opacity:1;visibility:visible;transform:none;pointer-events:auto}.lr-note-cell__popover-title{display:block;margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#1d4ed8}.lr-note-cell__popover-text{margin:0;font-size:13px;line-height:1.45;color:#334155;white-space:pre-wrap;word-break:break-word;max-height:160px;overflow-y:auto}.lr-page{display:flex;flex-direction:column;gap:14px;width:100%;flex:1 1 auto;min-height:0;height:100%;max-height:100%;overflow:hidden;font-family:inherit}.lr-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-shrink:0}.lr-page__header h2{margin:0 0 4px;font-size:22px;font-weight:700;color:#0f172a}.lr-page__sub{margin:0;color:#475569;font-size:13px;max-width:720px;line-height:1.5}.lr-page__student-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 14px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;font-size:13px;color:#1e3a8a;flex-shrink:0}.lr-filters{display:grid;grid-template-columns:minmax(200px,2fr) repeat(3,minmax(140px,1.2fr)) repeat(2,minmax(120px,.9fr));gap:10px;padding:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;flex-shrink:0}.lr-filters__cohort{grid-column:1 / -1}.lr-filters__search{min-width:0}.lr-page__error{background:#fef2f2;color:#991b1b;padding:10px 12px;border-radius:8px;font-size:13px;flex-shrink:0}.lr-page__hint{background:#f1f5f9;color:#334155;padding:16px;border-radius:8px;font-size:13px;text-align:center;flex:1 1 auto;display:flex;align-items:center;justify-content:center}.lr-table-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex:1 1 auto;min-height:200px;overflow:auto;-webkit-overflow-scrolling:touch;box-shadow:0 1px 3px #0f172a0f}.lr-table{width:100%;border-collapse:separate;border-spacing:0}.lr-table--matrix{min-width:1180px}.lr-table th,.lr-table td{padding:10px 8px;vertical-align:middle;border-bottom:1px solid #e8eef4}.lr-table thead th{position:sticky;top:0;z-index:3;background-color:#f1f5f9;text-align:center;white-space:nowrap;box-shadow:0 1px #e2e8f0}.lr-table thead th.kp-th-meta{white-space:nowrap}.lr-table thead th.lr-col-maneuver{text-transform:none;letter-spacing:0;font-size:10px;font-weight:600;color:#475569;white-space:normal;vertical-align:bottom;padding-top:10px;padding-bottom:10px}.lr-col-maneuver .kp-table-sort{flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;width:100%;text-align:center}.lr-maneuver-th{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;min-height:2.4em;line-height:1.15}.lr-maneuver-th__line{display:block;max-width:72px}.lr-table tbody td{background:#fff}.lr-table tbody tr:hover td{background:#f8fafc}.lr-table tbody tr:nth-child(2n) td{background:#fafbfc}.lr-table tbody tr:nth-child(2n):hover td{background:#f1f5f9}.lr-col-idx,.lr-col-date,.lr-col-time{text-align:center}.lr-col-idx{width:40px;min-width:40px;max-width:40px;position:sticky;left:0;z-index:2;background-color:#fff;border-right:1px solid #e2e8f0;isolation:isolate}.lr-col-date{min-width:96px;position:sticky;left:40px;z-index:2;background-color:#fff;border-right:2px solid #cbd5e1;isolation:isolate}.lr-table thead .lr-col-idx,.lr-table thead .lr-col-date{z-index:4;background-color:#f1f5f9}.lr-table tbody tr:nth-child(2n) .lr-col-idx,.lr-table tbody tr:nth-child(2n) .lr-col-date{background-color:#fafbfc}.lr-table tbody tr:hover .lr-col-idx,.lr-table tbody tr:hover .lr-col-date{background-color:#f8fafc}.lr-table tfoot .lr-col-idx,.lr-table tfoot .lr-col-date{background-color:#fff7ed}.lr-col-time{min-width:108px}.lr-col-student{min-width:128px;text-align:left}.lr-col-instructor{min-width:118px;text-align:left}.lr-col-plate{min-width:84px;text-align:center}.lr-col-status{min-width:76px;text-align:center}.lr-col-maneuver{min-width:48px;max-width:64px;text-align:center;padding-left:4px;padding-right:4px}.lr-col-rating{min-width:108px;text-align:center;white-space:nowrap}.lr-col-note{min-width:44px;max-width:52px;width:48px;text-align:center;padding-left:4px;padding-right:4px;overflow:visible}.lr-col-action{min-width:72px;text-align:center}.lr-cell-num{font-weight:500;text-align:center}.lr-cell-num.is-zero{color:var(--kp-text-muted);font-weight:400}.lr-cell-num.is-na,.lr-na{color:#cbd5e1;font-weight:400}.lr-table tfoot .lr-table__total td{background:#fff7ed;border-top:2px solid #fdba74;border-bottom:0;font-size:var(--kp-font-data-size);font-weight:600}.lr-table__total-label{text-align:left;color:#c2410c;font-size:var(--kp-font-table-head-size);text-transform:uppercase;letter-spacing:.04em;position:sticky;left:0;z-index:3;background-color:#fff7ed;border-right:2px solid #fdba74}.lr-cell-total{color:#ea580c;font-weight:700}.lr-table__total-meta{text-align:left;font-size:12px;font-weight:500;color:#9a3412}.badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.2;white-space:nowrap;font-family:inherit}.lr-page__footer{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#475569;flex-shrink:0;padding-top:2px}.lr-page__pager{display:flex;align-items:center;gap:8px}.kp-btn--small{padding:6px 12px;font-size:12px}@media (max-width: 1100px){.lr-filters{grid-template-columns:1fr 1fr}.lr-filters__search{grid-column:1 / -1}}.kp-stu-status{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:999px;padding:3px 22px 3px 10px;font-size:11px;font-weight:600;line-height:1.2;cursor:pointer;background-repeat:no-repeat;background-position:right 6px center;background-size:10px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%2364748b' d='M2 3.5 5 6.5 8 3.5'/%3E%3C/svg%3E");white-space:nowrap}.kp-stu-status:disabled{cursor:not-allowed;opacity:.65}.kp-stu-status--active{background-color:var(--kp-success-soft);color:var(--kp-success)}.kp-stu-status--passive{background-color:#f1f5f9;color:var(--kp-text-muted)}.kp-stu-status--graduated{background-color:var(--kp-primary-soft);color:var(--kp-primary-strong)}.kp-stu-status--busy{opacity:.7}.rep-page{display:flex;flex-direction:column;gap:16px;width:100%;flex:1 1 auto;min-height:0;height:100%;max-height:100%;overflow:hidden}.rep-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;flex-shrink:0}.rep-page__header h2{margin:0 0 4px;font-size:22px;color:#0f172a}.rep-page__sub{margin:0;color:#475569;font-size:13px;max-width:720px}.rep-schedule-export{padding:20px;display:flex;flex-direction:column;gap:16px}.rep-schedule-export h3{margin:0;font-size:18px;color:#0f172a}.rep-schedule-export__controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px}.rep-schedule-export__controls label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569}.rep-schedule-export__range{margin:0;font-size:13px;color:#334155}.rep-page__date-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.rep-page__date-row label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569}.rep-page__quick{display:flex;gap:6px}.rep-page__export{display:flex;gap:6px;margin-left:auto;padding-left:12px;border-left:1px solid #e2e8f0}.rep-page__export .kp-btn{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.rep-page__export .kp-btn:hover:not(:disabled){background:#1e40af;border-color:#1e40af}.rep-tabs{display:flex;gap:4px;flex-shrink:0;border-bottom:1px solid #e2e8f0;flex-wrap:wrap}.rep-tabs button{background:transparent;border:0;padding:10px 16px;border-bottom:2px solid transparent;cursor:pointer;font-size:14px;color:#475569;font-weight:500}.rep-tabs button.is-active{border-bottom-color:#2563eb;color:#1e293b;font-weight:600}.rep-tab-content{display:flex;flex-direction:column;gap:16px;flex:1 1 auto;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch}.rep-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.rep-kpi{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px}.rep-kpi__label{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.rep-kpi__value{font-size:22px;font-weight:700;color:#0f172a;margin-top:6px}.rep-toolbar{display:flex;gap:8px;align-items:center}.rep-toolbar--stack{flex-direction:column;align-items:stretch}.rep-table__cohort{display:flex;flex-direction:column;gap:2px;font-size:12px;line-height:1.35}.rep-table-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow-x:auto}.rep-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.rep-table th,.rep-table td{text-align:left;padding:10px 12px;border-bottom:1px solid #e2e8f0;vertical-align:middle}.rep-table th{position:sticky;top:0;z-index:2;background:#f8fafc;color:#475569;font-weight:600;box-shadow:0 1px #e2e8f0;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.rep-table tr:last-child td{border-bottom:0}.rep-table .mono{font-family:inherit;font-variant-numeric:tabular-nums;font-size:var(--kp-font-data-size, 13px);font-weight:400;white-space:nowrap}.rep-table__bar{width:160px}.rep-bar{background:#f1f5f9;border-radius:6px;height:8px;overflow:hidden}.rep-bar__fill{height:100%;border-radius:6px;transition:width .2s ease}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:600}.badge-info{background:#dbeafe;color:#1e40af}.rep-maintenance{display:flex;flex-direction:column;gap:4px;min-width:160px;padding:4px 6px;border-radius:6px}.rep-maintenance__row{display:flex;flex-direction:column;line-height:1.2}.rep-maintenance__row span{font-weight:600;font-size:12px;color:#0f172a}.rep-maintenance__row small{font-size:11px;color:#64748b}.rep-maintenance--ok{background:#ecfdf5}.rep-maintenance--info{background:#eff6ff}.rep-maintenance--warn{background:#fef3c7}.rep-maintenance--warn .rep-maintenance__row small{color:#92400e}.rep-maintenance--muted{background:#f8fafc}.rep-page__hint{background:#f1f5f9;color:#334155;padding:12px;border-radius:8px;font-size:13px}.rep-page__error{background:#fef2f2;color:#991b1b;padding:12px;border-radius:8px;font-size:13px}.rep-page__footer{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#475569}.rep-page__pager{display:flex;align-items:center;gap:8px}.rep-daily{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px}.rep-daily__row{display:grid;grid-template-columns:140px 1fr;gap:12px;align-items:center}.rep-daily__day{font-size:13px;font-weight:600;color:#1e293b}.rep-daily__bar{display:flex;flex-direction:column;gap:4px}.rep-daily__label{font-size:12px;color:#475569}.rep-daily__warn{color:#b45309}.rep-topics{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px}.rep-topics__row{display:grid;grid-template-columns:220px 1fr 220px;align-items:center;gap:12px}.rep-topics__label{font-size:13px;color:#1e293b;font-weight:500}.rep-topics__num{font-size:13px;color:#475569;text-align:right}@media (max-width: 900px){.rep-topics__row{grid-template-columns:1fr}.rep-table__bar{display:none}}.sm-page{background:linear-gradient(180deg,#eff6ff,#f8fafc 30%)}.sm-header{background:linear-gradient(135deg,#1d4ed8,#2563eb);border:none}.sm-header .m-header__hello{color:#fffc}.sm-header .m-header__name{color:#fff}.sm-header .m-header__pc-link{color:#fff;background:#ffffff2e;padding:6px 12px;border-radius:999px;font-weight:600;text-decoration:none}.sm-profile{background:#fff;border-radius:16px;padding:14px;border:1px solid #e2e8f0;display:flex;flex-direction:column;gap:12px}.sm-profile__row{display:flex;flex-wrap:wrap;gap:8px}.sm-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:12px;font-weight:500}.sm-chip strong{font-weight:700}.sm-chip__sub{color:#64748b}.sm-chip--accent{background:#dbeafe;color:#1e40af}.sm-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.sm-stat{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;text-align:left}.sm-stat__num{font-size:22px;font-weight:800;color:#0f172a;line-height:1.1}.sm-stat__label{font-size:11px;color:#64748b;margin-top:4px;letter-spacing:.04em;text-transform:uppercase}.sm-stat--accent{background:#eff6ff;border-color:#bfdbfe}.sm-stat--accent .sm-stat__num{color:#1d4ed8}.sm-next{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:12px;padding:10px 12px}.sm-next__label{font-size:11px;color:#059669;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.sm-next strong{color:#064e3b;font-size:14px}.sm-tabs{background:#fff}.sm-tabs button{flex:1;font-size:13px}.sm-card{position:relative}@media (min-width: 768px){.sm-page{max-width:560px}.sm-stats{grid-template-columns:repeat(4,1fr)}}.kp-student-form{max-width:620px}.kp-student-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.kp-student-form__field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--kp-text-muted)}.kp-student-form__field--full{grid-column:1 / -1}.kp-student-form__cohort{border:1px solid var(--kp-border);border-radius:var(--kp-radius-sm);padding:10px 12px 8px;margin:0}.kp-student-form__cohort legend{font-size:12px;color:var(--kp-text-muted);padding:0 4px}.kp-student-form__cohort-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media (max-width: 560px){.kp-student-form__cohort-grid{grid-template-columns:1fr}}.kp-student-form__error{grid-column:1 / -1;background:var(--kp-danger-soft);color:var(--kp-danger);padding:9px 12px;border-radius:var(--kp-radius-sm);font-size:13px}.kp-student-form__actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px;margin-top:4px;flex-wrap:wrap}@media (max-width: 600px){.kp-student-form__grid{grid-template-columns:1fr}}.kp-stu-progress{min-width:118px;max-width:156px}.kp-stu-progress__top{display:flex;align-items:baseline;justify-content:space-between;gap:4px;margin-bottom:2px}.kp-stu-progress__ratio{font-size:12px;font-weight:800;color:var(--kp-text);line-height:1.1}.kp-stu-progress__pct{font-size:10px;font-weight:700;color:var(--kp-text-muted)}.kp-stu-progress__bar{display:flex;height:4px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin-bottom:2px}.kp-stu-progress__segment{min-width:0;height:100%}.kp-stu-progress__segment--ok{background:#22c55e}.kp-stu-progress__segment--bad{background:#ef4444}.kp-stu-progress__segment--pending{background:#cbd5e1}.kp-stu-progress__meta{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;font-size:8px;font-weight:600;color:var(--kp-text-muted);line-height:1;white-space:nowrap}.kp-stu-progress__ok{color:#15803d}.kp-stu-progress__bad{color:#b91c1c}.kp-stu-progress__pending{color:#64748b;font-weight:600}.kp-students__exam-ready{display:inline-flex;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:700;white-space:nowrap}.kp-students__exam-ready--yes{background:#dcfce7;color:#15803d}.kp-students__exam-ready--no{background:#f1f5f9;color:#64748b}.kp-students__exam-ready--unknown{background:transparent;color:var(--kp-text-muted);padding:0}.kp-students__exam-cell{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.kp-student-stats-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#0f172a73;display:flex;justify-content:flex-end}.kp-student-stats-drawer{width:min(480px,100vw);height:100%;max-height:100vh;overflow:auto;border-radius:0;padding:16px 18px 24px;display:flex;flex-direction:column;gap:14px}.kp-student-stats-drawer__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.kp-student-stats-drawer__head h2{margin:0;font-size:1.15rem}.kp-student-stats-drawer__sub{margin:4px 0 0;font-size:12px;color:var(--kp-text-muted)}.kp-student-stats-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.kp-student-stats-kpis--secondary{margin-top:-4px}.kp-student-stats-drawer__sub--inline{margin:-6px 0 0}.kp-student-stats-kpi{text-align:center;padding:10px 8px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0}.kp-student-stats-kpi--ok{background:#f0fdf4;border-color:#86efac}.kp-student-stats-kpi--bad{background:#fef2f2;border-color:#fecaca}.kp-student-stats-kpi__num{display:block;font-size:1.5rem;font-weight:800;line-height:1.1}.kp-student-stats-kpi__label{display:block;margin-top:4px;font-size:11px;font-weight:700;color:var(--kp-text-muted);text-transform:uppercase;letter-spacing:.04em}.kp-student-stats-extra{margin:0;font-size:12px;color:var(--kp-text-muted);line-height:1.45}.kp-student-stats-bar{display:flex;height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden}.kp-student-stats-bar__ok{display:block;height:100%;background:#22c55e}.kp-student-stats-bar__bad{display:block;height:100%;background:#ef4444}.kp-student-stats-lessons h3{margin:0 0 8px;font-size:13px;font-weight:700}.kp-student-stats-table{width:100%;border-collapse:collapse;font-size:12px}.kp-student-stats-table th,.kp-student-stats-table td{padding:6px 8px;text-align:left;border-bottom:1px solid #e2e8f0}.kp-student-stats-table th{font-weight:700;color:var(--kp-text-muted)}.kp-student-stats-att--ok{color:#15803d;font-weight:700}.kp-student-stats-att--bad{color:#b91c1c;font-weight:700}.kp-student-stats-att--warn{color:#b45309;font-weight:600}.kp-student-stats-att--muted{color:var(--kp-text-muted)}.import-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.import-modal{background:#fff;border-radius:14px;width:min(720px,100%);max-height:92vh;display:flex;flex-direction:column;box-shadow:0 24px 60px #0f172a40;overflow:hidden}.import-modal--wide{width:min(960px,100%)}.import-modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.import-modal__header h3{margin:0;font-size:18px;color:#0f172a}.import-modal__close{background:transparent;border:0;font-size:18px;cursor:pointer;color:#64748b;width:28px;height:28px;border-radius:6px}.import-modal__close:hover{background:#e2e8f0;color:#0f172a}.import-modal__body{padding:16px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.import-modal__step{border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;background:#fbfdff}.import-modal__step h4{margin:0 0 6px;font-size:14px;color:#0f172a}.import-modal__hint{margin:0 0 10px;font-size:13px;color:#475569}.import-modal__file-info{margin-top:8px;font-size:12px;color:#475569}.import-modal__actions-row{display:flex;gap:8px;flex-wrap:wrap}.import-modal__btn-primary,.import-modal__btn-secondary{border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s}.import-modal__btn-primary{background:#2563eb;color:#fff}.import-modal__btn-primary:disabled{background:#94a3b8;cursor:not-allowed}.import-modal__btn-primary:not(:disabled):hover{background:#1d4ed8}.import-modal__btn-secondary{background:#fff;color:#0f172a;border-color:#cbd5f5}.import-modal__btn-secondary:disabled{color:#94a3b8;cursor:not-allowed}.import-modal__btn-secondary:not(:disabled):hover{background:#eef2ff}.import-modal__error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:10px 12px;border-radius:8px;font-size:13px}.import-modal__success-hint{background:#ecfdf5;border:1px solid #bbf7d0;color:#065f46;padding:10px 12px;border-radius:8px;font-size:13px}.import-modal__summary{border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;background:#fff;display:flex;flex-direction:column;gap:10px}.import-modal__summary-row{display:flex;flex-wrap:wrap;gap:8px}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge-info{background:#e0f2fe;color:#075985}.badge-ok{background:#dcfce7;color:#166534}.badge-err{background:#fee2e2;color:#b91c1c}.badge-warn{background:#fef3c7;color:#92400e}.import-modal__errors-table{max-height:240px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:8px}.import-modal__errors-table table{width:100%;border-collapse:collapse;font-size:12px}.import-modal__errors-table th,.import-modal__errors-table td{text-align:left;padding:8px 10px;border-bottom:1px solid #f1f5f9}.import-modal__errors-table th{background:#f8fafc;color:#475569;position:sticky;top:0}.import-modal__errors-table .muted{color:#94a3b8}.import-modal__footer{padding:12px 20px;border-top:1px solid #e2e8f0;background:#f8fafc;display:flex;justify-content:flex-end}.kp-training-period{max-width:420px}.kp-training-period__form{display:flex;flex-direction:column;gap:12px;padding:0 16px 16px}.kp-training-period__field{display:flex;flex-direction:column;gap:4px}.kp-training-period__hint{margin:0;font-size:.85rem;color:var(--kp-muted, #666)}.kp-training-period__error{color:var(--kp-danger, #c0392b);font-size:.9rem}.kp-training-period__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.kp-cohort-manage{max-width:640px;width:min(96vw,640px)}.kp-cohort-manage__body{padding:0 16px 16px;display:flex;flex-direction:column;gap:12px;max-height:min(70vh,520px);overflow:auto}.kp-cohort-manage__field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--kp-text-muted)}.kp-cohort-manage__error{color:var(--kp-danger, #c0392b);font-size:13px}.kp-cohort-manage__tree{display:flex;flex-direction:column;gap:12px}.kp-cohort-manage__group{border:1px solid var(--kp-border, #e2e8f0);border-radius:8px;padding:10px 12px}.kp-cohort-manage__group-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.kp-cohort-manage__group-btns{display:flex;gap:6px;flex-wrap:wrap}.kp-cohort-manage__group ul{list-style:none;margin:0;padding:0}.kp-cohort-manage__group li{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-top:1px solid var(--kp-border, #f0f0f0);font-size:13px}.kp-cohort-manage__group li small{color:var(--kp-text-muted)}.kp-cohort-manage__empty{color:var(--kp-text-muted);font-size:13px;margin:0}.kp-cohort-manage__danger{color:var(--kp-danger, #c0392b)}.kp-students{display:flex;flex-direction:column;gap:14px;width:100%;flex:1 1 auto;min-height:0;height:100%;max-height:100%;overflow:hidden}.kp-students__header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;flex-shrink:0}.kp-students__header h1{margin:0 0 4px;font-size:22px}.kp-students__header p{margin:0;color:var(--kp-text-muted);font-size:13px}.kp-students__toolbar{display:grid;gap:10px;padding:12px 14px;align-items:center;flex-shrink:0}.kp-students__toolbar--search{grid-template-columns:1fr 200px auto}.kp-students__toolbar--cohort{display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap;padding:8px 12px}.kp-students__cohort-filter-label{flex:0 0 auto;font-size:12px;font-weight:600;color:var(--kp-text-muted);white-space:nowrap}.kp-students__cohort-filter-fields{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.kp-students__cohort-filter-fields .kp-input--compact{width:112px;max-width:112px;min-width:0;padding:6px 8px;font-size:12.5px}.kp-students__cohort-filter-fields .kp-btn--compact{padding:6px 10px;font-size:12px;white-space:nowrap}.kp-students__cohort-cell{white-space:nowrap;font-size:13px}.kp-students__sort{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:none;font:inherit;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--kp-text-muted);cursor:pointer}.kp-students__sort:hover{color:var(--kp-primary-strong)}.kp-students__sort--active{color:var(--kp-primary-strong);font-weight:700}.kp-students__sort-icon{font-size:10px;opacity:.85}.kp-students__cohort--empty{color:var(--kp-text-muted)}.kp-students>.kp-card.kp-error{flex-shrink:0}.kp-students__table-wrapper{padding:0;flex:1 1 auto;min-height:200px;overflow:auto;-webkit-overflow-scrolling:touch}.kp-students__table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}.kp-students__table th,.kp-students__table td{padding:4px 8px;text-align:left;vertical-align:middle}.kp-students__nowrap,.kp-cell-nowrap{white-space:nowrap}.kp-students__tc-col{font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--kp-text-muted);width:1%}.kp-students__name-col strong{font-weight:600}.kp-students__contact-col{width:1%}.kp-students__actions-col{width:1%;white-space:nowrap}.kp-students__table thead th{position:sticky;top:0;z-index:2;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--kp-text-muted);box-shadow:0 1px 0 var(--kp-border)}.kp-students__sub{display:block;color:var(--kp-text-muted);font-size:10px;margin-top:1px;line-height:1.15}.kp-students__contact{display:inline-flex;align-items:center;gap:6px}.kp-students__exam-col{width:1%;font-size:12.5px;line-height:1.2}.kp-students__exam-inline{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap}.kp-students__exam-date{font-weight:500}.kp-students__exam-meta{font-size:10px;font-weight:600;color:var(--kp-text-muted)}.kp-students__exam-countdown:before{content:"·";margin-right:4px;font-weight:400}.kp-students__exam-col--soon .kp-students__exam-date{color:var(--kp-warn);font-weight:700}.kp-students__exam-col--soon .kp-students__exam-countdown{color:var(--kp-warn)}.kp-students__exam-col--past{color:var(--kp-text-muted)}.kp-students__exam-col--past .kp-students__exam-date{text-decoration:line-through}.kp-students__status{display:inline-flex;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600}.kp-students__status--active{background:var(--kp-success-soft);color:var(--kp-success)}.kp-students__status--passive{background:#f1f5f9;color:var(--kp-text-muted)}.kp-students__status--graduated{background:var(--kp-primary-soft);color:var(--kp-primary-strong)}.kp-students__progress-cell{vertical-align:middle}.kp-students__row-actions{display:inline-flex;gap:4px;flex-wrap:nowrap;white-space:nowrap}.kp-students__action{padding:3px 8px;font-size:11px}.kp-students__bulk-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--kp-border);background:#eef2ff;font-size:13px}.kp-students__bulk-bar strong{font-weight:700}.kp-students__bulk-actions{display:inline-flex;gap:6px;flex-wrap:wrap}.kp-students__bulk-actions .kp-btn{padding:5px 10px;font-size:12px;white-space:nowrap}.kp-students__select-col{width:32px;text-align:center;padding-left:6px!important;padding-right:6px!important}.kp-students__select-col input{width:14px;height:14px;margin:0;cursor:pointer}.kp-students__status-col{width:1%;white-space:nowrap}.kp-students__status-readonly{display:inline-flex;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600}.kp-students__pagination{display:flex;align-items:center;justify-content:center;gap:12px;font-size:13px;color:var(--kp-text-muted);flex-shrink:0}@media (max-width: 700px){.kp-students__toolbar{grid-template-columns:1fr}}.kp-sys{display:flex;flex-direction:column;gap:16px}.kp-sys__loading{padding:24px;text-align:center;color:#64748b}.kp-sys__header p{margin:0;color:#64748b;font-size:13px}.kp-sys__cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.kp-sys__reco{padding:14px 16px;border-left:4px solid #cbd5e1}.kp-sys__reco--ok{border-left-color:#16a34a}.kp-sys__reco--warn{border-left-color:#f59e0b}.kp-sys__reco--critical{border-left-color:#dc2626}.kp-sys__reco-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.kp-sys__reco p{margin:4px 0;font-size:13px;color:#334155}.kp-sys__reco-action{color:#64748b}.kp-sys__badge{font-size:11px;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:#e2e8f0;color:#475569}.kp-sys__badge--ok{background:#dcfce7;color:#166534}.kp-sys__badge--warn{background:#fef3c7;color:#92400e}.kp-sys__badge--critical{background:#fee2e2;color:#991b1b}.kp-sys__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px}.kp-sys__panel{padding:16px 18px}.kp-sys__panel h2{margin:0 0 12px;font-size:16px}.kp-sys__panel h3{margin:16px 0 8px;font-size:13px;color:#475569;text-transform:uppercase;letter-spacing:.03em}.kp-sys__panel dl{display:flex;flex-direction:column;gap:8px;margin:0}.kp-sys__panel dl>div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.kp-sys__panel dt{color:#64748b}.kp-sys__panel dd{margin:0;font-weight:600;color:#0f172a;text-align:right}.kp-sys__meter{height:8px;border-radius:999px;background:#e2e8f0;margin-top:10px;overflow:hidden}.kp-sys__meter-fill{height:100%;background:#16a34a;border-radius:999px;transition:width .3s ease}.kp-sys__meter-fill--warn{background:#dc2626}.kp-sys__table{width:100%;border-collapse:collapse;font-size:13px}.kp-sys__table th,.kp-sys__table td{text-align:left;padding:6px 8px;border-bottom:1px solid #f1f5f9}.kp-sys__table th{color:#64748b;font-weight:600}.kp-sys__empty{color:#64748b;font-size:13px}.kp-sys__hint{color:#64748b;font-size:13px;margin:0 0 12px}.kp-sys__setting{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-top:1px solid #f1f5f9}.kp-sys__setting-info{display:flex;flex-direction:column;gap:2px}.kp-sys__setting-info strong{font-size:14px}.kp-sys__setting-info span{font-size:12.5px;color:#64748b}.kp-sys__setting-info small{font-size:11.5px;color:#94a3b8}.kp-sys__setting-error{color:#dc2626!important}.kp-sys__setting-controls{display:flex;gap:8px;align-items:center;flex-shrink:0}.kp-sys__setting-controls .kp-input{width:120px}.kp-sys__links{margin:0;padding-left:18px;font-size:13.5px;color:#334155;display:flex;flex-direction:column;gap:8px}@media (max-width: 720px){.kp-sys__setting{flex-direction:column;align-items:stretch}}.kp-users{display:flex;flex-direction:column;gap:14px;width:100%;flex:1 1 auto}.kp-users__header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.kp-users__header h1{margin:0 0 4px;font-size:22px}.kp-users__header p{margin:0;color:var(--kp-text-muted);font-size:13px;max-width:760px}.kp-users__header-actions{display:flex;gap:8px}.kp-users__filters{padding:12px 14px}.kp-users__filters-row{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px}.kp-users__table-wrap{padding:0;overflow-x:auto}.kp-users__table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}.kp-users__table th,.kp-users__table td{padding:8px 12px;text-align:left}.kp-users__table thead th{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--kp-text-muted)}.kp-users__row--passive td{opacity:.6}.kp-users__me{margin-left:6px;color:var(--kp-primary);font-size:11.5px;font-weight:600}.kp-users__status{display:inline-flex;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:600}.kp-users__status--active{background:#ecfdf5;color:#065f46}.kp-users__status--passive{background:#fef2f2;color:#991b1b}.kp-user__badge{display:inline-flex;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:600}.kp-user__badge--tenant_admin{background:#fdf4ff;color:#86198f}.kp-user__badge--manager{background:#eff6ff;color:#1d4ed8}.kp-user__badge--instructor{background:#fffbeb;color:#b45309}.kp-user__badge--student{background:#f0fdf4;color:#15803d}.kp-users__actions{display:flex;gap:6px;flex-wrap:wrap}.kp-users__pagination{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-top:1px solid var(--kp-border);background:#fafbff}.kp-users__pagination-buttons{display:flex;gap:6px}@media (max-width: 900px){.kp-users__filters-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 540px){.kp-users__filters-row{grid-template-columns:1fr}}.kp-km-form{max-width:460px}.kp-km-form__body{display:flex;flex-direction:column;gap:12px}.kp-km-form__current{display:flex;justify-content:space-between;align-items:baseline;background:var(--kp-primary-soft);color:var(--kp-primary-strong);padding:10px 14px;border-radius:var(--kp-radius-sm);font-size:13px}.kp-km-form__current strong{font-size:18px}.kp-km-form__field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--kp-text-muted)}.kp-km-form__field small{color:var(--kp-text-muted);font-size:11px}.kp-km-form__delta{background:var(--kp-success-soft);color:var(--kp-success);padding:8px 12px;border-radius:var(--kp-radius-sm);font-size:13px}.kp-km-form__error{background:var(--kp-danger-soft);color:var(--kp-danger);padding:9px 12px;border-radius:var(--kp-radius-sm);font-size:13px}.kp-km-form__actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.kp-vehicle-form{max-width:680px}.kp-vehicle-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.kp-vehicle-form__field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--kp-text-muted)}.kp-vehicle-form__field--full{grid-column:1 / -1}.kp-vehicle-form__error{grid-column:1 / -1;background:var(--kp-danger-soft);color:var(--kp-danger);padding:9px 12px;border-radius:var(--kp-radius-sm);font-size:13px}.kp-vehicle-form__actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px;margin-top:4px;flex-wrap:wrap}@media (max-width: 600px){.kp-vehicle-form__grid{grid-template-columns:1fr}}.kp-vehicles{display:flex;flex-direction:column;gap:14px;width:100%;flex:1 1 auto;min-height:0;height:100%;max-height:100%;overflow:hidden}.kp-vehicles__header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;flex-shrink:0}.kp-vehicles__header h1{margin:0 0 4px;font-size:22px}.kp-vehicles__header p{margin:0;color:var(--kp-text-muted);font-size:13px}.kp-vehicles__toolbar{display:grid;grid-template-columns:1fr 180px 200px auto;gap:10px;padding:12px 14px;align-items:center;flex-shrink:0}.kp-vehicles>.kp-card.kp-error{flex-shrink:0}.kp-vehicles__table-wrapper{padding:0;flex:1 1 auto;min-height:200px;overflow:auto;-webkit-overflow-scrolling:touch}.kp-vehicles__table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}.kp-vehicles__table th,.kp-vehicles__table td{padding:8px 12px;text-align:left}.kp-vehicles__table thead th{position:sticky;top:0;z-index:2;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--kp-text-muted);box-shadow:0 1px 0 var(--kp-border)}.kp-vehicles__plate{font-weight:600}.kp-vehicles__sub{display:block;color:var(--kp-text-muted);font-size:11px;margin-top:2px}.kp-vehicles__deadline{display:flex;flex-direction:column;gap:2px}.kp-vehicles__deadline small{font-size:11px;color:var(--kp-text-muted)}.kp-vehicles__deadline--soon span{color:var(--kp-warn);font-weight:600}.kp-vehicles__deadline--soon small{color:var(--kp-warn)}.kp-vehicles__deadline--very-soon span{color:var(--kp-danger);font-weight:700}.kp-vehicles__deadline--very-soon small{color:var(--kp-danger)}.kp-vehicles__deadline--expired span{text-decoration:line-through;color:var(--kp-text-muted)}.kp-vehicles__deadline--expired small{color:var(--kp-danger);font-weight:600}.kp-vehicles__status{display:inline-flex;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600}.kp-vehicles__status--active{background:var(--kp-success-soft);color:var(--kp-success)}.kp-vehicles__status--passive{background:#f1f5f9;color:var(--kp-text-muted)}.kp-vehicles__row-actions{display:flex;gap:6px;flex-wrap:wrap}.kp-vehicles__action{padding:4px 10px;font-size:12px}.kp-vehicles__pagination{display:flex;align-items:center;justify-content:center;gap:12px;font-size:13px;color:var(--kp-text-muted);flex-shrink:0}@media (max-width: 800px){.kp-vehicles__toolbar{grid-template-columns:1fr}}:root{--kp-bg: #f4f6fb;--kp-bg-elevated: #ffffff;--kp-text: #14213d;--kp-text-muted: #5b6478;--kp-border: #e2e6ef;--kp-border-strong: #c8cfdd;--kp-primary: #2563eb;--kp-primary-strong: #1d4ed8;--kp-primary-soft: #e8efff;--kp-success: #15803d;--kp-success-soft: #dcfce7;--kp-warn: #b45309;--kp-warn-soft: #fef3c7;--kp-danger: #b91c1c;--kp-danger-soft: #fee2e2;--kp-shadow: 0 1px 2px rgba(20, 33, 61, .04), 0 4px 16px rgba(20, 33, 61, .06);--kp-radius: 10px;--kp-radius-sm: 6px;--kp-font-data-size: 13px;--kp-font-data-line: 1.35;--kp-font-table-head-size: 11px;--kp-font-table-head-line: 1.25;--kp-lesson-normal: #0ea5e9;--kp-lesson-normal-text: #0369a1;--kp-lesson-normal-soft: #bae6fd;--kp-lesson-normal-border: #0284c7;--kp-lesson-extra: #eab308;--kp-lesson-extra-text: #a16207;--kp-lesson-extra-soft: #fef08a;--kp-lesson-extra-border: #ca8a04;--kp-lesson-special: #ef4444;--kp-lesson-special-text: #b91c1c;--kp-lesson-special-soft: #fecaca;--kp-lesson-special-border: #dc2626}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100%;margin:0}#root{display:flex;flex-direction:column}#root>.kp-shell{flex:1 1 auto;min-height:0}body{font-family:Segoe UI,Inter,-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,sans-serif;font-size:14px;color:var(--kp-text);background:var(--kp-bg);-webkit-font-smoothing:antialiased}a{color:var(--kp-primary);text-decoration:none}button{font-family:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}input,select,textarea{font-family:inherit;font-size:14px}.kp-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:var(--kp-radius-sm);border:1px solid var(--kp-border-strong);background:var(--kp-bg-elevated);color:var(--kp-text);font-weight:500;transition:background .15s ease,border-color .15s ease}.kp-btn:hover:not(:disabled){background:#f7f9fd}.kp-btn--primary{background:var(--kp-primary);border-color:var(--kp-primary);color:#fff}.kp-btn--primary:hover:not(:disabled){background:var(--kp-primary-strong);border-color:var(--kp-primary-strong)}.kp-btn--ghost{background:transparent;border-color:transparent}.kp-input{width:100%;padding:9px 12px;border-radius:var(--kp-radius-sm);border:1px solid var(--kp-border-strong);background:var(--kp-bg-elevated);color:var(--kp-text);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.kp-input:focus{border-color:var(--kp-primary);box-shadow:0 0 0 3px #2563eb26}.kp-card{background:var(--kp-bg-elevated);border:1px solid var(--kp-border);border-radius:var(--kp-radius);box-shadow:var(--kp-shadow)}.kp-loading,.kp-empty,.kp-error{padding:16px;text-align:center;color:var(--kp-text-muted)}.kp-error{color:var(--kp-danger)}.kp-form-status{display:flex;flex-direction:column;gap:4px}.kp-form-status__toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--kp-text);cursor:pointer}.kp-form-status__hint{font-size:11px;color:var(--kp-text-muted);line-height:1.35}.kp-tnum{font-variant-numeric:tabular-nums}.kp-data-table tbody td{font-family:inherit;font-size:var(--kp-font-data-size);line-height:var(--kp-font-data-line);font-weight:400;color:var(--kp-text)}.kp-data-table thead .kp-th-meta{font-size:var(--kp-font-table-head-size);line-height:var(--kp-font-table-head-line);font-weight:600;text-transform:none;letter-spacing:normal;color:var(--kp-text-muted)}.kp-proper-case{text-transform:none}.kp-data-table{width:100%;border-collapse:separate;border-spacing:0}.kp-data-table th,.kp-data-table td{vertical-align:middle;border-bottom:1px solid var(--kp-border)}.kp-data-table tbody tr:nth-child(odd){background:var(--kp-bg-elevated)}.kp-data-table tbody tr:nth-child(2n){background:#f8fafc}.kp-data-table tbody tr:hover{background:#eef2ff}.kp-data-table thead th{position:sticky;top:0;z-index:2;background:#f4f6fb;border-bottom:1px solid var(--kp-border-strong)}.kp-cell-nowrap{white-space:nowrap}.kp-cell-phone{white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.02em}
