@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");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}:root{--font-sans: "Inter Variable", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "Cascadia Code", "SF Mono", Consolas, monospace;--brand-50: #eef3ff;--brand-100: #dbe5ff;--brand-200: #b9ccff;--brand-500: #3a66f0;--brand-600: #1b4dd8;--brand-700: #163db0;--brand-900: #0f2459;--gray-0: #ffffff;--gray-25: #fbfcfe;--gray-50: #f5f7fb;--gray-100: #eceff5;--gray-200: #dfe3ec;--gray-300: #c8cedb;--gray-400: #9aa3b5;--gray-500: #6c768b;--gray-600: #4f586b;--gray-700: #363e4f;--gray-800: #1f2533;--gray-900: #121722;--success-50: #ecfaf2;--success-600: #12875a;--success-700: #0b6b46;--warning-50: #fff7e8;--warning-600: #b86e00;--warning-700: #8f5500;--danger-50: #fff0f0;--danger-600: #d1343a;--danger-700: #a7232a;--info-50: #edf6ff;--info-600: #1673c9;--viz-sent: #9aa3b5;--viz-click: #f2a33a;--viz-submit: #d1343a;--viz-report: #12875a;--viz-train: #1b4dd8;--bg: var(--gray-50);--surface: var(--gray-0);--surface-muted: var(--gray-25);--border: var(--gray-200);--border-strong: var(--gray-300);--text: var(--gray-900);--text-muted: var(--gray-500);--text-subtle: var(--gray-400);--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--shadow-xs: 0 1px 2px rgba(18, 23, 34, .05);--shadow-sm: 0 1px 3px rgba(18, 23, 34, .08), 0 1px 2px rgba(18, 23, 34, .04);--shadow-md: 0 4px 12px rgba(18, 23, 34, .08), 0 2px 4px rgba(18, 23, 34, .04);--shadow-lg: 0 16px 40px rgba(18, 23, 34, .16), 0 4px 12px rgba(18, 23, 34, .06);--ring: 0 0 0 3px rgba(27, 77, 216, .22);--sidebar-w: 248px;--content-max: 1280px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}html{scrollbar-gutter:stable}body{margin:0;font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}h1,h2,h3,h4{margin:0;line-height:1.25;letter-spacing:-.012em}h1{font-size:24px;font-weight:650}h2{font-size:17px;font-weight:620}h3{font-size:15px;font-weight:600}p{margin:0}a{color:var(--brand-600);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}.tabular{font-variant-numeric:tabular-nums}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle)}.mono{font-family:var(--font-mono);font-size:12.5px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.grow{flex:1;min-width:0}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.span-2{grid-column:span 2}@media (max-width: 1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.span-2{grid-column:auto}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes pop-in{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--r-md);border:1px solid transparent;font-weight:550;font-size:13.5px;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,box-shadow .12s,color .12s;text-decoration:none!important}.btn svg{width:16px;height:16px;flex-shrink:0}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{height:30px;padding:0 10px;font-size:13px;border-radius:var(--r-sm)}.btn-lg{height:42px;padding:0 18px;font-size:14.5px}.btn-primary{background:var(--brand-600);color:#fff;box-shadow:var(--shadow-xs),inset 0 1px #ffffff1f}.btn-primary:hover:not(:disabled){background:var(--brand-700)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--gray-800);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-400)}.btn-ghost{background:transparent;color:var(--gray-700)}.btn-ghost:hover:not(:disabled){background:var(--gray-100)}.btn-danger{background:var(--danger-600);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-700)}.btn-danger-ghost{background:transparent;color:var(--danger-600)}.btn-danger-ghost:hover:not(:disabled){background:var(--danger-50)}.btn-icon{width:34px;padding:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-xs)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--gray-100)}.card-header h2{font-size:15px}.card-header .desc{color:var(--text-muted);font-size:13px;margin-top:2px}.card-body{padding:20px}.card-footer{padding:12px 20px;border-top:1px solid var(--gray-100);background:var(--surface-muted);border-radius:0 0 var(--r-lg) var(--r-lg)}.card-flush .card-body{padding:0}.stat{padding:18px 20px;display:flex;flex-direction:column;gap:6px}.stat-label{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:13px;font-weight:500}.stat-label .dot{width:8px;height:8px;border-radius:2px}.stat-value{font-size:28px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat-foot{font-size:12.5px;color:var(--text-muted);display:flex;align-items:center;gap:6px}.delta-good{color:var(--success-600);font-weight:600}.delta-bad{color:var(--danger-600);font-weight:600}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:550;white-space:nowrap;border:1px solid transparent}.badge .pip{width:6px;height:6px;border-radius:50%;background:currentColor}.badge-gray{background:var(--gray-100);color:var(--gray-600)}.badge-brand{background:var(--brand-50);color:var(--brand-700)}.badge-success{background:var(--success-50);color:var(--success-700)}.badge-warning{background:var(--warning-50);color:var(--warning-700)}.badge-danger{background:var(--danger-50);color:var(--danger-700)}.badge-outline{background:var(--surface);border-color:var(--border);color:var(--gray-600)}.badge-live .pip{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:13px;font-weight:550;color:var(--gray-800)}.field-hint{font-size:12.5px;color:var(--text-muted)}.field-error{font-size:12.5px;color:var(--danger-600)}.input,.select,.textarea{width:100%;height:38px;padding:0 12px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);transition:border-color .12s,box-shadow .12s;box-shadow:var(--shadow-xs)}.textarea{height:auto;min-height:96px;padding:10px 12px;resize:vertical;line-height:1.5}.textarea.code{font-family:var(--font-mono);font-size:12.5px;min-height:260px}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:var(--ring)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236c768b' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.input-icon{position:relative}.input-icon svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--text-subtle);pointer-events:none}.input-icon .input{padding-left:34px}.checkbox{display:flex;align-items:center;gap:10px;cursor:pointer}.checkbox input{width:16px;height:16px;accent-color:var(--brand-600)}.segmented{display:inline-flex;padding:3px;background:var(--gray-100);border-radius:var(--r-md);gap:2px}.segmented button{border:0;background:transparent;height:28px;padding:0 12px;border-radius:6px;font-size:13px;font-weight:550;color:var(--gray-600);cursor:pointer}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--gray-900);box-shadow:var(--shadow-sm)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}.table th{text-align:left;font-weight:550;font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:10px 16px;background:var(--surface-muted);border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0;z-index:1}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table th.sortable:hover{color:var(--gray-800)}.table td{padding:12px 16px;border-bottom:1px solid var(--gray-100);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tbody tr.clickable{cursor:pointer}.table tbody tr.clickable:hover td{background:var(--gray-25)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.progress{height:8px;background:var(--gray-100);border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--brand-600);border-radius:inherit;transition:width .4s ease}.meter{display:flex;align-items:center;gap:10px}.meter .progress{flex:1;height:6px;min-width:60px}.meter .val{width:44px;text-align:right;font-variant-numeric:tabular-nums;font-size:13px}.avatar{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0;color:#fff}.avatar-lg{width:56px;height:56px;font-size:20px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.tabs button{position:relative;border:0;background:none;padding:10px 14px;font-weight:550;color:var(--text-muted);cursor:pointer;white-space:nowrap}.tabs button[aria-selected=true]{color:var(--brand-700)}.tabs button[aria-selected=true]:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:var(--brand-600);border-radius:2px}.tabs .count{margin-left:6px;font-size:12px;color:var(--text-subtle)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#12172273;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in .15s}.modal{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);width:100%;max-width:560px;max-height:calc(100vh - 48px);display:flex;flex-direction:column;animation:pop-in .18s ease-out}.modal-lg{max-width:1040px}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px 12px}.modal-body{padding:8px 24px 20px;overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 24px;border-top:1px solid var(--gray-100);background:var(--surface-muted);border-radius:0 0 var(--r-xl) var(--r-xl)}.toasts{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;flex-direction:column;gap:8px}.toast{display:flex;align-items:flex-start;gap:10px;min-width:300px;max-width:420px;padding:12px 14px;border-radius:var(--r-md);background:var(--gray-900);color:#fff;box-shadow:var(--shadow-lg);font-size:13.5px;animation:pop-in .18s ease-out}.toast svg{width:18px;height:18px;flex-shrink:0;margin-top:1px}.toast-success svg{color:#5ee0a5}.toast-error svg{color:#ff8a8f}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:48px 24px}.empty-icon{width:48px;height:48px;border-radius:12px;background:var(--brand-50);color:var(--brand-600);display:flex;align-items:center;justify-content:center}.empty-icon svg{width:24px;height:24px}.empty h3{font-size:15px}.empty p{color:var(--text-muted);max-width:380px}.spinner{width:18px;height:18px;border:2px solid var(--gray-200);border-top-color:var(--brand-600);border-radius:50%;animation:spin .7s linear infinite}.skeleton{background:linear-gradient(90deg,var(--gray-100) 0,var(--gray-50) 50%,var(--gray-100) 100%);background-size:800px 100%;animation:shimmer 1.3s infinite linear;border-radius:var(--r-sm)}.callout{display:flex;gap:12px;padding:12px 14px;border-radius:var(--r-md);font-size:13.5px;border:1px solid}.callout svg{width:18px;height:18px;flex-shrink:0;margin-top:1px}.callout-info{background:var(--info-50);border-color:#cfe3fb;color:#0f4c87}.callout-warning{background:var(--warning-50);border-color:#f4ddb0;color:var(--warning-700)}.callout-danger{background:var(--danger-50);border-color:#f6c9cb;color:var(--danger-700)}.callout-success{background:var(--success-50);border-color:#bfe9d3;color:var(--success-700)}.chart-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--text-muted)}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.chart-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:10px 12px;font-size:12.5px}.chart-tooltip .t{font-weight:600;margin-bottom:6px}.chart-tooltip .r{display:flex;align-items:center;gap:8px;justify-content:space-between;min-width:160px}.chart-tooltip .r i{width:8px;height:8px;border-radius:2px;display:inline-block;margin-right:6px}.funnel{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--border);border-radius:var(--r-lg);overflow:hidden}.funnel-step{background:var(--surface);padding:16px 18px;display:flex;flex-direction:column;gap:6px}.funnel-step .label{font-size:12.5px;color:var(--text-muted);font-weight:550;display:flex;align-items:center;gap:7px}.funnel-step .label i{width:8px;height:8px;border-radius:2px}.funnel-step .value{font-size:24px;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.funnel-step .pct{font-size:12.5px;color:var(--text-muted)}.funnel-step .bar{height:4px;border-radius:4px;background:var(--gray-100);overflow:hidden;margin-top:4px}.funnel-step .bar span{display:block;height:100%}@media (max-width: 900px){.funnel{grid-template-columns:repeat(2,1fr)}}.mail-preview{border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;background:var(--surface)}.mail-preview-head{padding:12px 16px;border-bottom:1px solid var(--gray-100);background:var(--surface-muted);font-size:13px;display:grid;grid-template-columns:64px 1fr;gap:4px 8px}.mail-preview-head dt{color:var(--text-muted)}.mail-preview-head dd{margin:0;font-weight:500}.mail-preview iframe{width:100%;border:0;display:block;background:#fff}.switch{position:relative;width:38px;height:22px;flex-shrink:0;border-radius:999px;border:0;background:var(--gray-300);cursor:pointer;transition:background .15s;padding:0}.switch span{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .15s}.switch.on{background:var(--brand-600)}.switch.on span{transform:translate(16px)}.switch:disabled{opacity:.6;cursor:wait}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:var(--gray-900);color:var(--gray-300);padding:16px 12px}.brand{display:flex;align-items:center;gap:10px;padding:6px 10px 20px;color:#fff}.brand-mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(140deg,var(--brand-500),var(--brand-700));display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px #fff3}.brand-mark svg{width:17px;height:17px;color:#fff}.brand-name{font-weight:650;font-size:14px;line-height:1.15}.brand-name small{display:block;font-weight:500;font-size:11.5px;color:var(--gray-400)}.nav-section{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--gray-500);padding:14px 12px 6px}.nav a{display:flex;align-items:center;gap:11px;height:36px;padding:0 12px;border-radius:var(--r-md);color:var(--gray-300);font-weight:500;text-decoration:none;transition:background .12s,color .12s}.nav a svg{width:17px;height:17px;opacity:.85}.nav a:hover{background:#ffffff0f;color:#fff}.nav a.active{background:#ffffff1a;color:#fff}.nav a.active svg{color:#8fb0ff;opacity:1}.sidebar-foot{margin-top:auto;padding:12px 8px 4px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:10px}.sidebar-foot .who{min-width:0;flex:1}.sidebar-foot .who strong{display:block;color:#fff;font-size:13px;font-weight:550}.sidebar-foot .who span{display:block;font-size:12px;color:var(--gray-400)}.sidebar-foot button{background:none;border:0;color:var(--gray-400);cursor:pointer;padding:6px;border-radius:6px}.sidebar-foot button:hover{color:#fff;background:#ffffff14}.main{min-width:0}.page{max-width:var(--content-max);margin:0 auto;padding:28px 32px 64px;display:flex;flex-direction:column;gap:24px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-header .eyebrow{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);margin-bottom:6px}.page-header .eyebrow a{color:var(--text-muted)}.page-header p.lede{color:var(--text-muted);margin-top:4px;max-width:640px}.page-actions{display:flex;gap:8px;flex-wrap:wrap}@media (max-width: 900px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;overflow-x:auto;padding:10px}.brand{padding:0 12px 0 4px}.brand-name small,.nav-section,.sidebar-foot .who{display:none}.nav{display:flex;gap:2px}.sidebar-foot{margin:0 0 0 auto;border:0;padding:0}.page{padding:20px 16px 48px}}@media print{.sidebar,.page-actions,.btn{display:none!important}.shell{display:block}body{background:#fff}.card{box-shadow:none;break-inside:avoid}.page{padding:0;max-width:none}}.steps{display:flex;gap:8px}.step{flex:1;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface)}.step .n{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:650;background:var(--gray-100);color:var(--gray-600);flex-shrink:0}.step .t{font-size:13px;font-weight:550;color:var(--gray-600)}.step.current{border-color:var(--brand-500);box-shadow:var(--ring)}.step.current .n{background:var(--brand-600);color:#fff}.step.current .t{color:var(--gray-900)}.step.done .n{background:var(--success-600);color:#fff}@media (max-width: 760px){.step .t{display:none}}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.tpl-card{display:flex;flex-direction:column;text-align:left;padding:0;overflow:hidden;cursor:pointer;transition:border-color .12s,box-shadow .12s,transform .12s}.tpl-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.tpl-card.selected{border-color:var(--brand-500);box-shadow:var(--ring)}.tpl-thumb{height:150px;overflow:hidden;position:relative;background:#fff;border-bottom:1px solid var(--gray-100)}.tpl-thumb iframe{width:200%;height:300px;border:0;transform:scale(.5);transform-origin:0 0;pointer-events:none}.tpl-thumb:after{content:"";position:absolute;inset:auto 0 0 0;height:40px;background:linear-gradient(transparent,#fff)}.tpl-meta{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1}.tpl-meta .subject{font-size:12.5px;color:var(--text-muted)}.difficulty{display:inline-flex;gap:3px;align-items:center}.difficulty i{width:6px;height:12px;border-radius:2px;background:var(--gray-200)}.difficulty i.on{background:var(--brand-600)}.public{min-height:100vh;background:var(--bg);display:flex;flex-direction:column}.public-top{height:60px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px}.public-top .brand{padding:0;color:var(--gray-900)}.public-top .brand-name small{color:var(--text-muted)}.public-main{flex:1;width:100%;max-width:760px;margin:0 auto;padding:36px 20px 64px;display:flex;flex-direction:column;gap:20px}.public-foot{text-align:center;font-size:12.5px;color:var(--text-subtle);padding:24px}.lesson-content{font-size:15px;line-height:1.7;color:var(--gray-700)}.lesson-content h3{font-size:16px;color:var(--gray-900);margin:24px 0 8px}.lesson-content h3:first-child{margin-top:0}.lesson-content ul{padding-left:20px;margin:8px 0}.lesson-content li{margin:6px 0}.lesson-content strong{color:var(--gray-900)}.lesson-content em{font-style:normal;font-family:var(--font-mono);font-size:13.5px;background:var(--gray-100);padding:1px 5px;border-radius:4px}.lesson-content .callout{display:block;margin:20px 0;background:var(--brand-50);border-color:var(--brand-100);color:var(--brand-900);padding:14px 16px}.quiz-q{padding:20px}.quiz-q+.quiz-q{border-top:1px solid var(--gray-100)}.quiz-q .q{font-weight:600;font-size:15px;margin-bottom:12px;display:flex;gap:10px}.quiz-q .q .n{color:var(--text-subtle);font-variant-numeric:tabular-nums}.choice{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;margin-top:8px;transition:border-color .12s,background .12s;font-size:14px}.choice:hover{border-color:var(--border-strong);background:var(--gray-25)}.choice input{accent-color:var(--brand-600);width:16px;height:16px}.choice.selected{border-color:var(--brand-500);background:var(--brand-50)}.choice.correct{border-color:var(--success-600);background:var(--success-50)}.choice.wrong{border-color:var(--danger-600);background:var(--danger-50)}.video-frame{position:relative;padding-top:56.25%;border-radius:var(--r-lg);overflow:hidden;background:#000}.video-frame iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}
