:root{--bg:#f4f1ea;--sidebar:#ebe6dc;--card:#f7f4ee;--line:#e4ddd0;--text:#141210;--muted:#8a8278;--accent:#c45c38;--accent-soft:#f4e7e1;--blue:#2f6df6;--blue-soft:#e6dfd2;--purple:#7c6af2;--teal:#1a9b8a;--sidebar-w:220px;--safe-b:env(safe-area-inset-bottom,0px)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:14px;line-height:1.45}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}.page{min-height:100vh}.nav{width:var(--sidebar-w);background:var(--sidebar);border-right:1px solid var(--line);z-index:20;position:fixed;inset:0 auto 0 0}.nav-inner{flex-direction:column;gap:22px;height:100%;padding:18px 12px 16px;display:flex}.nav-brand img{width:auto;height:28px;margin:4px 8px 8px;display:block}.nav-kicker{color:#a3a3a3;letter-spacing:.02em;padding:0 10px 6px;font-size:11px;font-weight:600}.nav-links{gap:16px;display:grid}.nav-links>div{gap:2px;display:grid}.nav-links a{color:#525252;border-radius:8px;align-items:center;gap:8px;min-height:34px;padding:0 10px;font-size:13.5px;font-weight:500;display:flex}.nav-soon{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);background:#f4f1ea;border-radius:999px;margin-left:auto;padding:2px 6px;font-size:10px;font-weight:700}.coming-soon{text-align:center;padding:48px 24px}.coming-soon-mark{background:var(--blue-soft);width:44px;height:44px;color:var(--blue);border-radius:50%;justify-content:center;align-items:center;margin-bottom:14px;display:inline-flex}.coming-soon-mark svg{width:22px;height:22px}.coming-soon h2{margin:0 0 8px}.coming-soon .note{max-width:360px;margin:0 auto 18px}.coming-soon .btn[disabled]{opacity:.55;cursor:not-allowed}.nav-links svg{opacity:.7;flex-shrink:0;width:16px;height:16px}.nav-links a[aria-current=page] svg{opacity:1}.nav-links a:hover{color:var(--text);background:#e4ddd0}.nav-links a[aria-current=page]{background:var(--blue-soft);color:var(--blue)}.nav-end{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;margin-top:auto;padding:12px 8px 0;display:flex}.who strong{font-size:13px;display:block}.who span{color:var(--muted);font-size:12px}.sign-out-link{color:var(--muted);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:4px 0;font-size:12px;font-weight:600}.sign-out-link:hover{color:var(--text)}.avatar{background:var(--sidebar);color:#5a534a;border-radius:50%;place-items:center;width:28px;height:28px;font-size:12px;font-weight:600;display:grid}.menu-btn{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:8px;width:36px;height:36px;display:none}.menu-btn svg{width:16px;height:16px}.mobile-menu{display:none}.mobile-menu.open{background:var(--sidebar);padding:8px 12px 14px;display:grid}.mobile-menu a{color:#525252;border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:10px 8px;display:flex}.shell{margin-left:var(--sidebar-w);padding:28px 32px calc(48px + var(--safe-b));max-width:1180px}.top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.top h1{letter-spacing:-.03em;font-size:22px;font-weight:600}.tools{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--card);color:#525252;border-radius:8px;align-items:center;height:32px;padding:0 12px;font-size:13px;display:inline-flex}.chip.on{color:#fff;background:#171717;border-color:#171717}.sharebar{align-items:stretch;gap:8px;margin-bottom:16px;display:flex}.share-card .sharebar{margin-bottom:14px}.share-card .metrics{margin-bottom:0}.sharebar .url{border:1px solid var(--line);color:#141210;white-space:nowrap;text-overflow:ellipsis;background:#fff;border-radius:8px;flex:1;align-items:center;min-width:0;padding:0 12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;display:flex;overflow:hidden}.btn{border:1px solid var(--line);background:var(--card);cursor:pointer;white-space:nowrap;border-radius:8px;height:36px;padding:0 12px;font-size:13px;font-weight:600}.btn-dark{color:#fff;background:#171717;border-color:#171717}.btn-dark.copied{background:#17803d;border-color:#17803d}.metrics{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px;display:grid}.metrics-4{grid-template-columns:repeat(4,1fr)}.metric{background:var(--card);border:1px solid var(--line);cursor:pointer;text-align:left;border-radius:12px;width:100%;padding:16px 18px 14px}.metric.on{box-shadow:inset 0 -2px 0 var(--blue);border-color:#d4d4d8}.metric .lab{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.dot{border-radius:2px;width:8px;height:8px}.dot.blue{background:var(--blue)}.dot.purple{background:var(--purple)}.dot.teal{background:var(--teal)}.metric .n{letter-spacing:-.04em;margin-top:8px;font-size:28px;font-weight:600;line-height:1}.spark{width:72px;height:28px;margin-left:auto;display:block}.metric-row{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.chart{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:16px;padding:8px 8px 4px}.chart svg{width:100%;height:220px;display:block}.chart-axis{color:var(--muted);justify-content:space-between;padding:0 8px 8px;font-size:12px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:28px;display:grid}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;overflow-x:auto}.panel h2{margin-bottom:10px;font-size:13px;font-weight:600}.row{border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px;font-size:13px;display:flex}.row:hover{background:var(--sidebar)}.row.on{background:#f8efe8}.row .left{color:#404040;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row .val{color:#171717;font-weight:600}.table{border-collapse:collapse;width:100%;font-size:13px}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 8px 10px;font-size:12px;font-weight:500}.table td{border-bottom:1px solid var(--line);color:#404040;padding:10px 8px}.table tr:last-child td{border-bottom:0}.ok{color:#17803d;font-weight:600}.wait{color:#a16207;font-weight:600}.section{margin-bottom:28px;scroll-margin-top:20px}.section h2{letter-spacing:-.02em;margin-bottom:10px;font-size:16px;font-weight:600}.list{border:1px solid var(--line);background:var(--card);border-radius:12px;overflow:hidden}.list a,.list button{border:0;border-bottom:1px solid var(--line);background:var(--card);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;width:100%;padding:12px 14px;font-size:13.5px;display:flex}.list a:last-child,.list button:last-child{border-bottom:0}.list .act{color:var(--muted);font-size:12px;font-weight:600}.course{border-bottom:1px solid var(--line);padding:10px 0}.course:first-child{border-top:1px solid var(--line)}.course-top{justify-content:space-between;margin-bottom:8px;font-size:13.5px;display:flex}.course .pct{color:var(--muted)}.bar{background:#f0f0f2;border-radius:99px;height:4px;overflow:hidden}.bar>i{background:var(--blue);height:100%;display:block}.profile .row{border-bottom:1px solid var(--line);border-radius:0;padding:10px 0}.profile dt{color:var(--muted)}.foot{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;margin-top:28px;padding-top:14px;font-size:12px;display:flex}.pager{color:var(--muted);padding:12px 8px 4px;font-size:12px}.note{color:var(--muted);margin:-6px 0 14px;font-size:12px}.bar-list{gap:12px;display:grid}.bar-row{gap:6px;display:grid}.bar-row .meta{justify-content:space-between;font-size:13px;display:flex}.bar-row .meta b{align-items:center;gap:8px;font-weight:500;display:flex}.bar-row .meta span{color:var(--muted);font-variant-numeric:tabular-nums}.swatch{border-radius:2px;width:8px;height:8px;display:inline-block}.track{background:#f0f0f2;border-radius:99px;height:8px;overflow:hidden}.track>i{border-radius:99px;height:100%;display:block}.city-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px;display:grid}.city-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 16px 16px}.city-card .pct{letter-spacing:-.05em;font-size:32px;font-weight:600;line-height:1}.city-card .name{margin-top:8px;font-size:14px;font-weight:600}.city-card .sub{color:var(--muted);margin:2px 0 12px;font-size:12px}.donut-wrap{align-items:center;gap:20px;display:flex}.donut{flex-shrink:0;width:132px;height:132px;position:relative}.donut svg{width:100%;height:100%}.donut-center{text-align:center;pointer-events:none;place-content:center;display:grid;position:absolute;inset:0}.donut-center strong{letter-spacing:-.04em;font-size:20px;line-height:1}.donut-center small{color:var(--muted);margin-top:4px;font-size:11px;display:block}.legend{flex:1;gap:8px;margin:0;padding:0;display:grid}.legend li{align-items:center;gap:8px;font-size:13px;list-style:none;display:flex}.legend .grow{color:#404040;flex:1}.legend .num{color:var(--muted);font-variant-numeric:tabular-nums}.stack{background:#f0f0f2;border-radius:99px;height:12px;margin-bottom:14px;display:flex;overflow:hidden}.stack i{height:100%;display:block}.channel-legend{grid-template-columns:1fr 1fr;gap:10px 16px;display:grid}.aud-grid{margin-bottom:12px}.btn-chip{cursor:pointer;background:var(--card)}.cards{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;display:grid}.asset,.lesson{border:1px solid var(--line);background:var(--card);text-align:left;cursor:pointer;font:inherit;color:inherit;border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;display:flex}.asset:hover,.lesson:hover{border-color:#d4d4d8}.asset strong,.lesson strong{font-size:14px;font-weight:600}.asset span,.lesson .pct{color:var(--muted);font-size:12px}.asset em{color:var(--blue);margin-top:8px;font-size:12px;font-style:normal;font-weight:600}.caption pre{white-space:pre-wrap;font:inherit;color:#404040;font-size:13px;line-height:1.55}.lessons .bar{width:100%;margin:8px 0 12px}.profile-card{padding:8px 16px 12px}.field{border-bottom:1px solid var(--line);grid-template-columns:120px 1fr;gap:12px;padding:14px 0;font-size:13.5px;display:grid}.field:last-child{border-bottom:0}.field label{color:var(--muted)}.learn-hero{grid-template-columns:1.6fr 1fr;gap:12px;margin-bottom:12px;display:grid}.continue h2,.streak h2,.curric-head h2{letter-spacing:-.03em;margin:6px 0 8px;font-size:18px;font-weight:600}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.continue p,.streak p,.curric-head p{color:var(--muted);margin-bottom:12px;font-size:13px}.continue-photo{border-radius:12px 12px 0 0;height:140px;margin:-16px -16px 14px;overflow:hidden}.continue-photo img,.progress-photo img{object-fit:cover;width:100%;height:100%;display:block}.progress-photo{border-radius:12px 12px 0 0;height:120px;margin:-16px -16px 16px;overflow:hidden}.days{gap:8px;margin-top:16px;display:flex}.days span{width:32px;height:32px;color:var(--muted);background:#f3f3f4;border-radius:50%;place-items:center;font-size:11px;font-weight:600;display:grid}.days span.on{color:#fff;background:#171717}.course-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px;display:grid}.course-card{background:var(--card);border:1px solid var(--line);text-align:left;cursor:pointer;font:inherit;color:inherit;border-radius:12px;padding:0 0 12px;overflow:hidden}.course-card.on{border-color:#c7c7cc;box-shadow:inset 0 0 0 1px #c7c7cc}.course-card .cover{height:118px;position:relative;overflow:hidden}.course-card .cover img{object-fit:cover;width:100%;height:100%;display:block}.course-card .cover span{color:#171717;background:#fffffff0;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:600;position:absolute;top:10px;left:10px}.course-card strong{padding:10px 12px 4px;font-size:13.5px;display:block}.course-card em{color:var(--muted);padding:0 12px 10px;font-size:12px;font-style:normal;display:block}.course-card .track{margin:0 12px}.learn-split{grid-template-columns:1.7fr .9fr;gap:12px;display:grid}.curric-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.module{margin-top:8px}.module-h{border-top:1px solid var(--line);justify-content:space-between;padding:10px 0 6px;font-size:13px;font-weight:600;display:flex}.module-h span{color:var(--muted);font-weight:500}.lesson-row{border-radius:8px;grid-template-columns:16px 1fr auto;align-items:center;gap:10px;padding:10px 8px;display:grid}.lesson-row.current{background:var(--sidebar);box-shadow:inset 3px 0 0 var(--accent)}.lesson-row b{font-size:13.5px;font-weight:500;display:block}.lesson-row small{color:var(--muted);font-size:12px}.mark{border:1.5px solid #d4d4d8;border-radius:50%;width:14px;height:14px}.mark.done{background:#17803d;border-color:#17803d;box-shadow:inset 0 0 0 2px #fff}.progress-card{text-align:center}.progress-card .big-pct{letter-spacing:-.05em;margin-top:8px;font-size:36px;font-weight:600;line-height:1}.progress-card .muted{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:6px;font-size:12px}.auth-page,.auth-shell{background:#f4f1ea;min-height:100vh}.auth-shell{grid-template-columns:minmax(280px,.92fr) minmax(0,1.08fr);display:grid}.auth-aside{background:#f4f1ea;border-right:1px solid #e8e2d6;flex-direction:column;justify-content:center;padding:36px 40px;display:flex}.auth-brand img{height:28px}.auth-aside h2{letter-spacing:-.045em;max-width:12ch;margin:36px 0 10px;font-size:clamp(28px,3vw,40px);line-height:1.12}.auth-main{place-items:center;padding:40px 24px;display:grid}.auth-mobile-brand{display:none}.auth-mobile-brand img{height:28px}.auth-card{background:var(--card);border:1px solid var(--line);border-radius:16px;width:min(420px,100%);max-height:calc(100vh - 48px);padding:32px 28px 24px;overflow:auto}.auth-card h1{letter-spacing:-.04em;margin-bottom:8px;font-size:26px}.auth-lede{color:var(--muted);margin-bottom:22px;font-size:14px;line-height:1.5}.auth-card form{gap:14px;display:grid}.auth-card label{color:var(--text);gap:7px;font-size:13px;font-weight:600;display:grid}.auth-card input{border:1px solid var(--line);height:44px;font:inherit;color:var(--text);background:var(--card);border-radius:10px;padding:0 12px}.auth-card input:focus{box-shadow:0 0 0 3px var(--blue-soft);border-color:#c9d7ff;outline:none}.auth-otp{letter-spacing:.42em;text-align:center;font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.auth-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.auth-block{gap:8px;min-width:0;display:grid}.auth-block-label{font-size:13px;font-weight:600}.auth-hint{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.auth-campus-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.auth-campus-grid button{text-align:left;background:var(--card);border:1px solid var(--line);cursor:pointer;border-radius:10px;gap:2px;padding:10px 11px;display:grid}.auth-campus-grid button b{font-size:13px}.auth-campus-grid button span{color:var(--muted);font-size:11px}.auth-campus-grid button.on{background:var(--blue-soft);border-color:#c9d7ff}.auth-seg{background:var(--sidebar);border-radius:12px;grid-template-columns:1fr 1fr;gap:6px;padding:4px;display:grid}.auth-seg button{height:40px;font:inherit;cursor:pointer;color:var(--text);background:0 0;border:0;border-radius:9px;font-size:13px;font-weight:600}.auth-seg button.on{background:var(--card);box-shadow:0 1px 2px #14121014}.auth-google{border:1px solid var(--line);background:var(--card);height:44px;font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:10px;font-weight:600;display:flex}.auth-google svg{width:18px;height:18px}.auth-google:hover:not(:disabled){background:var(--sidebar)}.auth-google:disabled{opacity:.6;cursor:default}.auth-or{color:#a3a3a3;text-transform:uppercase;letter-spacing:.06em;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;font-size:12px;font-weight:600;display:grid}.auth-or:before,.auth-or:after{content:"";background:var(--line);height:1px}.auth-submit{background:var(--blue);color:#fff;height:44px;font:inherit;cursor:pointer;border:0;border-radius:10px;font-weight:600}.auth-submit:disabled{opacity:.55;cursor:default}.auth-submit:hover:not(:disabled){filter:brightness(.96)}.auth-switch-line{text-align:center;color:var(--muted);margin:2px 0 0;font-size:13.5px}.auth-switch-line button,.auth-legal a{color:var(--blue);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.auth-legal{color:var(--muted);margin:-4px 0 0;font-size:12px;line-height:1.45}.auth-error{color:#b42318;font-size:13px}.auth-preview{background:var(--blue-soft);color:var(--blue);border-radius:10px;padding:10px 12px;font-size:13px}@media (width<=860px){.auth-shell{grid-template-columns:1fr}.auth-aside{display:none}.auth-main{flex-direction:column;justify-content:flex-start;align-items:center;gap:20px;padding:28px 16px 40px;display:flex}.auth-mobile-brand{display:block}}.delete-account p{color:var(--muted);margin-bottom:8px;font-size:13px}.delete-account input{border:1px solid var(--line);height:36px;font:inherit;border-radius:8px;width:min(220px,100%);margin:0 0 10px;padding:0 10px;display:block}.btn-danger{background:var(--card);color:#b42318;border:1px solid #f0c4c0}@media (width<=900px){.metrics,.metrics-4,.grid2,.cards,.city-grid,.learn-hero,.learn-split,.course-grid{grid-template-columns:1fr}}@media (width<=720px){.nav{width:auto;position:sticky;inset:auto}.nav-inner{flex-direction:row;align-items:center;gap:10px;height:auto;padding:10px 14px}.nav-brand,.nav-brand img{margin:0}.nav-kicker,.who,.nav-links{display:none}.sign-out-link{display:inline}.nav-end{border:0;margin:0 0 0 auto;padding:0}.menu-btn{justify-content:center;align-items:center;display:inline-flex}.shell{padding:18px 14px calc(40px + var(--safe-b));margin:0}.sharebar{flex-direction:column}}
