@font-face{font-family:Cormorant;font-style:italic;font-weight:300 400;font-display:swap;src:url(/fonts/cormorant-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant;font-style:italic;font-weight:300 400;font-display:swap;src:url(/fonts/cormorant-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant;font-style:italic;font-weight:300 400;font-display:swap;src:url(/fonts/cormorant-italic-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant;font-style:italic;font-weight:300 400;font-display:swap;src:url(/fonts/cormorant-italic-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant;font-style:normal;font-weight:300 500;font-display:swap;src:url(/fonts/cormorant-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant;font-style:normal;font-weight:300 500;font-display:swap;src:url(/fonts/cormorant-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant;font-style:normal;font-weight:300 500;font-display:swap;src:url(/fonts/cormorant-normal-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant;font-style:normal;font-weight:300 500;font-display:swap;src:url(/fonts/cormorant-normal-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:300 600;font-display:swap;src:url(/fonts/manrope-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:300 600;font-display:swap;src:url(/fonts/manrope-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:300 600;font-display:swap;src:url(/fonts/manrope-normal-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:300 600;font-display:swap;src:url(/fonts/manrope-normal-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}: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:1680px;margin:0 auto;padding:0 32px 48px}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:32px;height:60px;margin-bottom:26px;background:var(--paper);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;flex-wrap:wrap;justify-content:flex-end}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-box{position:relative;display:flex;align-items:center}.search-box svg{position:absolute;left:16px;pointer-events:none;color:var(--accent-soft)}.search{min-width:300px;border-radius:999px;padding:10px 18px 10px 38px}.notice{background:#c7a87c24;border:1px solid rgba(199,168,124,.42);color:var(--sand-ink);border-radius:var(--r-card);padding:13px 15px;margin-bottom:16px;font-size:.87rem;line-height:1.45}.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%}body.modal-open .error{position:fixed;z-index:60;top:16px;left:50%;transform:translate(-50%);max-width:560px;margin:0;box-shadow:0 10px 30px #22303b2e;background:var(--surface)}.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:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;align-items:start;padding-bottom:12px}.col{min-width:0;background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r-card);padding:12px;transition:background .15s,box-shadow .15s}@media(max-width:1180px){.kanban{display:flex;overflow-x:auto;align-items:flex-start}.col{width:216px;flex:0 0 216px}}.col.over{background:var(--mist);box-shadow:inset 0 0 0 1.5px var(--accent-soft)}.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-enrolled{background:var(--good)}.dot-postponed{background:var(--warn)}.dot-lost{background:var(--danger)}.col-clear{width:100%;margin-top:4px}.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;cursor:grab}.card:active{cursor:grabbing}.card.dragging{opacity:.4}.card b{font-size:.91rem;font-weight:500;line-height:1.25;overflow-wrap:anywhere}.card .contact{font-size:.78rem;color:var(--ink-soft);overflow-wrap:anywhere}.lead-contact{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.lead-contact .lead-source{font-size:.7rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-mute)}.lead-contact .call{font-size:.82rem;color:var(--accent);text-decoration:none;font-variant-numeric:tabular-nums}.lead-contact .call:hover{text-decoration:underline}.lead-contact .write{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;text-decoration:none}.lead-contact .write:hover{text-decoration:underline}.lead-contact .write svg{flex:0 0 auto}.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;justify-content:flex-end;gap:6px;margin-top:6px;padding-top:8px;border-top:1px solid var(--rule-soft)}.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;overflow-wrap:anywhere;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)}.invite-qr{display:flex;justify-content:center;margin-bottom:14px}.invite-qr img{border:1px solid var(--rule);border-radius:var(--r-card);background:#fff;padding:8px}.chart{margin:4px 0 8px}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .grid{stroke:var(--rule-soft);stroke-width:1}.chart .tick{font-size:11px;fill:var(--ink-mute)}.chart .area{fill:var(--mist);opacity:.7}.chart .line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round}.chart .cross{stroke:var(--accent-soft);stroke-width:1;stroke-dasharray:3 3}.chart .dot{fill:var(--accent);stroke:var(--surface);stroke-width:2}.chart-hint{font-size:.83rem;color:var(--ink-soft);margin-top:6px}.chart-hint b{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}.chart-legend{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:10px;font-size:.83rem;color:var(--ink-soft)}.chart-legend b{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}.chart-empty{padding:34px 0;text-align:center;font-size:.85rem;color:var(--ink-mute)}.range{display:flex;gap:4px}.range button{padding:6px 12px;font-size:.79rem}.range button.active{background:var(--accent);color:#fff;box-shadow:none}.dlg-backdrop{position:fixed;inset:0;background:#22303b57;display:flex;align-items:flex-start;justify-content:center;z-index:50;padding:clamp(12px,4vh,44px) 16px calc(clamp(28px,13vh,128px) + env(safe-area-inset-bottom,0px))}body.modal-open{overflow:hidden}.dlg-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}.dlg-head h3{margin:0;flex:1}.dlg-x{flex:0 0 auto;margin-top:2px;color:var(--ink-soft)}.dlg-x:hover{color:var(--danger)}.dlg{background:var(--surface);border-radius:var(--r-dialog);padding:24px 26px 22px;width:100%;max-width:430px;max-height:100%;display:flex;flex-direction:column;box-shadow:0 18px 50px #22303b2e}.dlg-body{overflow-y:auto;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;margin:0 -26px -22px;padding:2px 26px 22px}.dlg h3{font-size:1.5rem}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field>span{font-size:.8rem;color:var(--ink-soft)}.field input,.field select,.field textarea{min-width:0;width:100%}.field textarea{resize:vertical;line-height:1.45;font-family:inherit}.col-list{display:flex;flex-direction:column}.stage-pick{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:12px 14px;justify-content:flex-start;text-align:left;background:none;box-shadow:none;border-radius:var(--r-field)}.stage-pick:hover{background:var(--paper-2);box-shadow:none}.stage-pick .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.weekdays{display:flex;gap:6px;flex-wrap:wrap}.weekdays button{padding:7px 0;width:40px;text-align:center}.weekdays button.active{background:var(--accent);color:#fff;box-shadow:none}.weekdays button.active:hover{background:var(--accent-hover)}.day-times{display:flex;flex-direction:column;gap:8px}.day-times label{display:flex;align-items:center;gap:12px}.day-times label b{width:34px;flex:0 0 34px;font-size:.82rem;font-weight:500;color:var(--ink-soft)}.day-times input{min-width:0;width:140px}.row.two{display:flex;gap:12px}.row.two .field{flex:1;min-width:0}.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)}.check{display:inline-flex;align-items:center;gap:8px;font-size:.84rem;color:var(--ink-soft);cursor:pointer;white-space:nowrap}.check:hover{color:var(--ink)}tbody tr.gone td{color:var(--ink-mute)}tbody tr.gone td .name{font-weight:400;text-decoration:line-through;text-decoration-color:var(--rule)}.dlg-wide{max-width:720px}.card-meta{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:0 0 18px;font-size:.85rem;color:var(--ink-soft)}.cards-3{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.cards-3 .stat{padding:12px 14px 14px}.cards-3 .stat b{font-size:1.7rem}.contacts{display:flex;flex-direction:column;gap:1px}.contacts span{font-size:.78rem;color:var(--ink-soft);line-height:1.45}.contacts.inline{flex-direction:row;flex-wrap:wrap;gap:4px 14px}.sub-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}.sub-head p{margin:0;flex:1}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--rule);margin-bottom:2px}.tabs button{box-shadow:none;background:none;border-radius:0;padding:9px 14px;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--ink-soft);display:inline-flex;align-items:center;gap:7px}.tabs button:hover{background:none;box-shadow:none;color:var(--ink)}.tabs button.active{color:var(--ink);border-bottom-color:var(--accent)}.tabs-page{margin:-4px 0 20px}.tabs-page button{font-size:.95rem;padding:10px 18px}.tabs button i{font-style:normal;font-size:.72rem;background:var(--paper-2);color:var(--ink-soft);border-radius:999px;padding:2px 7px}.tabs button.active i{background:var(--mist);color:var(--accent)}.card-table{flex:1 1 auto;min-height:0;overflow-y:auto;margin-bottom:4px}.card-table table{border:0;border-radius:0}.card-table thead th{position:sticky;top:0;z-index:1}.card-table p.muted{padding:22px 2px}.thread{display:flex;flex-direction:column;gap:10px;padding:14px 2px}.msg{max-width:78%;border-radius:var(--r-card);padding:9px 13px 7px}.msg-body{font-size:.88rem;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.msg-meta{margin-top:4px;font-size:.72rem;color:var(--ink-mute)}.msg-in{align-self:flex-start;background:var(--paper-2);border:1px solid var(--rule)}.msg-out{align-self:flex-end;background:var(--mist);border:1px solid transparent}.msg-out .msg-meta{color:var(--accent-soft)}.compose{display:flex;gap:10px;align-items:flex-end;margin-top:12px}.compose textarea{flex:1;min-width:0;resize:vertical;line-height:1.45;font-family:inherit}.st-att-present{background:#2f7a551f;color:var(--good)}.st-att-late{background:var(--sand);color:var(--sand-ink)}.st-att-absent{background:#b0455c1a;color:var(--danger)}.st-att-excused{background:var(--mist);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;overflow-wrap:anywhere}.lk-next-place a{margin-left:auto;flex-shrink:0;padding:13px 0 13px 14px}.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;overflow-wrap:anywhere}.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}button.icon.act{width:30px;height:30px}button.icon.act svg{display:block}td.acts .row{gap:4px}.st.st-ico{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;vertical-align:middle}.st.st-ico+.st.st-ico{margin-left:5px}.st-ok{background:#2f7a551f;color:var(--good)}.st-wait{background:var(--sand);color:var(--sand-ink)}.st-bad{background:#b0455c1a;color:var(--danger)}.seats{margin-left:10px;font-size:.8rem;color:var(--ink-soft);font-family:Manrope,system-ui,sans-serif;font-variant-numeric:tabular-nums}.seats.full{color:var(--danger)}.member{display:inline-flex;align-items:center;gap:6px}.member .chip-x{box-shadow:none;background:none;padding:0;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-mute);border-radius:999px}.member .chip-x:hover{color:var(--danger);background:none;box-shadow:none}.member.confirm{gap:8px;color:var(--danger)}.member.confirm .linklike{font-size:.82rem}.profile .field{margin-bottom:14px}.profile textarea{width:100%}.toasts{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:80;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{pointer-events:auto;background:var(--ink);color:#fff;box-shadow:none;border-radius:999px;padding:10px 20px;font-size:.85rem;max-width:min(520px,90vw);text-align:center;animation:toast-in .18s ease-out}.toast:hover{background:var(--ink);box-shadow:none;opacity:.9}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}th.pick,td.pick{width:34px;padding-right:0}.site-about{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start}@media(max-width:900px){.site-about{grid-template-columns:1fr}}.about-photo{width:100%;aspect-ratio:4 / 5;overflow:hidden;border-radius:var(--r-card);background:var(--paper);margin-bottom:12px}.about-photo img{width:100%;height:100%;object-fit:cover;display:block}.crop-frame{position:relative;overflow:hidden;margin:0 auto 16px;border-radius:var(--r-card);background:var(--paper-2);cursor:grab;touch-action:none}.crop-frame:active{cursor:grabbing}.crop-frame img{position:absolute;top:0;left:0;max-width:none;-webkit-user-select:none;user-select:none}.site-reviews{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}@media(max-width:900px){.site-reviews{grid-template-columns:1fr}}.stack-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}.stack-list li{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-dialog);padding:12px 14px}.stack-body{min-width:0;flex:1}.stack-body b{font-size:.88rem;font-weight:500}.stack-body .sub{margin-left:8px;font-size:.74rem;color:var(--ink-mute)}.stack-body p{margin:4px 0 0;font-size:.86rem;color:var(--ink-soft);line-height:1.45}.stack-list .row{flex-shrink:0}.stack-list li.gone{opacity:.55}.format-order{display:flex;flex-direction:column;gap:2px;flex-shrink:0}@media(pointer:coarse){input,select,textarea,.lk-card input,.login-card input{font-size:16px}.login-card input.code{font-size:1.8rem}}@media(max-width:900px){.app{padding:0 16px 40px}.topbar{height:auto;gap:10px;padding:10px 0 0;flex-wrap:wrap;align-items:flex-start;margin-bottom:18px}.topbar nav{order:3;width:100%;gap:18px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:2px 16px 8px;scroll-snap-type:x proximity}.topbar nav::-webkit-scrollbar{display:none}.topbar nav button{flex:0 0 auto;white-space:nowrap;scroll-snap-align:start}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-wrap>table{min-width:640px}td,th{overflow-wrap:anywhere}.tabs{overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:0 0 auto;white-space:nowrap;scroll-snap-align:start}button.icon,button.icon.act{width:40px;height:40px}td.acts .row{gap:2px}}.course-site{margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--rule)}.course-site h4,.course-site__label{margin:0 0 12px;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}.course-site__row{display:flex;gap:16px;align-items:flex-start}.course-site__pic{flex:0 0 96px;width:96px;aspect-ratio:4 / 5;display:flex;align-items:center;justify-content:center;background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r-field);overflow:hidden}.course-site__pic img{width:100%;height:100%;object-fit:cover;display:block}.course-site__pic .muted{font-size:.72rem;text-align:center;padding:0 6px}.course-site__fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.course-site__fields .field{margin:0}@media(max-width:900px){.course-site__row{flex-direction:column}}
