:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--night:#050b14;--bg:#050b14;--panel:#07121a;--card:#0a1823;--card-glass:#0a162a99;--card-2:#0e202d;--card-3:#132a38;--line:#19a0b22e;--line-strong:#19a0b261;--hairline:#9ecece14;--text:#dceef5;--muted:#b2d2dcbd;--faint:#8cb4c685;--cyan:#19a0b2;--cyan-wash:#19a0b221;--light:#9ecece;--deep:#1c7780;--gold:#d9b56a;--gold-wash:#d9b56a24;--red:#e5484d;--red-wash:#e5484d21;--good:#3fcf8e;--good-wash:#3fcf8e1f;--warn:#e8b04a;--warn-wash:#e8b04a21;--violet:#ab9bf0;--violet-wash:#ab9bf021;--on-cyan:#04121a;--shadow:0 18px 50px -12px #000000b3;--glow:0 0 28px -10px #19a0b28c;--serif:"Cormorant Garamond", Georgia, serif;--sans:"Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--r-sm:10px;--r:14px;--r-lg:18px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--sans);background:radial-gradient(1200px 600px at 70% -10%, #19a0b217, transparent 60%), var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;font-size:15px;line-height:1.5}a{color:var(--light);text-decoration:none}a:hover{color:#c8eaea;text-underline-offset:3px;text-decoration:underline}code,.mono{font-family:var(--mono);font-size:.84em}code{background:var(--card-2);color:var(--light);border-radius:6px;padding:1px 6px}h1,h2,h3,h4{margin:0;font-weight:600}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:6px}::selection{background:#19a0b259}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:100;background:var(--cyan);color:var(--on-cyan);border-radius:8px;padding:8px 12px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:13px}.tiny{font-size:11.5px}.strong{font-weight:600}.nowrap{white-space:nowrap}.right{text-align:right}.center{text-align:center}.gold{color:var(--gold)}.cyan{color:var(--cyan)}.hint{color:var(--faint);margin:2px 0;font-size:12.5px}.prose{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.spacer{flex:1}.stack{flex-direction:column;gap:14px;display:flex}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.is-loading{opacity:.6;transition:opacity .2s}.eyebrow{letter-spacing:3px;text-transform:uppercase;color:var(--cyan);margin:0 0 4px;font-size:10.5px;font-weight:600}.shell{grid-template-columns:244px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:linear-gradient(#07121af5,#050b14fa);flex-direction:column;height:100vh;padding:20px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{color:var(--text);align-items:center;gap:10px;padding:0 10px 20px;display:flex}.brand:hover{color:var(--text);text-decoration:none}.brand img{width:auto;height:30px}.brand-word{font-family:var(--serif);letter-spacing:.5px;font-size:26px;font-weight:700;line-height:1}.brand-tag{letter-spacing:3px;text-transform:uppercase;color:var(--cyan);margin-top:3px;font-size:9.5px;font-weight:600;display:block}.nav-group{margin-bottom:14px}.nav-group-title{letter-spacing:2.2px;text-transform:uppercase;color:var(--faint);margin:0 12px 6px;font-size:10px;font-weight:600}.nav-item{color:var(--muted);border:1px solid #0000;border-radius:12px;align-items:center;gap:12px;margin:1px 0;padding:8px 12px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:var(--cyan-wash);color:var(--text);text-decoration:none}.nav-item.active{color:#e6f7f8;border-color:var(--line);background:linear-gradient(90deg,#19a0b233,#19a0b20d)}.nav-item.active svg{color:var(--cyan)}.nav-item svg{opacity:.9;flex:none}.nav-count{background:var(--cyan);min-width:22px;height:20px;color:var(--on-cyan);border-radius:10px;place-items:center;margin-left:auto;padding:0 7px;font-size:11.5px;font-weight:700;display:grid}.nav-count.gold{background:var(--gold)}.sidebar-foot{color:var(--faint);flex-direction:column;gap:6px;margin-top:auto;padding:12px;font-size:12px;display:flex}.env{letter-spacing:1.5px;text-transform:uppercase;background:var(--cyan-wash);color:var(--light);border-radius:999px;align-self:flex-start;padding:3px 9px;font-size:10px;font-weight:700;display:inline-block}.env-dev{background:var(--gold-wash);color:var(--gold)}.main-col{flex-direction:column;min-width:0;display:flex}.topbar{z-index:30;-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);background:#050b14d1;align-items:center;gap:12px;min-height:58px;padding:10px 28px;display:flex;position:sticky;top:0}.topbar-title{color:var(--muted);font-weight:600;display:none}.topbar-right{align-items:center;gap:12px;margin-left:auto;display:flex}.me{align-items:center;gap:10px;min-width:0;display:flex}.me-text{flex-direction:column;min-width:0;line-height:1.15;display:flex}.me-mail{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:260px;font-size:13px;overflow:hidden}.icon-btn{border:1px solid var(--line);color:var(--text);cursor:pointer;background:0 0;border-radius:12px;place-items:center;width:38px;height:38px;display:grid}.icon-btn:hover{border-color:var(--cyan);color:var(--light)}.menu-btn,.scrim{display:none}main{outline:none;padding:26px 28px 60px}.page{flex-direction:column;gap:18px;max-width:1480px;margin:0 auto;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-head h1{font-family:var(--serif);letter-spacing:.2px;color:#eaf6f8;font-size:38px;font-weight:600;line-height:1.05}.page-sub{color:var(--muted);max-width:780px;margin:6px 0 0}.page-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.boot{place-items:center;min-height:100vh;padding:40px;display:grid}.boot>*{width:min(460px,100%)}.back{color:var(--light);align-self:flex-start;font-size:14px;font-weight:500}.btn{font:inherit;cursor:pointer;letter-spacing:.2px;white-space:nowrap;border:1.5px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;font-weight:600;text-decoration:none;transition:transform 60ms,background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.btn:hover{text-decoration:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-md{min-height:40px;padding:0 20px;font-size:14px}.btn-sm{min-height:32px;padding:0 14px;font-size:13px}.btn-primary{color:var(--on-cyan);background:linear-gradient(#23b3c5 0%,#19a0b2 60%,#158a99 100%);box-shadow:0 6px 20px -6px #19a0b299}.btn-primary:hover:not(:disabled){filter:brightness(1.08);color:var(--on-cyan)}.btn-outline{border-color:var(--cyan);color:var(--light);background:0 0}.btn-outline:hover:not(:disabled){background:var(--cyan-wash);color:#d4f0f0}.btn-quiet{color:var(--text);border-color:var(--line);background:0 0}.btn-quiet:hover:not(:disabled){border-color:var(--line-strong);color:var(--text);background:#19a0b20f}.btn-ghost{color:var(--muted);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--text)}.btn-gold{background:var(--gold-wash);color:var(--gold);border-color:#d9b56a99}.btn-gold:hover:not(:disabled){color:#ecd29b;background:#d9b56a38}.btn-danger{color:#ff8b8f;background:0 0;border-color:#e5484d99}.btn-danger:hover:not(:disabled){background:var(--red-wash);color:#ffa4a7}.btn[aria-pressed=true]{background:var(--cyan-wash);border-color:var(--cyan);color:#d4f0f0}.link-btn{color:var(--light);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:13px;font-weight:500}.link-btn:hover{color:#d4f0f0;text-decoration:underline}.link-btn.danger{color:#ff8b8f}.mini{font:inherit;background:var(--card-2);border:1px solid var(--line);color:var(--muted);cursor:pointer;border-radius:8px;padding:3px 8px;font-size:12px;font-weight:600}.mini:hover:not(:disabled){color:var(--text);border-color:var(--line-strong)}.mini:disabled{opacity:.4;cursor:not-allowed}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.badge{white-space:nowrap;letter-spacing:.2px;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.badge-good{background:var(--good-wash);color:var(--good)}.badge-warn{background:var(--warn-wash);color:var(--warn)}.badge-bad{background:var(--red-wash);color:#ff8b8f}.badge-muted{background:var(--card-3);color:var(--muted)}.badge-gold{background:var(--gold-wash);color:var(--gold)}.badge-cyan{background:var(--cyan-wash);color:var(--light)}.badge-violet{background:var(--violet-wash);color:var(--violet)}.badges{flex-wrap:wrap;gap:4px;display:inline-flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{font:inherit;border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:6px 13px;font-size:13px;font-weight:500}.chip:hover{color:var(--text);border-color:var(--line-strong)}.chip.on{background:var(--cyan-wash);color:#d4f0f0;border-color:var(--cyan)}.chip-intermediate.on{background:var(--gold-wash);color:var(--gold);border-color:#d9b56a99}.chip-advanced.on{background:var(--violet-wash);color:var(--violet);border-color:#ab9bf099}.card{background:var(--card-glass);border:1px solid var(--line);border-radius:var(--r-lg);-webkit-backdrop-filter:blur(10px);min-width:0}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 0;display:flex}.card-title{font-family:var(--serif);color:#e3f3f5;font-size:23px;font-weight:600;line-height:1.15}.card-sub{color:var(--muted);margin:3px 0 0;font-size:13px}.card-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card-body{padding:14px 20px 20px}.card-head+div:not(.card-body){margin-top:12px}.avatar{background:linear-gradient(135deg, var(--deep), var(--cyan));color:#eaf8f9;border-radius:50%;flex:none;place-items:center;font-weight:600;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.loading{flex-direction:column;gap:12px;padding:8px 0;display:flex}.skeleton{background:linear-gradient(90deg, var(--card) 0%, var(--card-3) 50%, var(--card) 100%);background-size:200% 100%;border-radius:8px;height:15px;animation:1.2s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.state{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:36px 20px;display:flex}.state-icon{background:var(--cyan-wash);width:46px;height:46px;color:var(--light);border:1px solid var(--line);border-radius:50%;place-items:center;font-size:18px;font-weight:700;display:grid}.state-error .state-icon{background:var(--red-wash);color:#ff8b8f;border-color:#e5484d4d}.state-title{font-family:var(--serif);margin:6px 0 0;font-size:22px;font-weight:600}.state-text{color:var(--muted);max-width:560px;margin:0 0 8px}.notice{background:var(--card-2);color:var(--text);border:1px solid var(--hairline);border-radius:12px;margin:0;padding:10px 14px;font-size:14px}.notice-warn{background:var(--warn-wash);color:var(--warn);border-color:#e8b04a40}.notice-bad{background:var(--red-wash);color:#ff9ea1;border-color:#e5484d40}.notice-cyan{background:var(--cyan-wash);color:var(--light);border-color:var(--line)}.issues{flex-direction:column;gap:4px;display:flex}.issue{border-radius:9px;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;padding:6px 10px;font-size:13px;display:flex}.issue code{opacity:.75;background:0 0;padding:0;font-size:11px}.issue-error{background:var(--red-wash);color:#ffa4a7}.issue-warn{background:var(--warn-wash);color:var(--warn)}.field{flex-direction:column;gap:6px;min-width:0;margin:8px 0;display:flex}.field>label,.field-label{letter-spacing:1.8px;text-transform:uppercase;color:#96c3d2c7;font-size:10.5px;font-weight:600}.req{color:var(--cyan)}input,textarea,select,.select{font:inherit;color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);background:#19a0b20d;width:100%;min-height:40px;padding:9px 12px;font-size:14px}input::placeholder,textarea::placeholder{color:#8cb4c66b}input:focus,textarea:focus,select:focus{border-color:var(--cyan);outline:none;box-shadow:0 0 0 3px #19a0b229}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--cyan)}input[type=range]{min-height:0;accent-color:var(--cyan);background:0 0;border:none;padding:0}input[type=number]{font-variant-numeric:tabular-nums}select option{background:var(--panel);color:var(--text)}textarea{resize:vertical;line-height:1.45}.select{cursor:pointer;width:auto}.field-error{color:#ff8b8f;margin:4px 0 0;font-size:13px;font-weight:500}.form-row{flex-wrap:wrap;gap:12px;display:flex}.form-row>.field{flex:140px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0 14px;display:grid}.bi-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.bi-col{min-width:0;position:relative}.bi-col input,.bi-col textarea{padding-left:40px}.lang{letter-spacing:1px;color:var(--cyan);pointer-events:none;font-size:10px;font-weight:700;position:absolute;top:11px;left:10px}.lang-fr{color:var(--gold)}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.search{flex:260px;align-items:center;max-width:420px;display:flex;position:relative}.search svg{color:var(--faint);position:absolute;left:13px}.search input{border-radius:999px;padding-left:38px;padding-right:34px}.search kbd{color:var(--faint);border:1px solid var(--line);border-radius:5px;padding:0 5px;font-size:11px;position:absolute;right:12px}.segmented{border:1px solid var(--line);background:#19a0b20d;border-radius:999px;flex-wrap:wrap;align-self:flex-start;gap:3px;padding:3px;display:inline-flex}.segmented button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:500;display:inline-flex}.segmented-sm button{padding:4px 10px;font-size:12px}.segmented button:hover{color:var(--text)}.segmented button.on{background:var(--cyan);color:var(--on-cyan);font-weight:600}.seg-count{color:inherit;background:#050b1459;border-radius:999px;padding:0 7px;font-size:11px}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;font-size:14px;display:inline-flex}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle-track{border:1px solid var(--line);background:#19a0b224;border-radius:99px;flex:none;width:38px;height:22px;transition:background .2s;position:relative}.toggle-thumb{background:var(--light);border-radius:50%;width:16px;height:16px;transition:left .2s,background .2s;position:absolute;top:2px;left:2px}.toggle input:checked+.toggle-track{background:var(--cyan)}.toggle input:checked+.toggle-track .toggle-thumb{background:var(--on-cyan);left:18px}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--cyan);outline-offset:2px}.toggle-label{flex-direction:column;display:flex}.tabs{border-bottom:1px solid var(--line);gap:2px;display:flex;overflow-x:auto}.tabs button{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px;font-size:14px;font-weight:500}.tabs button:hover{color:var(--text)}.tabs button.on{color:#e3f5f6;border-bottom-color:var(--cyan)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;text-transform:uppercase;letter-spacing:1.6px;color:var(--faint);border-bottom:1px solid var(--line);white-space:nowrap;padding:12px 14px;font-size:10.5px;font-weight:600}td{border-bottom:1px solid var(--hairline);vertical-align:middle;padding:11px 14px}tbody tr:hover{background:#19a0b20a}tbody tr:last-child td{border-bottom:none}th.num,td.num{text-align:right;font-variant-numeric:tabular-nums}th.right,td.right{text-align:right}tr.row-muted td{opacity:.6}.cell-title{color:var(--text);font-weight:600}a.cell-title:hover{color:var(--light)}.cell-sub{color:var(--faint);font-size:12px;display:block}.pager{border-top:1px solid var(--hairline);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:13px;display:flex}.kv{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px 18px;margin:0;display:grid}.kv dt{letter-spacing:1.6px;text-transform:uppercase;color:var(--faint);font-size:10.5px;font-weight:600}.kv dd{overflow-wrap:anywhere;margin:3px 0 0}.overlay{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#02060cb8;place-items:center;padding:16px;animation:.12s fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{background:var(--panel);width:min(560px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow), var(--glow);border:1px solid var(--line-strong);border-radius:20px;outline:none;flex-direction:column;display:flex;overflow:hidden}.modal-wide{width:min(900px,100%)}.modal-head{border-bottom:1px solid var(--line);background:linear-gradient(#19a0b214,#0000);align-items:center;gap:12px;min-height:60px;padding:0 18px;display:flex}.modal-head h2{font-family:var(--serif);color:#e6f5f6;flex:1;font-size:24px}.modal-mark{width:auto;height:22px}.modal-x{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:26px;line-height:1}.modal-x:hover{color:var(--text)}.modal-body{padding:16px 20px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 18px;display:flex}.confirm-msg{margin-bottom:6px}.toasts{z-index:80;flex-direction:column;gap:8px;max-width:calc(100vw - 36px);display:flex;position:fixed;bottom:18px;right:18px}.toast{background:var(--panel);color:var(--text);border:1px solid var(--line-strong);border-left:4px solid var(--cyan);box-shadow:var(--shadow);border-radius:12px;max-width:420px;padding:12px 16px;font-weight:500;animation:.15s fade}.toast-error{border-left-color:var(--red)}.kb-scroll{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;padding:4px 2px 10px;overflow:auto hidden}.kb{border-radius:6px;flex:none;margin:0 auto;position:relative;box-shadow:inset 0 1px #19a0b240,0 22px 50px -22px #000000d9}.kb-key{font:inherit;cursor:default;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;margin:0;padding:0;transition:transform 80ms cubic-bezier(.22,1,.36,1),box-shadow .12s,background .12s;position:absolute;top:0}.kb-interactive .kb-key{cursor:pointer}.kb-key:focus-visible{outline:2px solid var(--cyan);outline-offset:-3px;z-index:5}.kb-white{z-index:1;background:linear-gradient(#fff 0%,#eef6f7 72%,#d8e8ea 100%);border:1px solid #b9ccce;border-top:none;border-radius:0 0 6px 6px;box-shadow:inset 0 -10px 16px -8px #1c778059,inset -2px 0 4px -2px #0000002e}.kb-interactive .kb-white:hover{background:linear-gradient(#fff 0%,#e6f5f6 70%,#cfeaec 100%)}.kb-black{z-index:3;background:linear-gradient(#14222b 0%,#0a141b 70%,#060d12 100%);border:1px solid #03080c;border-top:none;border-radius:0 0 4px 4px;box-shadow:0 6px 12px #0009,inset 0 -4px 6px #ffffff0a,inset 0 2px 2px #ffffff0f}.kb-interactive .kb-black:hover{background:linear-gradient(#1b2f39 0%,#0d1922 100%)}.kb-white.kb-R{background:linear-gradient(#e9f7f8 0%,#a9e0e6 100%);transform:translateY(2px);box-shadow:0 0 0 1px #19a0b299,0 14px 32px -10px #19a0b2b3,inset 0 -12px 18px -8px #1c77808c}.kb-black.kb-R{background:linear-gradient(#23aebf 0%,#1c7780 60%,#0d2a2e 100%);transform:translateY(2px);box-shadow:0 0 0 1px #19a0b2b3,0 14px 30px -10px #19a0b2bf}.kb-white.kb-L{background:linear-gradient(#fbf5e7 0%,#ecd7a6 100%);transform:translateY(2px);box-shadow:0 0 0 1px #d9b56abf,0 14px 32px -10px #d9b56aa6,inset 0 -12px 18px -8px #966e2873}.kb-black.kb-L{background:linear-gradient(#d9b56a 0%,#8b6c2c 60%,#2b210d 100%);transform:translateY(2px);box-shadow:0 0 0 1px #d9b56acc,0 14px 30px -10px #d9b56a99}.kb-white.kb-show{background:linear-gradient(#eef9fa 0%,#c3e9ed 100%);box-shadow:0 0 0 1px #9ecececc,inset 0 -10px 16px -8px #1c778073}.kb-black.kb-show{background:linear-gradient(#4e8f96 0%,#1c4f55 100%)}.kb-white.kb-wrong{background:linear-gradient(#fff0f0 0%,#f3a7a9 100%);box-shadow:0 0 0 1px #e5484dcc}.kb-black.kb-wrong{background:linear-gradient(#e5484d 0%,#6b1517 100%)}.kb-key.kb-lit{filter:brightness(1.12)saturate(1.2);transform:translateY(4px)}.kb-white.kb-lit:not(.kb-on){background:linear-gradient(#e9f7f8 0%,#bfe6ea 100%);box-shadow:0 0 0 1px #19a0b280,0 18px 40px -10px #19a0b28c}.kb-black.kb-lit:not(.kb-on){background:linear-gradient(#1c7780 0%,#0d2a2e 100%)}.kb-finger{color:#fff;background:var(--cyan);pointer-events:none;border-radius:50%;place-items:center;min-width:19px;height:19px;font-size:11px;font-weight:700;display:grid;position:absolute;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 2px 6px #00000059}.kb-L .kb-finger{background:#b48a37}.kb-show .kb-finger{background:var(--deep)}.kb-black .kb-finger{min-width:16px;height:16px;font-size:10px;bottom:10px}.kb-sm .kb-finger{min-width:15px;height:15px;font-size:9.5px;bottom:16px}.kb-sm .kb-black .kb-finger{min-width:13px;height:13px;font-size:9px;bottom:6px}.kb-name{text-align:center;color:#4a6d72;pointer-events:none;letter-spacing:.2px;font-size:10px;font-weight:600;position:absolute;bottom:6px;left:0;right:0}.kb-black .kb-name{color:#dcf0f2d9;font-size:9px;top:6px;bottom:auto}.kb-sm .kb-name{font-size:8.5px;bottom:3px}.kb-middle:not(.kb-on) .kb-name{color:var(--deep)}.kb-middle:after{content:"";background:var(--cyan);opacity:.55;border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:2px;left:50%}@media (width<=1100px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:50;width:272px;box-shadow:var(--shadow);transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.nav-open .sidebar{transform:none}.nav-open .scrim{z-index:40;background:#02060c99;display:block;position:fixed;inset:0}.menu-btn{display:grid}.topbar{padding:8px 14px}.topbar-title{display:block}.me-text{display:none}main{padding:18px 14px 60px}.grid-2{grid-template-columns:minmax(0,1fr)}.page-head h1{font-size:32px}}@media (width<=560px){.grid-3,.bi-row{grid-template-columns:minmax(0,1fr)}.card-head{padding:14px 14px 0}.card-body{padding:12px 14px 16px}.modal-body{padding:14px}.btn-md{padding:0 16px}td,th{padding:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}kbd{font-family:var(--mono);color:var(--light);border:1px solid var(--line-strong);background:var(--card-2);border-bottom-width:2px;border-radius:5px;margin:0 1px;padding:0 5px;font-size:11px}.locked{text-align:center}.locked .state{padding:14px 0}.warn-text{color:var(--warn)}.plain{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.click-row{cursor:pointer}.set-cell{align-items:center;gap:12px;min-width:240px;display:flex}.set-cell>span:last-child{flex-direction:column;min-width:0;display:flex}.set-cover,.lesson-thumb{background:var(--card-3);color:var(--cyan);border:1px solid var(--line);flex:none;place-items:center;display:grid;overflow:hidden}.set-cover{border-radius:10px;width:44px;height:44px;font-size:18px}.lesson-thumb{border-radius:8px;width:72px;height:41px}.set-cover img,.lesson-thumb img{object-fit:cover;width:100%;height:100%}.editor-bar{z-index:20;border-radius:var(--r-lg);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);background:#07121ae6;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 18px;margin:0 -4px;padding:12px 16px;display:flex;position:sticky;top:58px;box-shadow:0 12px 30px -18px #000c}.editor-title{min-width:0}.editor-title h1{font-family:var(--serif);color:#eaf6f8;overflow-wrap:anywhere;font-size:30px;font-weight:600;line-height:1.05}.editor-title .hint{margin-top:3px}.editor-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dot-bad{background:var(--red);vertical-align:2px;border-radius:50%;width:7px;height:7px;margin-left:6px;display:inline-block}.music-bar{grid-template-columns:repeat(5,minmax(0,1fr));gap:0 14px;padding:6px 18px;display:grid}.inspector{flex-direction:column;gap:6px;display:flex}.sec-strip-wrap{flex-direction:column;gap:10px;display:flex}.sec-strip{scrollbar-width:thin;gap:8px;padding:2px 2px 8px;display:flex;overflow-x:auto}.sec-pill{--k:var(--cyan);text-align:left;min-width:120px;font:inherit;cursor:pointer;border:1px solid var(--line);color:var(--text);background:#19a0b20d;border-radius:14px;flex-direction:column;flex:none;align-items:flex-start;gap:1px;padding:9px 14px 9px 16px;display:flex;position:relative}.sec-pill:before{content:"";background:var(--k);opacity:.85;border-radius:3px;width:3px;position:absolute;top:10px;bottom:10px;left:7px}.sec-pill:hover{border-color:var(--line-strong)}.sec-pill.on{border-color:var(--cyan);box-shadow:var(--glow);background:linear-gradient(135deg,#19a0b238,#19a0b20f)}.sec-pill.playing .sec-name:after{content:" ♪";color:var(--gold)}.sec-name{font-size:14px;font-weight:600}.sec-meta{color:var(--faint);white-space:nowrap;font-size:11.5px}.kind-intro{--k:#9ecece}.kind-verse{--k:#19a0b2}.kind-prechorus{--k:#5fb8c6}.kind-chorus{--k:#d9b56a}.kind-bridge{--k:#ab9bf0}.kind-tag{--k:#e89a6a}.kind-interlude{--k:#6cc8a0}.kind-outro,.kind-ending{--k:#7c93a8}.kind-exercise{--k:#3fcf8e}.sec-actions .add-section{border-radius:999px;min-height:32px;padding:4px 12px;font-size:13px}.sec-details{border-top:1px solid var(--hairline);margin-top:12px;padding-top:10px}.sec-details>summary{cursor:pointer;color:var(--light);padding:4px 0;font-weight:600;list-style-position:inside}.sec-settings{padding-top:6px}.backing{border-radius:var(--r);border:1px solid var(--hairline);background:#19a0b20a;flex-direction:column;gap:8px;margin-top:10px;padding:12px 14px;display:flex}.backing-current{grid-template-columns:minmax(220px,1.3fr) minmax(0,1fr) 140px;align-items:center;gap:10px 14px;display:grid}.backing-current audio{width:100%;height:36px}.backing-current .notice{grid-column:1/-1}.backing-meta{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.drop{cursor:pointer;color:var(--muted);background:#19a0b208;border:1.5px dashed #19a0b259;border-radius:12px;padding:14px 16px;font-size:14px;transition:background .15s,border-color .15s}.drop:hover,.drop.over{border-color:var(--cyan);background:#19a0b214}.drop.disabled{opacity:.5;cursor:not-allowed}.drop-busy{grid-template-columns:1fr auto;align-items:center;gap:6px 10px;display:grid}.drop-busy span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.drop-busy .progress{grid-column:1/-1}.progress{background:#19a0b224;border-radius:99px;height:6px;overflow:hidden}.progress>div{background:linear-gradient(90deg, var(--light), var(--cyan));height:100%;transition:width .2s}.timeline{flex-direction:column;gap:8px;display:flex}.tl-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.tl-scroll{border:1px solid var(--line);scrollbar-width:thin;background:#03090f8c;border-radius:12px;outline:none;overflow:auto hidden}.tl-scroll:focus-visible{border-color:var(--cyan);box-shadow:0 0 0 3px #19a0b229}.tl-inner{min-width:100%;position:relative}.tl-ruler{border-bottom:1px solid var(--line);background:#19a0b20d;height:26px;position:relative}.tl-bar{border-left:1px solid var(--line-strong);position:absolute;top:0;bottom:0}.tl-bar b{color:var(--light);font-size:12px;font-weight:700;position:absolute;top:4px;left:6px}.tl-bar i{color:var(--faint);font-size:10px;font-style:normal;position:absolute;top:7px;transform:translate(-50%)}.tl-lane{cursor:copy;touch-action:pan-x;height:86px;position:relative}.tl-step{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:linear-gradient(#19a0b252,#1c778047);border:1px solid #19a0b28c;border-radius:10px;flex-direction:column;justify-content:center;gap:1px;padding:6px 12px 6px 9px;display:flex;position:absolute;top:8px;bottom:8px;overflow:hidden;box-shadow:0 6px 16px -10px #000c}.tl-step:active{cursor:grabbing}.tl-step.rest{background:repeating-linear-gradient(135deg,#9ecece0f 0 6px,#9ecece05 6px 12px);border-style:dashed;border-color:#9ecece4d}.tl-step.sel{box-shadow:0 0 0 2px #19a0b299, var(--glow);z-index:2;border-color:#e6f7f8}.tl-step.playing{border-color:var(--gold);background:linear-gradient(#d9b56a73,#d9b56a38)}.tl-step.outside{border-color:var(--red);background:var(--red-wash)}.tl-chord{font-family:var(--serif);color:#f0fbfc;white-space:nowrap;font-size:21px;font-weight:700;line-height:1}.tl-notes{color:#dcf0f5bf;white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.tl-text{color:var(--gold);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;font-style:italic;overflow:hidden}.tl-handle{cursor:ew-resize;background:linear-gradient(90deg,#0000,#e6f7f840);width:9px;position:absolute;top:0;bottom:0;right:0}.tl-handle:after{content:"";background:#e6f7f899;border-radius:2px;width:2px;height:18px;margin-top:-9px;position:absolute;top:50%;right:3px}.tl-playhead{background:var(--gold);width:2px;box-shadow:0 0 12px var(--gold);pointer-events:none;z-index:3;margin-left:-1px;position:absolute;top:0;bottom:0}.notes-editor{flex-direction:column;gap:6px;display:flex}.chord-row{grid-template-columns:minmax(180px,2fr) repeat(3,minmax(0,auto));align-items:end;gap:0 12px;display:grid}.chord-row .field{margin:4px 0}.chord-field input{font-family:var(--serif);letter-spacing:.3px;min-height:44px;padding:4px 12px;font-size:22px;font-weight:600}.chord-field input[aria-invalid=true]{border-color:#e5484db3}.chord-row select{min-height:44px}.chord-row .segmented{margin-bottom:4px}.segmented button.on.hand-L{background:var(--gold)}.proposal{flex-wrap:wrap;align-items:center;gap:8px;min-height:28px;display:flex}.proposal-notes{flex-wrap:wrap;gap:4px;display:inline-flex}.pn{background:var(--cyan-wash);color:var(--light);border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:13px;font-weight:600}.pn-L{background:var(--gold-wash);color:var(--gold);border-color:#d9b56a66}.pn sup{opacity:.85;margin-left:2px;font-size:9.5px}.issue-inline{color:#ff9ea1;font-size:13px}.understood{color:var(--light);font-size:13px;font-weight:600}.kb-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:4px;display:flex}.picked{flex-direction:column;gap:8px;display:flex}.picked-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.picked-note{background:var(--card-2);border:1px solid var(--line);border-radius:12px;align-items:center;gap:6px;padding:5px 6px 5px 10px;display:inline-flex}.picked-note.hand-R{border-color:#19a0b280}.picked-note.hand-L{border-color:#d9b56a80}.pk-name{min-width:30px;font-size:14px;font-weight:700}.hand-toggle{font:inherit;cursor:pointer;border:1px solid;border-radius:8px;width:26px;height:24px;font-size:11.5px;font-weight:700}.hand-toggle.hand-R{background:var(--cyan);color:var(--on-cyan);border-color:var(--cyan)}.hand-toggle.hand-L{background:var(--gold);color:#1f1606;border-color:var(--gold)}.fingers{gap:2px;display:inline-flex}.fingers button{font:inherit;border:1px solid var(--line);width:23px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border-radius:7px;padding:0;font-size:12px;font-weight:600}.fingers button:hover{color:var(--text);border-color:var(--line-strong)}.fingers button.on{background:var(--light);color:var(--on-cyan);border-color:var(--light)}.hand-L .fingers button.on{color:#1f1606;background:#ecd29b;border-color:#ecd29b}.pk-x{font:inherit;color:var(--faint);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.pk-x:hover{color:#ff8b8f}.picked-actions{gap:6px}.notes-editor.compact .chord-field input{min-height:40px;font-size:18px}.set-editor{padding-bottom:86px}.transport{z-index:25;border-top:1px solid var(--line-strong);-webkit-backdrop-filter:blur(14px);background:#050b14eb;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:10px 24px;display:flex;position:fixed;bottom:0;left:244px;right:0;box-shadow:0 -16px 40px -20px #000000e6}.speed{align-items:center;gap:8px;display:inline-flex}.speed input[type=range]{width:130px}.speed .mono{text-align:right;min-width:40px;color:var(--light)}.t-toggles{flex-wrap:wrap;gap:6px;display:inline-flex}.t-toggles .chip{padding:5px 11px;font-size:12.5px}.t-now{flex:220px;align-items:center;gap:10px;min-width:0;display:inline-flex}.t-chord{font-family:var(--serif);color:var(--gold);font-size:26px;font-weight:700;line-height:1}.cover-row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.cover-box{background:var(--card-3);border:1px solid var(--line);width:112px;height:112px;color:var(--cyan);border-radius:14px;place-items:center;font-size:34px;display:grid;overflow:hidden}.cover-box img{object-fit:cover;width:100%;height:100%}.json-area{font-family:var(--mono);white-space:pre;tab-size:2;background:#03090fb3;min-height:420px;font-size:12.5px;line-height:1.5}.flow{flex-direction:column;gap:10px;display:flex}.flow-summary{flex-wrap:wrap;align-items:center;gap:6px;margin:0;display:flex}.flow-chip{--k:var(--cyan);border:1px solid var(--k);color:var(--text);background:color-mix(in srgb, var(--k) 14%, transparent);border-radius:999px;padding:4px 11px;font-size:13px;font-weight:600}.flow-chip.missing{--k:var(--red)}.flow-list{flex-direction:column;gap:6px;max-width:640px;margin:0;padding:0;list-style:none;display:flex}.flow-list li{background:var(--card-2);border:1px solid var(--hairline);border-radius:12px;align-items:center;gap:8px;padding:6px 8px;display:flex}.flow-list li.missing{border-color:#e5484d80}.flow-list select{flex:1;min-height:34px;padding:4px 10px}.flow-n{text-align:center;width:22px;color:var(--faint);font-size:12px;font-weight:700}.flow-times{color:var(--muted);align-items:center;gap:4px;display:inline-flex}.flow-times input{width:64px;min-height:34px;padding:4px 8px}.nt-grid{grid-template-columns:minmax(0,1.25fr) minmax(320px,1fr);align-items:start;gap:18px;display:grid}.yt-frame{aspect-ratio:16/9;border:1px solid var(--line);background:#000;border-radius:12px;width:100%;position:relative;overflow:hidden}.yt-frame iframe,.yt-frame>div:not(.yt-wait){width:100%;height:100%;position:absolute;inset:0}.yt-wait{place-items:center;padding:30px;display:grid;position:absolute;inset:0}.yt-wait .loading{width:60%}.nt-transport{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.nt-clock{color:var(--light);min-width:110px;font-size:15px}.nt-now{background:var(--gold-wash);border:1px solid #d9b56a4d;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;padding:8px 12px;display:flex}.cue-scroll{max-height:520px;overflow-y:auto}.cue-table td{padding:6px 8px}.cue-table th{background:var(--panel);z-index:1;padding:10px 8px;position:sticky;top:0}.cue-row{cursor:pointer}.cue-row.now td{background:#d9b56a14}.cue-row.now td:first-child{box-shadow:inset 3px 0 0 var(--gold)}.cue-row.sel td{background:#19a0b221}.cue-row.sel td:first-child{box-shadow:inset 3px 0 0 var(--cyan)}.cue-row.bad td{background:var(--red-wash)}.time-input{width:96px;min-height:32px;font-family:var(--mono);padding:4px 8px;font-size:12.5px}.choices{flex-direction:column;gap:8px;margin:10px 0;display:flex}.choice-row{border-radius:12px;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;padding:4px;display:grid}.choice-row.right{background:var(--good-wash)}.choice-radio{cursor:pointer;place-items:center;display:grid}.choice-radio input{width:18px;height:18px;accent-color:var(--good)}.choices>.mini{align-self:flex-start}.play-answer{flex-direction:column;gap:8px;margin:8px 0;display:flex}.q-extras{border-top:1px solid var(--hairline);flex-direction:column;gap:6px;margin-top:12px;padding-top:12px;display:flex}.q-preview{margin-top:8px}@media (width<=1180px){.nt-grid,.backing-current{grid-template-columns:minmax(0,1fr)}}@media (width<=900px){.transport{gap:8px 10px;padding:8px 12px;left:0}.editor-bar{padding:10px 12px;top:54px}.editor-title h1{font-size:24px}.music-bar{grid-template-columns:repeat(3,minmax(0,1fr));padding:4px 14px}.chord-row{grid-template-columns:repeat(2,minmax(0,1fr))}.chord-row .chord-field{grid-column:1/-1}}@media (width<=560px){.music-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-bar{position:static}.set-editor{padding-bottom:130px}.speed input[type=range]{width:100px}.t-now{flex-basis:100%}.t-now .hint,.transport .speed .muted{display:none}.choice-row{grid-template-columns:26px minmax(0,1fr) auto}.tl-lane{height:76px}}.new-lesson-preview{align-items:center;gap:12px;margin:-4px 0 12px;display:flex}.new-lesson-preview img{aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--line);width:160px}.numerals-key{align-items:center;gap:10px;margin:6px 0 12px}.numerals-key select{min-height:34px}.issue-list{gap:4px;margin:4px 0 8px;display:grid}.person{color:inherit;align-items:center;gap:10px;min-width:0;display:inline-flex}a.person:hover{text-decoration:none}a.person:hover .person-name{color:var(--light)}.person-text{flex-direction:column;min-width:0;display:flex}.person-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.person-sub{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;max-width:340px;font-size:12px;overflow:hidden}.clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;max-width:420px;display:-webkit-box;overflow:hidden}.plain-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.plain-list li{border-bottom:1px solid var(--hairline);flex-wrap:wrap;align-items:center;gap:10px;padding:9px 0;display:flex}.plain-list li:last-child{border-bottom:none}.plain-list li>.cell-title{flex:180px;min-width:0}.detail-title{font-family:var(--serif);color:#eaf6f8;font-size:34px;font-weight:600;line-height:1.05}.attention{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.attn{border-radius:var(--r-lg);background:var(--card-glass);border:1px solid var(--line);color:var(--text);flex-direction:column;gap:2px;min-width:0;padding:18px 20px;text-decoration:none;display:flex;position:relative}.attn:hover{color:var(--text);border-color:var(--line-strong);text-decoration:none}.attn-value{font-family:var(--serif);color:var(--muted);font-size:42px;font-weight:600;line-height:1}.attn-label{margin-top:4px;font-weight:600}.attn-hint{color:var(--faint);font-size:12.5px}.attn-go{color:var(--faint);position:absolute;top:18px;right:18px}.attn-on.attn-gold{background:linear-gradient(135deg, var(--gold-wash), var(--card-glass) 70%);border-color:#d9b56a73}.attn-on.attn-gold .attn-value{color:var(--gold)}.attn-on.attn-red{background:linear-gradient(135deg, var(--red-wash), var(--card-glass) 70%);border-color:#e5484d66}.attn-on.attn-red .attn-value{color:#ff8b8f}.attn-on.attn-cyan{background:linear-gradient(135deg, var(--cyan-wash), var(--card-glass) 70%);border-color:var(--line-strong)}.attn-on.attn-cyan .attn-value{color:var(--light)}.kpis{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.kpi{border-radius:var(--r);border:1px solid var(--hairline);color:var(--text);background:#0a162a73;flex-direction:column;gap:2px;min-width:0;padding:15px 18px;display:flex}.kpi-link:hover{color:var(--text);border-color:var(--line);text-decoration:none}.kpi-label{color:var(--muted);font-size:12.5px}.kpi-value{letter-spacing:-.3px;font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:1.2}.kpi-note{color:var(--faint);font-size:12px}.kpi-note.warn{color:var(--warn)}.audit-list{margin:0;padding:0;list-style:none}.audit-list li{border-bottom:1px solid var(--hairline);grid-template-columns:auto minmax(0,1fr);gap:2px 10px;padding:8px 0;display:grid}.audit-list li:last-child{border-bottom:none}.audit-action{font-family:var(--mono);color:var(--light);font-size:12px}.audit-target{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.audit-meta{color:var(--faint);grid-column:1/-1;font-size:11.5px}.audit-target-cell{overflow-wrap:anywhere;max-width:560px}.learner-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:18px;margin-bottom:18px;display:grid}.learner-id p{margin:4px 0 8px}.learner-actions{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.circle-layout{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:18px;display:grid}.member-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.member-list li{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.post{background:var(--card-glass);border:1px solid var(--line);border-radius:var(--r-lg);flex-direction:column;gap:8px;padding:14px 18px;display:flex}.post-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.post-hidden{opacity:.55;border-style:dashed}.replies{border-left:2px solid var(--line);flex-direction:column;gap:8px;padding-left:14px;display:flex}.reply{border:1px solid var(--hairline);background:#19a0b20a;border-radius:12px;padding:8px 12px}.msg-content{flex-direction:column;gap:6px;min-width:0;display:flex}.msg-content .prose{margin:0}.msg-audio{width:min(320px,100%);height:36px}.msg-video{background:#000;border-radius:12px;width:min(360px,100%);max-height:320px}.msg-take{border:1px solid var(--line);background:#19a0b212;border-radius:12px;align-items:center;gap:10px;padding:8px 12px;font-size:13.5px;display:flex}.msg-take-icon{background:var(--cyan-wash);width:28px;height:28px;color:var(--light);border-radius:50%;flex:none;place-items:center;display:grid}.notecard{border:1px solid var(--line-strong);background:linear-gradient(#19a0b21a,#07121a99);border-radius:14px;flex-direction:column;gap:6px;max-width:100%;padding:10px 12px 6px;display:flex}.notecard-L{background:linear-gradient(#d9b56a1a,#07121a99);border-color:#d9b56a66}.notecard-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.notecard-title{font-family:var(--serif);color:#eaf6f8;font-size:21px;font-weight:600;line-height:1.1}.notecard-chord{color:var(--light);font-weight:600}.notecard-notes{color:var(--muted);margin:0;font-size:12px}.notecard .kb-scroll{padding-bottom:4px}.notecard .kb{margin:0}.nc-hand{border-radius:999px;align-items:center;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.nc-hand-R{background:var(--cyan-wash);color:var(--light);border:1px solid var(--line-strong)}.nc-hand-L{background:var(--gold-wash);color:var(--gold);border:1px solid #d9b56a73}.nc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;display:grid}.nc-chord{flex-wrap:nowrap}.nc-chord input{flex:1}.nc-keys{border:1px solid var(--line);background:#050b1499;border-radius:14px;margin:8px 0;padding:12px 8px 4px}.nc-notes{flex-direction:column;gap:6px;margin:0 0 8px;padding:0;list-style:none;display:flex}.nc-notes li{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.nc-notes .nc-hand{justify-content:center;min-width:52px}.nc-fingers{gap:4px;display:inline-flex}.nc-finger{font:inherit;border:1px solid var(--line);width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;font-size:12px;font-weight:700}.nc-finger:hover{color:var(--text);border-color:var(--line-strong)}.nc-finger.on.nc-finger-R{background:var(--cyan);color:var(--on-cyan);border-color:var(--cyan)}.nc-finger.on.nc-finger-L{background:var(--gold);color:#1d1606;border-color:var(--gold)}.assist{grid-template-columns:340px minmax(0,1fr);align-items:stretch;gap:16px;height:calc(100vh - 210px);min-height:520px;display:grid}.assist-list{flex-direction:column;display:flex;overflow:hidden}.assist-list-tools{border-bottom:1px solid var(--line);flex-direction:column;gap:10px;padding:14px;display:flex}.assist-list-tools .search{flex:none;max-width:none}.threads{flex:1;margin:0;padding:6px;list-style:none;overflow-y:auto}.thread{color:var(--text);border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:10px;display:flex}.thread:hover{background:var(--cyan-wash);color:var(--text);text-decoration:none}.thread.on{border-color:var(--line);background:linear-gradient(90deg,#19a0b22e,#19a0b20a)}.thread-text{flex-direction:column;flex:1;min-width:0;display:flex}.thread-top{align-items:baseline;gap:8px;display:flex}.thread-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.thread-time{color:var(--faint);white-space:nowrap;font-size:11px}.thread-preview{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.thread.unread .thread-name{color:#fff}.thread.unread .thread-preview{color:var(--muted)}.thread-unread{background:var(--gold);color:#1d1606;border-radius:10px;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;display:grid}.assist-empty{place-items:center;display:grid}.assist-conv{flex-direction:column;min-height:0;display:flex;overflow:hidden}.conv-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}.conv-back{padding:0 6px;font-size:20px;display:none}.conv-who{flex-direction:column;min-width:0;display:flex}.conv-bookings{color:var(--gold);border-bottom:1px solid var(--hairline);background:var(--gold-wash);margin:0;padding:8px 16px}.bubbles{flex-direction:column;flex:1;gap:8px;min-height:0;padding:16px;display:flex;overflow-y:auto}.bubble-wrap{flex-direction:column;display:flex}.bubble-day{letter-spacing:1.5px;text-transform:uppercase;color:var(--faint);align-self:center;margin:8px 0;font-size:11px}.bubble{border-radius:18px;flex-direction:column;gap:4px;max-width:min(560px,82%);padding:10px 14px 6px;display:flex}.bubble-learner{background:var(--card-3);border:1px solid var(--hairline);border-bottom-left-radius:6px;align-self:flex-start}.bubble-tutor{border:1px solid var(--line-strong);background:linear-gradient(#19a0b252,#1c778052);border-bottom-right-radius:6px;align-self:flex-end}.bubble-notecard{max-width:min(460px,92%)}.bubble-meta{color:var(--faint);align-self:flex-end;font-size:10.5px}.composer{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding:10px 14px 14px;display:flex}.composer-as{color:var(--faint);margin:0}.composer-as strong{color:var(--light)}.composer-row{align-items:flex-end;gap:10px;display:flex}.composer-row textarea{flex:1;min-height:44px;max-height:200px}.composer-actions{flex-direction:column;gap:6px;display:flex}.feedback-list,.report-list{flex-direction:column;gap:12px;display:flex}.fb,.report{background:var(--card-glass);border:1px solid var(--line);border-radius:var(--r-lg);flex-direction:column;gap:8px;padding:14px 18px;display:flex}.fb-new{border-left:3px solid var(--cyan)}.fb-done{opacity:.7}.fb-head,.fb-foot,.report-head,.report-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.fb-icon{background:var(--cyan-wash);width:26px;height:26px;color:var(--light);border-radius:50%;place-items:center;font-size:13px;display:grid}.fb-bug{background:var(--red-wash);color:#ff8b8f}.fb-content{background:var(--gold-wash);color:var(--gold)}.fb-praise{background:var(--good-wash);color:var(--good)}.fb-body{margin:0;font-size:15px}.report-open{border-left:3px solid var(--warn)}.report-reason{font-family:var(--serif);color:#eaf6f8;margin:0;font-size:19px}.report-target{border:1px solid var(--hairline);background:#050b1480;border-radius:12px;padding:10px 14px}.report-target p{margin:0 0 4px}.report-target-title{font-weight:600}.comment-cell{max-width:520px}.comment-cell .prose{margin:0 0 4px;display:block}@media (width<=1100px){.circle-layout{grid-template-columns:minmax(0,1fr)}.assist{grid-template-columns:280px minmax(0,1fr)}}@media (width<=900px){.attention{grid-template-columns:minmax(0,1fr)}.learner-head{grid-template-columns:auto minmax(0,1fr)}.learner-actions{grid-column:1/-1;align-items:flex-start}.assist{grid-template-columns:minmax(0,1fr);height:auto;min-height:0}.assist-list{max-height:none}.assist-open .assist-list,.assist:not(.assist-open) .assist-empty{display:none}.assist-conv{height:calc(100vh - 170px);min-height:460px}.conv-back{display:inline-block}}@media (width<=560px){.nc-grid{grid-template-columns:minmax(0,1fr)}.detail-title{font-size:28px}.bubble{max-width:92%}.composer-row{flex-direction:column;align-items:stretch}.composer-actions{flex-direction:row;justify-content:flex-end}.kpi-value{font-size:24px}.attn-value{font-size:34px}}
