.pidlab-logo{--pidlab-logo-size:29px;--pidlab-logo-text:24px;--pidlab-logo-gap:10px;align-items:center;gap:var(--pidlab-logo-gap);color:var(--ink,#e8edf5);white-space:nowrap;vertical-align:middle;display:inline-flex}.pidlab-logo--compact{--pidlab-logo-size:24px;--pidlab-logo-text:16px;--pidlab-logo-gap:7px}.pidlab-logo__mark{width:var(--pidlab-logo-size);height:var(--pidlab-logo-size);flex:0 0 var(--pidlab-logo-size);object-fit:contain;display:block}.pidlab-logo__word{font-family:JetBrains Mono,SF Mono,Fira Code,Cascadia Code,Menlo,monospace;font-size:var(--pidlab-logo-text);letter-spacing:0;text-transform:uppercase;align-items:baseline;font-weight:900;line-height:1;display:inline-flex}.pidlab-logo__word-main{color:var(--ink,#e8edf5)}.pidlab-logo__word-accent{color:var(--brand-orange,#ff8a2d)}.public-footer{--font-ui:"IBM Plex Sans", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ink:#16181d;--muted:#4d5664;--line:#e2e5ea;border:0;border-top:1px solid var(--line);width:100%;color:var(--ink);font:400 14px/1.65 var(--font-ui,"IBM Plex Sans", sans-serif);background:#fff;margin:0;padding:0 max(24px,50% - 590px)}[data-theme=dark] .public-footer{--ink:#e8eaf0;--muted:#b1b8c6;--line:#2e323c;background:#1b1e27}.public-footer__primary{grid-template-columns:minmax(240px,1.4fr) repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,48px);padding:48px 0;display:grid}.public-footer__brand p{color:var(--muted);font:inherit;margin:20px 0 0;padding:0}.public-footer nav{background:0 0;border:0;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:12px;margin:0;padding:0;display:flex}.public-footer nav h2{color:var(--ink);letter-spacing:.1em;text-transform:uppercase;border:0;margin:0 0 6px;padding:0;font:600 11px/1.3 JetBrains Mono,monospace}.public-footer nav a{min-height:28px;color:var(--muted);font:500 14px/28px var(--font-ui,"IBM Plex Sans", sans-serif);background:0 0;border:0;margin:0;padding:0;text-decoration:none}.public-footer a:hover{color:var(--ink);text-underline-offset:4px;text-decoration:underline}.public-footer a:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:2px}.public-footer__meta{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:24px;padding:18px 0 24px;font:500 11px/1.4 JetBrains Mono,monospace;display:flex}.public-document-note{margin-top:32px;font-size:14px}@media (width<=720px){.public-footer__primary{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;padding:36px 0}.public-footer__brand{grid-column:1/-1;max-width:440px}.public-footer__meta{flex-direction:column;gap:8px}}.public-header{--font-ui:"IBM Plex Sans", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ink:#16181d;--line:#e2e5ea;z-index:20;border-bottom:1px solid var(--line);min-height:66px;color:var(--ink);font:600 14px/1.3 var(--font-ui,"IBM Plex Sans", sans-serif);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;align-items:center;gap:24px;padding:12px clamp(18px,4vw,48px);display:flex;position:sticky;top:0}[data-theme=dark] .public-header{--ink:#e8eaf0;--line:#2e323c;background:#1b1e27}.public-header__home{cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:0;text-decoration:none}.public-header .public-header__title{min-width:0;color:inherit;font:600 20px/1.25 var(--font-ui,"IBM Plex Sans", sans-serif);letter-spacing:normal;text-transform:none;border:0;margin:0;padding:0;text-decoration:none}.public-header__actions{align-items:center;gap:16px;margin-left:auto;display:flex}.public-header__actions>a{color:var(--ink);font:inherit;text-decoration:none}.public-header__home:focus-visible,.public-header__actions>a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.public-header__actions>a:hover{text-decoration:underline}@media (width<=720px){.public-header{flex-wrap:wrap;gap:12px}}.app-settings-trigger,.app-settings-dialog .app-settings-button{box-sizing:border-box;border:1px solid var(--line,#e2e5ea);border-radius:var(--radius-md,4px);min-height:34px;color:var(--ink,#16181d);font:650 13px/1.3 var(--font-ui,"IBM Plex Sans", sans-serif);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:7px 12px;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.app-settings-trigger.btn{height:28px;min-height:28px;max-height:28px;font:650 11.5px/1 var(--font-ui,"IBM Plex Sans", sans-serif);white-space:nowrap;flex-shrink:0;gap:6px;padding:0 10px}.app-settings-trigger .app-settings-icon{flex:0 0 14px;width:14px;height:14px}.public-header .public-header__actions :is(a,button){font:inherit}.public-header__actions .btn{gap:8px;height:34px;min-height:34px;max-height:34px;padding:0 12px}.public-header .app-settings-trigger .app-settings-icon{flex-basis:18px;width:18px;height:18px}.app-settings-icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 18px;width:18px;height:18px}.app-settings-trigger:hover:not(:disabled),.app-settings-dialog .app-settings-button:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--control-hover-border,var(--line,#bfc4cc));background:var(--control-hover-bg,var(--bg-soft,#f3f4f6));text-decoration:none}.app-settings-trigger:focus-visible,.app-settings-dialog .app-settings-button:focus-visible{outline:2px solid var(--accent,#ff8a2d);outline-offset:2px}.app-settings-trigger:disabled,.app-settings-dialog .app-settings-button:disabled,.app-settings-dialog .app-settings-button[aria-disabled=true]{opacity:.45;cursor:not-allowed;box-shadow:none}.app-settings-dialog{box-sizing:border-box;border:1px solid var(--line,#e2e5ea);background:var(--card,#fff);width:min(400px,100vw - 32px);max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink,#16181d);font:13px/1.5 var(--font-ui,"IBM Plex Sans", sans-serif);border-radius:6px;flex-direction:column;margin:auto;padding:0;display:flex;overflow:hidden;box-shadow:0 24px 70px #00000059}.app-settings-backdrop{z-index:6500;background:#05070ba6;padding:16px;display:flex;position:fixed;inset:0}.app-settings-header{border-bottom:1px solid var(--line,#e2e5ea);flex:none;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex;position:static}.app-settings-title{color:var(--ink,#16181d);font:650 16px/1.35 var(--font-ui,"IBM Plex Sans", sans-serif);overflow-wrap:anywhere;border:0;margin:0;padding:0}.app-settings-dialog .app-settings-close{flex:0 0 34px;width:34px;padding:7px}.app-settings-dialog--contextual{width:min(720px,100vw - 32px)}.app-settings-scroll{overscroll-behavior:contain;min-height:0;overflow-y:auto}.app-settings-section-fields{border:0;min-width:0;margin:0;padding:0}.app-settings-scroll [hidden]{display:none}.app-settings-tabs{border-bottom:1px solid var(--line);flex:none;gap:4px;padding:8px 16px;display:flex}.app-settings-tab{min-height:34px;color:var(--muted);font:650 13px/1.3 var(--font-ui,"IBM Plex Sans", sans-serif);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:7px 14px}.app-settings-tab:hover{background:var(--bg-soft);color:var(--ink)}.app-settings-tab[aria-selected=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.app-settings-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-settings-tab:disabled{opacity:.45;cursor:not-allowed}.app-settings-dialog .trainer-settings-content{--font-ui:inherit;--text-primary:var(--ink);--text-secondary:var(--muted);--text-muted:var(--muted);--border:var(--line);--border-light:var(--line);--bg-input:var(--card);--blue:var(--accent)}.app-settings-dialog .settings-group{padding:20px}.app-settings-dialog .settings-group-title,.app-settings-dialog .settings-field-title{color:var(--ink);font:600 12px/1.4 var(--font-ui,"IBM Plex Sans", sans-serif);letter-spacing:normal;text-transform:none}.app-settings-dialog .settings-group-title{font-size:13px}.app-settings-dialog .settings-input,.app-settings-dialog .settings-select{border-radius:4px;font-size:13px}.app-settings-dialog .settings-grid-2col{align-items:end}.app-settings-dialog .settings-field-desc{min-height:32px}.app-settings-body{overscroll-behavior:contain;gap:20px;min-height:0;padding:20px;display:grid;overflow-y:auto}.app-settings-practice-choice{font:inherit;align-items:flex-start;gap:10px;margin:12px 0;display:flex}.app-settings-practice-choice input{accent-color:var(--brand-orange);margin-top:4px}.app-settings-fieldset{border:0;min-width:0;margin:0;padding:0}.app-settings-label{color:var(--ink,#16181d);font:650 13px/1.4 var(--font-ui,"IBM Plex Sans", sans-serif);margin:0 0 9px;padding:0}.app-settings-segment{gap:4px;display:flex}.app-settings-dialog .app-settings-choice{white-space:normal;overflow-wrap:anywhere;flex:1 1 0;min-width:0;padding-inline:8px}.app-settings-dialog .app-settings-choice[aria-pressed=true]{border-color:var(--accent,#ff8a2d);background:var(--accent-soft,#fff3e8);color:var(--ink,#16181d);box-shadow:inset 0 -2px 0 var(--accent,#ff8a2d)}.app-settings-context,.app-settings-account{border-top:1px solid var(--line,#e2e5ea);min-width:0;margin:0;padding-top:16px}.app-settings-context{gap:8px;display:grid}.app-settings-dialog .app-settings-action{text-align:start;white-space:normal;overflow-wrap:anywhere;justify-content:flex-start;width:100%}.app-settings-email,.app-settings-status,.app-settings-error{color:var(--muted,#69717e);overflow-wrap:anywhere;margin:8px 0 0}.app-settings-email{color:var(--ink,#16181d);margin:0 0 12px}.app-settings-error{color:var(--bad,#c8483b)}.app-settings-auth-actions{flex-wrap:wrap;gap:8px;display:flex}.app-settings-auth-actions .app-settings-button{white-space:normal;overflow-wrap:anywhere;flex:auto}.app-settings-dialog .app-settings-register{border-color:var(--primary-bg,#ff8a2d);background:var(--primary-bg,#ff8a2d);color:var(--primary-fg,#16181d)}.app-settings-dialog .app-settings-register:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--primary-bg-hover,#f97316);background:var(--primary-bg-hover,#f97316)}@media (prefers-reduced-motion:reduce){.app-settings-trigger,.app-settings-dialog .app-settings-button{transition:none}}.app-settings-entry-row{justify-content:flex-end;margin-bottom:16px;display:flex}[data-settings-fallback][hidden]{display:none}