:root{--color-primary:#2f4f6f;--color-background:#f7f6f3;--color-card:#fff;--color-text-main:#2b2b2b;--color-text-secondary:#6b6b6b;--color-border:#e0e0e0;--color-success:#5faf8f;--color-error:#e76f51;--radius-card:16px;--radius-button:12px;--spacing-screen-padding:16px;--spacing-block-gap:16px;--tg-theme-bg-color:var(--color-background);--tg-theme-text-color:var(--color-text-main);--tg-theme-hint-color:var(--color-text-secondary);--tg-theme-link-color:var(--color-primary);--tg-theme-button-color:var(--color-primary);--tg-theme-button-text-color:var(--color-card);--tg-theme-secondary-bg-color:var(--color-card)}*{box-sizing:border-box;margin:0;padding:0}html{min-height:100%}body,html{background:var(--color-background)}body{min-height:100vh;color:var(--color-text-main);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;line-height:1.4}button,input,select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;color:inherit;font:inherit}button{border:0;background:transparent;cursor:pointer;text-align:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}a{color:var(--color-primary);text-decoration:none}.app-screen,.screen{width:min(100%,640px);min-height:100dvh;margin:0 auto;padding:var(--spacing-screen-padding);padding-bottom:96px;background:var(--color-background);color:var(--color-text-main)}.has-student-add-button{padding-bottom:168px}.dashboard-section,.section{margin-bottom:var(--spacing-block-gap)}.section-title{margin-bottom:12px;color:var(--color-text-main);font-size:20px;font-weight:700;line-height:1.2}.card,.homework-card,.screen-status-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-card)}.card{padding:16px}.empty-card,.screen-status-card{padding:16px;color:var(--color-text-secondary);font-size:15px;text-align:center}.homework-stack,.request-stack,.students-stack{display:flex;flex-direction:column;gap:var(--spacing-block-gap)}.teacher-request-card,.teacher-student-card{display:grid;align-items:center;grid-gap:12px;gap:12px}.teacher-request-card{grid-template-columns:44px minmax(0,1fr) auto}.teacher-student-card{grid-template-columns:44px minmax(0,1fr) auto auto}.avatar{display:flex;width:44px;height:44px;flex:0 0 44px;align-items:center;justify-content:center;border-radius:50%;background:var(--color-primary);color:var(--color-card);font-size:15px;font-weight:700;line-height:1}.avatar.avatar-sm{width:32px;height:32px;flex-basis:32px;font-size:12px}.entity-info{min-width:0}.entity-name{overflow:hidden;color:var(--color-text-main);font-size:16px;font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.entity-meta,.header-subtitle,.homework-deadline,.homework-progress-text,.student-status-text,.text-secondary{color:var(--color-text-secondary)}.entity-meta{margin-top:3px;overflow:hidden;font-size:14px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.student-status-text{margin-top:4px;color:var(--color-success);font-size:14px;font-weight:600;line-height:1.2}.teacher-request-actions{display:flex;align-items:center;gap:8px}.action-button,.btn-outline-red,.btn-primary{display:inline-flex;min-height:40px;align-items:center;justify-content:center;border-radius:var(--radius-button);font-size:14px;font-weight:700;line-height:1;white-space:nowrap}.action-button{padding:0 14px;text-align:center}.action-button-primary,.btn-primary{background:var(--color-primary);color:var(--color-card)}.action-button-success{background:var(--color-success);color:var(--color-card)}.action-button-error{background:var(--color-error);color:var(--color-card)}.action-button-outline-error,.btn-outline-red{border:1px solid var(--color-error);background:var(--color-card);color:var(--color-error)}.action-button-outline-primary{border:1px solid var(--color-primary);background:var(--color-card);color:var(--color-primary)}.btn-outline-red,.btn-primary{width:100%;padding:0 16px}.student-progress-value{font-size:18px;font-weight:700}.chevron,.student-progress-value{color:var(--color-text-main);line-height:1}.chevron{font-size:28px;font-weight:400}.student-header{margin-bottom:var(--spacing-block-gap)}.header-greeting,.student-header h1{color:var(--color-text-main);font-size:24px;font-weight:700;line-height:1.2}.segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:4px;gap:4px;margin-bottom:var(--spacing-block-gap);padding:4px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-card)}.segmented-control button{min-height:44px;border-radius:var(--radius-button);color:var(--color-text-secondary);font-size:15px;font-weight:700;text-align:center}.segmented-control button.active{background:var(--color-primary);color:var(--color-card)}.segmented-control-three{grid-template-columns:repeat(3,minmax(0,1fr))}.homework-card{display:flex;width:100%;flex-direction:column;gap:14px;padding:16px;text-align:left}.homework-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.homework-card-title-group{display:flex;min-width:0;flex-direction:column;gap:6px}.homework-card-category{overflow-wrap:anywhere;color:var(--color-text-main);font-size:18px;font-weight:700;line-height:1.2}.homework-card-description{color:var(--color-text-main);font-size:16px;font-weight:600;line-height:1.25}.homework-deadline,.homework-student{font-size:14px;font-weight:600}.homework-student{color:var(--color-text-main)}.homework-badge-row{display:flex;flex-wrap:wrap;gap:8px}.homework-mini-badge{display:inline-flex;min-height:28px;align-items:center;justify-content:center;border:1px solid var(--color-primary);border-radius:var(--radius-button);color:var(--color-primary);padding:0 10px;font-size:13px;font-weight:700;line-height:1}.homework-mini-badge-optional{border-color:var(--color-success);color:var(--color-success)}.homework-progress-text{align-self:flex-end;font-size:14px;font-weight:600}.status-badge{display:inline-flex;min-height:32px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid;border-radius:var(--radius-button);background:var(--color-card);padding:0 12px;font-size:14px;font-weight:700;line-height:1;white-space:nowrap}.status-active{color:var(--color-success)}.status-completed{color:var(--color-primary)}.status-overdue{color:var(--color-error)}.progress-bar{width:100%;height:8px;overflow:hidden;background:var(--color-border)}.progress-bar,.progress-fill{border-radius:var(--radius-button)}.progress-fill{height:100%;background:var(--color-primary)}.progress-fill-completed{background:var(--color-success)}.progress-fill-overdue{background:var(--color-error)}.bottom-nav,.bottom-navigation{position:fixed;right:0;bottom:0;left:50%;z-index:10;display:grid;width:min(100%,640px);grid-template-columns:repeat(2,minmax(0,1fr));transform:translateX(-50%);border-top:1px solid var(--color-border);background:var(--color-card)}.bottom-nav-item,.bottom-nav-link{display:flex;min-height:64px;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:14px;font-weight:700;text-align:center}.bottom-nav-item.active,.bottom-nav-link.active{color:var(--color-primary)}.bottom-nav-item svg{width:24px;height:24px;stroke:currentColor}.detail-header,.modal-header{display:flex;align-items:center;gap:12px;margin-bottom:var(--spacing-block-gap)}.detail-header h1,.modal-header h2{color:var(--color-text-main);font-size:22px;font-weight:700;line-height:1.2}.back-button{display:flex;width:36px;height:36px;flex:0 0 36px;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-card);color:var(--color-text-main);font-size:28px;line-height:1}.create-homework-button,.modal-submit-button{width:100%}.create-homework-button{margin-top:var(--spacing-block-gap)}.create-homework-button-top{width:100%;min-height:58px;margin-top:16px;margin-bottom:16px;padding:0 18px;font-size:16px;justify-content:center;text-align:center}.detail-subtitle{margin-top:4px;color:var(--color-text-secondary);font-size:14px;font-weight:600}.teacher-homework-summary{display:flex;flex-direction:column;gap:10px;margin-bottom:var(--spacing-block-gap)}.teacher-homework-summary h2{color:var(--color-text-main);font-size:18px;font-weight:700;line-height:1.2}.teacher-homework-summary p{color:var(--color-text-secondary);font-size:14px;font-weight:600}.teacher-invite-card{display:flex;flex-direction:column;gap:14px;margin-bottom:var(--spacing-block-gap);padding-top:18px;padding-bottom:18px}.teacher-invite-card h2{color:var(--color-text-main);font-size:18px;font-weight:700;line-height:1.2}.teacher-invite-card p{color:var(--color-text-secondary);font-size:14px;font-weight:600;line-height:1.45}.teacher-invite-link-box{width:100%;border:1px solid var(--color-border);border-radius:18px;background:var(--color-background);padding:14px 16px;color:var(--color-text-main);font-size:14px;font-weight:600;line-height:1.5;word-break:break-word;overflow-wrap:anywhere}.teacher-invite-actions{padding-top:4px}.teacher-invite-copy-button{width:100%;min-height:54px;justify-content:center}.constructor-stack,.student-task-card,.student-task-stack,.teacher-result-card,.teacher-result-list{display:flex;flex-direction:column;gap:12px}.student-task-header,.teacher-result-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.student-task-header h2,.teacher-result-row h2{color:var(--color-text-main);font-size:16px;font-weight:700;line-height:1.2}.result-badge{display:inline-flex;min-height:32px;align-items:center;border:1px solid;border-radius:var(--radius-button);padding:0 12px;font-size:14px;font-weight:700;line-height:1}.result-correct{color:var(--color-success)}.result-incorrect{color:var(--color-error)}.result-empty{color:var(--color-text-secondary)}.teacher-result-comment{border-radius:var(--radius-button);background:var(--color-background);color:var(--color-text-main);padding:12px;font-size:14px;line-height:1.4}.bulk-actions{display:flex;flex-direction:column;gap:10px;margin-bottom:var(--spacing-block-gap)}.bulk-actions .action-button{width:100%;min-height:56px;padding:0 16px;justify-content:center;text-align:center;white-space:normal;line-height:1.25}.student-task-stack{margin-bottom:var(--spacing-block-gap)}.task-result-toggle{display:grid;min-width:190px;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px}.task-result-toggle button{min-height:36px;border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-card);color:var(--color-text-secondary);font-size:13px;font-weight:700;text-align:center}.task-result-toggle button.selected.correct{border-color:var(--color-success);color:var(--color-success)}.task-result-toggle button.selected.incorrect{border-color:var(--color-error);color:var(--color-error)}.task-comment-input{min-height:76px;resize:vertical}.registration-screen{display:flex;flex-direction:column;gap:18px}.registration-hero{padding:12px 8px 4px;text-align:center}.registration-hero h1{color:var(--color-text-main);font-size:34px;font-weight:800;line-height:1.1}.registration-hero p{margin-top:12px;color:var(--color-text-secondary);font-size:16px;line-height:1.6}.registration-illustration{position:relative;width:220px;height:150px;margin:0 auto 18px}.registration-illustration-book,.registration-illustration-cap{position:absolute;left:50%;transform:translateX(-50%);border-radius:24px}.registration-illustration-book{bottom:8px;width:180px;height:92px;background:radial-gradient(circle at 50% 10%,#fff,#dbe8ff 70%,#c7dcff 100%);box-shadow:0 18px 45px rgba(67,111,255,.18)}.registration-illustration-cap{top:6px;width:124px;height:74px;background:linear-gradient(145deg,#15348d,#4c75ff);box-shadow:0 18px 35px rgba(35,65,173,.32)}.registration-card h2{margin-bottom:14px;color:var(--color-text-main);font-size:20px;font-weight:700}.registration-code-input{min-height:60px;margin-bottom:14px;text-align:center;font-size:24px;font-weight:700;letter-spacing:.12em}.registration-error,.registration-help{margin-top:12px;font-size:14px;line-height:1.5}.registration-help{color:var(--color-text-secondary)}.registration-error{color:var(--color-error)}.registration-benefits-card{display:flex;flex-direction:column;gap:16px}.registration-benefit-item{display:flex;flex-direction:column;gap:6px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.registration-benefit-item:last-child{padding-bottom:0;border-bottom:none}.registration-benefit-item strong{color:var(--color-text-main);font-size:17px}.registration-benefit-item span{color:var(--color-text-secondary);font-size:15px;line-height:1.5}.attachment-inline-card,.homework-file-card,.teacher-check-state-card,.teacher-comment-card{margin-bottom:var(--spacing-block-gap)}.attachment-inline-card,.homework-file-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.homework-file-header h2,.teacher-check-state-card h2,.teacher-comment-card h2{color:var(--color-text-main);font-size:16px;font-weight:700;line-height:1.2}.homework-file-header p,.teacher-check-state-card p,.teacher-comment-card p{margin-top:6px;color:var(--color-text-secondary);font-size:14px;line-height:1.45}.attachment-inline-remove,.homework-file-button,.solution-upload-button{justify-content:center}.solution-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));grid-gap:10px;gap:10px}.solution-preview-card{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-background)}.solution-preview-button{width:100%;text-align:left}.solution-preview-image,.solution-preview-placeholder{width:100%;aspect-ratio:4/3;border-radius:12px}.solution-preview-image{display:block;object-fit:cover;background:var(--color-card)}.solution-preview-placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(63,102,242,.08),rgba(63,102,242,.16));color:var(--color-text-secondary);font-size:13px;font-weight:700}.solution-preview-meta{display:flex;flex-direction:column;gap:4px}.solution-preview-name{color:var(--color-text-main);font-size:13px;font-weight:700;line-height:1.3;word-break:break-word}.solution-preview-size{color:var(--color-text-secondary);font-size:12px;line-height:1.2}.solution-preview-remove{align-self:flex-start;color:var(--color-error);font-size:13px;font-weight:700}.attachment-inline-card{margin-top:10px}.attachment-inline-meta{display:flex;flex-direction:column;gap:4px;color:var(--color-text-main);font-size:14px}.attachment-inline-meta span{color:var(--color-text-secondary);font-size:13px}.submit-homework-button{width:100%;min-height:48px}.submit-hint{margin-top:8px;color:var(--color-text-secondary);font-size:13px;text-align:center}.student-add-homework-button{position:fixed;bottom:80px;left:50%;z-index:9;width:min(calc(100% - 32px),608px);min-height:58px;transform:translateX(-50%);padding:0 18px;font-size:16px;justify-content:center;text-align:center}.self-homework-preview{display:flex;flex-direction:column;gap:10px;margin-bottom:var(--spacing-block-gap)}.self-homework-preview h2{color:var(--color-text-main);font-size:18px;font-weight:700;line-height:1.2}.self-homework-preview p{color:var(--color-text-secondary);font-size:14px;font-weight:600}.student-create-submit-button{width:100%;min-height:58px;font-size:16px}.assignment-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.assignment-mode{display:flex;min-height:90px;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-card);color:var(--color-text-main);padding:10px;text-align:center}.assignment-mode.active{border-color:var(--color-primary);color:var(--color-primary)}.assignment-mode strong{font-size:14px;font-weight:700;line-height:1.2}.assignment-mode span,.form-help{color:var(--color-text-secondary);font-size:12px;font-weight:600;line-height:1.25}.form-help{margin-top:8px}.constructor-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto 88px 40px;align-items:center;grid-gap:8px;gap:8px}.add-row-button{width:100%;min-height:54px;margin-top:16px;border-style:dashed;justify-content:center;text-align:center;white-space:normal}.stats-layout{display:flex;flex-direction:column;gap:var(--spacing-block-gap)}.stats-overview-card,.stats-tasks-card{display:flex;flex-direction:column;gap:16px}.stats-card-title{color:var(--color-text-main);font-size:16px;font-weight:700;line-height:1.2}.stats-overall-value{margin-top:8px;color:var(--color-text-main);font-size:36px;font-weight:800;line-height:1}.progress-chart{width:100%;height:150px}.chart-grid-line{stroke:var(--color-border);stroke-width:1}.chart-line{fill:none;stroke:var(--color-primary);stroke-linecap:round;stroke-linejoin:round;stroke-width:4;vector-effect:non-scaling-stroke}.tasks-progress-list{display:flex;max-height:420px;flex-direction:column;gap:12px;overflow-y:auto;padding-right:4px}.task-progress-row{display:grid;grid-template-columns:44px minmax(0,1fr) 48px;align-items:center;grid-gap:12px;gap:12px;color:var(--color-text-main);font-size:14px;font-weight:700}.task-number,.task-percent{line-height:1}.task-percent{text-align:right}.task-progress-bar{height:6px;overflow:hidden;border-radius:var(--radius-button);background:var(--color-border)}.task-progress-fill{height:100%;border-radius:var(--radius-button);background:var(--color-primary)}.empty-state{color:var(--color-text-secondary);text-align:center}.empty-state-icon{display:none}.empty-state-text{color:var(--color-text-secondary);font-size:14px}.modal-overlay{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end}.modal-content,.modal-overlay{background:var(--color-background)}.modal-content{width:100%;max-width:640px;max-height:90vh;margin:0 auto;overflow-y:auto;border-radius:var(--radius-card) var(--radius-card) 0 0;padding:24px}.modal-header{justify-content:space-between}.form-group{margin-bottom:16px}.form-label{display:block;margin-bottom:8px;color:var(--color-text-main);font-size:14px;font-weight:700}.form-input,.form-select,.task-input{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-card);color:var(--color-text-main);font-size:16px}.form-input,.form-select{padding:14px}.task-input{padding:12px;font-size:14px}.task-input-prefix{color:var(--color-text-main);font-size:16px;font-weight:700}.task-input-quantity{max-width:96px}.task-input-group{display:flex;align-items:center;gap:8px;margin-bottom:8px}.btn-close,.btn-remove-task{display:flex;align-items:center;justify-content:center;border-radius:var(--radius-button);color:var(--color-error)}.btn-remove-task{width:40px;height:40px;border:1px solid var(--color-border);background:var(--color-card);font-size:18px}.btn-close{width:32px;height:32px;color:var(--color-text-secondary);font-size:20px}.action-button:disabled,.btn-outline-red:disabled,.btn-primary:disabled{cursor:default;opacity:.55}.button-row,.flex-row{display:flex;align-items:center}.justify-between{justify-content:space-between}.items-center{align-items:center}.gap-sm{gap:8px}.gap-md{gap:12px}.mb-sm{margin-bottom:8px}.mb-md{margin-bottom:12px}.mb-lg{margin-bottom:20px}.mt-sm{margin-top:8px}.mt-md{margin-top:12px}.p-sm{padding:8px}.p-md{padding:12px}.text-main{color:var(--color-text-main)}.text-error{color:var(--color-error)}.text-success{color:var(--color-success)}@media (max-width:420px){.teacher-request-card{grid-template-columns:44px minmax(0,1fr) 112px}.teacher-request-actions{flex-direction:column;align-items:stretch}.teacher-request-actions .action-button{width:112px;padding:0 10px;font-size:13px}.homework-card-header{align-items:stretch;flex-direction:column}.status-badge{align-self:flex-start}.assignment-mode-grid{grid-template-columns:1fr}.student-task-header{align-items:stretch;flex-direction:column}.task-result-toggle{width:100%;min-width:0}.attachment-inline-card,.homework-file-header{align-items:stretch;flex-direction:column}.solution-preview-grid{grid-template-columns:1fr 1fr}.constructor-row{grid-template-columns:auto minmax(0,1fr) auto 76px 40px}}