:root{--gp-graphite:#14171a;--gp-signal:#2456e8;--gp-steel:#47525b;--gp-silver:#c9cfd4;--gp-glass:#f7f8f8;--gp-white:#fff;--gp-graphite-raised:#16171a;--gp-slate:#8b949e;--gp-fog:#a9b2bb;--gp-hairline:#dde0e2;--gp-mist:#e7eaec;--gp-mist-2:#f2f4f5;--gp-steel-line:#47525b;--gp-signal-deep:#1b3fb8;--gp-signal-mid:#4c7fe8;--gp-signal-light:#6e9bf2;--gp-signal-wash:#dce6ff;--gp-tier-1:#b3c6f2;--gp-tier-2:#6b8adb;--gp-tier-3:#3470f2;--gp-tier-4:#16339a;--gp-tier-1-edge:#7e98d8;--gp-tier-2-edge:#4462b3;--gp-tier-3-edge:#1e4fc2;--gp-tier-4-edge:#0e2270;--gp-mint:#6fd6b6;--gp-mint-deep:#1f6f57;--gp-mint-wash:#e3f6ef;--gp-sky:#9cd3f5;--gp-sky-deep:#1c6a94;--gp-sky-wash:#e4f3fc;--gp-critical:#b4231f;--surface-page:var(--gp-glass);--surface-card:var(--gp-white);--surface-sunken:var(--gp-mist-2);--surface-inverse:var(--gp-graphite);--surface-inverse-raised:var(--gp-graphite-raised);--surface-accent:var(--gp-signal);--surface-locked:var(--gp-mist);--surface-highlight:var(--gp-mint);--surface-highlight-soft:var(--gp-mint-wash);--surface-cool:var(--gp-sky);--surface-cool-soft:var(--gp-sky-wash);--text-body:var(--gp-graphite);--text-muted:var(--gp-steel);--text-subtle:var(--gp-slate);--text-inverse:var(--gp-glass);--text-inverse-muted:var(--gp-fog);--text-accent:var(--gp-signal);--text-on-accent:var(--gp-white);--text-on-bright:var(--gp-graphite);--text-mint:var(--gp-mint-deep);--text-sky:var(--gp-sky-deep);--border-hairline:var(--gp-hairline);--border-strong:var(--gp-graphite);--border-inverse:var(--gp-steel);--border-accent:var(--gp-signal);--rule-brand:var(--gp-signal);--gp-weight-regular:400;--gp-weight-medium:500;--gp-weight-semibold:600;--gp-weight-bold:700;--type-display-1-size:72px;--type-display-1-line:69px;--type-display-1-track:-.045em;--type-display-1-weight:700;--type-display-2-size:48px;--type-display-2-line:49px;--type-display-2-track:-.04em;--type-display-2-weight:700;--type-heading-1-size:34px;--type-heading-1-line:37px;--type-heading-1-track:-.03em;--type-heading-1-weight:700;--type-heading-2-size:24px;--type-heading-2-line:29px;--type-heading-2-track:-.02em;--type-heading-2-weight:600;--type-heading-3-size:17px;--type-heading-3-line:24px;--type-heading-3-track:-.015em;--type-heading-3-weight:700;--type-body-size:16px;--type-body-line:26px;--type-body-weight:400;--type-body-sm-size:14px;--type-body-sm-line:22.4px;--type-body-fine-size:13px;--type-body-fine-line:20px;--type-label-size:12px;--type-label-line:16px;--type-label-track:.06em;--type-label-weight:600;--type-caption-size:11px;--type-caption-line:18px;--type-caption-track:.06em;--type-caption-weight:600;--type-metric-size:40px;--type-metric-track:-.03em;--type-metric-weight:600;--space-1:4px;--space-2:6px;--space-3:8px;--space-4:10px;--space-5:12px;--space-6:14px;--space-7:16px;--space-8:18px;--space-9:20px;--space-10:22px;--space-11:24px;--space-12:26px;--space-13:28px;--space-14:32px;--space-15:36px;--space-16:40px;--space-17:44px;--space-18:48px;--space-19:56px;--space-20:72px;--space-21:96px;--space-22:120px;--gutter-card:24px;--gutter-panel:32px;--gutter-feature:48px;--gutter-section:72px;--grid-hairline:1px;--content-max:1120px;--measure-prose:640px;--radius-none:0;--radius-tile:22.5%;--border-width-hair:1px;--border-width-rule:2px;--border-width-marker:3px;--shadow-none:none;--shadow-overlay:0 24px 64px #14171a3d;--plate-clip:polygon(0 0, 100% 0, 100% 100%, 12% 100%, 0 88%);--plate-clip-mark:polygon(0 0, 100% 0, 100% 35%, 35% 35%, 35% 100%, 0 100%);--ease-standard:cubic-bezier(.2, 0, .2, 1);--duration-fast:.12s;--duration-standard:.18s;--duration-slow:.32s;--state-hover-ink:#0f1215;--state-hover-signal:#1b44c4;--state-hover-ground:var(--gp-mist-2);--state-active-ink:#0a0c0e;--state-disabled-opacity:.4;--focus-ring:2px solid var(--gp-signal);--focus-offset:2px}body{background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--type-body-size);line-height:var(--type-body-line);-webkit-font-smoothing:antialiased;text-wrap:pretty;margin:0}a{color:var(--text-accent);text-decoration:none}a:hover{color:var(--state-hover-signal);text-decoration:underline}a:active{color:var(--gp-signal-deep)}a:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);text-decoration:none}strong{font-weight:var(--gp-weight-bold)}hr{border:0;border-top:var(--border-width-hair) solid var(--border-hairline);margin:var(--space-13) 0}code,kbd,samp{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}::selection{background:var(--gp-signal);color:var(--gp-white)}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}[data-gp-numeric]{font-family:var(--font-data);font-variant-numeric:tabular-nums}:root{--gp-font-sans:Archivo, "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display:var(--gp-font-sans);--font-body:var(--gp-font-sans);--font-label:var(--gp-font-sans);--font-data:var(--gp-font-sans);--font-code:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--gp-font-display:var(--font-display);--gp-font-body:var(--font-body);--gp-font-mono:var(--font-label);--gp-body-size:var(--type-body-size);--gp-body-leading:var(--type-body-line);--gp-body-sm-size:var(--type-body-sm-size);--gp-body-sm-leading:var(--type-body-sm-line);--gp-caption-size:var(--type-body-fine-size);--gp-label-size:var(--type-label-size);--gp-label-track:var(--type-label-track);--gp-heading-1-size:var(--type-heading-1-size);--gp-heading-1-leading:var(--type-heading-1-line);--gp-heading-1-track:var(--type-heading-1-track);--gp-heading-2-size:var(--type-heading-2-size);--gp-heading-2-leading:var(--type-heading-2-line);--gp-heading-2-track:var(--type-heading-2-track);--gp-heading-3-size:var(--type-heading-3-size);--gp-heading-3-track:var(--type-heading-3-track);--gp-space-1:4px;--gp-space-2:8px;--gp-space-3:12px;--gp-space-4:16px;--gp-space-5:20px;--gp-space-6:24px;--gp-space-8:32px;--gp-space-10:40px;--gp-space-12:48px;--gp-space-18:72px;--gp-gutter:16px;--gp-page-max:var(--content-max);--gp-rule-section:var(--border-width-rule);--gp-rule-stat:var(--border-width-marker);--gp-radius:var(--radius-none);--gp-clip-plate:var(--plate-clip);--gp-transition:var(--duration-fast) var(--ease-standard);--gp-disabled-opacity:var(--state-disabled-opacity);--gp-shadow-modal:var(--shadow-overlay);--gp-focus:var(--gp-signal);--gp-focus-ring:var(--focus-ring);--gp-focus-offset:var(--focus-offset);--gp-image-filter:none;--gp-signal-100:var(--gp-signal-wash);--gp-signal-400:var(--gp-signal-mid);--gp-signal-600:var(--state-hover-signal);--gp-signal-700:var(--gp-signal-deep);--gp-signal-900:var(--gp-signal-deep);--gp-neutral-050:var(--gp-glass);--gp-neutral-100:var(--gp-mist-2);--gp-neutral-200:var(--gp-mist);--gp-neutral-300:var(--gp-hairline);--gp-neutral-400:var(--gp-silver);--gp-neutral-500:var(--gp-fog);--gp-neutral-600:var(--gp-slate);--gp-neutral-800:var(--gp-graphite-raised);--gp-bg:var(--surface-page);--gp-surface:var(--surface-card);--gp-surface-sunken:var(--surface-sunken);--gp-surface-inverse:var(--surface-inverse);--gp-text:var(--text-body);--gp-text-secondary:var(--text-muted);--gp-text-muted:var(--text-muted);--gp-text-accent:var(--text-accent);--gp-text-on-accent:var(--text-on-accent);--gp-text-inverse:var(--text-inverse);--gp-text-inverse-secondary:var(--text-inverse-muted);--gp-border:var(--border-hairline);--gp-border-inverse:var(--border-inverse);--gp-rule:var(--gp-mist);--gp-action:var(--gp-signal);--gp-action-hover:var(--state-hover-signal);--gp-action-active:var(--gp-signal-deep);--gp-alert:var(--gp-critical);--gp-alert-tint:#fbedec;--gp-ink:var(--border-strong);--gp-hover-ground:var(--state-hover-ground);--app-new-bg:var(--gp-mint-wash);--app-new-fg:var(--gp-mint-deep);--app-learn:var(--gp-sky-deep);--app-alert:var(--gp-critical);--app-tag-signal-bg:var(--gp-signal-wash);--app-tag-signal-fg:var(--gp-signal-deep);--app-course-marker:var(--gp-mint);--chart-1:#8fa8e8;--chart-2:#6b8adb;--chart-3:#3470f2;--chart-4:#16339a;--chart-empty:var(--gp-mist);--chart-grid:var(--gp-mist);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-page:#14171a;--surface-card:#1b1f23;--surface-sunken:#101214;--surface-inverse:#f7f8f8;--surface-locked:#262c31;--text-body:#f7f8f8;--text-muted:#c9cfd4;--text-subtle:#a9b2bb;--text-inverse:#14171a;--text-inverse-muted:#47525b;--text-accent:#6e9bf2;--border-hairline:#2e353b;--border-strong:#c9cfd4;--border-inverse:#c9cfd4;--state-hover-ground:#22272c;--gp-rule:#262c31;--gp-alert-tint:#3a1a19;--app-new-bg:#173a30;--app-new-fg:#6fd6b6;--app-learn:#9cd3f5;--app-alert:#f08a86;--app-tag-signal-bg:#1b2a55;--app-tag-signal-fg:#b8ccfa;--chart-1:#3b5bb8;--chart-2:#5c84e8;--chart-3:#8daaf0;--chart-4:#c2d3f7;--chart-empty:#262c31;--chart-grid:#262c31}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-page:#14171a;--surface-card:#1b1f23;--surface-sunken:#101214;--surface-inverse:#f7f8f8;--surface-locked:#262c31;--text-body:#f7f8f8;--text-muted:#c9cfd4;--text-subtle:#a9b2bb;--text-inverse:#14171a;--text-inverse-muted:#47525b;--text-accent:#6e9bf2;--border-hairline:#2e353b;--border-strong:#c9cfd4;--border-inverse:#c9cfd4;--state-hover-ground:#22272c;--gp-rule:#262c31;--gp-alert-tint:#3a1a19;--app-new-bg:#173a30;--app-new-fg:#6fd6b6;--app-learn:#9cd3f5;--app-alert:#f08a86;--app-tag-signal-bg:#1b2a55;--app-tag-signal-fg:#b8ccfa;--chart-1:#3b5bb8;--chart-2:#5c84e8;--chart-3:#8daaf0;--chart-4:#c2d3f7;--chart-empty:#262c31;--chart-grid:#262c31}.gp-btn{align-items:center;gap:var(--gp-space-2);font-family:var(--gp-font-body);font-size:var(--gp-body-sm-size);font-weight:var(--gp-weight-semibold);letter-spacing:-.01em;padding:11px var(--gp-space-4);border-radius:var(--gp-radius);cursor:pointer;text-align:left;transition:background var(--gp-transition), color var(--gp-transition), border-color var(--gp-transition);border:1px solid #0000;justify-content:flex-start;text-decoration:none;display:inline-flex}.gp-btn--primary{background:var(--gp-action);color:var(--gp-text-on-accent)}.gp-btn--primary:hover{background:var(--gp-action-hover)}.gp-btn--primary:active{background:var(--gp-action-active)}.gp-btn--secondary{color:var(--gp-text);border-color:var(--gp-ink);background:0 0}.gp-btn--secondary:hover{background:var(--gp-hover-ground);color:var(--gp-text)}.gp-btn--secondary:active{background:var(--gp-neutral-200);color:var(--gp-text)}.gp-btn--ghost{color:var(--gp-text-accent);background:0 0;padding-left:0;padding-right:0}.gp-btn--ghost:hover{color:var(--gp-text);background:var(--gp-hover-ground)}.gp-btn--inverse{background:var(--gp-glass);color:var(--gp-graphite)}.gp-btn--inverse:hover{background:var(--gp-white)}.gp-btn--sm{font-size:var(--gp-caption-size);padding:7px var(--gp-space-3)}.gp-btn--lg{font-size:var(--gp-body-size);padding:14px var(--gp-space-5)}.gp-btn--block{width:100%;display:flex}.gp-btn[disabled],.gp-btn[aria-disabled=true]{opacity:var(--gp-disabled-opacity);pointer-events:none}.gp-btn__trail{padding-left:var(--gp-space-6);margin-left:auto}.gp-iconbtn{cursor:pointer;width:40px;height:40px;color:var(--gp-text);border:1px solid var(--gp-border);border-radius:var(--gp-radius);transition:background var(--gp-transition), color var(--gp-transition);background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.gp-iconbtn:hover{background:var(--gp-hover-ground);color:var(--gp-text);border-color:var(--gp-ink)}.gp-iconbtn--sm{width:32px;height:32px}.gp-iconbtn--bare{border-color:#0000}.gp-tag{font-family:var(--gp-font-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid #0000;align-items:center;gap:6px;padding:4px 8px;font-size:11px;font-weight:600;display:inline-flex}.gp-tag--mint{background:var(--app-new-bg);color:var(--app-new-fg)}.gp-tag--neutral{background:var(--gp-neutral-200);color:var(--gp-steel)}.gp-tag--outline{border-color:var(--gp-border);color:var(--gp-steel)}.gp-tag--alert{background:var(--gp-alert-tint);color:var(--gp-alert)}.gp-field{gap:var(--gp-space-2);flex-direction:column;display:flex}.gp-field__label{font-family:var(--gp-font-mono);font-weight:600;font-size:var(--gp-label-size);letter-spacing:var(--gp-label-track);text-transform:uppercase;color:var(--gp-text-muted)}.gp-field__hint{font-size:var(--gp-caption-size);color:var(--gp-text-muted)}.gp-field__error{font-family:var(--gp-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gp-alert);font-size:11px;font-weight:600}.gp-input{font-family:var(--gp-font-body);font-size:var(--gp-body-size);color:var(--gp-text);background:var(--gp-surface);border:1px solid var(--gp-border);border-radius:var(--gp-radius);padding:11px var(--gp-space-3);width:100%;transition:border-color var(--gp-transition)}.gp-input::placeholder{color:var(--gp-neutral-600)}.gp-input:hover{border-color:var(--gp-neutral-600)}.gp-input:focus{border-color:var(--gp-signal);box-shadow:inset 0 0 0 1px var(--gp-signal);outline:none}.gp-input--invalid{border-color:var(--gp-alert)}.gp-input[disabled]{opacity:var(--gp-disabled-opacity)}select.gp-input{appearance:none;padding-right:var(--gp-space-8);background-image:linear-gradient(45deg, transparent 50%, var(--gp-steel) 50%), linear-gradient(135deg, var(--gp-steel) 50%, transparent 50%);background-position:calc(100% - 18px) 19px,calc(100% - 13px) 19px;background-repeat:no-repeat;background-size:5px 5px}.gp-choice{align-items:center;gap:var(--gp-space-3);font-size:var(--gp-body-sm-size);cursor:pointer;display:inline-flex}.gp-choice__box{border:1px solid var(--gp-ink);background:var(--gp-surface);flex:none;place-items:center;width:18px;height:18px;display:grid}.gp-choice__box--radio{border-radius:50%}.gp-choice__box[data-checked=true]{background:var(--gp-signal);border-color:var(--gp-signal)}.gp-choice__tick{background:var(--gp-white);width:8px;height:8px}.gp-choice__tick--round{border-radius:50%}.gp-switch{background:var(--gp-neutral-400);cursor:pointer;width:44px;height:22px;transition:background var(--gp-transition);border:0;flex:none;padding:0;position:relative}.gp-switch[data-on=true]{background:var(--gp-signal)}.gp-switch__knob{background:var(--gp-white);width:16px;height:16px;transition:transform var(--gp-transition);position:absolute;top:3px;left:3px}.gp-switch[data-on=true] .gp-switch__knob{transform:translate(22px)}.gp-seg{border:1px solid var(--gp-ink);display:inline-flex}.gp-seg__opt{font-family:var(--gp-font-mono);letter-spacing:.06em;text-transform:uppercase;padding:9px var(--gp-space-4);border:0;border-right:1px solid var(--gp-ink);cursor:pointer;color:var(--gp-text);background:0 0;font-size:11px;font-weight:600}.gp-seg__opt:last-child{border-right:0}.gp-seg__opt[aria-pressed=true],.gp-seg__opt[data-selected=true]{background:var(--gp-ink);color:var(--gp-bg)}.gp-card{background:var(--gp-surface);border:1px solid var(--gp-border);padding:var(--gp-space-6);gap:var(--gp-space-3);flex-direction:column;display:flex}.gp-card--inverse{background:var(--gp-surface-inverse);border-color:var(--gp-border-inverse);color:var(--gp-text-inverse)}.gp-card--sunken{background:var(--gp-surface-sunken)}.gp-card--clipped{clip-path:var(--gp-clip-plate);border:0}.gp-card--interactive{transition:border-color var(--gp-transition);cursor:pointer}.gp-card--interactive:hover{border-color:var(--gp-ink)}.gp-card__kicker{font-family:var(--gp-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gp-text-muted);font-size:11px;font-weight:600}.gp-card__title{font-family:var(--gp-font-display);font-size:var(--gp-heading-3-size);font-weight:var(--gp-weight-bold);letter-spacing:var(--gp-heading-3-track)}.gp-card__body{font-size:var(--gp-body-sm-size);line-height:var(--gp-body-sm-leading);color:var(--gp-text-secondary)}.gp-card__meta{font-family:var(--gp-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gp-text-muted);border-top:1px solid var(--gp-rule);padding-top:var(--gp-space-3);font-size:11px;font-weight:600}.gp-dialog-backdrop{padding:var(--gp-space-6);z-index:50;background:#14171ab8;place-items:center;display:grid;position:fixed;inset:0}.gp-dialog{background:var(--gp-surface);width:100%;max-width:480px;box-shadow:var(--gp-shadow-modal);flex-direction:column;display:flex}.gp-dialog__head{padding:var(--gp-space-6);border-bottom:var(--gp-rule-section) solid var(--gp-ink);gap:var(--gp-space-2);flex-direction:column;display:flex}.gp-dialog__title{font-family:var(--gp-font-display);font-size:var(--gp-heading-2-size);font-weight:var(--gp-weight-bold);letter-spacing:var(--gp-heading-2-track)}.gp-dialog__body{padding:var(--gp-space-6);font-size:var(--gp-body-sm-size);line-height:var(--gp-body-sm-leading);color:var(--gp-text-secondary)}.gp-dialog__actions{padding:var(--gp-space-4) var(--gp-space-6) var(--gp-space-6);gap:var(--gp-space-3);display:flex}.gp-nav{background:var(--gp-surface);border-bottom:1px solid var(--gp-border);padding:var(--gp-space-3) var(--gp-space-6);justify-content:space-between;align-items:center;gap:var(--gp-space-6);display:flex}.gp-nav--inverse{background:var(--gp-graphite);border-bottom-color:var(--gp-border-inverse);color:var(--gp-text-inverse)}.gp-nav__brand{align-items:center;gap:var(--gp-space-3);font-family:var(--gp-font-display);font-weight:var(--gp-weight-bold);font-size:var(--gp-heading-3-size);letter-spacing:-.04em;display:flex}.gp-nav__links{align-items:center;gap:var(--gp-space-6);display:flex}.gp-nav__link{font-size:var(--gp-body-sm-size);color:var(--gp-text-secondary);border-bottom:2px solid #0000;padding-bottom:2px;text-decoration:none}.gp-nav__link:hover{color:var(--gp-text);text-decoration:none}.gp-nav__link[aria-current=page]{color:var(--gp-text);border-bottom-color:var(--gp-signal);font-weight:var(--gp-weight-semibold)}.gp-nav--inverse .gp-nav__link{color:var(--gp-text-inverse-secondary)}.gp-nav--inverse .gp-nav__link[aria-current=page]{color:var(--gp-text-inverse)}.gp-table{border-collapse:collapse;background:var(--gp-surface);width:100%;font-size:var(--gp-body-sm-size)}.gp-table th{text-align:left;font-family:var(--gp-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gp-text-muted);padding:var(--gp-space-3) var(--gp-space-4);background:var(--gp-neutral-050);border-bottom:var(--gp-rule-section) solid var(--gp-ink);white-space:nowrap;font-size:11px;font-weight:600}.gp-table td{padding:var(--gp-space-4);border-bottom:1px solid var(--gp-rule)}.gp-table tbody tr:hover td{background:var(--gp-hover-ground)}.gp-table .gp-table__num{font-family:var(--gp-font-mono);font-variant-numeric:tabular-nums;text-align:right;font-weight:600}.gp-stat{gap:var(--gp-space-2);border-top:var(--gp-rule-stat) solid var(--gp-ink);padding-top:var(--gp-space-3);flex-direction:column;display:flex}.gp-stat__value{font-family:var(--font-data);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:40px;font-weight:600;line-height:1}.gp-stat__unit{color:var(--gp-text-secondary);font-size:18px}.gp-stat__label{font-size:var(--gp-caption-size);color:var(--gp-text-secondary)}.gp-stat--signal{border-top-color:var(--gp-signal)}.gp-stat--signal .gp-stat__value{color:var(--gp-signal-700)}.gp-bar{background:var(--gp-neutral-200);width:100%;height:6px}.gp-bar__fill{background:var(--gp-signal);height:100%}.gp-bar__fill--ink{background:var(--gp-graphite)}.gp-barset{flex-direction:column;gap:6px;display:flex}.gp-tier{gap:var(--gp-space-3);flex-direction:column;display:flex}.gp-tier__row{align-items:center;gap:var(--gp-space-3);display:flex}.gp-tier__dot{background:var(--gp-neutral-200);flex:none;width:10px;height:10px}.gp-tier__line{background:var(--gp-neutral-200);flex:1;min-width:24px;height:1px}.gp-tier__name{font-size:var(--gp-body-sm-size);font-weight:var(--gp-weight-semibold);flex:none;width:158px}.gp-tier__state{font-family:var(--gp-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gp-text-muted);text-align:right;flex:none;width:72px;font-size:11px;font-weight:600}.gp-tier__row[data-state=locked] .gp-tier__name{color:var(--gp-text-muted)}.gp-tier__row[data-state=active] .gp-tier__state{color:var(--gp-signal)}.gp-badge{align-items:center;gap:var(--gp-space-2);border:1px solid var(--gp-border);padding:6px var(--gp-space-3);font-family:var(--gp-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gp-text);background:var(--gp-surface);font-size:11px;font-weight:600;display:inline-flex}.gp-badge__chip{flex:none;width:10px;height:10px}.gp-badge--inverse{background:var(--gp-graphite);color:var(--gp-glass);border-color:var(--gp-border-inverse)}.gp-credential{background:var(--gp-graphite);color:var(--gp-text-inverse);padding:var(--gp-space-6);justify-content:space-between;gap:var(--gp-space-8);aspect-ratio:85/55;flex-direction:column;display:flex}.gp-credential__no{font-family:var(--gp-font-mono);letter-spacing:.06em;color:var(--gp-text-inverse-secondary);font-size:11px;font-weight:600}.gp-credential__tier{font-family:var(--gp-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gp-signal-400);font-size:11px;font-weight:600}.gp-credential__name{font-family:var(--gp-font-display);font-size:26px;font-weight:var(--gp-weight-bold);letter-spacing:-.03em;line-height:1.08}.gp-credential__meta{font-family:var(--gp-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gp-text-inverse-secondary);border-top:1px solid var(--gp-border-inverse);padding-top:var(--gp-space-3);font-size:11px;font-weight:600}.gp-chord{height:120px;position:relative;overflow:hidden}.gp-chord__line{background:var(--gp-graphite);height:3px;margin-top:-1.5px;position:absolute;top:50%;left:-10%;right:-10%;transform:rotate(-16deg)}.gp-chord__node{background:var(--gp-signal);border-radius:50%;width:22px;height:22px;margin:-11px 0 0 -11px;position:absolute;top:50%;left:50%}.gp-chord--rule{background:var(--gp-graphite);height:2px;overflow:visible}*{box-sizing:border-box}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--gp-weight-bold);margin:0}p{margin:0}html,body{height:100%}body{background:var(--gp-bg);color:var(--gp-text)}#root{flex-direction:column;min-height:100%;display:flex}button{font:inherit;color:inherit}.mono,.num{font-family:var(--font-data);font-variant-numeric:tabular-nums}.code{font-family:var(--font-code);font-size:13px}.label{font-family:var(--font-label);font-weight:600;font-size:var(--gp-label-size);letter-spacing:var(--gp-label-track);text-transform:uppercase;color:var(--gp-text-muted)}.muted{color:var(--gp-text-muted)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-nav{top:env(safe-area-inset-top,0px);z-index:10;background:var(--gp-surface);border-bottom:1px solid var(--gp-border);position:sticky}.app-nav__inner{max-width:var(--gp-page-max);padding:var(--gp-space-3) var(--gp-gutter);align-items:center;gap:var(--gp-space-6);margin:0 auto;display:flex}.app-nav__brand{align-items:center;gap:var(--gp-space-3);color:var(--gp-text);text-decoration:none;display:flex}.app-nav__brand:hover{color:var(--gp-text);text-decoration:none}.app-nav__brand img{width:28px;height:28px;display:block}.app-nav__name{font-weight:var(--gp-weight-bold);letter-spacing:-.03em;font-size:17px;line-height:1.1}.app-nav__name span{font-family:var(--gp-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gp-text-muted);font-size:11px;font-weight:400;display:block}.app-nav__links{gap:var(--gp-space-6);margin-left:var(--gp-space-4);display:flex}.app-nav__spacer{flex:1}.app-main{width:100%;max-width:var(--gp-page-max);padding:var(--gp-space-10) var(--gp-gutter) var(--gp-space-18);flex:1;margin:0 auto}@media (width>=720px){.app-nav__inner,.app-main{padding-left:var(--gp-space-8);padding-right:var(--gp-space-8)}}@media (width<=560px){.app-nav__inner{gap:var(--gp-space-4)}.app-nav__links{gap:var(--gp-space-4);margin-left:0}.app-nav__name{display:none}.app-main{padding-top:var(--gp-space-6)}}.section-head{align-items:baseline;gap:var(--gp-space-4);border-bottom:var(--gp-rule-section) solid var(--gp-ink);padding-bottom:var(--gp-space-3);margin-bottom:var(--gp-space-6);flex-wrap:wrap;display:flex}.section-head h1{font-size:var(--gp-heading-1-size);line-height:var(--gp-heading-1-leading);letter-spacing:var(--gp-heading-1-track);text-wrap:balance}.section-head .label{margin-left:auto}@media (width<=560px){.section-head h1{font-size:var(--gp-heading-2-size);line-height:var(--gp-heading-2-leading)}.section-head .label{width:100%;margin-left:0}}.decks{border-collapse:collapse;background:var(--gp-surface);border:1px solid var(--gp-border);width:100%}.decks th{text-align:right;font-family:var(--gp-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gp-text-muted);padding:var(--gp-space-3) var(--gp-space-4);background:var(--gp-surface-sunken);border-bottom:var(--gp-rule-section) solid var(--gp-ink);font-size:11px;font-weight:400}.decks th:first-child{text-align:left}.decks td{border-bottom:1px solid var(--gp-rule);padding:0}.decks tr:last-child td{border-bottom:0}.decks tbody tr:hover td{background:var(--gp-hover-ground)}.decks__name{align-items:center;gap:var(--gp-space-2);padding:10px var(--gp-space-4) 10px 0;min-width:0;display:flex}.decks__toggle{cursor:pointer;width:28px;height:28px;color:var(--gp-text-muted);background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.decks__toggle:hover{color:var(--gp-text)}.decks__toggle[aria-hidden=true]{visibility:hidden}.decks__link{color:var(--gp-text);font-size:var(--gp-body-sm-size);text-align:left;cursor:pointer;background:0 0;border:0;min-width:0;padding:4px 0;line-height:20px}.decks__link:hover{color:var(--gp-text-accent);text-decoration:underline}.decks tr[data-kind=tier] .decks__link{font-weight:var(--gp-weight-bold);font-size:var(--gp-body-size)}.decks tr[data-kind=course] .decks__link,.decks tr[data-kind=general] .decks__link{font-weight:var(--gp-weight-semibold)}.decks tr[data-kind=personal] .decks__link{color:var(--gp-text-secondary);font-style:normal}.decks__chip{flex:none;width:10px;height:10px}.decks td.decks__num{text-align:right;padding:10px var(--gp-space-4);font-family:var(--gp-font-mono);font-variant-numeric:tabular-nums;width:64px;font-size:13px}.decks__num[data-zero=true]{color:var(--gp-neutral-500)}.decks__num--new:not([data-zero=true]){color:var(--gp-text-accent)}.decks__num--learn:not([data-zero=true]){color:var(--app-learn)}.decks__num--due:not([data-zero=true]){font-weight:600}.decks__empty{color:var(--gp-text-muted);font-size:var(--gp-caption-size)}@media (width<=560px){.decks td.decks__num{width:40px;padding-left:2px;padding-right:8px;font-size:12px}.decks th{letter-spacing:.06em;padding:10px 8px 10px 2px;font-size:11px}.decks th:first-child{padding-left:36px!important}.decks__name{padding-right:6px}.app-nav__name span{display:none}}.crumbs{margin-bottom:var(--gp-space-3);flex-wrap:wrap;gap:6px;display:flex}.crumbs button{cursor:pointer;font-family:var(--gp-font-mono);font-size:var(--gp-label-size);letter-spacing:var(--gp-label-track);text-transform:uppercase;color:var(--gp-text-muted);background:0 0;border:0;padding:0}.crumbs button:hover{color:var(--gp-text)}.overview{gap:var(--gp-space-8);max-width:760px;display:grid}.overview__desc{color:var(--gp-text-secondary);max-width:64ch}.overview__stats{gap:var(--gp-space-6);grid-template-columns:repeat(3,1fr);display:grid}.overview__stats .gp-stat__value{font-size:36px}.overview__actions{gap:var(--gp-space-3);flex-wrap:wrap;display:flex}.overview__note{border-left:3px solid var(--gp-signal);padding:var(--gp-space-3) var(--gp-space-4);background:var(--gp-surface);color:var(--gp-text-secondary);font-size:var(--gp-body-sm-size)}@media (width<=560px){.overview__stats{gap:var(--gp-space-3)}.overview__stats .gp-stat__value{font-size:28px}}.study{flex-direction:column;flex:1;display:flex}.study__bar{border-bottom:1px solid var(--gp-border);background:var(--gp-surface)}.study__bar-inner{max-width:820px;padding:var(--gp-space-2) var(--gp-gutter);align-items:center;gap:var(--gp-space-3);margin:0 auto;display:flex}.study__deck{font-size:var(--gp-body-sm-size);font-weight:var(--gp-weight-semibold);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.study__counts{gap:var(--gp-space-3);font-family:var(--gp-font-mono);font-variant-numeric:tabular-nums;margin-left:auto;font-size:14px;display:flex}.study__counts span{border-bottom:2px solid #0000;padding-bottom:1px}.study__counts span[data-current=true]{border-bottom-color:currentColor}.study__counts .c-new{color:var(--gp-text-accent)}.study__counts .c-learn{color:var(--app-learn)}.study__timer{font-family:var(--gp-font-mono);color:var(--gp-text-muted);text-align:right;width:44px;font-size:12px}.study__stage{width:100%;max-width:820px;padding:var(--gp-space-10) var(--gp-gutter) 180px;flex:1;margin:0 auto}.study__meta{gap:var(--gp-space-2);margin-bottom:var(--gp-space-4);flex-wrap:wrap;align-items:center;display:flex}.card{background:var(--gp-surface);border:1px solid var(--gp-border);padding:var(--gp-space-8) var(--gp-space-6);gap:var(--gp-space-5);display:grid}.card[data-flag="1"]{box-shadow:inset 4px 0 #d64545}.card[data-flag="2"]{box-shadow:inset 4px 0 #e08a2b}.card[data-flag="3"]{box-shadow:inset 4px 0 #3b9b6b}.card[data-flag="4"]{box-shadow:inset 4px 0 #2456e8}.card[data-flag="5"]{box-shadow:inset 4px 0 #d96bb0}.card[data-flag="6"]{box-shadow:inset 4px 0 #2ba6a6}.card[data-flag="7"]{box-shadow:inset 4px 0 #7a5ac7}.card__prompt{letter-spacing:-.015em;font-size:24px;line-height:34px;font-weight:var(--gp-weight-semibold);text-wrap:pretty;overflow-wrap:anywhere}.card__prompt--long{font-size:19px;line-height:29px;font-weight:var(--gp-weight-medium)}.card__rule{background:var(--gp-ink);border:0;height:2px;margin:0}.card__answer{color:var(--gp-text);overflow-wrap:anywhere;font-size:18px;line-height:29px}.card__extra{font-size:var(--gp-body-sm-size);line-height:var(--gp-body-sm-leading);color:var(--gp-text-secondary);border-top:1px solid var(--gp-rule);padding-top:var(--gp-space-4)}.card__extra .label{margin-bottom:4px;display:block}.cloze-blank{font-family:var(--gp-font-mono);color:var(--gp-text-accent);background:var(--gp-signal-100);padding:0 4px;font-weight:600}:root[data-theme=dark] .cloze-blank{background:#1b2a55}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .cloze-blank{background:#1b2a55}}.cloze-answer{color:var(--gp-text-accent);font-weight:700}.typein{gap:var(--gp-space-2);display:grid}.typein input{font-family:var(--gp-font-mono)}.diff{font-family:var(--gp-font-mono);gap:4px;font-size:16px;line-height:26px;display:grid}.diff__ok{color:var(--gp-text)}.diff__bad{color:var(--gp-alert);background:var(--gp-alert-tint);text-decoration:line-through}.diff__miss{color:var(--gp-text-accent);background:var(--gp-signal-100)}.verdict{font-family:var(--gp-font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:11px}.verdict[data-ok=true]{color:var(--gp-text-accent)}.verdict[data-ok=false]{color:var(--gp-alert)}.choices{background:var(--gp-border);border:1px solid var(--gp-border);gap:1px;margin:0;padding:0;list-style:none;display:grid}.choice{gap:var(--gp-space-3);text-align:left;background:var(--gp-surface);width:100%;padding:var(--gp-space-3) var(--gp-space-4);cursor:pointer;font-size:var(--gp-body-size);transition:background var(--gp-transition);border:0;align-items:flex-start;line-height:24px;display:flex}.choice:hover:not([disabled]){background:var(--gp-surface-sunken)}.choice[disabled]{cursor:default}.choice__key{font-family:var(--gp-font-mono);color:var(--gp-text-muted);flex:none;width:20px;padding-top:1px;font-size:12px}.choice[data-state=correct]{background:var(--gp-signal-100);color:var(--gp-signal-900);box-shadow:inset 3px 0 0 var(--gp-signal)}.choice[data-state=wrong]{background:var(--gp-alert-tint);color:var(--gp-alert);box-shadow:inset 3px 0 0 var(--gp-alert)}:root[data-theme=dark] .choice[data-state=correct]{color:#dce6ff;background:#1b2a55}:root[data-theme=dark] .choice[data-state=wrong]{color:#f7c9c7;background:#3a1a19}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .choice[data-state=correct]{color:#dce6ff;background:#1b2a55}:root:not([data-theme=light]) .choice[data-state=wrong]{color:#f7c9c7;background:#3a1a19}}.answerbar{z-index:20;background:var(--gp-surface);border-top:var(--gp-rule-section) solid var(--gp-ink);padding:var(--gp-space-3) var(--gp-gutter) calc(var(--gp-space-3) + env(safe-area-inset-bottom,0px));position:fixed;bottom:0;left:0;right:0}.answerbar__inner{gap:var(--gp-space-2);align-items:stretch;max-width:820px;margin:0 auto;display:flex}.answerbar__show{flex:1;text-align:center!important;justify-content:center!important}.grades{gap:var(--gp-space-2);flex:1;grid-template-columns:repeat(4,1fr);display:grid}.grade{border:1px solid var(--gp-ink);background:var(--gp-surface);cursor:pointer;transition:background var(--gp-transition), color var(--gp-transition);flex-direction:column;align-items:center;gap:2px;padding:8px 4px 10px;display:flex;position:relative}.grade:hover{background:var(--gp-hover-ground)}.grade__ivl{font-family:var(--gp-font-mono);letter-spacing:.04em;color:var(--gp-text-muted);font-size:11px}.grade__name{font-weight:var(--gp-weight-semibold);font-size:var(--gp-body-sm-size)}.grade--good{background:var(--gp-action);border-color:var(--gp-action);color:var(--gp-text-on-accent)}.grade--good .grade__ivl{color:#ffffffc7}.grade--good:hover{background:var(--gp-action-hover);border-color:var(--gp-action-hover);color:var(--gp-text-on-accent)}.grade[data-suggested=true]{outline:2px solid var(--gp-focus);outline-offset:2px}.grade__key{font-family:var(--gp-font-mono);opacity:.55;font-size:11px;position:absolute;top:4px;left:6px}@media (width<=560px){.grade__key{display:none}}.answerbar__more{flex:none}.menu{background:var(--gp-surface);border:1px solid var(--gp-ink);min-width:230px;box-shadow:var(--gp-shadow-modal);z-index:30;padding:4px 0;position:absolute;bottom:calc(100% + 8px);right:0}.menu button{justify-content:space-between;gap:var(--gp-space-4);width:100%;padding:8px var(--gp-space-4);cursor:pointer;text-align:left;font-size:var(--gp-body-sm-size);background:0 0;border:0;display:flex}.menu button:hover{background:var(--gp-surface-sunken)}.menu kbd{font-family:var(--gp-font-mono);color:var(--gp-text-muted);font-size:11px}.menu hr{background:var(--gp-rule);border:0;height:1px;margin:4px 0}.menu__flags{padding:8px var(--gp-space-4);gap:6px;display:flex}.menu__flags button{border:1px solid var(--gp-border);width:22px;height:22px;padding:0}.menu__flags button[aria-pressed=true]{outline:2px solid var(--gp-ink);outline-offset:1px}.toast{left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));background:var(--gp-ink);color:var(--gp-bg);padding:10px var(--gp-space-4);font-size:var(--gp-body-sm-size);z-index:40;gap:var(--gp-space-4);align-items:center;max-width:calc(100vw - 32px);display:flex;position:fixed;transform:translate(-50%)}.toast button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.gp-dialog{max-width:560px;max-height:calc(100vh - 48px);overflow:auto}.gp-dialog__head{border-bottom-color:var(--gp-ink)}.form-grid{gap:var(--gp-space-5) var(--gp-space-4);grid-template-columns:1fr 1fr;display:grid}.form-grid .span-2{grid-column:span 2}.form-section{font-family:var(--gp-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gp-text-muted);border-bottom:1px solid var(--gp-rule);margin-top:var(--gp-space-2);grid-column:span 2;padding-bottom:6px;font-size:11px}.check-row{align-items:center;gap:var(--gp-space-3);font-size:var(--gp-body-sm-size);cursor:pointer;display:flex}.check-row input{width:18px;height:18px;accent-color:var(--gp-signal)}@media (width<=560px){.form-grid{grid-template-columns:1fr}.form-grid .span-2,.form-section{grid-column:span 1}}.info-table{border-collapse:collapse;width:100%;font-size:var(--gp-body-sm-size)}.info-table th{text-align:left;color:var(--gp-text-muted);width:45%;padding:6px 0;font-weight:400}.info-table td{font-family:var(--gp-font-mono);padding:6px 0;font-size:13px}.info-table tr+tr th,.info-table tr+tr td{border-top:1px solid var(--gp-rule)}.done{gap:var(--gp-space-5);max-width:560px;padding-top:var(--gp-space-10);display:grid}.done h1{font-size:var(--gp-heading-1-size);line-height:var(--gp-heading-1-leading);letter-spacing:var(--gp-heading-1-track)}.loading{padding:var(--gp-space-18) var(--gp-gutter);text-align:center;color:var(--gp-text-muted)}@media (prefers-reduced-motion:reduce){*{transition:none!important}}:root[data-theme=dark]{--app-alert:#f08a86;--app-tag-signal-bg:#1b2a55;--app-tag-signal-fg:#b8ccfa}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--app-alert:#f08a86;--app-tag-signal-bg:#1b2a55;--app-tag-signal-fg:#b8ccfa}}.verdict[data-ok=false],.diff__bad{color:var(--app-alert)}.gp-tag--signal{background:var(--app-tag-signal-bg);color:var(--app-tag-signal-fg)}.gp-tag--ink{background:var(--gp-ink);color:var(--gp-bg)}.card__prompt p,.card__answer p{margin:0 0 .5em}.card img{max-width:100%;height:auto;margin:8px 0;display:block}.card audio{width:100%;max-width:420px;margin:4px 0}.card video{max-width:100%;margin:4px 0}.card table{border-collapse:collapse}.card td,.card th{border:1px solid var(--gp-border);padding:4px 8px}.card .katex-display{overflow:auto hidden}.card__mine{border-top-color:var(--gp-signal)}.gp-hint summary{cursor:pointer;color:var(--gp-text-accent);font-family:var(--gp-font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:12px}.tf{background:var(--gp-border);border:1px solid var(--gp-border);grid-template-columns:1fr 1fr;gap:1px;display:grid}.tf__opt{justify-content:center;font-weight:600}.choice[aria-pressed=true]:not([data-state]){background:var(--gp-surface-sunken);box-shadow:inset 3px 0 0 var(--gp-ink)}.match{background:var(--gp-border);border:1px solid var(--gp-border);gap:1px;margin:0;padding:0;list-style:none;display:grid}.match__row{gap:var(--gp-space-3);text-align:left;background:var(--gp-surface);width:100%;padding:var(--gp-space-3) var(--gp-space-4);cursor:pointer;font-size:var(--gp-body-size);border:0;align-items:flex-start;line-height:24px;display:flex}.match__row[aria-pressed=true]{box-shadow:inset 3px 0 0 var(--gp-signal);background:var(--gp-surface-sunken)}.match__row[disabled]{cursor:default}.match__row[data-state=correct]{box-shadow:inset 3px 0 0 var(--gp-signal)}.match__row[data-state=wrong]{box-shadow:inset 3px 0 0 var(--app-alert)}.match__left{flex:1;min-width:0;font-weight:600}.match__slot{border:1px solid var(--gp-border);flex:none;place-items:center;width:28px;height:24px;font-size:13px;display:grid}.match__row[aria-pressed=true] .match__slot{border-color:var(--gp-signal);color:var(--gp-text-accent)}.match__fix{padding:0 var(--gp-space-4) var(--gp-space-3) 48px;background:var(--gp-surface);color:var(--gp-text-secondary);font-size:var(--gp-body-sm-size);align-items:baseline;gap:6px;display:flex}.match__rights{margin-top:var(--gp-space-2)}.match__owner{color:var(--gp-text-accent);border:1px solid;flex:none;margin-left:auto;padding:0 6px;font-size:12px}.order{background:var(--gp-border);border:1px solid var(--gp-border);gap:1px;margin:0;padding:0;list-style:none;display:grid}.order__row{align-items:center;gap:var(--gp-space-3);background:var(--gp-surface);padding:var(--gp-space-2) var(--gp-space-3) var(--gp-space-2) var(--gp-space-4);min-height:52px;display:flex}.order__row[data-state=correct]{box-shadow:inset 3px 0 0 var(--gp-signal)}.order__row[data-state=wrong]{box-shadow:inset 3px 0 0 var(--app-alert)}.order__row[data-state=correct]>svg{color:var(--gp-text-accent)}.order__row[data-state=wrong]>svg{color:var(--app-alert)}.order__num{width:20px;color:var(--gp-text-muted);flex:none;font-size:13px}.order__text{flex:1;min-width:0}.order__moves{flex:none;gap:4px;display:flex}.order__key{gap:2px;margin:4px 0 0;padding-left:20px;display:grid}.figure{-webkit-user-select:none;user-select:none;touch-action:none;max-width:100%;line-height:0;display:inline-block;position:relative}.figure img{width:auto;max-height:70vh;margin:0!important}.figure--tap[data-side=q]{cursor:crosshair}.shape{box-sizing:border-box;line-height:normal;position:absolute}.shape[data-role=hidden]{background:#c9cfd4;border:1px solid #47525b}.shape[data-role=target]{background:var(--gp-signal);border:2px solid var(--gp-signal-900)}.shape[data-role=revealed]{border:2px solid var(--gp-signal);background:#2456e814}.shape[data-role=faint]{border:1px dashed #47525b99}.shape[data-role=mask]{background:#c9cfd4e0;border:1px solid #47525b}.shape[data-role=region]{border:1px solid var(--gp-signal);background:#2456e824}.shape[data-role=draft]{border:1px dashed var(--gp-signal);background:#2456e833}.shape[data-selected]{outline:2px solid var(--gp-signal);outline-offset:1px}.shape--polygon[data-role=mask],.shape--polygon[data-role=region]{border:0}.shape[data-role=label]{color:#14171a;font-family:var(--gp-font-body);white-space:nowrap;background:#ffffffeb;border:1px solid #14171a;align-items:center;padding:0 6px;font-size:clamp(10px,1.6vw,14px);font-weight:600;display:flex;overflow:hidden}.shape-outline{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.shape-outline polygon,.shape-outline polyline{fill:none;stroke:#47525b;stroke-width:1.5px}.shape-outline[data-role=selected] polygon{stroke:var(--gp-signal);stroke-width:2.5px}.shape-outline[data-role=draft] polyline{stroke:var(--gp-signal);stroke-width:2px;stroke-dasharray:4 3}.tap-dot{background:var(--gp-signal);pointer-events:none;border:3px solid #fff;border-radius:50%;width:16px;height:16px;margin:-8px 0 0 -8px;position:absolute;box-shadow:0 0 0 1px #14171a}.hotspot__name{color:var(--gp-text-accent)}.ed{gap:var(--gp-space-6);max-width:820px;display:grid}.ed__top{gap:var(--gp-space-4);grid-template-columns:1fr 1.4fr;display:grid}.ed__fields{gap:var(--gp-space-5);display:grid}.ed__field{position:relative}.ed__pin{width:26px;height:22px;color:var(--gp-neutral-500);cursor:pointer;background:0 0;border:0;place-items:center;display:grid;position:absolute;top:0;right:0}.ed__pin[aria-pressed=true]{color:var(--gp-text-accent)}.ed__field .rf__head{padding-right:30px}.ed__dupe{border-left:3px solid var(--gp-signal);background:var(--gp-surface);font-size:var(--gp-body-sm-size);color:var(--gp-text-secondary);padding:8px 12px}.ed__error{font-size:11px}.ed__ok{color:var(--gp-text-accent);font-family:var(--gp-font-mono);letter-spacing:.06em;font-size:12px}.ed__actions{align-items:center}.ed__delete{margin-left:auto;color:var(--app-alert)!important}.ed__confirm{font-size:var(--gp-body-sm-size);flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.ed__danger{background:var(--gp-alert);color:#fff;border-color:var(--gp-alert)}.ed__note{resize:vertical;min-height:90px;font-family:var(--gp-font-body)}.ed__preview{pointer-events:none}.ed__previewdlg{max-width:720px}.ed__previewdlg .gp-dialog__actions{flex-wrap:wrap}@media (width<=560px){.ed__top{grid-template-columns:1fr}}.rf{gap:6px;display:grid}.rf__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:8px;display:flex}.rf__tools{flex-wrap:wrap;gap:2px;display:flex}.rf__tool{min-width:28px;height:28px;color:var(--gp-text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:4px;padding:0 6px;font-size:12px;display:inline-flex}.rf__tool:hover{border-color:var(--gp-border);color:var(--gp-text)}.rf__tool[aria-pressed=true],.rf__tool[data-active]{border-color:var(--gp-ink);color:var(--gp-text)}.rf__tool[data-active]{color:var(--app-alert)}.rf__tool--cloze{border-color:var(--gp-signal);color:var(--gp-text-accent);font-family:var(--gp-font-mono);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.rf__area{overflow-wrap:anywhere;cursor:text;min-height:46px;line-height:24px}.rf__area:empty:before{content:attr(data-placeholder);color:var(--gp-neutral-600)}.rf__area img{max-width:100%;max-height:240px;display:block}.rf__area audio,.rf__area video{max-width:100%;display:block}.rf__html{resize:vertical;min-height:120px;font-size:13px}.opts{border:0;gap:8px;margin:0;padding:0;display:grid}.opts legend{margin-bottom:8px;padding:0}.opts__row{align-items:center;gap:8px;display:flex}.opts__row input[type=checkbox]{width:18px;height:18px;accent-color:var(--gp-signal);flex:none}.opts__row .gp-input{flex:1;min-width:0}.opts__row--pair .gp-input{flex:1 1 0}.opts__num{flex:none;width:20px;font-size:13px}@media (width<=560px){.opts__row--pair{flex-wrap:wrap}.opts__row--pair .gp-input{flex-basis:calc(50% - 30px)}}.se{gap:10px;display:grid}.se--empty{border:1px dashed var(--gp-border);background:var(--gp-surface);justify-items:start;padding:32px}.se__bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.se__tool{display:inline-flex;padding:8px 10px!important}.se__count{color:var(--gp-text-muted);font-size:12px}.se__replace{margin-left:auto}.se__canvas{border:1px solid var(--gp-border);background:var(--gp-surface-sunken);cursor:crosshair}.se__canvas[data-tool=select]{cursor:default}.se__canvas[data-tool=select] .shape{cursor:move}.se__shape{display:contents}.se__badge{color:#f7f8f8;white-space:nowrap;text-overflow:ellipsis;background:#14171a;max-width:calc(100% - 4px);padding:2px 4px;font-size:11px;line-height:1;position:absolute;top:2px;left:2px;overflow:hidden}.nt{gap:var(--gp-space-5);display:grid}.nt-list{border:1px solid var(--gp-border);background:var(--gp-surface);margin:0;padding:0;list-style:none}.nt-list li{border-bottom:1px solid var(--gp-rule);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:10px 16px;display:flex}.nt-list li:last-child{border-bottom:0}.nt__tplbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.nt__tplbar select,.nt__tplbar input{flex:200px;width:auto}.nt__cards{gap:12px;display:grid}.nt__split{grid-template-columns:1fr 1fr;gap:16px;display:grid}.nt__code{align-content:start;gap:6px;display:grid}.nt__code textarea{resize:vertical;min-height:140px;font-size:13px}.nt__preview{align-content:start;gap:8px;min-width:0;display:grid}.nt__css{min-height:220px;font-size:13px}@media (width<=760px){.nt__split{grid-template-columns:1fr}}.gp-tag--outline{color:var(--gp-text-secondary)}.signin{gap:var(--gp-space-4);max-width:400px;margin:24px auto 0;display:grid}.signin h1{font-size:var(--gp-heading-1-size);line-height:var(--gp-heading-1-leading);letter-spacing:var(--gp-heading-1-track)}.signin__form{gap:var(--gp-space-4);border-top:var(--gp-rule-section) solid var(--gp-ink);padding-top:var(--gp-space-5);display:grid}.signin__error{color:var(--app-alert);font-size:var(--gp-body-sm-size);line-height:var(--gp-body-sm-leading)}.signin__done{color:var(--gp-text);background:var(--app-new-bg);font-size:var(--gp-body-sm-size);padding:10px 12px}.signin__links{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.sync-chip{font-family:var(--font-label);letter-spacing:.06em;text-transform:uppercase;color:var(--gp-text-secondary);border:1px solid var(--gp-border);cursor:pointer;white-space:nowrap;background:0 0;padding:5px 8px;font-size:11px;font-weight:600}.sync-chip[data-phase=error]{color:var(--app-alert);border-color:currentColor}.sync-chip[data-phase=offline]{color:var(--app-learn);border-color:currentColor}.sync-chip[data-phase=local]{cursor:default}.acct{position:relative}.acct__btn{font-size:13px;font-weight:700}.acct__menu{top:calc(100% + 8px);bottom:auto}.acct__who{padding:8px var(--gp-space-4);font-size:var(--gp-body-sm-size);gap:2px;display:grid}.acct__who span{color:var(--gp-text-secondary)}@media (width<=560px){.sync-chip{display:none}}.people{gap:var(--gp-space-5);display:grid}.people__bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.people__search{flex:220px;width:auto}.publish{margin-top:var(--gp-space-10);gap:var(--gp-space-4);display:grid}.publish h2{font-size:var(--gp-heading-2-size);letter-spacing:var(--gp-heading-2-track)}.app-main--wide{max-width:1440px}.br{gap:var(--gp-space-5);grid-template-columns:220px minmax(0,1fr) 340px;align-items:start;display:grid}.br__side{top:calc(64px + env(safe-area-inset-top,0px));gap:4px;max-height:calc(100vh - 88px);padding-right:4px;display:grid;position:sticky;overflow:auto}.br__group{border-bottom:1px solid var(--gp-rule);padding-bottom:6px}.br__grouphead{cursor:pointer;width:100%;font-family:var(--font-label);letter-spacing:.06em;text-transform:uppercase;color:var(--gp-text-secondary);background:0 0;border:0;justify-content:space-between;align-items:center;padding:8px 0 4px;font-size:11px;font-weight:600;display:flex}.br__groupbody{display:grid}.br__item{align-items:center;display:flex}.br__item>button:first-child{text-align:left;cursor:pointer;font-size:var(--gp-body-sm-size);color:var(--gp-text);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;flex:1;align-items:center;gap:6px;min-width:0;padding:4px 6px;display:flex;overflow:hidden}.br__item>button:first-child:hover{background:var(--gp-hover-ground)}.br__item[data-indent]>button:first-child{color:var(--gp-text-secondary);padding-left:18px}.br__x{cursor:pointer;color:var(--gp-text-muted);background:0 0;border:0;padding:0 6px}.br__link{cursor:pointer;color:var(--gp-text-accent);font-size:var(--gp-body-sm-size);text-align:left;background:0 0;border:0;padding:4px 6px}.br__flagdot{flex:none;width:8px;height:8px;display:inline-block}.br__main{gap:var(--gp-space-3);min-width:0;display:grid}.br__search{align-items:center;gap:8px;display:flex}.br__search>svg{color:var(--gp-text-muted);flex:none}.br__search .gp-input{flex:1;min-width:0}.br__bar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.br__bar .gp-btn[disabled]{opacity:var(--gp-disabled-opacity)}.br__flag{width:auto;padding:6px 28px 6px 10px;font-size:13px}.br__spacer{flex:1}.br__table{border:1px solid var(--gp-border);overflow-x:auto}.br__table .gp-table{min-width:860px}.br__table .gp-table td{cursor:default;padding:8px 10px;font-size:13px}.br__table .gp-table th{padding:8px 10px}.br__table tr[aria-selected=true] td{background:var(--app-tag-signal-bg)}.br__table tr[data-suspended] td{color:var(--gp-text-muted)}.br__sortcell{text-overflow:ellipsis;white-space:nowrap;max-width:360px;overflow:hidden}.br__sortcell .br__flagdot{margin-right:6px}.br__sort{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.br__preview{top:calc(64px + env(safe-area-inset-top,0px));position:sticky}.br__pv{gap:10px;display:grid}.br__pvbar{justify-content:space-between;align-items:center;gap:8px;display:flex}.br__pv .card{padding:var(--gp-space-5);max-height:70vh;overflow:auto}.dupes{gap:4px;max-height:50vh;margin:0;padding:0;list-style:none;display:grid;overflow:auto}@media (width<=1180px){.br{grid-template-columns:200px minmax(0,1fr)}.br__preview{grid-column:1/-1;position:static}}@media (width<=760px){.br{grid-template-columns:1fr}.br__side{max-height:240px;position:static}}.gp-nav__link{white-space:nowrap}.app-nav__inner,.app-nav__links{gap:var(--gp-space-5)}.theme-btn{width:auto;font-family:var(--font-label);letter-spacing:.06em;text-transform:uppercase;gap:6px;padding:0 10px;font-size:11px;font-weight:600}@media (width<=1100px){.app-nav__name span,.theme-btn__label{display:none}.theme-btn{width:40px;padding:0}}@media (width<=900px){.sync-chip{display:none}.app-nav__links{gap:var(--gp-space-4);margin-left:0}.app-nav__name{display:none}}@media (width<=560px){.app-nav__links{gap:12px;font-size:13px}.app-nav__links .gp-nav__link{font-size:13px}}.br__table .gp-table td{white-space:nowrap}.br__table .gp-table td:nth-child(4){text-overflow:ellipsis;max-width:240px;overflow:hidden}.decks__section{font-family:var(--font-label);letter-spacing:.06em;text-transform:uppercase;color:var(--gp-text-secondary);background:var(--gp-surface-sunken);font-size:11px;font-weight:600;padding:14px 16px 6px!important}.section-head .gp-btn{margin-left:auto}.section-head .gp-btn+.label{margin-left:0}.stats__bar{margin-bottom:var(--gp-space-6);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stats__deck{width:auto;min-width:220px}.stats__section{margin-bottom:var(--gp-space-8)}.stats__head{border-bottom:var(--gp-rule-section) solid var(--gp-ink);margin-bottom:8px;padding-bottom:6px}.stats__head h2{font-size:var(--gp-heading-3-size);letter-spacing:var(--gp-heading-3-track)}.stats__tiles{gap:var(--gp-space-5);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.stats__tiles .gp-stat__value{font-size:34px;font-family:var(--font-data)}.stats__grid{gap:var(--gp-space-8) var(--gp-space-6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.stats__panel{align-content:start;gap:8px;min-width:0;display:grid}.stats__note{color:var(--gp-text-secondary);font-size:var(--gp-body-sm-size);line-height:var(--gp-body-sm-leading)}.stats__foot{color:var(--gp-text-secondary);font-size:var(--gp-body-sm-size)}.stats__buttons{gap:var(--gp-space-4);display:grid}@media (width<=860px){.stats__grid{grid-template-columns:1fr}}.chart{width:100%;position:relative}.chart svg{display:block;overflow:visible}.chart__grid{stroke:var(--chart-grid);stroke-width:1px}.chart__axis{fill:var(--gp-text-secondary);font-family:var(--font-data);font-variant-numeric:tabular-nums;font-size:11px}.chart__today{stroke:var(--gp-ink);stroke-width:1px}.chart__tip{background:var(--gp-surface);border:1px solid var(--gp-ink);pointer-events:none;white-space:nowrap;z-index:5;box-shadow:var(--gp-shadow-modal);gap:2px;padding:6px 10px;font-size:12px;line-height:18px;display:grid;position:absolute;transform:translate(-50%)}.chart__tip span{color:var(--gp-text-secondary);align-items:center;gap:6px;display:flex}.chart__tip i,.chart__legend i{flex:none;width:10px;height:10px;display:inline-block}.chart__legend{color:var(--gp-text-secondary);flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:6px;font-size:12px;display:flex}.chart__legend span{align-items:center;gap:6px;display:inline-flex}.chart__legend strong{color:var(--gp-text);font-weight:600}.partbar__bar{gap:2px;height:24px;display:flex}.partbar__bar span{min-width:2px}.lbars{gap:4px;margin-top:4px;display:grid}.lbars__row{grid-template-columns:56px 1fr 92px;align-items:center;gap:8px;font-size:13px;display:grid}.lbars__track{background:var(--chart-empty);height:12px;position:relative}.lbars__track span{position:absolute;inset:0 auto 0 0}.lbars__value{text-align:right}.easy{gap:6px;display:grid}.easy__row{font-size:var(--gp-body-sm-size);justify-content:space-between;align-items:center;gap:8px;display:flex}.easy__row .gp-seg__opt{padding:6px 10px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.nowrap{white-space:nowrap}.gp-table .num,.num{font-variant-numeric:tabular-nums}.gp-table th.num,.gp-table td.num{text-align:right}.content__tabs{margin-bottom:var(--gp-space-6);flex-wrap:wrap}.content__tabs .num{opacity:.7;margin-left:6px}.content{gap:var(--gp-space-6);display:grid}.content__step{gap:var(--gp-space-4);border-top:1px solid var(--gp-border);padding-top:var(--gp-space-5);display:grid}.content__step h2{font-size:var(--gp-heading-3-size,20px);align-items:baseline;gap:10px;display:flex}.content__step h2 .num{font-family:var(--font-label);color:var(--gp-signal);font-size:13px;font-weight:600}.content__file{justify-self:start;position:relative;overflow:hidden}.content__file input{opacity:0;cursor:pointer;position:absolute;inset:0}.content__course,.content__count{max-width:420px}.content__types{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.content__sections td{vertical-align:middle}.content__sections select{min-width:200px}.gp-input--sm{font-size:var(--gp-body-sm-size);padding-block:4px}.content__filter{flex:0 220px;width:auto;min-width:0;max-width:100%}.content__count-note{align-self:center;margin-left:auto}.content__textarea{resize:vertical;font-family:inherit}.drafts{gap:var(--gp-space-4);display:grid}.draft{gap:var(--gp-space-5);border:1px solid var(--gp-border);padding:var(--gp-space-5);background:var(--gp-surface);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);display:grid}.draft[data-level=error]{box-shadow:inset 3px 0 0 var(--gp-alert)}.draft[data-level=warning]{box-shadow:inset 3px 0 0 var(--gp-signal)}.draft__card{padding:var(--gp-space-5);background:var(--gp-surface-sunken)}.draft__side{gap:var(--gp-space-3);align-content:start;min-width:0;display:grid}.draft__meta{font-size:var(--gp-body-sm-size);flex-wrap:wrap;align-items:center;gap:8px;line-height:1.4;display:flex}.draft__checks{font-size:var(--gp-body-sm-size);gap:6px;margin:0;padding:0;list-style:none;display:grid}.draft__checks li{grid-template-columns:56px minmax(0,1fr);align-items:baseline;gap:10px;line-height:1.45;display:grid}.draft__checks .gp-tag{justify-content:center}.draft__clean{font-size:var(--gp-body-sm-size);color:var(--gp-text-muted);margin:0}.draft__quote{border-left:2px solid var(--gp-border);font-size:var(--gp-body-sm-size);overflow-wrap:anywhere;gap:4px;margin:0;padding:8px 12px;display:grid}.draft__actions{flex-wrap:wrap;gap:8px;display:flex}.report{border:1px solid var(--gp-border);padding:var(--gp-space-5);gap:var(--gp-space-3);background:var(--gp-surface);display:grid}.report__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.report__actions{gap:8px;display:grid}@media (width<=760px){.draft{grid-template-columns:1fr}.content__count-note{margin-left:0}}.content>*,.drafts>*{min-width:0}.people__bar .gp-seg,.content__tabs{scrollbar-width:none;max-width:100%;overflow-x:auto}.gp-seg__opt{flex:none}@media (width<=560px){.app-nav__links{scrollbar-width:none;white-space:nowrap;flex:auto;min-width:0;overflow-x:auto}.app-nav__links::-webkit-scrollbar{display:none}.people__bar .gp-seg::-webkit-scrollbar{display:none}.app-nav__spacer{display:none}.app-nav__inner{gap:12px}}
