:root{color-scheme:light;--paper: #f1f4f7;--paper-2: #fafcfd;--surface: #fff;--ink: #22303b;--ink-soft: #54626e;--ink-mute: #8b959e;--azure: #1b7ac0;--accent: #17618f;--accent-hover: #0f4e75;--accent-soft: #7fa9c6;--mist: #dce7ef;--sand: #ede3d6;--sand-ink: #8a6a3e;--good: #2f7a55;--warn: #c7a87c;--danger: #b0455c;--danger-ink: #8e3549;--rule: rgba(34, 48, 59, .14);--rule-soft: rgba(34, 48, 59, .09);--r-card: 12px;--r-field: 10px;--r-dialog: 14px;font-family:Manrope,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-size:15px;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Cormorant,Georgia,serif;font-weight:300;letter-spacing:-.012em;margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}@media(prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}.app{max-width:1440px;margin:0 auto;padding:0 32px 48px}.topbar{display:flex;align-items:center;gap:32px;height:60px;margin-bottom:26px;border-bottom:1px solid var(--rule)}.brand{line-height:1.05}.brand b{display:block;font-family:Cormorant,Georgia,serif;font-size:1.18rem;font-weight:400}.brand small{display:block;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}.topbar nav{display:flex;gap:24px}.topbar nav button{border:0;background:none;box-shadow:none;padding:3px 0;font-size:.9rem;color:var(--ink-soft);border-bottom:1.5px solid transparent;border-radius:0;transition:color .2s,border-color .2s}.topbar nav button:hover{color:var(--ink);background:none;box-shadow:none;border-bottom-color:var(--accent-soft)}.topbar nav button.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:400}.topbar .who{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:.82rem;color:var(--ink-soft)}.head{display:flex;align-items:flex-end;gap:20px;margin-bottom:18px}.head h1{font-size:2rem;line-height:1}.head p{margin:0 0 4px;font-size:.86rem;color:var(--ink-soft)}.head .grow{margin-left:auto;display:flex;gap:10px;align-items:center}button{font:inherit;border:0;background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--rule);border-radius:999px;padding:10px 20px;font-size:.87rem;cursor:pointer;transition:background .2s,box-shadow .2s,color .2s}button:hover{box-shadow:inset 0 0 0 1px var(--accent-soft);background:var(--surface)}button.primary{background:var(--accent);color:#fff;font-weight:500;box-shadow:none}button.primary:hover{background:var(--accent-hover);box-shadow:none}button.danger{color:var(--danger);box-shadow:inset 0 0 0 1px #b0455c4d}button.danger:hover{background:#b0455c0f;box-shadow:inset 0 0 0 1px var(--danger)}button.small{padding:6px 14px;font-size:.79rem}button.icon{width:26px;height:26px;padding:0;display:inline-flex;align-items:center;justify-content:center}button.icon.primary svg{display:block}button.active{color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}button:disabled{opacity:.45;cursor:not-allowed}button:disabled:hover{background:transparent;box-shadow:inset 0 0 0 1px var(--rule)}button.primary:disabled:hover{background:var(--accent)}button.linklike{border:0;box-shadow:none;background:none;padding:0;color:var(--accent);text-decoration:underline;border-radius:0;font-size:inherit}button.linklike:hover{background:none;box-shadow:none;color:var(--accent-hover)}input,select,textarea{font:inherit;font-size:.9rem;color:var(--ink);background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-field);padding:10px 13px;transition:border-color .2s,box-shadow .2s}input{min-width:260px}input[type=radio],input[type=checkbox]{appearance:none;-webkit-appearance:none;min-width:0;width:18px;height:18px;flex:0 0 18px;margin:0;padding:0;border:1.5px solid rgba(34,48,59,.28);border-radius:50%;background:var(--surface);display:inline-grid;place-content:center;cursor:pointer;transition:border-color .15s,background .15s}input[type=checkbox]{border-radius:5px}input[type=radio]:before,input[type=checkbox]:before{content:"";transform:scale(0);transition:transform .15s ease}input[type=radio]:before{width:7px;height:7px;border-radius:50%;background:#fff}input[type=checkbox]:before{width:4px;height:8px;margin-top:-2px;border:solid #fff;border-width:0 2px 2px 0;rotate:45deg}input[type=radio]:hover,input[type=checkbox]:hover{border-color:var(--accent-soft)}input[type=radio]:checked,input[type=checkbox]:checked{border-color:var(--accent);background:var(--accent)}input[type=radio]:checked:before,input[type=checkbox]:checked:before{transform:scale(1)}input[type=radio]:focus-visible,input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=radio]:focus,input[type=checkbox]:focus{box-shadow:none}input:hover,select:hover,textarea:hover{border-color:var(--accent-soft)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-soft);box-shadow:0 0 0 3px #7fa9c62e}input::placeholder{color:var(--accent-soft)}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px}.search{min-width:300px;border-radius:999px;padding:10px 18px}.error{display:flex;gap:11px;align-items:flex-start;background:#b0455c14;border:1px solid rgba(176,69,92,.24);color:var(--danger-ink);border-radius:var(--r-card);padding:13px 15px;margin-bottom:16px;font-size:.87rem;line-height:1.4;cursor:pointer}.error:before{content:"";flex:0 0 17px;height:17px;margin-top:1px;background:var(--danger);-webkit-mask:radial-gradient(circle,transparent 55%,#000 56%) center / 100% 100% no-repeat;mask:radial-gradient(circle,transparent 55%,#000 56%) center / 100% 100% no-repeat;border-radius:50%}.ok-note{color:var(--good);font-size:.85rem}.muted{color:var(--ink-soft);font-size:.85rem}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row.end{justify-content:flex-end;margin-top:20px}.kanban{display:flex;gap:14px;align-items:flex-start;overflow-x:auto;padding-bottom:12px}.col{width:232px;flex:0 0 232px;background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r-card);padding:12px}.col h3{display:flex;align-items:center;gap:8px;font-family:Manrope,sans-serif;font-size:.82rem;font-weight:500;letter-spacing:.01em;margin:0 0 10px}.col h3 .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.col h3 span{margin-left:auto;font-family:Cormorant,serif;font-size:1.05rem;color:var(--ink-soft)}.dot-inbox{background:var(--accent-soft)}.dot-in_progress{background:#4b93c4}.dot-trial{background:var(--azure)}.dot-agreed{background:var(--accent)}.dot-enrolled{background:var(--good)}.dot-postponed{background:var(--warn)}.dot-lost{background:var(--danger)}.col-empty{border:1px dashed rgba(34,48,59,.16);border-radius:var(--r-field);padding:16px 10px;text-align:center;font-size:.78rem;color:var(--accent-soft)}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-field);padding:11px 12px 10px;margin-bottom:8px;display:flex;flex-direction:column;gap:5px}.card b{font-size:.91rem;font-weight:500;line-height:1.25}.card .contact{font-size:.78rem;color:var(--ink-soft)}.card .note{font-family:Cormorant,Georgia,serif;font-style:italic;font-size:.95rem;line-height:1.35;color:var(--ink-soft);padding-left:9px;border-left:1.5px solid var(--mist);margin-top:2px}.card .card-foot{display:flex;align-items:center;gap:6px;margin-top:6px;padding-top:8px;border-top:1px solid var(--rule-soft)}.card .card-foot .stage-pick{min-width:0;flex:1;border:0;background:none;padding:0;font-size:.75rem;color:var(--ink-soft)}.card .card-foot .stage-pick:hover{color:var(--accent);box-shadow:none}.card .card-foot .stage-pick:focus{box-shadow:none}.card .acts{display:flex;gap:5px;flex-shrink:0}.chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:1px}.chip{border-radius:999px;padding:3px 9px;font-size:.72rem;letter-spacing:.01em;background:var(--mist);color:var(--ink)}.chip-sand{background:var(--sand);color:var(--sand-ink)}table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-card);overflow:hidden}thead th{text-align:left;padding:11px 18px;background:var(--paper-2);border-bottom:1px solid var(--rule);font-size:.74rem;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}tbody td{padding:11px 18px;border-bottom:1px solid var(--rule-soft);font-size:.88rem;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover td,tbody tr.sel td{background:var(--paper-2)}td .name{font-weight:500}td .sub{font-size:.76rem;color:var(--ink-soft)}td.num{font-family:Cormorant,serif;font-size:1.1rem;font-variant-numeric:tabular-nums}td.num.neg{color:var(--danger)}td.acts{text-align:right}td.acts .row{justify-content:flex-end;flex-wrap:nowrap}.st{display:inline-block;border-radius:999px;padding:3px 10px;font-size:.74rem;background:var(--paper);color:var(--ink-soft)}.st-active,.st-held{background:var(--mist);color:var(--accent)}.st-planned,.st-trial,.st-recruiting{background:var(--sand);color:var(--sand-ink)}.st-cancelled,.st-debt{background:#b0455c1a;color:var(--danger)}.st-running{background:#2f7a551f;color:var(--good)}.st-archived,.st-paused,.st-finished{background:var(--paper);color:var(--ink-mute)}.panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-card);padding:18px 20px 20px;margin:16px 0}.panel h3{font-size:1.25rem;margin:0 0 12px}.plain{list-style:none;padding:0;margin:0 0 12px}.members{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.member{display:inline-flex;align-items:center;gap:7px;background:var(--paper-2);border:1px solid var(--rule);border-radius:999px;padding:5px 12px;font-size:.83rem}.att{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--rule-soft)}.att:last-of-type{border-bottom:0}.att .who{font-size:.87rem}.att .row{margin-left:auto;flex-wrap:nowrap;gap:4px}.att button{padding:5px 11px;font-size:.75rem}.att button.on-present{background:var(--good);color:#fff;box-shadow:none}.att button.on-late{background:var(--warn);color:var(--ink);box-shadow:none}.att button.on-absent{background:var(--danger);color:#fff;box-shadow:none}.att button.on-excused{background:var(--mist);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.att button.on-unmarked{box-shadow:inset 0 0 0 1px var(--rule)}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}@media(max-width:900px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-card);padding:16px 18px 18px;display:flex;flex-direction:column;gap:3px}.stat span{font-size:.79rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft)}.stat b{font-family:Cormorant,serif;font-size:2.3rem;font-weight:400;line-height:1.1;font-variant-numeric:tabular-nums}.stat.neg b{color:var(--danger)}.report h3{font-size:1.4rem;margin:28px 0 12px}.dl{display:inline-flex;align-items:center;gap:7px;font-size:.86rem}.funnel{display:flex;flex-direction:column;gap:11px}.funnel-row{display:grid;grid-template-columns:140px minmax(0,1fr) 86px;gap:12px;align-items:center}.funnel-row .lbl{font-size:.84rem;color:var(--ink-soft)}.funnel-row .track{height:22px;background:var(--paper);border-radius:4px;overflow:hidden}.funnel-row .fill{height:100%;border-radius:0 4px 4px 0;background:var(--accent)}.funnel-row .val{font-size:.84rem;text-align:right;font-variant-numeric:tabular-nums}.funnel-row .val b{font-weight:500}.funnel-row .val span{color:var(--accent-soft)}.dlg-backdrop{position:fixed;inset:0;background:#22303b57;display:flex;align-items:flex-start;justify-content:center;z-index:50;padding:96px 16px;overflow-y:auto}.dlg{background:var(--surface);border-radius:var(--r-dialog);padding:24px 26px 22px;width:100%;max-width:430px;box-shadow:0 18px 50px #22303b2e}.dlg h3{font-size:1.5rem;margin:0 0 18px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field>span{font-size:.8rem;color:var(--ink-soft)}.field input,.field select{min-width:0;width:100%}.col-list{display:flex;flex-direction:column}.radio{display:flex;align-items:center;gap:11px;flex-wrap:nowrap;padding:9px 2px;border-bottom:1px solid var(--rule-soft);font-size:.9rem;line-height:1.35;cursor:pointer}.radio:last-child{border-bottom:0}.radio:hover{color:var(--accent)}.lk{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;background:var(--paper)}.lk-head{padding:16px 20px 12px;border-bottom:1px solid var(--rule);flex-shrink:0}.lk-head small{display:block;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:2px}.lk-head-row{display:flex;align-items:baseline;gap:10px}.lk-head-row b{font-family:Cormorant,Georgia,serif;font-size:1.5rem;font-weight:300;line-height:1.15}.lk-head-meta{margin-left:auto;flex-shrink:0;font-size:.76rem;color:var(--accent-soft)}.lk-main{flex:1;padding:14px 20px 96px}.lk-stack{display:flex;flex-direction:column;gap:16px}.lk-section-title{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);padding:0 2px 8px}.lk-foot{margin:0;padding:0 2px;font-size:.79rem;color:var(--ink-soft);line-height:1.45}.lk-hint{color:var(--ink-soft);font-size:.9rem;line-height:1.5;padding:16px 2px}.lk-error{display:flex;gap:11px;align-items:flex-start;background:#b0455c14;border:1px solid rgba(176,69,92,.24);color:var(--danger-ink);border-radius:var(--r-dialog);padding:13px 15px;font-size:.87rem;line-height:1.45;cursor:pointer}.lk-error svg{flex-shrink:0;margin-top:1px}.lk-next{background:var(--surface);border:1px solid var(--accent-soft);border-radius:var(--r-dialog);padding:15px 17px 16px}.lk-next.cancelled{border-color:#b0455c59;background:#b0455c0d}.lk-next-head{display:flex;align-items:baseline;gap:10px;margin-bottom:9px}.lk-next-head .label{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.lk-next.cancelled .lk-next-head .label{color:var(--danger)}.lk-next-head .until{margin-left:auto;font-size:.76rem;color:var(--ink-soft)}.lk-next-when{display:flex;align-items:baseline;gap:11px;margin-bottom:5px}.lk-next-when b{font-family:Cormorant,serif;font-size:2.1rem;font-weight:400;line-height:1;font-variant-numeric:tabular-nums}.lk-next-when span{font-size:.87rem;color:var(--ink-soft)}.lk-next-title{font-size:.97rem;font-weight:500;line-height:1.3}.lk-next-topic{font-size:.85rem;color:var(--ink-soft);margin-top:2px}.lk-next-place{display:flex;align-items:center;gap:9px;margin-top:12px;padding-top:12px;border-top:1px solid var(--rule-soft);font-size:.85rem;color:var(--ink-soft)}.lk-next-place svg{flex-shrink:0;color:var(--accent-soft)}.lk-next-place span{min-width:0}.lk-next-place a{margin-left:auto;flex-shrink:0;padding:8px 0 8px 12px}.lk-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.lk-list li{display:flex;gap:13px;align-items:flex-start;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-dialog);padding:12px 15px;min-height:48px}.lk-list li.past{opacity:.62}.lk-list .when{flex:0 0 54px}.lk-list .when b{display:block;font-family:Cormorant,serif;font-size:1.15rem;font-weight:400;line-height:1.15;font-variant-numeric:tabular-nums}.lk-list .when span{font-size:.72rem;color:var(--ink-soft)}.lk-list .what{min-width:0;flex:1}.lk-list .what b{font-size:.92rem;font-weight:500;line-height:1.3}.lk-list .what .sub{font-size:.79rem;color:var(--ink-soft)}.lk-list .badge{flex-shrink:0;border-radius:999px;padding:3px 10px;font-size:.71rem;background:var(--paper);color:var(--ink-mute)}.lk-list .badge.danger{background:#b0455c1a;color:var(--danger)}.lk-disclosure{width:100%;min-height:44px;display:flex;align-items:center;gap:9px;background:transparent;border:0;box-shadow:none;border-radius:0;padding:11px 2px;color:var(--ink-soft);font-size:.84rem}.lk-disclosure:hover{background:transparent;box-shadow:none;color:var(--ink)}.lk-disclosure .count{color:var(--accent-soft)}.lk-disclosure svg{margin-left:auto;transition:rotate .2s ease}.lk-disclosure svg.flip{rotate:180deg}.lk-notes{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}.lk-notes li{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-dialog);padding:13px 16px 14px}.lk-notes .when{font-size:.75rem;color:var(--accent-soft);margin-bottom:5px}.lk-notes .text{font-size:.9rem;line-height:1.45}.lk-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:15px;padding:40px 10px 24px}.lk-empty.tall{padding-top:25vh}.lk-empty-icon{width:60px;height:60px;border-radius:50%;background:var(--mist);color:var(--accent);display:flex;align-items:center;justify-content:center}.lk-empty-icon.sand{background:var(--sand);color:var(--sand-ink)}.lk-empty h3{font-size:1.3rem;line-height:1.25;margin:0 0 7px}.lk-empty p{margin:0;font-size:.89rem;color:var(--ink-soft);line-height:1.5;max-width:34ch}.lk-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-dialog);padding:16px 17px 17px}.lk-card h3{font-size:1.2rem;margin:0 0 3px}.lk-card h3+.muted{margin:0 0 10px;line-height:1.45}.lk-card label{display:block;margin-top:12px;font-size:.78rem;color:var(--ink-soft)}.lk-card label:first-of-type{margin-top:12px}.lk-card input{min-width:0;width:100%;min-height:46px;border-radius:11px;padding:12px 14px;font-size:.94rem}.lk-card .row{margin-top:14px}.lk-card .row button{min-height:46px;padding:13px 26px;font-size:.89rem}.lk-channels{display:flex;flex-direction:column}.lk-channel{width:100%;min-height:48px;display:flex;align-items:center;gap:12px;background:transparent;border:0;box-shadow:none;border-radius:0;border-top:1px solid var(--rule-soft);padding:12px 2px;font-size:.9rem;color:var(--ink);text-align:left}.lk-channel:hover{background:transparent;box-shadow:none}.lk-channel .mark{flex:0 0 18px;height:18px;border-radius:50%;border:1.5px solid rgba(34,48,59,.28);background:var(--surface);display:inline-grid;place-content:center;transition:border-color .15s,background .15s}.lk-channel .mark:before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;transform:scale(0);transition:transform .15s ease}.lk-channel.on .mark{border-color:var(--accent);background:var(--accent)}.lk-channel.on .mark:before{transform:scale(1)}.lk-channel .title{min-width:0}.lk-channel .handle{margin-left:auto;flex-shrink:0;font-size:.78rem;color:var(--accent-soft)}.lk-prefs{list-style:none;padding:0;margin:0}.lk-pref{display:flex;align-items:center;gap:12px;min-height:48px;border-top:1px solid var(--rule-soft);padding:11px 0}.lk-pref-text{min-width:0;font-size:.89rem;line-height:1.3}.lk-pref-locked{margin-left:auto;flex-shrink:0;color:var(--accent-soft);display:flex}.lk-switch{margin-left:auto;flex:0 0 46px;align-self:center;width:46px;height:28px;min-height:28px;max-height:28px;padding:0;border:0;border-radius:999px;background:#e4e8ed;box-shadow:inset 0 0 0 1px var(--rule);position:relative;font-size:0;line-height:0}.lk-switch:hover{background:#dde2e7;box-shadow:inset 0 0 0 1px var(--accent-soft)}.lk-switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #22303b40;transition:left .18s ease}.lk-switch.on{background:var(--accent);box-shadow:none}.lk-switch.on:hover{background:var(--accent-hover)}.lk-switch.on:after{left:21px}.course-progress{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-dialog);padding:13px 16px}.course-progress.finished{background:var(--sand);border-color:#dbc9ae}.course-progress .text{min-width:0}.course-progress .text b{display:block;font-size:.89rem;font-weight:500;line-height:1.3}.course-progress .text span{font-size:.79rem;color:var(--ink-soft)}.course-progress.finished .text span{color:#6b5b45}.course-progress .percent{margin-left:auto;flex-shrink:0;font-family:Cormorant,serif;font-size:1.5rem;color:var(--accent)}.course-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.course-list li{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-dialog);overflow:hidden;padding:0}.course-list li.open{border-color:var(--accent-soft)}.course-head{width:100%;text-align:left;display:flex;align-items:flex-start;gap:11px;background:transparent;border:0;box-shadow:none;border-radius:0;padding:13px 16px;min-height:48px}.course-head:hover{background:var(--paper-2);box-shadow:none}.course-head .seq{flex:0 0 auto;font-family:Cormorant,serif;font-size:1.2rem;line-height:1.2;color:var(--accent-soft)}.course-head .seq.done{color:var(--good)}.course-head .text{min-width:0;flex:1}.course-head .title{display:block;font-size:.95rem;font-weight:500;line-height:1.3}.course-head .date{display:block;font-size:.78rem;color:var(--ink-soft);margin-top:2px}.course-head .badge{flex-shrink:0;border-radius:999px;padding:3px 9px;margin-top:2px;font-size:.7rem;background:#2f7a551f;color:var(--good)}.course-head svg{flex-shrink:0;margin-top:3px;color:var(--ink-soft);transition:rotate .2s ease}.course-head svg.flip{rotate:180deg}.course-body{padding:0 16px 15px}.course-body .summary{margin:0 0 11px;font-size:.85rem;color:var(--ink-soft);line-height:1.45}.materials{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:7px}.materials li{padding:0;border:0;background:none}.materials li button,.materials li.locked{width:100%;text-align:left;display:flex;align-items:center;gap:11px;background:var(--paper-2);border:0;box-shadow:none;border-radius:11px;padding:11px 13px;min-height:48px;font-size:.88rem;color:var(--ink)}.materials li button:hover{background:var(--mist);box-shadow:none}.materials li.locked{background:var(--paper);color:var(--ink-mute)}.materials .icon{flex:0 0 30px;height:30px;border-radius:50%;background:var(--mist);color:var(--accent);display:flex;align-items:center;justify-content:center}.materials li.locked .icon{background:#e4e8ed;color:var(--ink-mute)}.materials .title{min-width:0;flex:1}.materials .meta{flex-shrink:0;font-size:.76rem;color:var(--accent-soft)}.course-video{width:100%;border-radius:var(--r-card);margin-top:11px;display:block;background:var(--ink)}.lk-tabs{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--surface);border-top:1px solid var(--rule);max-width:480px;margin:0 auto;padding-bottom:max(6px,env(safe-area-inset-bottom))}.lk-tabs button{flex:1;border:0;box-shadow:none;border-radius:0;padding:9px 0 8px;min-height:56px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.68rem;color:var(--ink-soft)}.lk-tabs button:hover{background:var(--paper-2);box-shadow:none}.lk-tabs button.active{color:var(--accent)}.lk-tabs button.active svg{stroke-width:2}.lk-tabs svg{display:block}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 20px;background:var(--paper)}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-dialog);padding:26px 24px 22px}.login-card small{display:block;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:4px}.login-card h1{font-size:1.9rem;line-height:1.1;margin-bottom:10px}.login-card .muted{margin:0 0 18px;line-height:1.5}.login-card label{display:block;font-size:.78rem;color:var(--ink-soft);margin-bottom:6px}.login-card input{width:100%;min-width:0;min-height:48px;border-radius:11px;padding:12px 14px;font-size:.95rem}.login-card input.code{font-family:Cormorant,serif;font-size:1.8rem;line-height:1;letter-spacing:.22em;text-align:center;font-variant-numeric:tabular-nums}.login-card .primary{width:100%;min-height:48px;margin-top:16px;font-size:.92rem}.login-card .back{display:block;margin:14px auto 0;font-size:.85rem}.login-error{display:flex;gap:10px;align-items:flex-start;margin-top:14px;background:#b0455c14;border:1px solid rgba(176,69,92,.24);color:var(--danger-ink);border-radius:11px;padding:11px 13px;font-size:.85rem;line-height:1.4}.login-error svg{flex-shrink:0;margin-top:1px}.login-or{display:flex;align-items:center;gap:12px;margin:20px 0 16px;color:var(--ink-soft);font-size:.78rem}.login-or:before,.login-or:after{content:"";flex:1;height:1px;background:var(--rule)}.login-widget{display:flex;justify-content:center;min-height:40px}.login-foot{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--rule-soft);font-size:.8rem;color:var(--ink-soft);line-height:1.45}.lk-cta{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:13px 26px;margin-top:4px;background:var(--accent);color:#fff;border-radius:999px;font-size:.9rem;font-weight:500}.lk-cta:hover{background:var(--accent-hover);color:#fff}.login-card .muted b{font-weight:500;color:var(--ink)}.login-hint{margin:12px 0 0;font-size:.79rem;color:var(--ink-soft);line-height:1.45}
