@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap");:root{--bg:#f3f6fb;--surface:#fff;--surface-soft:#f8fafc;--line:#e5edf5;--text:#1f2a37;--muted:#6c7a8c;--primary:#2f80ed;--primary-soft:#ebf3ff;--success:#1a9b5d;--danger:#d64545}*{box-sizing:border-box}body{margin:0;color:var(--text);font-family:Inter,Segoe UI,sans-serif;background:var(--bg)}.page-container{width:100%;max-width:none;margin:0;padding:1.1rem 1.2rem 2.4rem}h1,h2,h3,h4{margin:0}h2{font-size:1.75rem;line-height:1.2}a{color:inherit;text-decoration:none}button,input,select,textarea{width:100%;border-radius:10px;border:1px solid var(--line);padding:.68rem .78rem;font-size:.95rem;font-family:inherit;background:#fff;color:var(--text)}button{cursor:pointer}.topbar{width:100%;border-bottom:1px solid var(--line);background:#fff;padding:.55rem 1.2rem;position:-webkit-sticky;position:sticky;top:0;z-index:20}.topbar-main{gap:.65rem}.topbar-brand,.topbar-main{display:flex;align-items:center;min-width:0}.topbar-brand{gap:.6rem;flex:0 1 auto}.topbar-links{display:flex;gap:.45rem;flex-wrap:nowrap;align-items:center;overflow-x:auto;min-width:0}.topbar-links a{font-size:.9rem;font-weight:600;color:#3c4b5d;padding:.4rem .64rem;border-radius:9px}.topbar-links a:hover{background:var(--primary-soft);color:var(--primary)}.topbar-logo-link{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:10px;padding:.1rem .2rem}.topbar-logo-link:hover{background:#f4f8ff}.topbar-logo-img{width:132px;height:82px;object-fit:contain;display:block}.topbar-link-badge{display:inline-flex;align-items:center;gap:.35rem}.topbar-notify-count{min-width:1.25rem;height:1.25rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0 .32rem;background:#d64545;color:#fff;font-size:.72rem;font-weight:700}.auth-block{display:flex;align-items:center;gap:.6rem;justify-content:flex-end;margin-left:auto;flex:0 0 auto}.account-chip{display:grid;grid-gap:.04rem;gap:.04rem;padding:.45rem .72rem;border-radius:10px;border:1px solid var(--line);background:var(--surface-soft);min-width:162px}.account-chip-title{font-size:.8rem;font-weight:700;color:#435366}.account-chip-nick{font-size:.8rem;color:var(--muted)}.logout-icon-btn{width:40px;min-width:40px;height:40px;border-radius:10px;border:1px solid #efb5b5;background:#fff2f2;color:#ad2e2e;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;padding:0}.logout-icon-btn:hover{background:#ffe9e9}.grid{display:grid;grid-gap:1rem;gap:1rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1rem}.soft-card{background:var(--surface-soft);border:1px solid var(--line);border-radius:12px;padding:.9rem}.btn{width:auto;border:none;background:var(--primary);color:#fff;font-weight:600;padding:.58rem .9rem;border-radius:9px}.btn:hover{filter:brightness(.98)}.btn-outline{background:#fff;color:#37506a;border:1px solid #d8e4f0}.btn-danger{background:var(--danger)}.feedback{margin:0;color:var(--success);font-size:.92rem}.feedback-error{margin:0;color:var(--danger);font-size:.92rem}.app-toast-stack{position:fixed;top:76px;right:18px;z-index:80;width:min(380px,calc(100vw - 28px));display:grid;grid-gap:.5rem;gap:.5rem;pointer-events:none}.app-toast{border-radius:12px;padding:.72rem .85rem;font-size:.9rem;line-height:1.35;color:#fff;box-shadow:0 14px 28px rgba(9,20,35,.24);transform:translateX(0);opacity:1;max-height:180px;overflow:hidden;animation:toast-enter .22s ease-out}.app-toast-info{background:rgba(40,95,173,.96)}.app-toast-success{background:rgba(28,132,78,.96)}.app-toast-warning{background:rgba(188,119,12,.96)}.app-toast-error{background:rgba(178,45,45,.96)}.app-toast-closing{animation:toast-exit .38s ease forwards}@keyframes toast-enter{0%{transform:translateX(26px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes toast-exit{0%{transform:translateX(0);opacity:1;max-height:180px;margin-top:0}to{transform:translateX(26px);opacity:0;max-height:0;margin-top:-.25rem}}.muted{color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:.32rem;border-radius:999px;background:var(--primary-soft);color:var(--primary);padding:.2rem .6rem;font-size:.79rem;font-weight:600}.hero{display:grid;grid-gap:.85rem;gap:.85rem;background:linear-gradient(125deg,#f4f8ff,#eff6ff 56%,#f8fbff)}.hero p{color:#4e5f72;margin:0}.hero-actions{display:flex;gap:.6rem;flex-wrap:wrap}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.stats-grid article{display:grid;grid-gap:.3rem;gap:.3rem}.stats-grid strong{font-size:1.5rem;color:#1b4f92}.project-intro{gap:.75rem}.project-intro p{margin:0}.project-value-grid{display:grid;grid-gap:.8rem;gap:.8rem}.catalog-layout{display:grid;grid-gap:1rem;gap:1rem}.catalog-sidebar{align-content:start}.catalog-main{display:grid;grid-gap:.9rem;gap:.9rem}.catalog-topline{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;justify-content:space-between}.catalog-search{max-width:330px}.catalog-grid{display:grid;grid-gap:.85rem;gap:.85rem;grid-template-columns:repeat(auto-fill,minmax(245px,1fr))}.course-card{display:grid;grid-gap:.58rem;gap:.58rem;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.9rem}.course-meta{gap:.45rem;color:var(--muted);font-size:.82rem}.chips-row,.course-meta{display:flex;flex-wrap:wrap}.chips-row{gap:.44rem}.learn-layout{display:grid;grid-gap:1rem;gap:1rem}.learn-layout-single{grid-template-columns:1fr}.learn-sidebar{align-content:start}.learn-sidebar ul{margin:0;padding:0;list-style:none;display:grid;grid-gap:.32rem;gap:.32rem}.learn-sidebar li{border-radius:8px;padding:.44rem .52rem;color:#4d6178;font-size:.9rem}.learn-sidebar-tab{width:100%;border:0;background:transparent;color:inherit;padding:0;text-align:left;font:inherit}.learn-tree{display:grid;grid-gap:.38rem;gap:.38rem}.learn-tree-root{width:100%;border:0;background:#f4f8ff;color:#31557a;text-align:left;padding:.52rem .62rem;border-radius:9px;font-weight:700}.learn-tree-course{display:grid;grid-gap:.26rem;gap:.26rem}.learn-tree-course-btn{width:100%;border:1px solid var(--line);background:#fff;color:#364b63;text-align:left;padding:.46rem .62rem;border-radius:9px;font-weight:600}.learn-tree-course-btn-active{border-color:#c5daf8;background:#edf4ff;color:#2a5f9d}.learn-tree-children{display:grid;grid-gap:.2rem;gap:.2rem;margin-left:.5rem;padding-left:.55rem;border-left:2px solid #d9e7f8}.learn-tree-child{width:100%;border:0;background:transparent;color:#5a6f87;text-align:left;padding:.28rem .1rem;font-size:.88rem}.learn-tree-child-active{color:#2f80ed;font-weight:700}.course-subtopic-btn{border:1px solid #d9e5f3;border-radius:10px;background:#f8fbff;padding:.5rem .6rem;margin-top:.25rem}.course-subtopic-btn:hover{background:#eef5ff}.learn-sidebar li a{color:inherit;text-decoration:none}.learn-sidebar li.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.learn-content{display:grid;grid-gap:1rem;gap:1rem}.learn-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap}.list-card{display:grid;grid-gap:.35rem;gap:.35rem;border-radius:10px;border:1px solid var(--line);background:#fff;padding:.78rem}.section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.inline-checkbox{display:inline-flex;align-items:center;gap:.45rem;color:#4f6177;font-size:.86rem}.inline-checkbox input{width:auto;margin:0}.task-card{position:relative}.status-pill{display:inline-flex;width:-moz-fit-content;width:fit-content;border-radius:999px;padding:.2rem .58rem;font-size:.76rem;font-weight:700;border:1px solid transparent}.status-green{background:#ecf9f1;color:#117c4a;border-color:#cdeedc}.status-yellow{background:#fff8e9;color:#946800;border-color:#f3dfaf}.status-red{background:#fff0f0;color:#a83131;border-color:#f0c5c5}.member-chip{display:inline-flex;align-items:center;border-radius:999px;padding:.22rem .52rem;background:#edf4ff;color:#3368ad;font-size:.79rem}.members-wrap{gap:.4rem}.members-wrap,.tabs-row{display:flex;flex-wrap:wrap}.tabs-row{gap:.6rem}.tab-btn{width:auto;background:#fff;border:1px solid #dae6f2;border-radius:999px;color:#4f6177;font-weight:600;padding:.44rem .8rem}.tab-btn-active{background:var(--primary-soft);color:var(--primary);border-color:#cde0fb}.user-card{display:grid;grid-gap:.6rem;gap:.6rem;border:1px solid var(--line);border-radius:10px;background:#fff;padding:.8rem}.user-actions{display:flex;gap:.45rem;flex-wrap:wrap}.btn-mini{padding:.34rem .58rem;border-radius:8px;font-size:.8rem;line-height:1.1}.admin-table-wrap{width:100%;overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;min-width:860px;background:#fff;border:1px solid var(--line);border-radius:10px}.admin-table td,.admin-table th{border-bottom:1px solid var(--line);padding:.55rem .58rem;text-align:left;vertical-align:top;font-size:.88rem}.admin-table th{color:#41526a;background:#f8fbff;font-weight:700}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table input,.admin-table select{width:100%;min-width:130px;padding:.4rem .52rem;border-radius:8px;font-size:.84rem}.admin-table input[type=checkbox]{width:auto;min-width:0}.modal-overlay{position:fixed;inset:0;background:rgba(18,26,38,.45);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1100}.modal-card{width:min(680px,100%);max-height:min(80vh,760px);overflow:auto}.member-picker-list{border:1px solid var(--line);border-radius:10px;background:#fff;max-height:360px;overflow:auto;padding:.4rem;display:grid;grid-gap:.35rem;gap:.35rem}.member-picker-item{display:flex;align-items:flex-start;gap:.6rem;border:1px solid #e1eaf4;border-radius:10px;background:#f9fcff;padding:.5rem .58rem}.member-picker-item input{width:auto;margin-top:.2rem}.member-picker-item span{display:grid;grid-gap:.1rem;gap:.1rem}.row-inline{display:flex;align-items:center;gap:.4rem;margin-top:.35rem}.row-inline select[multiple]{min-height:110px}.mini-icon-btn{width:auto;border:0;border-radius:999px;background:#dce7f7;color:#37506a;font-size:.72rem;padding:.16rem .34rem;margin-left:.35rem}.checkbox-row{display:flex;align-items:center;gap:.5rem}.checkbox-row input{width:auto}.code-editor{font-size:.9rem;line-height:1.45;min-height:270px;background:#0e1726;color:#dbe7ff;border-color:#23304b}.code-editor,.code-snippet{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.code-snippet{margin:0;padding:.6rem;border-radius:8px;border:1px solid var(--line);background:#f8fbff;font-size:.84rem;white-space:pre-wrap;word-break:break-word}.empty-state{border:1px dashed #cfdceb;border-radius:10px;padding:.9rem;background:#f8fbff;color:#53667d}.empty-state p{margin:.3rem 0 0}.login-shell{min-height:calc(100vh - 180px);display:flex;align-items:center;justify-content:center}.login-card{width:min(100%,430px);margin:0 auto;display:grid;grid-gap:.8rem;gap:.8rem}.login-form{gap:.7rem}.field-pop-wrap{position:relative}.field-pop-error{position:absolute;left:0;bottom:calc(100% + 6px);margin:0;max-width:100%;z-index:2;padding:.28rem .5rem;border-radius:8px;border:1px solid #f1b3b3;background:#fff1f1;color:#b03030;font-size:.78rem;line-height:1.25;box-shadow:0 6px 16px rgba(176,48,48,.15)}.login-title{text-align:center}.login-message{margin:0}.login-toggle{justify-self:center}.task-html{overflow-x:auto;line-height:1.45}.task-html-centered{text-align:center}.task-html-centered img,.task-html-centered table,.task-html-centered>*{margin-left:auto;margin-right:auto}.task-html img{max-width:100%;height:auto}.task-html-clickable-images img{cursor:zoom-in}.task-html table{border-collapse:collapse;margin:.35rem 0}.task-html td,.task-html th{border:1px solid #d5e2ef;padding:.28rem .34rem}.task-html a.task-file-link{display:inline-flex;align-items:center;gap:.5rem;margin:.35rem 0;padding:.45rem .7rem;border-radius:10px;border:1px solid #cfe0f7;background:#eef5ff;color:#1e5da8;font-weight:600;text-decoration:none}.task-html a.task-file-link:before{content:"Файл";font-size:.74rem;line-height:1;color:#27548a;background:#dfeeff;border:1px solid #c6dcfb;border-radius:999px;padding:.15rem .42rem}.task-html a.task-file-link:after{content:"скачать файл к задаче";font-size:.78rem;color:#3569a8;font-weight:500}.task-html a.task-file-link:hover{background:#e6f0ff;border-color:#b9d3f5}.image-lightbox-overlay{position:fixed;inset:0;z-index:90;background:rgba(16,24,38,.62);display:flex;align-items:center;justify-content:center;padding:2rem}.image-lightbox-img{max-width:min(1200px,92vw);max-height:86vh;border-radius:12px;box-shadow:0 16px 36px rgba(0,0,0,.4);object-fit:contain}.image-lightbox-close{position:fixed;top:86px;right:24px;width:42px;min-width:42px;height:42px;border-radius:999px;border:1px solid hsla(0,0%,100%,.38);background:rgba(0,0,0,.44);color:#fff;font-size:1.5rem;line-height:1;padding:0}.image-lightbox-close:hover{background:rgba(0,0,0,.6)}.task-title-row{display:inline-flex;align-items:center;gap:.4rem}.title-progress-block{width:100%;display:grid;grid-gap:.28rem;gap:.28rem}.title-progress-meta{font-size:.82rem}.solved-dot{width:10px;height:10px;border-radius:999px;background:#1a9b5d;display:inline-block}.progress-track{width:100%;height:8px;border-radius:999px;background:#e8eef6;overflow:hidden;margin-top:.25rem}.title-progress-block .progress-track{margin-top:0}.progress-fill{height:100%;background:linear-gradient(90deg,#67b4ff,#2f80ed);border-radius:999px}.skeleton-card{border:1px solid var(--line);border-radius:10px;background:#fff;padding:.85rem;display:grid;grid-gap:.45rem;gap:.45rem}.skeleton-line{height:10px;border-radius:8px;background:linear-gradient(90deg,#eef3f8,#dfe9f3 50%,#eef3f8);background-size:180% 100%;animation:shimmer 1.4s infinite}.w40{width:40%}.w70{width:70%}.w100{width:100%}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (min-width:920px){.project-value-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-layout{grid-template-columns:290px 1fr}.learn-layout{grid-template-columns:280px 1fr;align-items:start}.learn-layout-single{grid-template-columns:1fr}.learn-sidebar{position:-webkit-sticky;position:sticky;top:86px;max-height:calc(100vh - 96px);overflow:auto}}