
:root{
  --bg:#f8f7fc;
  --card:#ffffff;
  --text:#2d2940;
  --muted:#77728b;
  --line:#e8e3f2;
  --purple:#8f75d6;
  --purple-soft:#eee8ff;
  --blue-soft:#e9f4ff;
  --pink-soft:#ffeaf4;
  --danger:#c95d76;
  --shadow:0 10px 30px rgba(70,55,110,.08);
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:var(--bg); color:var(--text);
}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.app-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}
.sidebar{
  background:#fff; border-right:1px solid var(--line); padding:26px 18px;
  display:flex; flex-direction:column; gap:20px; position:sticky; top:0; height:100vh;
}
.brand-lockup{display:flex;align-items:center;gap:10px}
.brand-icon{width:40px;height:40px;object-fit:contain;flex:0 0 auto}
.brand{font-weight:800;font-size:20px}
.brand-sub{color:var(--muted);font-size:13px;margin-top:4px}
.main{padding:32px;max-width:1300px;width:100%;margin:0 auto}
.card{
  background:var(--card); border:1px solid var(--line); border-radius:22px; padding:22px; box-shadow:var(--shadow);
}
.student-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}
h1,h2,h3,p{margin-top:0}
h1{font-size:30px;margin-bottom:6px}
h2{font-size:20px;margin-bottom:0}
.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:11px;color:var(--purple);font-weight:800;margin-bottom:6px}
.muted{color:var(--muted)}
.tiny{font-size:12px}
.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.header-actions{display:flex;gap:8px;flex-wrap:wrap}
.student-back-button{margin-bottom:12px}
.primary,.secondary,.danger.ghost{
  border-radius:12px;padding:10px 14px;border:1px solid transparent;font-weight:700;
}
.primary{background:var(--purple);color:#fff}
.secondary{background:#fff;color:var(--text);border-color:var(--line)}
.danger.ghost{background:#fff;color:var(--danger);border-color:#f1cbd4}
.full{width:100%}
.empty-state{min-height:75vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:560px;margin:0 auto}
.empty-icon{font-size:52px;margin-bottom:14px}
.program-list{display:flex;flex-direction:column;gap:14px;margin-top:18px}
.program-section{
  border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fcfbff
}
.program-section-title{padding:12px 14px;font-weight:800;background:var(--purple-soft)}
.program-topic{padding:10px 14px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px}
.program-topic-index{width:28px;color:var(--muted);font-size:12px}
.empty-program{padding:28px;text-align:center;color:var(--muted);border:1px dashed #d8d0eb;border-radius:16px;margin-top:18px}
.modal-backdrop{
  position:fixed;inset:0;background:rgba(32,25,54,.38);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100;
}
.modal{
  width:min(720px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:24px;padding:22px;box-shadow:0 30px 80px rgba(34,24,60,.2)
}
.modal.large{width:min(1120px,98vw)}
.modal.small{width:min(560px,96vw)}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.icon-btn{border:0;background:#f4f1fa;width:36px;height:36px;border-radius:50%;font-size:22px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700}
input,select,textarea{
  border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:#fff;color:var(--text);outline:none
}
textarea{resize:vertical;min-height:92px}
input:focus,select:focus,textarea:focus{border-color:#bba9ed;box-shadow:0 0 0 3px rgba(143,117,214,.12)}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.tabs{display:flex;gap:8px;flex-wrap:wrap}
.tab{
  border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;font-weight:700
}
.tab.active{background:var(--purple-soft);border-color:#cabcf0}
.template-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap}
.builder-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.bank-panel,.selected-panel{border:1px solid var(--line);border-radius:18px;padding:14px;min-height:520px;background:#fdfcff}
.panel-title{font-weight:800;margin-bottom:12px}
.panel-title-row{display:flex;justify-content:space-between;gap:12px}
.topic-section{border:1px solid var(--line);border-radius:14px;margin-bottom:10px;overflow:hidden;background:#fff}
.topic-section summary{cursor:pointer;padding:12px 14px;font-weight:800;background:#faf8ff}
.topic-subsection{margin:8px 10px;border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden}
.topic-subsection > summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;font-weight:750;background:#fcfbff;cursor:pointer}
.topic-subsection .topic-subsection{margin-left:18px}
.topic-subsection .topic-bank-item{padding-left:18px}
.branch-select-all{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
.topic-bank-item{
  display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--line);font-size:14px
}
.topic-bank-item input{accent-color:var(--purple)}
.custom-add{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.selected-topics{display:flex;flex-direction:column;gap:8px}
.selected-item{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff
}
.drag-handle{color:#aaa;user-select:none}
.selected-item .grow{flex:1}
.selected-item small{display:block;color:var(--muted);margin-top:2px}
.program-topic-path{display:block;margin-top:2px;color:var(--muted);font-size:11px}
.selected-item button{border:0;background:#f8f5fb;border-radius:8px;padding:6px 8px}
.schedule-rows{display:flex;flex-direction:column;gap:10px}
.schedule-row{display:grid;grid-template-columns:1.1fr .9fr .9fr .9fr 1fr 1fr auto;gap:8px;align-items:end}
.schedule-row button{height:42px}
.schedule-summary{margin-top:18px;display:flex;flex-direction:column;gap:7px}
.schedule-chip{display:inline-flex;align-items:center;gap:8px;background:var(--blue-soft);padding:8px 10px;border-radius:10px;width:max-content}
.custom-template-wrap{display:flex;gap:8px;flex-wrap:wrap}
.template-chip{border:1px solid #f2c5db;background:var(--pink-soft);padding:8px 11px;border-radius:999px;font-weight:700}
@media(max-width:900px){
  .app-shell{grid-template-columns:1fr}
  .sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}
  .main{padding:18px}
  .grid.two,.builder-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .student-header,.card-head{flex-direction:column}
  .header-actions{width:100%}
  .header-actions button{flex:1}
  .schedule-row{grid-template-columns:1fr 1fr}
  .schedule-row button{grid-column:1/-1}
  .custom-add{grid-template-columns:1fr}
}


/* Calendar */
.calendar-card{overflow-x:auto}
.week-calendar{
  min-width:900px;
  display:grid;
  grid-template-columns:repeat(7,minmax(120px,1fr));
  gap:10px;
}
.calendar-day{
  min-height:420px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fcfbff;
  overflow:hidden;
}
.calendar-day.today{border-color:#bba9ed}
.calendar-day-head{
  padding:11px 12px;
  border-bottom:1px solid var(--line);
  background:#faf8ff;
  position:sticky;
  top:0;
  z-index:1;
}
.calendar-day-name{font-weight:800;font-size:13px}
.calendar-day-date{color:var(--muted);font-size:12px;margin-top:2px}
.lesson-card{
  width:calc(100% - 12px);
  margin:6px;
  padding:10px;
  text-align:left;
  border:1px solid #d9d0ef;
  background:var(--purple-soft);
  border-radius:12px;
  color:var(--text);
}
.lesson-card:hover{border-color:#bba9ed}
.lesson-card.personal-event-card{
  background:#eef8f3;
  border-color:#bcdccb;
}
.lesson-card.personal-event-card .lesson-time{color:#39785a}
.lesson-time{font-size:12px;color:var(--purple);font-weight:800}
.lesson-name{font-weight:800;margin-top:2px}
.lesson-name-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.lesson-topic{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.35}
.calendar-conflict-count{display:inline-flex;align-items:center;justify-content:center;min-width:27px;height:22px;padding:0 7px;border-radius:999px;background:var(--purple);color:#fff;font-size:11px;font-weight:900;flex-shrink:0}
.calendar-conflict-collapsed{box-shadow:3px 3px 0 #d9d0ef,6px 6px 0 #eee9f8}
.calendar-conflict-group{margin:6px;padding:5px;border:1px solid #d9d0ef;border-radius:14px;background:#f7f4fc}
.calendar-conflict-group .lesson-card{width:100%;margin:0 0 5px}
.calendar-conflict-collapse{width:100%;border:0;border-radius:9px;padding:6px;background:#ece6f7;color:var(--purple);font-size:11px;font-weight:800;cursor:pointer}
.calendar-conflict-collapse:hover{background:#e3daf3}
.lesson-info{display:grid;gap:10px}
.lesson-info-row{
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fcfbff;
}
.lesson-info-row b{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}

.select-all-line{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:7px;
  font-weight:700;
  font-size:12px;
  cursor:pointer;
}
.select-all-line input,.section-select-all input{accent-color:var(--purple)}
.bank-title-row{align-items:center}
.topic-section summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.section-summary-title{flex:1}
.section-select-all{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  font-weight:700;
  color:var(--muted);
}
.move-controls{display:flex;gap:4px}
.move-controls button{padding:5px 7px;min-width:30px}
.selected-item.dragging{opacity:.45}
.selected-item.drag-over{border-color:#a994e1;background:#f5f0ff}
.selected-item{touch-action:auto}

@media(max-width:900px){
  .week-calendar{min-width:760px}
}

.drag-handle{
  cursor:grab;
  touch-action:none;
  user-select:none;
  padding:8px 6px;
  margin:-8px 0 -8px -4px;
}
.drag-handle:active{cursor:grabbing}


/* v6 lesson planning */
.current-topic-badge{
  display:inline-block;
  margin-left:7px;
  padding:2px 7px;
  border-radius:999px;
  background:var(--purple-soft);
  color:var(--purple);
  font-size:10px;
  font-weight:800;
  vertical-align:middle;
}
.lesson-badge{
  margin-top:7px;
  font-size:10px;
  font-weight:800;
  color:var(--muted);
}
.lesson-editor{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid var(--line);
}
.lesson-editor-title{
  font-size:16px;
  font-weight:800;
  margin-bottom:9px;
}
.lesson-topic-card{
  margin-top:12px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fcfbff;
}
.lesson-topic-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.lesson-topic-card-head .lesson-editor-title{margin:0}
.compact-button{padding:7px 11px;font-size:12px;flex:0 0 auto}
.lesson-topic-summary{min-width:0;margin-top:5px}
.lesson-topic-primary{font-size:14px;font-weight:800;line-height:1.35;overflow-wrap:anywhere}
.lesson-topic-summary-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}
.lesson-topic-chip{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:4px 8px;
  border-radius:999px;
  background:#eee9f8;
  color:var(--purple);
  font-size:11px;
  font-weight:800;
  line-height:1.25;
}
.lesson-topic-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lesson-topic-status{color:var(--muted);background:#f1eff4}
.lesson-topic-override-note{margin-top:7px;color:var(--muted);font-size:11px;line-height:1.35}
.lesson-topic-editor{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.lesson-topic-editor>label{display:flex;flex-direction:column;gap:6px}
.topic-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;border-radius:11px;background:#f1eef6}
.topic-mode-switch label{position:relative;cursor:pointer}
.topic-mode-switch input{position:absolute;opacity:0;pointer-events:none}
.topic-mode-switch span{display:flex;justify-content:center;padding:8px 10px;border:1px solid transparent;border-radius:8px;color:var(--muted);font-size:12px;font-weight:900}
.topic-mode-switch input:checked+span{border-color:#d3c7e5;background:#fff;color:var(--purple);box-shadow:0 1px 3px rgba(45,31,68,.08)}
.topic-editor-subtitle{margin-top:2px;font-size:12px;font-weight:900;color:var(--muted)}
.topic-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:2px}
.suggested-topic{
  padding:11px 12px;
  border-radius:12px;
  background:var(--purple-soft);
  margin-bottom:12px;
}
.suggested-label{color:var(--muted);font-size:12px;margin-right:5px}
.lesson-choice{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:10px;
  padding:11px 10px;
  border-radius:12px;
  cursor:pointer;
}
.lesson-choice:hover{background:#faf8ff}
.lesson-choice input{
  margin-top:3px;
  accent-color:var(--purple);
}
.lesson-choice span{display:block}
.lesson-choice b{display:block;font-size:14px}
.lesson-choice small{display:block;color:var(--muted);font-weight:400;margin-top:2px}
.lesson-option-extra{padding:0 10px 10px 38px}
.lesson-option-extra select,.lesson-option-extra input{width:100%}
.lesson-status-label{margin-top:12px}
.lesson-status-help{margin-top:6px}
.lesson-modal-actions{flex-wrap:wrap}
.lesson-finance-editor{
  margin-top:16px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--blue-soft);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(150px,.55fr) minmax(150px,.55fr);
  gap:12px;
  align-items:end;
}
.lesson-finance-editor .lesson-editor-title{margin-bottom:4px}
.lesson-conduct-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.lesson-action-fields{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.custom-template-item{
  display:inline-flex;
  align-items:center;
  gap:3px;
}
.template-delete{
  border:0;
  background:transparent;
  color:var(--danger);
  font-size:18px;
  line-height:1;
  padding:6px;
  border-radius:8px;
}
.template-delete:hover{background:#fff0f4}


/* v7 schedule + editable calendar */
.schedule-rules-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:16px;
}
.schedule-student-card{min-width:0}
.schedule-rule-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.schedule-rule-chip{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fcfbff;
}
.schedule-rule-chip span{font-size:11px;color:var(--muted);text-align:right}
.schedule-rule-row{
  grid-template-columns:1.05fr .7fr .75fr .85fr 1fr 1fr auto;
  align-items:end;
}
.schedule-chip .tiny{margin-left:6px;color:var(--muted)}
.lesson-calendar-actions{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid var(--line);
}
.calendar-moved{
  background:#fff0d9;
  border-color:#e9bd7d;
}
.calendar-canceled{
  background:#ffe4e8;
  border-color:#e8a8b2;
  opacity:.85;
}
.calendar-canceled .lesson-topic{
  text-decoration:line-through;
}
.action-scope{margin-top:14px}
.lesson-choice.compact{padding:9px 8px}
.undo-toast{
  position:fixed;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  z-index:300;
  display:flex;
  align-items:center;
  gap:14px;
  max-width:min(560px,calc(100vw - 28px));
  background:#2f2941;
  color:#fff;
  padding:12px 14px;
  border-radius:14px;
  box-shadow:0 14px 40px rgba(30,24,45,.22);
}
.undo-toast button{
  border:0;
  border-radius:9px;
  padding:7px 10px;
  background:#fff;
  color:#2f2941;
  font-weight:800;
  white-space:nowrap;
}
@media(max-width:760px){
  .schedule-rule-row{grid-template-columns:1fr 1fr}
  .schedule-rule-row .remove{grid-column:1/-1}
  .lesson-calendar-actions{grid-template-columns:1fr}
  .schedule-rule-chip{align-items:flex-start;flex-direction:column}
  .schedule-rule-chip span{text-align:left}
}


/* v8 — main navigation + Today */
.main-nav{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:18px 0 10px;
}
.nav-btn{
  width:100%;
  border:0;
  border-radius:12px;
  padding:11px 12px;
  background:transparent;
  color:var(--text);
  font-weight:700;
  text-align:left;
  cursor:pointer;
}
.nav-btn:hover{background:#f5f1ff}
.nav-btn.active{
  background:var(--purple-soft);
  color:var(--purple);
}
.sidebar{
  position:relative;
}
.sidebar-version{
  margin-top:0;
  padding-top:0;
  color:var(--muted);
  font-size:11px;
}
.backup-tools{margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}
.backup-tools-title{margin-bottom:8px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.backup-tools-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.backup-tool-btn{min-width:0;border:1px solid var(--line);border-radius:10px;padding:8px 7px;background:#fff;color:var(--text);font-size:11px;font-weight:700}
.backup-tool-btn:hover{background:#f7f4fc;border-color:#d8cfee}
.backup-status{min-height:15px;margin-top:6px;color:var(--muted);font-size:10px;line-height:1.35}
.backup-status.error{color:var(--danger)}
.app-topbar{display:flex;justify-content:flex-end;min-height:40px;margin-bottom:14px;position:relative;z-index:20}
.notification-center{position:relative}
.notification-center-button{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:9px 13px;background:#fff;color:var(--text);font-weight:800;box-shadow:0 5px 16px rgba(70,55,110,.05)}
.notification-center-button:hover,.notification-center-button[aria-expanded="true"]{background:var(--purple-soft);border-color:#d5c8f4;color:var(--purple)}
.notification-center-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(350px,calc(100vw - 36px));padding:17px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 18px 46px rgba(45,35,74,.16)}
.daily-motivation{font-weight:800;line-height:1.5}
.notification-center-feed{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);line-height:1.45}
.cabinet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.cabinet-block{min-width:0}
.cabinet-add-button{display:grid;place-items:center;width:36px;height:36px;border:1px solid #d9cef4;border-radius:50%;background:var(--purple-soft);color:var(--purple);font-size:22px;line-height:1}
.cabinet-add-button:hover{background:#e3d9fb}
.cabinet-list{display:flex;flex-direction:column;gap:9px;margin-top:17px}
.cabinet-empty{padding:25px 12px;border:1px dashed #d8d0eb;border-radius:14px;color:var(--muted);font-size:13px;text-align:center}
.cabinet-entry{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#fcfbff}
.cabinet-project{padding:14px;border:1px solid var(--line);border-radius:15px;background:#fcfbff}
.cabinet-project-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.cabinet-project-tasks{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.cabinet-project-tasks .cabinet-entry{padding:10px;background:#fff}
.cabinet-task-entry{align-items:flex-start}
.cabinet-task-entry>.cabinet-task-check{padding-top:3px}
.cabinet-task-group+.cabinet-task-group{margin-top:17px;padding-top:15px;border-top:1px solid var(--line)}
.cabinet-task-group h3{margin:0 0 9px;font-size:13px}
.cabinet-task-deadline-group{display:flex;flex-direction:column;gap:8px}
.cabinet-task-deadline-group+.cabinet-task-deadline-group{margin-top:16px}
.cabinet-task-deadline-group h3{display:flex;align-items:center;justify-content:space-between;margin:0;color:var(--muted);font-size:12px}
.cabinet-task-deadline-group h3 span{padding:2px 7px;border-radius:999px;background:#f3f0f8;color:var(--text)}
.cabinet-task-deadline-group.is-overdue h3{color:var(--danger)}
.cabinet-sticker-text{white-space:pre-wrap;line-height:1.5;overflow-wrap:anywhere}
.cabinet-sticker-text.is-collapsed{max-height:10.5em;overflow:hidden;mask-image:linear-gradient(to bottom,#000 78%,transparent);-webkit-mask-image:linear-gradient(to bottom,#000 78%,transparent)}
.cabinet-entry-expand{margin-top:8px;padding:0;border:0;background:transparent;color:var(--purple);font-size:11px;font-weight:800}
.cabinet-entry-expand:hover{text-decoration:underline}
.cabinet-project-link{display:inline-flex;padding:4px 7px;border-radius:999px;background:#f0ecf8;color:var(--purple);font-size:10px;font-weight:900}
.cabinet-convert-preview{margin-bottom:16px;padding:13px;border:1px solid var(--line);border-radius:12px;background:#faf8fe;white-space:pre-wrap;line-height:1.45}
.cabinet-entry.completed{opacity:.62;background:#f8f7fa}
.cabinet-entry.completed .cabinet-entry-title{text-decoration:line-through}
.cabinet-entry-main{min-width:0;flex:1}
.cabinet-entry-title{font-weight:900;overflow-wrap:anywhere}
.cabinet-entry-text{margin-top:6px;color:var(--muted);font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.cabinet-entry-actions{display:flex;gap:5px;flex:0 0 auto}
.cabinet-entry-actions button{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:9px;background:#f1edf8;color:var(--muted);font-size:16px}
.cabinet-entry-actions button:hover{background:#e7e0f4;color:var(--purple)}
.cabinet-entry-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}
.cabinet-task-check{display:flex;flex-direction:row;align-items:center;gap:6px;font-size:11px;font-weight:800;cursor:pointer}
.cabinet-task-check input{margin:0;accent-color:var(--purple)}
.cabinet-kind{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:900}
.cabinet-kind.work{background:var(--blue-soft);color:#416b91}
.cabinet-kind.personal{background:var(--pink-soft);color:#9b5674}
.cabinet-entry-text-label{margin-top:14px}
.additional-topics-list{display:flex;flex-direction:column;gap:8px;margin-top:14px;counter-reset:lesson-topic 1}
.additional-topic-row{display:grid;grid-template-columns:24px minmax(0,1fr) 34px;gap:8px;align-items:start}
.additional-topic-row::before{counter-increment:lesson-topic;content:counter(lesson-topic) ".";color:var(--muted);font-size:12px;font-weight:800;text-align:right}
.additional-topic-editor{display:flex;flex-direction:column;gap:8px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:12px;background:#faf8fe}
.additional-topic-kind{display:flex;gap:6px;flex-wrap:wrap}
.additional-topic-kind-button{padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--muted);font-size:12px;font-weight:800}
.additional-topic-kind-button:hover{border-color:#cfc3df;color:var(--purple)}
.additional-topic-kind-button.is-selected{border-color:var(--purple);background:#eee8f7;color:var(--purple)}
.additional-topic-field{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:11px;font-weight:800}
.additional-topic-field select,.additional-topic-field input{width:100%;background:#fff}
.additional-topic-input{min-width:0}
.additional-topic-remove{width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--danger);font-size:20px;line-height:1}
.additional-topic-remove:hover{background:#fff1f4;border-color:#efcad3}
.additional-topic-row.is-compact{grid-template-columns:24px minmax(0,1fr) 34px;align-items:center}
.additional-topic-row.is-compact .additional-topic-editor{display:flex;flex-direction:row;align-items:center;gap:7px;padding:7px 9px}
.additional-topic-row.is-compact .additional-topic-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800}
.additional-topic-row.is-compact .additional-topic-source{flex:0 0 auto;padding:2px 6px;border-radius:999px;background:#eee9f8;color:var(--purple);font-size:9px;font-weight:900}
.additional-topic-row.is-compact .additional-topic-remove{align-self:center}
.add-topic-button{margin-top:9px}
.group-additional-topics{margin-top:16px}
.today-workspace{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(320px,.9fr);
  gap:18px;
  align-items:start;
}
.today-main-column,.today-memory-column{min-width:0}
.today-main-column{display:flex;flex-direction:column;gap:16px}
.today-hero{display:block}
.today-hero-top{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
}
.today-summary{
  color:var(--muted);
  font-size:14px;
  font-weight:800;
  text-align:right;
  line-height:1.5;
}
.today-current-message{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--line);
  font-size:16px;
  font-weight:900;
}
.notification-settings-card{margin:0;padding:16px 18px}
.notification-settings-main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.notification-settings-summary{font-weight:900;margin-bottom:4px}
.notification-settings-controls{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.notification-settings-controls label{min-width:150px}
.notification-settings-controls select{padding-top:9px;padding-bottom:9px}
.notification-settings-controls button{white-space:nowrap}
.today-timeline{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.today-lesson{
  display:grid;
  grid-template-columns:110px 1fr auto;
  gap:14px;
  align-items:center;
  width:100%;
  border:1px solid var(--line);
  background:#fff;
  border-radius:15px;
  padding:13px 14px;
  text-align:left;
  color:var(--text);
  cursor:pointer;
}
.today-lesson:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(55,42,78,.06)}
.today-lesson-time{
  font-weight:900;
  font-size:16px;
  color:var(--purple);
}
.today-lesson-name{font-weight:900}
.today-lesson-topic{margin-top:2px;font-size:13px}
.today-lesson-badge{margin-top:5px;font-size:11px;color:var(--muted)}
.today-lesson-arrow{font-size:26px;color:var(--muted)}
.today-lesson.is-moved{background:#fff8ec;border-color:#e9bd7d}
.today-lesson.is-extra{border-style:dashed}
.today-lesson.is-canceled{background:#fff4f5;opacity:.72}
.today-lesson.is-canceled .today-lesson-topic{text-decoration:line-through}
.today-lesson.is-personal{background:#f2faf6;border-color:#c8e2d3}
.today-lesson.is-personal .today-lesson-time{color:#39785a}
.today-lesson.is-past:not(.is-canceled){opacity:.5;background:#faf9fc}
.today-lesson.is-current{
  border-color:var(--purple);
  background:#f5f1ff;
  box-shadow:0 10px 24px rgba(111,84,181,.15);
}
.today-lesson.is-current.is-personal{border-color:#5e9d7a;background:#eaf7f0}
.today-lesson.is-next{
  border-color:#c8b9ee;
  background:#fbf9ff;
  box-shadow:0 7px 18px rgba(90,68,145,.08);
}
.today-lesson.is-next.is-personal{border-color:#b5d8c4;background:#f5fbf8}
.today-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:180px;
  gap:5px;
  color:var(--muted);
  text-align:center;
}
.today-empty b{color:var(--text);font-size:16px}
.today-empty-icon{font-size:30px}
.today-tasks-card{margin:0}
.tasks-list{display:flex;flex-direction:column;gap:14px;margin-top:18px}
.open-tasks-list,.completed-tasks-list{display:flex;flex-direction:column;gap:9px}
.task-group{display:flex;flex-direction:column;gap:8px}
.task-group-title{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:900;color:var(--muted)}
.task-group-title b{min-width:24px;padding:3px 7px;border-radius:999px;background:#f3f0f8;text-align:center;color:var(--text)}
.task-group-overdue .task-group-title{color:var(--danger)}
.teacher-task{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:12px;
  align-items:start;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.teacher-task.task-overdue{border-color:#efc5ce;background:#fff9fa}
.task-complete-control{
  display:block;
  padding-top:2px;
  cursor:pointer;
}
.task-complete-control input{width:18px;height:18px;accent-color:var(--purple);cursor:pointer}
.task-content{min-width:0}
.task-content.is-action{cursor:pointer;border-radius:8px}
.task-content.is-action:focus-visible{outline:2px solid var(--purple);outline-offset:3px}
.task-title-row{display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap}
.task-title{font-weight:800;line-height:1.35}
.task-auto-badge{padding:2px 6px;border-radius:999px;background:var(--purple-soft);color:var(--purple);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.task-description{margin-top:5px;color:var(--muted);font-size:13px;line-height:1.45;white-space:pre-wrap}
.task-deadline{margin-top:7px;color:var(--muted);font-size:12px;font-weight:700}
.task-overdue .task-deadline{color:var(--danger)}
.task-today .task-deadline{color:var(--purple)}
.task-actions{display:flex;gap:6px}
.task-actions button{padding:6px 9px;min-width:34px}
.teacher-task.is-completed{background:#faf9fc;color:var(--muted)}
.teacher-task.is-completed .task-title{text-decoration:line-through}
.completed-tasks{border-top:1px solid var(--line);padding-top:12px}
.completed-tasks summary{cursor:pointer;font-weight:800;color:var(--muted);padding:4px 0}
.completed-tasks-list{margin-top:10px}
.completed-show-more{width:100%;margin-top:10px}
.cabinet-completed-tasks{margin-top:14px}
.tasks-clear-message{padding:16px;text-align:center;color:var(--muted);font-size:13px}
.task-form{display:flex;flex-direction:column;gap:14px}
.task-no-deadline{display:flex;flex-direction:row;align-items:center;gap:9px;width:max-content;cursor:pointer}
.task-no-deadline input{width:17px;height:17px;accent-color:var(--purple)}
.students-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:14px;
}
.student-overview-card{
  text-align:left;
  cursor:pointer;
  color:var(--text);
}
.student-overview-card h2{margin:4px 0}
.student-overview-meta{margin-top:14px;font-size:12px}
.student-overview-program{margin-top:10px;font-weight:800;color:var(--purple);font-size:12px}

/* student finances */
.student-finance-card{margin-bottom:18px}
.finance-summary{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:18px;
}
.finance-summary>div{padding:16px;border:1px solid var(--line);border-radius:16px;background:#fcfbff}
.finance-balance{font-size:28px;font-weight:900;margin-top:4px}
.finance-balance.is-debt{color:var(--danger)}
.finance-lessons-left{font-size:18px;font-weight:800;margin-top:7px}
.finance-history-head{font-weight:800;margin-top:20px;margin-bottom:10px}
.finance-history{display:flex;flex-direction:column;gap:8px}
.finance-operation{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.finance-operation-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.finance-operation-main span,.finance-operation-main small{font-size:12px;color:var(--muted)}
.finance-operation-main small{white-space:pre-wrap}
.finance-operation-side{display:flex;align-items:flex-end;flex-direction:column;gap:6px}
.finance-operation-amount{font-weight:900;white-space:nowrap}
.finance-operation-amount.positive{color:#3a8a62}
.finance-operation-amount.negative{color:var(--danger)}
.finance-delete-payment{padding:4px 8px;border:0;background:transparent;color:var(--danger);font-size:11px;font-weight:800;text-decoration:underline;text-underline-offset:2px}
.empty-finance-history{padding:18px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:14px}
.finance-comment-label{margin-top:14px}

/* lesson completion + history */
.completion-details-grid{margin-top:18px}
.completion-notes{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.homework-sent-control{display:flex;align-items:center;gap:8px;margin-top:8px;color:var(--muted);font-size:12px;font-weight:700}
.homework-sent-control input{width:17px;height:17px;accent-color:var(--purple)}
.completion-help{margin-top:10px}
.lesson-completion-actions{flex-wrap:wrap}
.lesson-history-card{margin-bottom:18px}
.lesson-history{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.lesson-history-item{padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff}
.lesson-history-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.lesson-history-topic{font-weight:800;margin-top:4px}
.lesson-history-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.lesson-history-meta span{padding:5px 8px;border-radius:999px;background:#f7f4fc;color:var(--muted);font-size:11px;font-weight:700}
.lesson-history-notes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.lesson-history-notes>div{padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:#fcfbff}
.lesson-history-notes b,.lesson-history-notes span{display:block}
.lesson-history-notes b{font-size:11px;color:var(--muted);margin-bottom:4px}
.lesson-history-notes span{font-size:13px;white-space:pre-wrap;line-height:1.4}

/* global finances */
.finance-dashboard-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:18px;
}
.finance-summary-item{padding:18px}
.finance-summary-item.positive{border-color:#cce8d8}
.finance-summary-item.negative{border-color:#efcbd3}
.finance-summary-value{font-size:24px;font-weight:900;margin-top:5px}
.finance-summary-item.positive .finance-summary-value{color:#3a8a62}
.finance-summary-item.negative .finance-summary-value{color:var(--danger)}
.finance-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:18px}
.finance-payments-head{align-items:flex-end;margin-bottom:16px}
.finance-filters{display:flex;gap:8px;flex-wrap:wrap}
.finance-filters label{min-width:150px}
.global-payments-list,.student-balances-list{display:flex;flex-direction:column;gap:8px}
.global-payment-row{
  display:flex;justify-content:space-between;align-items:flex-start;gap:14px;
  padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;
}
.global-payment-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.global-payment-main span,.global-payment-main small{font-size:12px;color:var(--muted)}
.global-payment-main small{white-space:pre-wrap}
.student-balances-list{margin-top:16px}
.student-balance-row{
  display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;
  padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;
  color:var(--text);text-align:left;
}
.student-balance-row:hover{background:#faf8ff;border-color:#d7ccef}
.student-balance-row.positive b{color:#3a8a62}
.student-balance-row.negative b{color:var(--danger)}
.student-balance-row.neutral b{color:var(--muted)}

/* static base schedule */
.static-schedule-week{
  display:grid;
  grid-template-columns:repeat(7,minmax(140px,1fr));
  gap:10px;
  overflow-x:auto;
  min-width:980px;
}
.schedule-rules-list{overflow-x:auto}
.static-schedule-day{
  min-height:420px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fcfbff;
  overflow:hidden;
}
.static-schedule-day-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  padding:12px;
  border-bottom:1px solid var(--line);
  background:#faf8ff;
}
.static-schedule-day-title{font-weight:800;font-size:13px}
.schedule-day-add,.calendar-day-add{
  width:30px;height:30px;border:0;border-radius:50%;
  background:var(--purple-soft);color:var(--purple);
  font-size:20px;line-height:1;cursor:pointer;flex-shrink:0;
}
.static-schedule-lesson{
  width:calc(100% - 12px);
  margin:6px;padding:10px;text-align:left;
  border:1px solid #d9d0ef;background:var(--purple-soft);
  border-radius:12px;color:var(--text);
}
.static-schedule-lesson.is-personal{background:#eef8f3;border-color:#bcdccb}
.static-schedule-lesson.is-personal .static-schedule-time{color:#39785a}
.static-schedule-lesson.is-group{background:#eef3ff;border-color:#bfccef}
.static-schedule-lesson.is-group .static-schedule-time{color:#4662a5}
.static-schedule-time{font-size:12px;font-weight:800;color:var(--purple)}
.static-schedule-name{font-weight:800;margin-top:3px}
.static-schedule-meta{font-size:11px;color:var(--muted);margin-top:3px}
.static-schedule-topic{font-size:11px;color:#5f5680;margin-top:5px;line-height:1.35}
.static-schedule-gap,.calendar-event-gap,.today-event-gap{display:flex;align-items:center;gap:6px;margin:0 9px;color:var(--muted);font-size:10px;font-weight:700;line-height:1;white-space:nowrap}
.static-schedule-gap::before,.static-schedule-gap::after,.calendar-event-gap::before,.calendar-event-gap::after,.today-event-gap::before,.today-event-gap::after{content:"";height:1px;flex:1;background:var(--line)}
.today-event-gap{margin:2px 12px}
.static-schedule-gap.is-zero,.calendar-event-gap.is-zero{color:#716b80}
.static-schedule-gap.is-overlap,.calendar-event-gap.is-overlap{color:var(--danger)}
.static-schedule-gap.is-overlap::before,.static-schedule-gap.is-overlap::after,.calendar-event-gap.is-overlap::before,.calendar-event-gap.is-overlap::after{background:#efc9d2}
.static-schedule-empty{padding:14px 10px;color:var(--muted);font-size:12px}
.calendar-extra{border-style:dashed}

.event-type-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.event-type-choice{
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;
  min-height:120px;padding:18px;text-align:left;border:1px solid #d9d0ef;
  border-radius:16px;background:var(--purple-soft);color:var(--text)
}
.event-type-choice.personal{background:#eef8f3;border-color:#bcdccb}
.event-type-choice.group{background:#eef3ff;border-color:#bfccef}
.event-type-choice b{font-size:17px}
.event-type-choice span{font-size:12px;color:var(--muted);line-height:1.45}
.full-span{grid-column:1/-1}
.event-editor-actions #deletePersonalEventBtn{margin-right:auto}

/* groups */
.group-overview-card{border-color:#d7def4}
.group-members-list,.group-members-picker,.group-attendance-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.group-member-row{
  display:grid;grid-template-columns:minmax(180px,1.2fr) auto minmax(180px,1fr) auto;
  gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;
}
.group-member-open{display:flex;flex-direction:column;gap:3px;text-align:left;border:0;background:none;color:var(--text);padding:0}
.group-member-open span,.group-member-price,.group-member-program-state{font-size:12px;color:var(--muted)}
.group-member-program-actions{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}
.group-members-picker-title{margin-top:18px}
.group-member-pick{display:grid;grid-template-columns:auto minmax(0,1fr) 140px;gap:12px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:13px}
.group-member-pick>span{display:flex;flex-direction:column;gap:2px}.group-member-pick small{color:var(--muted)}
.group-schedule-rule-row{padding:14px;border:1px solid var(--line);border-radius:16px;background:#fcfbff}
.group-schedule-main-fields{display:grid;grid-template-columns:1.1fr .8fr .8fr 1fr 1fr auto;gap:8px;align-items:end}
.group-rule-prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.group-attendance-section{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.group-attendance-row{padding:13px;border:1px solid var(--line);border-radius:15px;background:#fcfbff}
.group-member-homework-fields{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.group-member-homework-fields textarea{resize:vertical}
.group-attendance-main{display:flex;justify-content:space-between;gap:14px;align-items:center}
.group-presence-check{display:flex;align-items:center;gap:10px}.group-presence-check input{width:19px;height:19px;accent-color:var(--purple)}
.group-presence-check span{display:flex;flex-direction:column;gap:2px}.group-presence-check small{color:var(--muted)}
.group-presence-check .group-attendance-topic{color:#5f5680;font-weight:700;line-height:1.35}
.group-topic-assignments{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);display:grid;gap:5px}
.group-topic-assignment{display:flex;justify-content:space-between;gap:12px;font-size:12px}.group-topic-assignment span{color:var(--muted);text-align:right}
.group-attendance-charge{font-size:13px;white-space:nowrap}
.group-absence-fields{display:grid;grid-template-columns:1fr 180px;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.group-cancel-charges{display:flex;flex-direction:column;gap:8px}
.group-cancel-charge-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;align-items:center}
.lesson-card.lesson-group,.today-lesson.is-group{background:#eef3ff;border-color:#bfccef}

/* progress */
.student-progress-head{align-items:flex-end}
.student-progress-tabs{display:flex;gap:5px;padding:4px;border-radius:13px;background:#f3f0fa}
.student-progress-tab{border:0;background:transparent;color:var(--muted);padding:8px 12px;border-radius:10px;font-weight:800}
.student-progress-tab.active{background:#fff;color:var(--purple);box-shadow:0 2px 8px rgba(50,36,83,.09)}
.progress-trajectory{padding:16px;border:1px solid var(--line);border-radius:17px;background:#fff}
.progress-trajectory-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:13px}
.progress-trajectory-head h3{margin:2px 0 0}.progress-trajectory-head>div{display:flex;flex-direction:column;gap:3px}
.progress-trajectory-head span,.trajectory-current{font-size:12px;color:var(--muted)}
.progress-main-row{display:flex;justify-content:space-between;align-items:flex-end;gap:18px}
.progress-percent{display:flex;align-items:baseline;gap:9px}.progress-percent strong{font-size:31px;color:var(--purple)}.progress-percent span{font-size:12px;color:var(--muted)}
.progress-current{display:flex;flex-direction:column;gap:3px;text-align:right}.progress-current b{max-width:420px}
.progress-bar{height:9px;margin:13px 0 15px;border-radius:999px;background:#eeeaf7;overflow:hidden}
.progress-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--purple),#8f7be7)}
.progress-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.progress-metrics>div{display:flex;flex-direction:column;gap:2px;padding:10px;border-radius:12px;background:#f7f5fb}.progress-metrics b{font-size:19px}.progress-metrics span{font-size:11px;color:var(--muted)}
.progress-metrics .is-completed{background:#edf8f1}.progress-metrics .is-continue{background:#eef3ff}.progress-metrics .is-skipped{background:#fff6e8}
.progress-topics-details{margin-top:15px;padding-top:12px;border-top:1px solid var(--line)}.progress-topics-details summary{cursor:pointer;font-size:13px;font-weight:800;color:var(--purple)}
.progress-topic-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.progress-topic-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 10px;border-radius:10px;background:#f8f7fb;font-size:13px}
.progress-status{font-size:11px;font-weight:800;white-space:nowrap}.status-completed .progress-status,.progress-status.status-completed{color:#258454}.status-continue .progress-status,.progress-status.status-continue{color:#4769bd}.status-skipped .progress-status,.progress-status.status-skipped{color:#ad6b16}.status-planned .progress-status,.progress-status.status-planned{color:var(--muted)}
.progress-attention{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px;padding:12px;border-radius:13px;background:#fff8ec}.progress-attention b{width:100%;font-size:13px}.progress-attention span{padding:5px 8px;border-radius:999px;background:#fff;border:1px solid #ecd9b8;font-size:11px}
.progress-no-attention{margin-top:12px}.progress-empty{padding:22px;text-align:center;border:1px dashed var(--line);border-radius:14px}
.progress-group-trajectories{margin-top:20px}.progress-group-trajectories>h3{margin-bottom:10px}.compact-trajectory{margin-top:9px;background:#fbfaff}
.trajectory-comparison{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}.trajectory-comparison span{color:var(--muted)}.trajectory-current{margin-top:7px}
.progress-timeline{display:flex;flex-direction:column;gap:8px}
.progress-timeline-item{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:13px;background:#fff}
.progress-timeline-date{font-size:12px;color:var(--muted)}.progress-timeline-item>div:nth-child(2){display:flex;flex-direction:column;gap:3px}.progress-timeline-item>div:nth-child(2) span{font-size:11px;color:var(--muted)}
.progress-section-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:15px}.progress-section-head h3{margin:0 0 3px}.progress-section-head>div{display:flex;flex-direction:column}
.assessment-insights{margin-bottom:16px}.assessment-insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:8px}.assessment-insight-grid>div{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:13px;background:#f7f5fb}.assessment-insight-grid span{font-size:11px;color:var(--muted)}
.assessment-block-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:12px}.assessment-block-summary>div{display:flex;flex-direction:column;gap:3px;padding:10px;border:1px solid var(--line);border-radius:12px}.assessment-block-summary span,.assessment-block-summary small{font-size:11px;color:var(--muted)}
.assessment-history{display:flex;flex-direction:column;gap:10px}.assessment-card{padding:14px;border:1px solid var(--line);border-radius:15px;background:#fff}.assessment-card-head{display:flex;justify-content:space-between;gap:15px}.assessment-card-head h3{margin:3px 0}.assessment-card-head span{font-size:11px;color:var(--muted)}.assessment-result{text-align:right;display:flex;flex-direction:column}.assessment-result b{font-size:23px;color:var(--purple)}
.assessment-blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:7px;margin-top:12px}.assessment-blocks>div{display:flex;justify-content:space-between;gap:8px;padding:8px;border-radius:10px;background:#f7f5fb;font-size:12px}.assessment-comment{margin-top:11px;padding-top:11px;border-top:1px solid var(--line);font-size:13px}.assessment-comment-columns{display:grid;grid-template-columns:minmax(0,1fr);gap:0}.assessment-comment-columns.is-two-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.assessment-comment-column{min-width:0}.assessment-comment-columns.is-two-columns .assessment-comment-column+.assessment-comment-column{padding-left:22px;border-left:1px solid var(--line)}.assessment-comment-block{min-height:1.5em;white-space:pre-line;overflow-wrap:anywhere;line-height:1.5}.assessment-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:12px}
.assessment-block-editor{margin:17px 0;padding:14px;border:1px solid var(--line);border-radius:15px;background:#faf9fd}.assessment-block-editor .card-head{margin-bottom:10px}.assessment-block-rows{display:flex;flex-direction:column;gap:8px}.assessment-block-row{display:grid;grid-template-columns:minmax(180px,1fr) 120px 120px auto;gap:8px;align-items:end}.assessment-block-remove{height:42px}
.group-progress-columns{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr);gap:18px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.group-progress-columns h3{margin:0 0 10px}
.group-progress-table{display:flex;flex-direction:column}.group-progress-table-head,.group-progress-member-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(130px,.8fr) minmax(170px,1fr) minmax(150px,1.2fr);gap:9px;padding:10px;border-bottom:1px solid var(--line);font-size:12px}.group-progress-table-head{color:var(--muted);font-weight:800;background:#f7f5fb;border-radius:10px 10px 0 0}.group-progress-member-row span{color:var(--muted)}

/* reports */
.reports-description{margin-top:4px}.reports-history{display:flex;flex-direction:column;gap:9px;margin-top:16px}
.report-history-item{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.report-history-item>div:first-child{display:flex;flex-direction:column;gap:3px}.report-history-item>div:first-child span{font-size:11px;color:var(--muted)}
.report-history-actions{display:flex;align-items:center;gap:9px}.report-status{padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800;background:#f3f0f8;color:var(--muted)}
.report-status.final{background:#eaf7ef;color:#27784d}.report-status.draft{background:#fff5e7;color:#9a631a}
.report-setup-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;align-items:end;padding:15px;border:1px solid var(--line);border-radius:16px;background:#faf9fd}
.report-custom-period{display:grid;grid-template-columns:1fr 1fr;gap:9px;grid-column:span 2}.report-generate-btn{height:42px}
.report-snapshot-state{margin:12px 2px;padding:10px 12px;border-radius:12px;background:#f7f5fb;font-size:12px}
.report-draft-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:15px}.report-draft-fields label{min-width:0}
.report-draft-fields textarea{resize:vertical;line-height:1.45}.report-draft-fields label:first-child,.report-draft-fields label:last-of-type,.report-actions{grid-column:1/-1}

@media(max-width:760px){
  .event-type-choices{grid-template-columns:1fr}
  .today-hero-top{align-items:flex-start;flex-direction:column}
  .today-summary{text-align:left}
  .notification-settings-main{align-items:stretch;flex-direction:column}
  .notification-settings-controls{align-items:stretch}
  .notification-settings-controls label{flex:1}
  .today-lesson{grid-template-columns:94px 1fr auto;padding:11px}
  .teacher-task{grid-template-columns:auto minmax(0,1fr)}
  .task-actions{grid-column:2;justify-content:flex-end}
  .finance-summary{grid-template-columns:1fr}
  .finance-operation{flex-direction:column}
  .lesson-finance-editor{grid-template-columns:1fr}
  .lesson-conduct-actions{grid-column:1}
  .completion-notes,.lesson-history-notes{grid-template-columns:1fr}
  .finance-dashboard-summary{grid-template-columns:1fr 1fr}
  .finance-dashboard-grid{grid-template-columns:1fr}
  .finance-payments-head{align-items:stretch}
  .finance-filters{width:100%}
  .finance-filters label{flex:1}
  .group-member-row{grid-template-columns:1fr}
  .group-member-program-actions{justify-content:flex-start}
  .group-member-pick{grid-template-columns:auto 1fr}.group-member-pick .group-member-default-price{grid-column:2}
  .group-schedule-main-fields{grid-template-columns:1fr 1fr}.group-schedule-main-fields button{grid-column:1/-1}
  .group-absence-fields{grid-template-columns:1fr}
  .group-member-homework-fields{grid-template-columns:1fr}
  .group-cancel-charge-row{grid-template-columns:1fr}
  .group-attendance-main{align-items:flex-start;flex-direction:column}
  .student-progress-head,.progress-main-row,.progress-section-head,.assessment-card-head{align-items:stretch;flex-direction:column}
  .student-progress-tabs{width:100%;overflow:auto}.student-progress-tab{flex:1}
  .progress-current{text-align:left}.progress-metrics{grid-template-columns:repeat(2,1fr)}
  .progress-timeline-item{grid-template-columns:1fr}.progress-timeline-date{font-weight:800}
  .assessment-insight-grid{grid-template-columns:1fr}.assessment-block-row{grid-template-columns:1fr 1fr}.assessment-block-row label:first-child{grid-column:1/-1}
  .group-progress-columns{grid-template-columns:1fr}.group-progress-table-head{display:none}.group-progress-member-row{grid-template-columns:1fr}.group-progress-member-row b{font-size:14px}
  .report-history-item,.report-history-actions{align-items:stretch;flex-direction:column}.report-history-actions{flex-direction:row;justify-content:space-between}
  .report-setup-grid,.report-draft-fields{grid-template-columns:1fr}.report-custom-period{grid-column:auto;grid-template-columns:1fr}.report-draft-fields label:first-child,.report-draft-fields label:last-of-type,.report-actions{grid-column:auto}
}

@media(max-width:1000px){
  .today-workspace{grid-template-columns:1fr}
  .cabinet-grid{grid-template-columns:1fr}
}

@media(max-width:700px){
  .assessment-comment-columns.is-two-columns{grid-template-columns:1fr;gap:0}
  .assessment-comment-columns.is-two-columns .assessment-comment-column+.assessment-comment-column{padding-left:0;border-left:0}
}

@media(max-width:480px){
  .finance-dashboard-summary{grid-template-columns:1fr}
  .global-payment-row{flex-direction:column}
  .app-topbar{margin-bottom:10px}
  .notification-center-button span:last-child{display:none}
  .notification-center-button{width:40px;height:40px;justify-content:center;padding:0}
  .cabinet-header{margin-bottom:12px}
  .cabinet-block{padding:17px}
  .completed-tasks summary{padding:7px 0;font-size:13px}
  .completed-show-more{padding:9px}
}

/* weekly free slots */
.slots-header{align-items:center}.slot-sharing-card{margin-bottom:18px}.slot-sharing-main{display:flex;align-items:center;justify-content:space-between;gap:18px}.slot-sharing-main h2{margin:3px 0 5px}.slot-public-link{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;margin-top:14px}.slot-public-link input{min-width:0}
.slots-week{display:grid;grid-template-columns:repeat(7,minmax(160px,1fr));gap:10px;overflow-x:auto;padding-bottom:8px}.slots-day{min-width:160px;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.slots-day-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px;background:#f7f5fb;border-bottom:1px solid var(--line)}.slots-day-head>div{display:flex;flex-direction:column;gap:2px}.slots-day-head b{font-size:13px}.slots-day-head span{font-size:10px;color:var(--muted)}.slots-day-add{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:9px;background:#fff;color:var(--purple);font-size:19px}.slots-day-list{display:flex;flex-direction:column;gap:7px;padding:8px}.slots-empty{padding:16px 8px;text-align:center;color:var(--muted);font-size:12px}.slots-empty.large{padding:28px}
.slot-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px}.slot-card.is-free{background:#f0f8f3;border-color:#cfe6d6}.slot-card.is-busy{background:#f5f3f6;color:var(--muted)}.slot-card.is-regular-busy{background:#fff3f1;border-color:#eccbc5;color:#7f4a43;box-shadow:inset 3px 0 0 #d99084}.slot-card-main{display:flex;flex-direction:column;gap:2px;min-width:0}.slot-card-main b{font-size:13px}.slot-card-main span{font-size:10px;overflow:hidden;text-overflow:ellipsis}.slot-card-actions{display:flex;gap:3px}.slot-card-actions button{width:25px;height:25px;padding:0;border:0;background:transparent;color:var(--muted)}
.slot-bookings-card{margin-top:18px}.slot-bookings-list{display:flex;flex-direction:column;gap:9px}.slot-booking{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 14px;border:1px solid var(--line);border-radius:14px}.slot-booking.new{border-color:#d8c7ef;background:#fbf8ff}.slot-booking-main{display:flex;flex-direction:column;gap:4px;min-width:0}.slot-booking-head{display:flex;align-items:center;gap:8px}.slot-booking-status{padding:4px 7px;border-radius:999px;background:#f1edf7;color:var(--purple);font-size:10px;font-weight:800}.slot-booking-comment{margin-top:4px;line-height:1.45;overflow-wrap:anywhere}.slot-booking-actions{display:flex;gap:7px;flex-wrap:wrap}.slot-booking-actions button{padding:8px 10px;font-size:11px}.notification-booking-link{display:flex;flex-direction:column;gap:3px;width:100%;padding:10px;border:0;border-radius:11px;background:#f4effb;text-align:left;color:var(--text)}.notification-booking-link span{font-size:11px;color:var(--muted)}

@media(max-width:900px){.slots-week{grid-template-columns:repeat(7,minmax(180px,1fr))}}
@media(max-width:620px){.slot-sharing-main,.slot-booking{align-items:stretch;flex-direction:column}.slot-public-link{grid-template-columns:1fr}.slot-booking-actions{justify-content:flex-start}}

.public-booking-mode{min-height:100vh;background:linear-gradient(145deg,#f7f2fb,#eef7f2)}.public-slots-page{min-height:100vh;padding:34px 18px}.public-slots-shell{width:min(720px,100%);margin:0 auto}.public-slots-brand{display:flex;align-items:center;justify-content:center;gap:9px;margin-bottom:18px;font-size:18px;font-weight:900;color:var(--purple)}.public-slots-brand img{width:34px;height:34px;border-radius:10px}.public-slots-card{padding:28px}.public-slots-card h1{margin:4px 0 7px}.public-slots-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:20px 0}.public-slot-option{display:block;cursor:pointer}.public-slot-option input{position:absolute;opacity:0;pointer-events:none}.public-slot-option span{display:flex;flex-direction:column;gap:4px;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:#fff}.public-slot-option input:checked+span{border-color:var(--purple);box-shadow:0 0 0 2px rgba(103,76,154,.12);background:#f8f4fc}.public-slot-option small{color:var(--muted)}.public-slot-form{display:flex;flex-direction:column;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.public-slot-form button{align-self:flex-start}.public-slots-empty{grid-column:1/-1;padding:25px;text-align:center;color:var(--muted)}#publicSlotsStatus.success{color:#24754b;font-weight:700}#publicSlotsStatus.error{color:#a53240;font-weight:700}
@media(max-width:560px){.public-slots-page{padding:18px 10px}.public-slots-card{padding:20px}.public-slots-list{grid-template-columns:1fr}.public-slot-form button{width:100%}}

/* OGE task bank and generator selection */
.oge-generator-header{align-items:center}
.oge-generator-header #ogeBankStatus.error{color:#b13e4b}
.oge-quick-actions{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:16px}
.oge-quick-actions h2{margin:3px 0 0}.oge-quick-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.oge-generator-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr);gap:18px;align-items:start;margin-top:18px}
.oge-tree-card,.oge-summary-card{min-width:0}.oge-tree-help{margin:-4px 0 14px}
.oge-task-tree{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.oge-tree-node+.oge-tree-node,.oge-tree-row+.oge-tree-row{border-top:1px solid var(--line)}
.oge-tree-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:54px;padding:8px 12px 8px calc(12px + var(--oge-depth,0) * 24px);background:#fff}
.oge-tree-row.is-task-root{background:#faf9fd}.oge-tree-row.is-pack{--oge-depth:0;background:#f4f0fb}
.oge-tree-toggle{display:grid;place-items:center;width:27px;height:27px;padding:0;border:0;background:transparent;color:var(--purple);font-size:15px}
.oge-tree-toggle:disabled{cursor:default;opacity:.45}.oge-tree-title{display:flex;flex-direction:column;gap:2px;min-width:0}.oge-tree-title.is-expandable{cursor:pointer}
.oge-tree-title b{font-size:14px}.oge-tree-row.is-task-root .oge-tree-title b{font-size:15px}.oge-tree-title span{font-size:10px;color:var(--muted)}
.oge-tree-children{border-top:1px solid var(--line)}.oge-tree-children .oge-tree-node+.oge-tree-node{border-top:1px solid var(--line)}
.oge-counter{display:grid;grid-template-columns:30px 34px 30px;align-items:center;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fff}
.oge-counter-btn{height:30px;padding:0;border:0;border-radius:0;background:#f6f3fa;color:var(--purple);font-size:18px;font-weight:800}.oge-counter-btn:disabled{color:#b8b2c0;background:#faf9fb}
.oge-counter-value{text-align:center;font-size:13px;font-weight:900;font-variant-numeric:tabular-nums}
.oge-tree-empty,.oge-summary-empty{padding:22px;text-align:center;color:var(--muted)}
.oge-summary-card{position:sticky;top:18px}.oge-selection-summary{display:flex;flex-direction:column;margin-top:13px;border-top:1px solid var(--line)}
.oge-summary-row{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}.oge-summary-row span{min-width:0}.oge-summary-row b{white-space:nowrap;color:var(--purple)}
.oge-selection-total{margin-top:16px;padding:13px;border-radius:13px;background:#f3eff9;font-weight:900;color:var(--purple)}.oge-next-stage-note{margin-top:12px;line-height:1.45}
.oge-builder-actions{display:flex;flex-direction:column;gap:8px;margin-top:13px}.oge-builder-actions button{width:100%}
.oge-mode-note,.oge-generator-message{margin-top:14px;padding:11px 14px;border-radius:13px;background:#f0ecf8;color:var(--purple);font-size:13px;font-weight:700}
.oge-generator-message.error{background:#fff0f1;color:#a53240}.oge-preview-header{align-items:center}.oge-work-title-box{display:flex;flex-direction:column;gap:5px;min-width:min(100%,480px)}
.oge-work-title-input{padding:3px 0;border:0;border-bottom:1px solid transparent;border-radius:0;background:transparent;font-size:28px;font-weight:900;color:var(--text)}.oge-work-title-input:focus{border-bottom-color:var(--purple);box-shadow:none;outline:0}
.oge-preview-items{display:flex;flex-direction:column;gap:18px;margin-top:18px}.oge-preview-task-card,.oge-preview-pack-card{padding:20px}
.oge-preview-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.oge-preview-card-head h2{margin:4px 0 0;font-size:19px}.oge-actual-file{font-size:10px;color:var(--muted);word-break:break-all}
.oge-preview-image-wrap{display:flex;justify-content:center;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.oge-preview-image-wrap img{display:block;max-width:100%;height:auto}.oge-preview-image-wrap.is-missing{padding:28px;color:#a53240;background:#fff4f5}
.oge-source-scope{margin-top:12px;padding:9px 11px;border-radius:11px;background:#f6f3fa;color:var(--purple);font-size:12px;font-weight:800}.oge-preview-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.oge-pack-section-label{margin:15px 0 7px;font-size:12px;font-weight:900;color:var(--purple)}.oge-pack-prototypes{display:flex;flex-direction:column;gap:14px;margin-top:18px}
.oge-pack-prototype{padding:14px;border:1px solid var(--line);border-radius:15px;background:#faf9fd}.oge-pack-prototype-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px}.oge-pack-prototype-head h3{margin:0;font-size:15px}.oge-pack-prototype .oge-preview-image-wrap{padding:8px}
.oge-preview-empty{text-align:center;color:var(--muted)}
.oge-saved-works-list{display:flex;flex-direction:column;gap:12px;margin-top:18px}
.oge-material-work{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px}
.oge-material-work-main{min-width:0}.oge-material-work-main h2{margin:4px 0 5px}.oge-material-work-meta{font-size:12px}
.oge-material-work-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.oge-materials-empty{text-align:center;color:var(--muted)}

/* OGE A4 print preview */
.oge-print-toolbar{align-items:flex-end}
.oge-print-controls{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-end;gap:10px}
.oge-print-controls>label:not(.check){min-width:190px}
.oge-print-answer-toggle{height:42px;padding:0 8px}
.oge-print-preview-stage{display:flex;flex-direction:column;align-items:center;gap:22px;margin:18px -24px -24px;padding:28px;overflow-x:auto;background:#d9d7de}
.oge-print-sheet{display:flex;flex-direction:column;width:210mm;height:297mm;padding:13mm;box-sizing:border-box;background:#fff;color:#17151b;box-shadow:0 8px 28px rgba(32,25,46,.2);overflow:hidden;flex:0 0 auto}
.oge-print-page-title{display:block;width:100%;height:14mm;padding:0 0 3mm;border:0;border-bottom:1px solid #bbb;border-radius:0;background:transparent;color:#111;font:700 20pt/1.15 Arial,sans-serif;text-align:center}
.oge-print-page-title:focus{outline:0;border-bottom-color:#5f4ba2;box-shadow:none}
.oge-print-standard-content{display:flex;flex-direction:column;gap:4mm;min-height:0}
.oge-print-task-block,.oge-print-pack-segment{break-inside:avoid;page-break-inside:avoid;flex:0 0 auto}
.oge-print-task-number{display:flex;align-items:baseline;gap:3mm;margin-bottom:2mm;font:700 12pt/1.2 Arial,sans-serif}
.oge-print-task-number small{font:400 8pt/1.2 Arial,sans-serif;color:#666}
.oge-print-image{display:flex;justify-content:flex-start;align-items:flex-start;width:100%;min-height:8mm}
.oge-print-image img{display:block;max-width:100%;width:auto;height:auto;object-fit:contain;object-position:left top}
.oge-print-image.is-missing{padding:4mm;border:1px dashed #aaa;color:#777;font:10pt Arial,sans-serif}
.oge-print-solution-space{width:100%;border-bottom:1px solid #ececec}
.oge-print-solution-space.is-small{height:18mm}.oge-print-solution-space.is-medium{height:32mm}.oge-print-solution-space.is-large{height:52mm}
.oge-print-answer{height:8mm;padding-top:2mm;border-bottom:1px solid #777;font:10pt Arial,sans-serif}
.oge-print-pack-label{margin-bottom:2mm;font:700 9pt/1.2 Arial,sans-serif;color:#444}
.oge-print-pack-segment{display:flex;flex-direction:column;gap:4mm}
.oge-print-pack-task{padding-top:1mm}
.oge-print-second-part{display:flex;flex-direction:column;min-height:0;flex:1}
.oge-print-second-part .oge-print-image img{max-height:112mm}
.oge-print-solution-fill{flex:1;min-height:40mm;margin-top:4mm;background:transparent}

@page{size:A4 portrait;margin:0}
@media print{
  html,body{width:210mm!important;margin:0!important;padding:0!important;background:#fff!important}
  body>*:not(.app-shell){display:none!important}
  .app-shell{display:block!important;min-height:0!important}
  .app-shell>*:not(.main){display:none!important}
  .main{display:block!important;width:210mm!important;margin:0!important;padding:0!important}
  .main>*:not(#ogePrintPreviewView){display:none!important}
  #ogePrintPreviewView{display:block!important;position:absolute!important;left:0!important;top:0!important;width:210mm!important;margin:0!important;padding:0!important}
  #ogePrintPreviewView>*:not(.print-pages){display:none!important}
  .print-pages{display:block!important;margin:0!important;padding:0!important;overflow:visible!important;background:#fff!important}
  .oge-print-sheet{width:210mm!important;height:297mm!important;margin:0!important;padding:13mm!important;box-shadow:none!important;overflow:hidden!important;break-after:page!important;page-break-after:always!important}
  .oge-print-sheet-second-part{break-before:page!important;page-break-before:always!important}
  .print-pages>.oge-print-sheet-second-part:first-child{break-before:auto!important;page-break-before:auto!important}
  .oge-print-sheet:last-child{break-after:auto!important;page-break-after:auto!important}
  .oge-print-page-title{border-bottom-color:transparent!important}
}

@media(max-width:900px){
  .oge-generator-layout{grid-template-columns:1fr}.oge-summary-card{position:static}.oge-quick-actions{align-items:flex-start;flex-direction:column}.oge-quick-buttons{justify-content:flex-start}.oge-preview-header,.oge-print-toolbar{align-items:stretch;flex-direction:column}.oge-preview-header .header-actions,.oge-print-controls{justify-content:flex-start}.oge-material-work{align-items:stretch;flex-direction:column}.oge-material-work-actions{justify-content:flex-start}
}
@media(max-width:520px){
  .oge-generator-header{align-items:stretch}.oge-generator-header>button{width:100%}.oge-quick-buttons{display:grid;grid-template-columns:1fr 1fr;width:100%}.oge-tree-row{grid-template-columns:24px minmax(0,1fr);padding-left:calc(8px + var(--oge-depth,0) * 15px)}.oge-counter{grid-column:2;justify-self:start;margin-bottom:3px}.oge-preview-card-head,.oge-pack-prototype-head{align-items:stretch;flex-direction:column}.oge-preview-actions{justify-content:flex-start}.oge-work-title-input{font-size:23px}.oge-preview-task-card,.oge-preview-pack-card{padding:14px}
}
