:root{color-scheme:light;--bg:#f7f8fa;--surface:#fff;--ink:#222630;--muted:#717885;--line:#e7e9ee;--accent:#345cec;--accent-light:#eef2ff;--danger:#b64545;--radius:10px;--course:#345cec;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b5c5ff;outline-offset:3px}button{color:inherit}input,select,textarea{border:1px solid #dce0e7;border-radius:7px;background:#fff;min-width:0;color:var(--ink);padding:10px 12px;min-height:43px}input::placeholder,textarea::placeholder{color:#949aa6}input:focus,select:focus,textarea:focus{border-color:#8ba2ef;outline:2px solid #edf1ff}input[type=checkbox],input[type=radio]{min-height:0;accent-color:var(--accent);width:16px;height:16px;margin:0;flex-shrink:0}textarea{resize:vertical}select{padding-right:28px}h1,h2,h3,p{margin:0}h1{font-size:2.25rem;font-weight:650;letter-spacing:-1.15px;line-height:1.2}h2{font-size:1.25rem;letter-spacing:-.35px;font-weight:600}h3{font-size:.9375rem;font-weight:600}svg{width:20px;height:20px;display:block;flex-shrink:0}svg path,svg circle,svg rect,svg polyline{vector-effect:non-scaling-stroke}[hidden]{display:none!important}.button{border:1px solid transparent;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 16px;min-height:42px;font-size:.9375rem;font-weight:550;white-space:nowrap}.button.primary{background:var(--accent);color:white;box-shadow:0 1px 2px #1d3eab1c}.button.primary:hover{background:#284fdc}.button.secondary{background:#fff;border-color:#dce0e7}.button.secondary:hover{background:#f3f5f8}.button.destructive{color:#fff;background:var(--danger)}.button.small{padding:7px 12px;min-height:36px;font-size:.875rem}.wide{width:100%}.icon-button{border:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border-radius:6px;color:var(--muted)}.icon-button:hover{background:#edf0f5;color:var(--ink)}.text-button{border:0;background:none;padding:5px 0;font-size:.875rem;color:var(--muted);text-align:left}.text-button:hover{color:var(--ink)}.text-button.danger{color:var(--danger)}.eyebrow{font-size:.75rem;letter-spacing:1.5px;color:var(--muted);font-weight:550}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);font-size:1.625rem;font-weight:650;letter-spacing:-1px;width:fit-content}.brand:hover{text-decoration:none}.brand-period{color:var(--accent)}.brand-mark{background:var(--ink);color:white;width:31px;height:31px;font-size:1.25rem;font-weight:650;line-height:27px;text-align:center;border-radius:8px;letter-spacing:-1px}.workspace{display:flex;min-height:100vh}.sidebar{width:244px;flex-shrink:0;border-right:1px solid var(--line);background:#fff;padding:30px 20px 20px;display:flex;flex-direction:column;position:fixed;height:100dvh}.sidebar>.brand{margin:0 12px 4px}.sidebar-caption{font-size:.6875rem;letter-spacing:1.35px;color:#9298a4;margin:8px 12px 29px}.main-nav{display:grid;gap:5px}.nav-item{width:100%;border:0;background:none;display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:7px;text-align:left;font-size:.9375rem;color:var(--muted)}.nav-item:hover{background:#f6f7fa}.nav-item.active{background:var(--accent-light);color:var(--accent);font-weight:550}.nav-icon svg{width:18px;height:18px}.count{margin-left:auto;min-width:22px;text-align:center;font-size:.75rem;font-variant-numeric:tabular-nums;color:#969ca7}.active .count{color:var(--accent)}.section-label{display:flex;align-items:center;justify-content:space-between;margin:28px 8px 9px 12px;font-size:.6875rem;letter-spacing:1.3px;color:#9298a4;font-weight:550}.section-label .icon-button{width:24px;height:24px}.section-label svg{width:16px;height:16px}.course-nav{display:grid;gap:3px;overflow:auto}.course-item{width:100%;display:flex;gap:10px;align-items:center;padding:10px 12px;text-align:left;border:0;border-radius:7px;background:transparent;font-size:.875rem;color:#59616f}.course-item:hover{background:#f6f7fa}.course-item.selected{background:#f3f5f8;color:var(--ink);font-weight:550}.course-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-dot{width:7px;height:7px;border-radius:2px;background:var(--course);flex-shrink:0}.color-blue{--course:#345cec}.color-purple{--course:#8864ba}.color-green{--course:#3a8874}.color-orange{--course:#bd7f3e}.color-gray{--course:#828996}.sidebar-bottom{margin-top:auto;padding-top:30px}.telegram-card{border:1px solid var(--line);background:#fff;border-radius:9px;padding:13px 11px;display:flex;align-items:center;gap:10px;text-align:left;width:100%;margin-bottom:14px}.telegram-card:hover{border-color:#cbd3e9}.telegram-icon{color:var(--accent)}.telegram-card strong{display:block;font-size:.875rem;font-weight:550}.telegram-card small{display:block;font-size:.75rem;color:var(--muted);margin-top:2px}.tiny-icon{margin-left:auto;color:#a7adba}.tiny-icon svg{width:14px;height:14px}.sidebar-footer{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:#969ca7;margin:17px 12px 0}.sidebar-footer .text-button{font-size:.75rem}.main-content{margin-left:244px;padding:29px 48px 0;max-width:1360px;width:calc(100% - 244px);min-height:100vh;display:flex;flex-direction:column}.topline{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;letter-spacing:.8px;color:#9198a4;gap:12px;padding-bottom:39px}.topline>span:last-child{letter-spacing:0}.page-header{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:29px}.page-header p{color:var(--muted);font-size:.9375rem;margin-top:9px}.overview{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:21px 0;gap:39px;margin-bottom:29px}.overview>div{display:flex;align-items:baseline;gap:10px}.stat-number{font-size:1.5rem;font-weight:550;letter-spacing:-.7px;font-variant-numeric:tabular-nums;line-height:1.4}.stat-label{font-size:.875rem;color:var(--muted)}.overview>div:not(:first-child){padding-left:32px;border-left:1px solid var(--line)}.stat-warning{color:var(--danger)}.toolbar{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-bottom:24px}.search{display:flex;gap:8px;align-items:center;color:#959ca8}.search svg{width:18px;height:18px}.search input{border:0;background:none;padding:8px 0;min-height:36px;max-width:270px;width:100%;font-size:.875rem}.search input:focus{outline:none}.search:focus-within{box-shadow:0 2px var(--accent)}.toolbar select{min-height:36px;background:transparent;font-size:.875rem;padding:6px 28px 6px 10px;border-color:var(--line);color:#626a77}.group-label{display:flex;justify-content:space-between;color:#8b929e;font-size:.6875rem;font-weight:550;letter-spacing:1.2px;margin:24px 1px 10px}.group-label:first-child{margin-top:0}.group-label span:last-child{font-variant-numeric:tabular-nums;letter-spacing:0}.task-row{display:flex;align-items:center;gap:17px;padding:20px;background:white;border:1px solid var(--line);border-radius:9px;margin:9px 0;transition:border-color .15s,box-shadow .15s}.task-row:hover{border-color:#cbd2e1;box-shadow:0 2px 8px #29344c06}.task-check{border:1.5px solid #d7dce5;background:white;width:21px;height:21px;border-radius:6px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:white}.task-check:hover{border-color:var(--accent);background:var(--accent-light)}.task-check svg{width:15px;height:15px}.task-check.completed{background:var(--accent);border-color:var(--accent)}.task-body{flex:1;min-width:0;border:0;background:none;text-align:left;padding:0;color:inherit}.task-title{display:block;font-size:1rem;font-weight:550;line-height:1.5;overflow-wrap:anywhere}.task-meta{display:flex;gap:13px;align-items:center;flex-wrap:wrap;margin-top:7px;color:var(--muted);font-size:.8125rem}.task-course{display:inline-flex;align-items:center;gap:6px}.task-course .course-dot{width:6px;height:6px}.file-meta{display:flex;gap:4px;align-items:center}.file-meta svg{width:13px;height:13px}.meta-separator{width:3px;height:3px;background:#c9cdd5;border-radius:50%}.status-badge{font-size:.75rem;border-radius:4px;color:#8b6d32;background:#fbf6e9;padding:2px 7px}.task-due{flex-shrink:0;text-align:right;min-width:105px;pointer-events:none}.due-main{font-size:.9375rem;font-variant-numeric:tabular-nums;font-weight:500}.due-sub{display:block;font-size:.75rem;color:#9198a4;margin-top:3px}.due-urgent{color:#b47528}.due-overdue{color:var(--danger)}.task-row.done .task-title{color:#838b97;text-decoration:line-through;text-decoration-color:#c5cbd4}.task-row.done .task-due{color:#838b97}.task-row>.icon-button{width:27px;height:27px;margin-left:0}.task-row>.icon-button svg{width:16px;height:16px}.list-footer{display:flex;justify-content:space-between;gap:16px;padding:16px 2px;font-size:.75rem;color:#9aa1ad}.empty-state{text-align:center;background:#fff;border:1px dashed #dce1e9;border-radius:10px;padding:56px 24px}.empty-symbol{display:inline-flex;justify-content:center;align-items:center;width:42px;height:42px;color:#a0a9bb;background:#f4f6fa;border-radius:11px;margin-bottom:16px}.empty-state h2{font-size:1.125rem;margin-bottom:7px}.empty-state p{font-size:.9375rem;color:var(--muted);max-width:360px;margin:0 auto 20px}.main-footer{margin-top:auto;padding:48px 0 23px;display:flex;justify-content:space-between;gap:16px;font-size:.75rem;color:#a2a8b2}.main-footer>span:first-child{font-weight:650;letter-spacing:-.5px;font-size:.9375rem;color:#939ba8}.login-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{background:#fff;padding:42px;width:420px;border:1px solid var(--line);border-radius:15px;box-shadow:0 12px 40px #27345304}.login-card .brand{margin-bottom:48px}.login-heading{margin-bottom:28px}.login-heading h1{font-size:2rem;margin-top:10px}.login-heading p{font-size:.9375rem;color:var(--muted);margin-top:9px}.login-card>label{display:block;font-size:.875rem;margin-bottom:7px}.login-card>input{width:100%}.error-text{font-size:.875rem;color:var(--danger);min-height:20px;margin:8px 0}.login-footer{display:block;text-align:center;margin-top:28px;color:#99a0ac;font-size:.75rem}dialog{border:1px solid #e2e6ee;border-radius:13px;padding:0;box-shadow:0 24px 90px #202c4a29;max-height:90dvh;max-width:calc(100vw - 32px);color:var(--ink)}dialog::backdrop{background:#1c263849;backdrop-filter:blur(3px)}.task-dialog{width:630px}.course-dialog{width:420px}.confirm-dialog{width:400px}dialog form{display:flex;flex-direction:column;max-height:90dvh}.dialog-header{padding:23px 26px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);flex-shrink:0}.dialog-header h2{margin-top:5px}.dialog-header .eyebrow{font-size:.6875rem}.dialog-body{padding:24px 26px;display:grid;gap:21px;overflow-y:auto}.dialog-body>label,.form-grid>label,.password-form>label{display:grid;gap:7px;font-size:.875rem;font-weight:500}.dialog-body label input,.dialog-body label select{width:100%;font-weight:400}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:.875rem;font-weight:500}.field-heading>select{min-height:30px;padding:4px 24px 4px 8px;font-size:.8125rem}.label-muted{color:#9aa1ac;font-weight:400}.checkbox-label{display:flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--muted);font-weight:400}.checkbox-label input{width:15px!important}.deadline-field input:disabled{background:#f5f6f9;color:#a2a8b3}fieldset{border:0;padding:0;margin:0}legend{font-size:.875rem;font-weight:500;margin-bottom:9px}fieldset:disabled{opacity:.45}.reminder-options{display:flex;gap:14px;flex-wrap:wrap}.reminder-options>label{font-size:.8125rem;display:flex;gap:6px;align-items:center;color:#68717f}.reminder-options input{width:15px!important;height:15px}.dialog-footer{display:flex;align-items:center;gap:9px;padding:17px 26px;border-top:1px solid var(--line);background:#fcfcfd;flex-shrink:0}.spacer{flex:1}.form-error{padding:0 26px;color:var(--danger);font-size:.875rem;flex-shrink:0}.form-error:not(:empty){padding-bottom:14px;background:#fcfcfd}.dropzone{position:relative;display:flex;align-items:center;justify-content:center;gap:13px;padding:22px 14px;border:1px dashed #d5dbe7;border-radius:8px;background:#fafbfd;color:#8794b0;text-align:left;cursor:pointer}.dropzone:hover,.dropzone.dragover{border-color:#94a9eb;background:#f1f5ff}.dropzone strong{display:block;font-size:.875rem;color:#657493;font-weight:500}.dropzone small{display:block;font-size:.75rem;color:#99a3b5;margin-top:3px}.dropzone input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer;inset:0}.dropzone:focus-within{outline:3px solid #b5c5ff;outline-offset:2px}.file-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:6px;padding:9px 10px;font-size:.8125rem;margin-bottom:8px;color:#6c7586}.file-row>svg{width:17px;height:17px}.file-description{min-width:0;flex:1}.file-description>a,.file-description>strong{display:block;font-weight:450;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-description>small{font-size:.6875rem;color:#929baa}.file-row .icon-button{width:25px;height:25px}.file-row .icon-button svg{width:14px;height:14px}#pending-files:not(:empty){margin-top:10px}.color-options{display:flex;gap:17px}.color-options>label{display:block;position:relative;cursor:pointer}.color-options input{position:absolute;opacity:0}.color-options span:not(.sr-only){display:block;width:26px;height:26px;border:5px solid white;border-radius:50%;background:var(--course);outline:1px solid transparent}.color-options input:checked+span{outline:2px solid var(--course)}.color-options input:focus-visible+span{outline:3px solid #b5c5ff}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.confirm-dialog .dialog-body{gap:14px}.confirm-dialog p{color:var(--muted);font-size:.9375rem}.confirm-dialog .button-row{margin-top:8px;justify-content:flex-end}.button-row{display:flex;align-items:center;gap:13px;flex-wrap:wrap}.settings-block{background:white;border:1px solid var(--line);border-radius:10px;padding:25px 27px;margin-bottom:19px}.settings-heading{display:flex;align-items:flex-start;gap:13px;margin-bottom:24px}.settings-heading h2{font-size:1rem}.settings-heading p{font-size:.875rem;color:var(--muted);margin-top:5px}.block-icon{color:#7d8aa3;padding-top:2px}.settings-heading>.button{margin-left:auto}.settings-block label{font-size:.875rem}.bot-form>label{display:block;margin-bottom:7px;font-weight:500}.inline-form{display:flex;gap:10px}.inline-form input{flex:1;width:100%}.help-text{font-size:.8125rem;color:#8a93a1;line-height:1.7;margin-top:12px}.help-text a{color:#667aab;text-decoration:underline}.settings-note{display:flex;align-items:flex-start;gap:9px;background:#f6f8fc;border:1px solid #ecf0f7;padding:12px 14px;border-radius:7px;margin-top:22px;color:#8090ab}.settings-note svg{width:16px;height:16px;margin-top:3px}.settings-note p{font-size:.8125rem;color:#7b879b}.connection-state{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#f5f8f6;border:1px solid #e0eae3;padding:14px;border-radius:7px;margin-bottom:18px;font-size:.875rem;color:#527464}.connection-state.pending{background:#f5f7fd;border-color:#e2e8f5;color:#6a7ea8}.connection-state p{font-size:.8125rem;margin-top:3px;color:#8c98aa}.connection-error{border:1px solid #efdddd;background:#fff6f6;padding:12px 14px;border-radius:7px;color:var(--danger);font-size:.875rem;margin-bottom:16px}.telegram-actions{display:grid;gap:20px}.toggle-label{display:flex;gap:8px;align-items:center}.course-setting-row{display:flex;align-items:center;gap:10px;font-size:.9375rem;padding:11px 0;border-top:1px solid var(--line)}.course-setting-row .icon-button{margin-left:auto}.password-form{max-width:430px;display:grid;gap:17px}.password-form button{justify-self:start}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:12px 19px;border-radius:9px;background:#262d3a;color:#fff;box-shadow:0 6px 24px #10192926;font-size:.875rem;z-index:1000}.toast.error{background:#9e4141}
@media(min-width:1500px){.main-content{padding-left:70px;padding-right:70px}}@media(max-width:1100px){.main-content{padding:28px 30px 0}.sidebar{width:220px;padding-left:15px;padding-right:15px}.main-content{margin-left:220px;width:calc(100% - 220px)}.overview{gap:22px}.overview>div:not(:first-child){padding-left:22px}.task-row{gap:13px;padding:17px 16px}.task-due{min-width:87px}}
@media(max-width:780px){.workspace{display:block}.sidebar{position:static;height:auto;width:100%;padding:17px 20px 0;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.sidebar>.brand{margin:0}.sidebar-caption,.section-label,.sidebar-bottom>.telegram-card,.sidebar-footer{display:none}.main-nav{display:flex;justify-content:center;gap:5px}.nav-item{padding:9px 11px;font-size:.875rem;white-space:nowrap}.nav-item .count{display:none}.main-nav .nav-icon{display:none}.sidebar-bottom{margin:0;padding:0}.sidebar-bottom .nav-item{width:36px;height:36px;padding:9px}.sidebar-bottom .nav-item>span:last-child{display:none}.course-nav{grid-column:1/-1;display:flex;gap:5px;overflow:auto;padding:0 0 12px;scrollbar-width:none}.course-item{width:auto;flex-shrink:0;max-width:260px;border:1px solid var(--line);padding:5px 9px;font-size:.8125rem;border-radius:5px}.course-item .count{display:none}.main-content{margin:0;width:100%;padding:23px 22px 0;min-height:calc(100dvh - 124px)}.topline{padding-bottom:29px;font-size:.6875rem}h1{font-size:1.875rem}.page-header{margin-bottom:24px;gap:12px}.page-header p{font-size:.875rem;max-width:250px}.page-header .button{padding:9px 12px}.overview{gap:20px;padding:16px 0;margin-bottom:22px}.overview>div{flex-direction:column;gap:2px}.overview>div:not(:first-child){padding-left:20px}.stat-number{font-size:1.375rem}.stat-label{font-size:.75rem}.toolbar{gap:12px;margin-bottom:20px}.toolbar select{max-width:165px}.search input{max-width:180px}.task-row{gap:12px;padding:16px 14px}.task-title{font-size:.9375rem}.task-meta{gap:8px;font-size:.75rem}.task-due{min-width:75px}.due-main{font-size:.875rem}.due-sub{font-size:.6875rem}.task-row>.icon-button{display:none}.main-footer{padding-top:35px}.settings-block{padding:21px}.settings-heading{gap:10px}.settings-heading p{font-size:.8125rem}.inline-form{flex-direction:column}.inline-form .button{align-self:flex-start}.settings-heading>.button{font-size:.75rem;padding:6px 8px}.connection-state{align-items:flex-start;flex-direction:column}.main-footer span:last-child{font-size:.6875rem}}
@media(max-width:440px){.sidebar{padding-left:16px;padding-right:16px}.brand{font-size:1.375rem;gap:7px}.brand-mark{width:27px;height:27px;font-size:1.125rem;line-height:24px}.nav-item{padding:7px 9px;font-size:.8125rem}.main-content{padding-left:16px;padding-right:16px}.page-header .button svg{display:none}.page-header p{max-width:190px}.overview{gap:17px}.overview>div:not(:first-child){padding-left:17px}.task-row{padding:15px 12px;gap:10px}.task-check{width:19px;height:19px}.task-due{min-width:64px}.task-course{max-width:170px;overflow:hidden}.task-course>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-meta>.meta-separator,.task-meta>.format-meta{display:none}.task-title{font-weight:500}.dialog-header{padding:18px 18px 15px}.dialog-body{padding:20px 18px;gap:19px}.dialog-footer{padding:14px 18px;gap:8px;flex-wrap:wrap}.dialog-footer .text-button{font-size:.8125rem}.dialog-footer .button{padding:8px 11px}.form-grid{gap:12px}.reminder-options{gap:10px}.form-error{padding-left:18px;padding-right:18px}.login-card{padding:32px 26px}.toolbar select{max-width:140px;font-size:.8125rem}.search input{max-width:145px;font-size:.8125rem}.list-footer{font-size:.6875rem}.settings-block{padding:19px 16px}}
.task-due{border:0;background:none;padding:0;pointer-events:auto}.task-due:hover .due-main{text-decoration:underline;text-underline-offset:3px}
@media(max-width:780px){.sidebar-bottom{grid-column:3;grid-row:1}.course-nav{grid-row:2}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
