:root{--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--bg: #f6f7fb;--bg-elevated: #ffffff;--bg-sunken: #eceef5;--bg-code: #f2f4f9;--surface-hover: #e9ecf5;--text: #131722;--text-muted: #4d566b;--text-subtle: #5f6982;--text-inverted: #ffffff;--border: #d5d9e5;--border-strong: #b6bdd0;--primary: #1d4ed8;--primary-hover: #1740b0;--primary-soft: #e3eaff;--primary-text: #16389c;--chart-bar: #1d4ed8;--heat-1: #99afed;--heat-2: #718fe6;--heat-3: #4870df;--heat-4: #1d4ed8;--heat-ink-1: #131722;--heat-ink-2: #131722;--heat-ink-3: #ffffff;--heat-ink-4: #ffffff;--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--series-6: #008300;--series-7: #4a3aa7;--series-8: #e34948;--accent-blue: #1d4ed8;--accent-violet: #6b34c9;--accent-amber: #96590a;--accent-emerald: #0f7a52;--accent-rose: #ba1a48;--accent-cyan: #0e6f87;--accent-slate: #4b556b;--success: #0f7a52;--success-soft: #d9f4e7;--warning: #96590a;--warning-soft: #fbeed2;--danger: #b62330;--danger-soft: #fbe0e2;--info-soft: #e2effb;--code-text: #1f2430;--code-comment: #5f6672;--code-key: #1d4ed8;--code-string: #0c6b45;--code-number: #a4471a;--code-keyword: #7c2fbe;--code-builtin: #b0286f;--code-punctuation: #52596b;--radius-sm: 6px;--radius: 12px;--radius-lg: 18px;--shadow-sm: 0 1px 2px rgb(16 24 40 / 8%);--shadow: 0 6px 18px rgb(16 24 40 / 10%);--shadow-lg: 0 18px 40px rgb(16 24 40 / 14%);--ring: 0 0 0 3px rgb(29 78 216 / 35%);--sidebar-width: 288px;--content-max: 900px;--bottom-nav-height: 62px;--tap-target: 44px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0b1220;--bg-elevated: #141d31;--bg-sunken: #080e19;--bg-code: #0d1524;--surface-hover: #1d2842;--text: #eef2fb;--text-muted: #b3bdd4;--text-subtle: #94a0bb;--text-inverted: #0b1220;--border: #26314b;--border-strong: #3a4767;--primary: #7dabff;--chart-bar: #5b8ff0;--heat-1: #345087;--heat-2: #456aaf;--heat-3: #6a95e6;--heat-4: #9ab9f7;--heat-ink-1: #eef2fb;--heat-ink-2: #eef2fb;--heat-ink-3: #0b1220;--heat-ink-4: #0b1220;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767;--primary-hover: #a3c4ff;--primary-soft: #17264a;--primary-text: #bcd3ff;--accent-blue: #7dabff;--accent-violet: #c1a0ff;--accent-amber: #f0c073;--accent-emerald: #6fd8a8;--accent-rose: #ff9db4;--accent-cyan: #6fd0e8;--accent-slate: #aab5cc;--success: #6fd8a8;--success-soft: #10301f;--warning: #f0c073;--warning-soft: #35270d;--danger: #ff9aa2;--danger-soft: #3a151a;--info-soft: #132741;--code-text: #e6ecf9;--code-comment: #8996b3;--code-key: #8fc0ff;--code-string: #8ee0b4;--code-number: #ffc08a;--code-keyword: #d3aaff;--code-builtin: #ff9dc8;--code-punctuation: #9fabc6;--shadow-sm: 0 1px 2px rgb(0 0 0 / 40%);--shadow: 0 8px 22px rgb(0 0 0 / 45%);--shadow-lg: 0 20px 46px rgb(0 0 0 / 55%);--ring: 0 0 0 3px rgb(125 171 255 / 45%);color-scheme:dark}}:root[data-theme=dark]{--bg: #0b1220;--bg-elevated: #141d31;--bg-sunken: #080e19;--bg-code: #0d1524;--surface-hover: #1d2842;--text: #eef2fb;--text-muted: #b3bdd4;--text-subtle: #94a0bb;--text-inverted: #0b1220;--border: #26314b;--border-strong: #3a4767;--primary: #7dabff;--chart-bar: #5b8ff0;--heat-1: #345087;--heat-2: #456aaf;--heat-3: #6a95e6;--heat-4: #9ab9f7;--heat-ink-1: #eef2fb;--heat-ink-2: #eef2fb;--heat-ink-3: #0b1220;--heat-ink-4: #0b1220;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767;--primary-hover: #a3c4ff;--primary-soft: #17264a;--primary-text: #bcd3ff;--accent-blue: #7dabff;--accent-violet: #c1a0ff;--accent-amber: #f0c073;--accent-emerald: #6fd8a8;--accent-rose: #ff9db4;--accent-cyan: #6fd0e8;--accent-slate: #aab5cc;--success: #6fd8a8;--success-soft: #10301f;--warning: #f0c073;--warning-soft: #35270d;--danger: #ff9aa2;--danger-soft: #3a151a;--info-soft: #132741;--code-text: #e6ecf9;--code-comment: #8996b3;--code-key: #8fc0ff;--code-string: #8ee0b4;--code-number: #ffc08a;--code-keyword: #d3aaff;--code-builtin: #ff9dc8;--code-punctuation: #9fabc6;--shadow-sm: 0 1px 2px rgb(0 0 0 / 40%);--shadow: 0 8px 22px rgb(0 0 0 / 45%);--shadow-lg: 0 20px 46px rgb(0 0 0 / 55%);--ring: 0 0 0 3px rgb(125 171 255 / 45%);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font:16px/1.65 var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3,h4{margin:0 0 .5rem;line-height:1.25;letter-spacing:-.01em;text-wrap:balance}h1{font-size:clamp(1.5rem,1.2rem + 1.6vw,2.1rem)}h2{font-size:clamp(1.25rem,1.1rem + .9vw,1.55rem)}h3{font-size:1.125rem}p{margin:0 0 .9rem;max-width:72ch}p,li,dd,dt,td,th,summary,figcaption,label,h1,h2,h3,h4{overflow-wrap:break-word}ul,ol{margin:0 0 1rem;padding-left:1.35rem}li{margin-bottom:.4rem}a{color:var(--primary-text);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--primary-hover)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9375rem}:not(pre)>code{padding:.1em .35em;background:var(--bg-code);border:1px solid var(--border);border-radius:var(--radius-sm);overflow-wrap:anywhere}img,svg{max-width:100%}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:absolute;top:-100px;left:.75rem;z-index:100;padding:.6rem 1rem;background:var(--primary);color:var(--text-inverted);border-radius:var(--radius);font-weight:600}.skip-link:focus{top:.75rem}.stack{display:grid;gap:1rem}.stack-sm{display:grid;gap:.5rem}.stack-lg{display:grid;gap:1.75rem}.row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle);font-size:.9375rem}.center{text-align:center}.nowrap{white-space:nowrap}.app-shell{display:grid;min-height:100dvh;grid-template-columns:1fr}.app-main{min-width:0;padding:1rem 1rem calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + 1.25rem)}.app-main>.page{max-width:var(--content-max);margin:0 auto}.top-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:.6rem;padding:calc(env(safe-area-inset-top) + .55rem) 1rem .55rem;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.top-bar__brand{display:flex;align-items:center;gap:.55rem;font-weight:700;color:var(--text);text-decoration:none;min-width:0}.top-bar__brand-mark{flex:0 0 auto;width:30px;height:30px}.top-bar__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem}.top-bar__spacer{flex:1 1 auto}.sidebar{display:none}.bottom-nav{position:fixed;inset:auto 0 0;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--border)}.bottom-nav__link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:54px;padding:.3rem .1rem;border-radius:var(--radius);color:var(--text-muted);font-size:.6875rem;font-weight:600;text-decoration:none;text-align:center}.bottom-nav__link[aria-current=page]{color:var(--primary-text);background:var(--primary-soft)}.bottom-nav__icon{font-size:1.125rem;line-height:1}@media(min-width:900px){.app-shell{grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.sidebar{display:block;position:sticky;top:0;align-self:start;height:100dvh;overflow-y:auto;padding:1.25rem .9rem;background:var(--bg-elevated);border-right:1px solid var(--border)}.app-main{padding:0 2rem 3rem}.bottom-nav{display:none}.top-bar{padding-inline:2rem}.top-bar__brand{display:none}}.sidebar__brand{display:flex;align-items:center;gap:.6rem;margin-bottom:1.25rem;color:var(--text);text-decoration:none}.sidebar__brand strong{display:block;font-size:1rem;line-height:1.2}.sidebar__section{margin-bottom:1.35rem}.sidebar__heading{margin:0 0 .45rem .6rem;font-size:.6875rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text-subtle)}.sidebar__link{display:flex;align-items:center;gap:.6rem;min-height:var(--tap-target);padding:.5rem .65rem;border-radius:var(--radius);color:var(--text-muted);font-weight:600;font-size:.9375rem;text-decoration:none}.sidebar__link:hover{background:var(--surface-hover);color:var(--text)}.sidebar__link[aria-current=page]{background:var(--primary-soft);color:var(--primary-text)}.sidebar__link-icon{width:1.25rem;text-align:center}.sidebar__progress{margin:.35rem .6rem 0}.stack,.stack-sm,.stack-lg,.page-header,.lesson-hero,.field,.filter-bar,.topic-list,.result-list,.option-list,.card-grid{grid-template-columns:minmax(0,1fr)}.card{padding:1.1rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card--flush{padding:0;overflow:hidden}.card--interactive{display:block;color:inherit;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.card--interactive:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-1px);color:inherit}.card__title{margin:0;font-size:1.0625rem}.card-grid{display:grid;gap:.9rem;grid-template-columns:1fr}@media(min-width:640px){.card-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:860px){.card-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:var(--tap-target);padding:.6rem 1.05rem;border:1px solid transparent;border-radius:var(--radius);background:var(--primary);color:var(--text-inverted);font-size:1rem;font-weight:650;text-decoration:none;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn:hover:not(:disabled){background:var(--primary-hover);color:var(--text-inverted)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--secondary{background:var(--bg-elevated);border-color:var(--border-strong);color:var(--text)}.btn--secondary:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn--ghost{background:transparent;color:var(--text-muted)}.btn--ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn--danger{background:var(--danger);color:var(--text-inverted)}.btn--danger:hover:not(:disabled){background:var(--danger);filter:brightness(.92)}.btn--sm{min-height:36px;padding:.35rem .7rem;font-size:.875rem}.btn--block{width:100%}.btn--icon{min-width:var(--tap-target);padding:.5rem}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .55rem;border-radius:999px;background:var(--bg-sunken);border:1px solid var(--border);color:var(--text-muted);font-size:.8125rem;font-weight:600;white-space:nowrap}.badge--success{background:var(--success-soft);color:var(--success);border-color:transparent}.badge--warning{background:var(--warning-soft);color:var(--warning);border-color:transparent}.badge--danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.badge--info{background:var(--info-soft);color:var(--primary-text);border-color:transparent}.badge--weight{font-variant-numeric:tabular-nums}.progress{height:8px;border-radius:999px;background:var(--bg-sunken);overflow:hidden;border:1px solid var(--border)}.progress__bar{height:100%;border-radius:999px;background:var(--primary);transition:width .35s ease}.progress__bar--success{background:var(--success)}.progress--lg{height:12px}.meter-row{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-size:.9375rem}.meter-row__value{font-variant-numeric:tabular-nums;font-weight:700}.notice{display:flex;gap:.65rem;padding:.85rem 1rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-sunken);font-size:.9375rem}.notice--info{background:var(--info-soft);border-color:transparent}.notice--warning{background:var(--warning-soft);border-color:transparent}.notice--danger{background:var(--danger-soft);border-color:transparent}.notice--success{background:var(--success-soft);border-color:transparent}.notice p:last-child{margin-bottom:0}.notice__icon{flex:0 0 auto;font-size:1.05rem;line-height:1.5}.disclaimer{padding:.8rem 1rem;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-muted);font-size:.875rem}.code-block{margin:0 0 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-code);overflow:hidden}.code-block__header{display:flex;align-items:center;gap:.5rem;padding:.45rem .5rem .45rem .75rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-sunken) 60%,transparent)}.code-block__title{flex:1 1 auto;min-width:0;font-size:.8125rem;font-weight:700;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-block__lang{font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle)}.code-block__pre{margin:0;padding:.85rem .9rem;overflow-x:auto;-webkit-overflow-scrolling:touch;color:var(--code-text);tab-size:2}.code-block__pre code{display:block;min-width:max-content;font-size:.875rem;line-height:1.6}@media(min-width:640px){.code-block__pre code{font-size:.9375rem}}.code-block__explanation{padding:.6rem .9rem;border-top:1px solid var(--border);color:var(--text-muted);font-size:.9375rem}.code-block__placeholders{display:flex;flex-wrap:wrap;gap:.35rem;padding:.55rem .9rem;border-top:1px dashed var(--border);font-size:.8125rem;color:var(--text-muted)}.copy-button{flex:0 0 auto}.hljs-comment,.hljs-quote,.hljs-meta{color:var(--code-comment);font-style:italic}.hljs-attr,.hljs-attribute,.hljs-selector-tag,.hljs-name{color:var(--code-key)}.hljs-string,.hljs-symbol,.hljs-bullet,.hljs-addition{color:var(--code-string)}.hljs-number,.hljs-literal,.hljs-type{color:var(--code-number)}.hljs-keyword,.hljs-selector-attr,.hljs-section{color:var(--code-keyword);font-weight:600}.hljs-built_in,.hljs-title,.hljs-title.function_,.hljs-variable,.hljs-template-variable{color:var(--code-builtin)}.hljs-punctuation,.hljs-operator{color:var(--code-punctuation)}.lesson-section{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);overflow:hidden}.lesson-section+.lesson-section{margin-top:.75rem}.lesson-section__summary{display:flex;align-items:center;gap:.65rem;min-height:52px;padding:.75rem 1rem;cursor:pointer;font-weight:700;list-style:none}.lesson-section__summary::-webkit-details-marker{display:none}.lesson-section__summary:hover{background:var(--surface-hover)}.lesson-section__chevron{flex:0 0 auto;color:var(--text-subtle);transition:transform .18s ease}.lesson-section[open] .lesson-section__chevron{transform:rotate(90deg)}.lesson-section__label{flex:1 1 auto;min-width:0}.lesson-section__count{color:var(--text-subtle);font-size:.8125rem;font-weight:600}.lesson-section__body{padding:.25rem 1rem 1rem;border-top:1px solid var(--border)}.lesson-hero{display:grid;gap:.6rem;padding:1.1rem;border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border)}.lesson-nav{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between}.fields-table{width:100%;border-collapse:collapse;font-size:.9375rem}.fields-table th,.fields-table td{padding:.5rem .6rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}.fields-table th{color:var(--text-subtle);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.fields-table td:first-child{font-family:var(--font-mono);font-size:.8125rem;overflow-wrap:anywhere}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.command-item{padding:.75rem 0;border-bottom:1px solid var(--border)}.command-item:last-child{border-bottom:none}.command-item__meta{margin:.4rem 0 0;font-size:.9375rem;color:var(--text-muted)}.command-item__meta strong{color:var(--text)}.reveal{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-sunken);overflow:hidden}.reveal__summary{display:flex;align-items:center;gap:.5rem;min-height:var(--tap-target);padding:.55rem .85rem;font-weight:650;font-size:.9375rem;color:var(--primary-text);cursor:pointer;list-style:none}.reveal__summary::-webkit-details-marker{display:none}.reveal__body{padding:.15rem .85rem .85rem}.answer-block p{font-family:var(--font-mono);font-size:.9375rem}.practice-item{padding:.9rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated)}.practice-item+.practice-item{margin-top:.75rem}.question-card{padding:1.1rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg)}.option-list{display:grid;gap:.5rem;margin:.9rem 0;padding:0;list-style:none}.option{display:flex;align-items:flex-start;gap:.65rem;min-height:var(--tap-target);padding:.7rem .85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;font-size:1rem}.option:hover{border-color:var(--border-strong);background:var(--surface-hover)}.option input{margin:.2rem 0 0;width:1.15rem;height:1.15rem;accent-color:var(--primary);flex:0 0 auto}.option--selected{border-color:var(--primary);background:var(--primary-soft)}.option--correct{border-color:var(--success);background:var(--success-soft)}.option--incorrect{border-color:var(--danger);background:var(--danger-soft)}.option__text{min-width:0;overflow-wrap:anywhere}.answer-input{width:100%;min-height:var(--tap-target);padding:.65rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg);font-family:var(--font-mono);font-size:16px}.answer-input:focus-visible{border-color:var(--primary);box-shadow:var(--ring);outline:none}.checkpoint{display:flex;align-items:flex-start;gap:.6rem;padding:.55rem 0;font-size:.9375rem}.checkpoint input{margin-top:.2rem;width:1.1rem;height:1.1rem;accent-color:var(--success);flex:0 0 auto}.quiz-toolbar{position:sticky;top:calc(env(safe-area-inset-top) + 3.1rem);z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .75rem;margin-bottom:.9rem;border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);backdrop-filter:blur(8px)}.timer{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.0625rem;font-weight:700}.timer--warning{color:var(--warning)}.timer--critical{color:var(--danger)}.question-dots{display:flex;flex-wrap:wrap;gap:.3rem;padding:0;margin:0;list-style:none}.question-dot{width:38px;height:38px;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-muted);font-size:.75rem;font-weight:700;cursor:pointer}.question-dot--answered{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-text)}.question-dot--current{outline:2px solid var(--primary);outline-offset:1px}.question-dot--correct{background:var(--success-soft);border-color:var(--success);color:var(--success)}.question-dot--incorrect{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.filter-bar{display:grid;gap:.6rem}@media(min-width:700px){.filter-bar--inline{grid-template-columns:repeat(3,minmax(0,1fr))}}.field{display:grid;gap:.3rem}.field__label{font-size:.8125rem;font-weight:700;color:var(--text-subtle)}.select,.search-input{width:100%;min-height:var(--tap-target);padding:.6rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-elevated);font-size:16px}.select:focus-visible,.search-input:focus-visible{border-color:var(--primary);box-shadow:var(--ring);outline:none}.chip-row{display:flex;flex-wrap:wrap;gap:.4rem}.chip{min-height:36px;padding:.3rem .7rem;border:1px solid var(--border-strong);border-radius:999px;background:var(--bg-elevated);color:var(--text-muted);font-size:.875rem;font-weight:600;cursor:pointer}.chip[aria-pressed=true],.chip[aria-current=page]{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-text)}.result-list{display:grid;gap:.6rem;padding:0;margin:0;list-style:none}.result{display:block;padding:.8rem .9rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);color:inherit;text-decoration:none}.result:hover{border-color:var(--border-strong);background:var(--surface-hover);color:inherit}.result__title{font-weight:700;overflow-wrap:anywhere}.result__snippet{color:var(--text-muted);font-size:.9375rem}.state-block{display:grid;gap:.6rem;justify-items:center;padding:2.25rem 1.25rem;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center;color:var(--text-muted)}.state-block__icon{font-size:2rem;line-height:1}.spinner{width:26px;height:26px;border:3px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.update-toast{position:fixed;left:.75rem;right:.75rem;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + .75rem);z-index:60;display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.8rem .9rem;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-lg)}.update-toast__text{flex:1 1 12rem;min-width:0;font-size:.9375rem;font-weight:600}@media(min-width:900px){.update-toast{left:auto;right:1.5rem;bottom:1.5rem;max-width:26rem}}.stat-grid{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:700px){.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.stat{padding:.8rem .9rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated)}.stat__value{font-size:1.5rem;font-weight:750;font-variant-numeric:tabular-nums;line-height:1.15}.stat__label{color:var(--text-muted);font-size:.8125rem}.domain-card{border-left:4px solid var(--domain-accent, var(--primary))}.topic-list{display:grid;gap:.4rem;padding:0;margin:0;list-style:none}.topic-row{display:flex;align-items:center;gap:.7rem;min-height:var(--tap-target);padding:.55rem .7rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:inherit;text-decoration:none}.topic-row:hover{border-color:var(--border-strong);background:var(--surface-hover);color:inherit}.topic-row__status{flex:0 0 auto;width:1.4rem;text-align:center;font-size:1rem}.topic-row__body{flex:1 1 auto;min-width:0}.topic-row__title{font-weight:650;font-size:.9375rem}.topic-row__meta{color:var(--text-subtle);font-size:.8125rem}.path-step{display:flex;gap:.75rem;padding:.7rem 0;border-bottom:1px solid var(--border)}.path-step:last-child{border-bottom:none}.path-step__index{flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--primary-soft);color:var(--primary-text);font-size:.8125rem;font-weight:700}.attempt-row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.7rem 0;border-bottom:1px solid var(--border)}.attempt-row:last-child{border-bottom:none}.attempt-row__score{font-size:1.1rem;font-weight:750;font-variant-numeric:tabular-nums}.breadcrumbs{display:flex;flex-wrap:wrap;gap:.35rem;font-size:.875rem;color:var(--text-subtle)}.breadcrumbs a{color:var(--text-muted)}.page-header{display:grid;gap:.4rem;margin-bottom:1.1rem;padding-top:1.1rem}.page-header__meta{display:flex;flex-wrap:wrap;gap:.4rem}.diagram-list{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.diagram{margin:0;padding:14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.diagram-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.diagram-kind{flex:none;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--primary-text);background:var(--primary-soft);border-radius:999px;padding:3px 9px}.diagram-title{font-size:16px;font-weight:650;color:var(--text);overflow-wrap:break-word}.diagram-canvas{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding:4px 0 6px}.dg-svg{display:block;margin-inline:auto;font-family:var(--font-sans);max-width:none}.diagram-caption{margin:0;font-size:14px;color:var(--text-muted);overflow-wrap:break-word}.diagram-alt>summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--text-muted);padding:6px 2px;min-height:var(--tap-target);display:flex;align-items:center}.diagram-alt>summary:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm)}.diagram-alt-list{margin:4px 0 0;padding-left:22px;display:grid;gap:5px;font-size:14px;color:var(--text-muted)}.diagram-alt-list li{overflow-wrap:break-word;white-space:pre-wrap;min-width:0}.dg-box{fill:var(--bg-sunken);stroke:var(--border);stroke-width:1}.dg-box--accent{fill:var(--primary-soft);stroke:var(--primary)}.dg-box--success{fill:var(--success-soft);stroke:var(--success)}.dg-box--warning{fill:var(--warning-soft);stroke:var(--warning)}.dg-box--danger{fill:var(--danger-soft);stroke:var(--danger)}.dg-box--muted{fill:transparent;stroke:var(--border);stroke-dasharray:5 4}.dg-box--default.dg-box--depth1,.dg-box--default.dg-box--depth3{fill:var(--bg-elevated)}.dg-label{fill:var(--text);font-size:13px;font-weight:600}.dg-detail,.dg-edge-label{fill:var(--text-muted);font-size:11px}.dg-condition{fill:var(--primary-text);font-size:11px;font-weight:700}.dg-line{stroke:var(--border-strong);stroke-width:1.6;fill:none}.dg-line--dashed{stroke-dasharray:5 4}.dg-line--spine{stroke-width:1.6}.dg-line--danger{stroke:var(--danger)}.dg-lifeline{stroke:var(--border);stroke-width:1;stroke-dasharray:3 5}.dg-head{fill:var(--border-strong);stroke:none}.dg-head--danger{fill:var(--danger)}.diagram-hint{margin:0;font-size:12px;font-weight:600;color:var(--text-subtle)}.subhead{margin:6px 0 0;font-size:14px;font-weight:700;color:var(--text-muted)}.btn--success{background:var(--success);color:var(--text-inverted);border-color:var(--success)}.btn--success:hover:not(:disabled){filter:brightness(1.08)}.btn--warning{background:var(--warning);color:var(--text-inverted);border-color:var(--warning)}.btn--warning:hover:not(:disabled){filter:brightness(1.08)}.itv-topic-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}@media(min-width:640px){.itv-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1100px){.itv-topic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.itv-topic-card__head{display:flex;align-items:center;gap:10px}.itv-topic-card__icon{font-size:1.6rem;line-height:1;flex:none}.itv-levels{display:flex;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--text-muted)}.itv-levels span{white-space:nowrap}.itv-card{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius)}.itv-card__head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.itv-card__number{flex:none;display:grid;place-items:center;min-width:28px;height:28px;padding:0 6px;border-radius:999px;background:var(--bg-sunken);border:1px solid var(--border);font-size:13px;font-weight:700;color:var(--text-muted)}.itv-card__badges{display:flex;flex-wrap:wrap;gap:6px}.itv-card__prompt{margin:0;font-size:17px;line-height:1.45;font-weight:650;overflow-wrap:break-word}.itv-card__probing{margin:0;font-size:14px;color:var(--text-muted);padding:8px 10px;border-left:3px solid var(--primary);background:var(--bg-sunken);border-radius:0 var(--radius-sm) var(--radius-sm) 0;overflow-wrap:break-word}.itv-options{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.itv-option{width:100%;min-height:var(--tap-target);display:flex;align-items:flex-start;gap:10px;text-align:left;padding:10px 12px;font:inherit;font-size:15px;line-height:1.5;color:var(--text);background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;overflow-wrap:break-word}.itv-option:hover:not(:disabled){border-color:var(--border-strong)}.itv-option:focus-visible{outline:none;box-shadow:var(--ring)}.itv-option:disabled{cursor:default}.itv-option__marker{flex:none;width:1.1em;font-weight:700}.itv-option--selected{border-color:var(--primary);background:var(--primary-soft)}.itv-option--correct{border-color:var(--success);background:var(--success-soft)}.itv-option--wrong{border-color:var(--danger);background:var(--danger-soft)}.itv-card__answer{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding-top:4px;border-top:1px dashed var(--border)}.itv-verdict{margin:0;font-weight:650;padding:10px 12px;border-radius:var(--radius-sm);overflow-wrap:break-word}.itv-verdict--right{background:var(--success-soft);color:var(--success)}.itv-verdict--wrong{background:var(--danger-soft);color:var(--danger)}.itv-heading{margin:4px 0 0;font-size:14px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted)}.itv-heading--warn{color:var(--warning)}.itv-card__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px solid var(--border)}.itv-question-list{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.itv-option__text{flex:1 1 auto;min-width:0}.gate{position:relative;display:grid;place-items:center;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 1rem) 1rem calc(env(safe-area-inset-bottom) + 1rem);background:var(--bg)}.gate__theme{position:absolute;top:calc(env(safe-area-inset-top) + .5rem);right:.5rem}.gate__card{width:100%;max-width:30rem;padding:1.5rem}.gate__brand{display:flex;align-items:center;gap:.75rem}.gate__title{margin:0;font-size:1.375rem;line-height:1.2}.account{display:flex;align-items:center;gap:.25rem;min-width:0}.account__name{display:none;max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:650;color:var(--text-muted)}@media(min-width:560px){.account__name{display:inline}}.account-summary{display:grid;gap:.75rem;margin:0;grid-template-columns:minmax(0,1fr)}@media(min-width:560px){.account-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.account-summary dt{font-size:.8125rem;font-weight:700;color:var(--text-subtle)}.account-summary dd{margin:.15rem 0 0;font-weight:650}.sidebar__section--main{padding:.5rem;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-lg)}.nav-primary{display:flex;align-items:center;gap:.6rem;margin:0;padding:.6rem .65rem;border-radius:var(--radius);color:var(--text);font-weight:700;text-decoration:none}a.nav-primary:hover{background:var(--surface-hover);color:var(--text)}a.nav-primary[aria-current=page]{background:var(--primary-soft);color:var(--primary-text)}.nav-primary--static{cursor:default}.nav-primary__icon{flex:0 0 auto;width:1.75rem;font-size:1.25rem;line-height:1;text-align:center}.nav-primary__body{display:grid;gap:.1rem;min-width:0}.nav-primary__label{font-size:.9375rem;line-height:1.25}.nav-primary__meta{font-size:.75rem;font-weight:600;color:var(--text-subtle)}.nav-primary__bar{margin:.1rem .65rem .5rem}.nav-primary__children{display:grid;gap:.15rem;margin-left:1.75rem}.sidebar__link--course{min-height:2.25rem;padding-block:.35rem}.sidebar__link--course[aria-current=location]{background:var(--surface-hover);color:var(--text)}.playground__examples{width:auto;min-height:2rem;padding:.2rem .5rem;font-size:.8125rem}.playground__editor{margin:0}.playground__textarea{display:block;width:100%;padding:.85rem .9rem;border:0;background:var(--bg-code);color:var(--code-text);font-family:var(--font-mono);font-size:.9375rem;line-height:1.6;tab-size:4;white-space:pre;overflow:auto;resize:vertical}.playground__textarea:focus-visible{outline:none;box-shadow:inset var(--ring)}.playground__stdin{border:1px solid var(--border);border-radius:var(--radius)}.playground__output{margin:0}.playground__output .code-block__header{flex-wrap:wrap}.playground__output .code-block__title{white-space:normal}.playground__pre{min-height:8rem;max-height:28rem;overflow-y:auto;font-family:var(--font-mono);font-size:.875rem;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.playground__stderr{color:var(--danger)}.playground__system{color:var(--warning);font-style:italic}.playground__history{display:grid;grid-template-columns:minmax(0,1fr);gap:.35rem;margin:0;padding:0;list-style:none}.playground__history-item{display:flex;align-items:center;gap:.6rem;width:100%;min-height:var(--tap-target);padding:.4rem .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text);text-align:left;cursor:pointer}.playground__history-item:hover:not(:disabled){background:var(--surface-hover)}.playground__history-item code{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.srs-panel{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .9rem;margin-top:1rem;padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-sunken)}.srs-panel__label{font-weight:700;font-size:.9375rem}.srs-rate{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;flex:1 1 18rem}.srs-rate__button{flex-direction:column;gap:0;min-height:var(--tap-target);line-height:1.2}.srs-rate__interval{font-size:.75rem;font-weight:600;opacity:.85}.srs-confidence{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.srs-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem 1rem}.srs-limit{display:grid;grid-template-columns:auto auto;align-items:center;gap:.25rem .6rem}.srs-limit .field__label{grid-column:1 / -1}.srs-limit__input{width:6rem}.srs-forecast{margin:0}.srs-forecast__title{margin-bottom:.5rem;font-weight:700}.srs-forecast__plot{position:relative;width:100%}.srs-forecast__plot svg{display:block;max-width:100%;overflow:visible}.srs-forecast__grid{stroke:var(--border);stroke-width:1}.srs-forecast__axis{fill:var(--text-subtle);font-size:11px}.srs-forecast__bar{fill:var(--chart-bar)}.srs-forecast__bar--active{fill:var(--primary-hover)}.srs-forecast__hit{fill:transparent;cursor:default}.srs-forecast__hit:focus-visible{outline:none;stroke:var(--primary);stroke-width:2}.srs-forecast__tooltip{position:absolute;transform:translate(-50%,-100%);padding:.3rem .55rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);box-shadow:var(--shadow);font-size:.8125rem;white-space:nowrap;pointer-events:none}.srs-forecast__table{margin-top:.6rem;font-size:.875rem}.srs-forecast__table summary{cursor:pointer;color:var(--text-muted)}.mistake-list{display:grid;gap:.4rem;margin:0;padding:0;list-style:none}.mistake-item{display:flex;align-items:flex-start;gap:.6rem;padding:.55rem .7rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.mistake-item__body{display:grid;flex:1 1 auto;gap:.2rem;min-width:0;overflow-wrap:anywhere}.info-tip{position:relative;display:inline-flex;vertical-align:middle}.info-tip__button{display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;border:1px solid var(--border-strong);border-radius:999px;background:var(--bg-elevated);color:var(--text-muted);font:italic 700 .8125rem/1 Georgia,serif;cursor:help}.info-tip__button:focus-visible{outline:none;box-shadow:var(--ring)}.info-tip__panel{position:absolute;z-index:20;top:calc(100% + .4rem);left:50%;width:min(22rem,80vw);transform:translate(-50%);padding:.7rem .85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);box-shadow:var(--shadow-lg);color:var(--text);font-size:.875rem;font-weight:400;line-height:1.5;text-align:left}@media(max-width:640px){.info-tip__panel{position:fixed;top:auto;bottom:calc(var(--bottom-nav-height) + 1rem);left:1rem;right:1rem;width:auto;transform:none}}.readiness{display:grid;gap:.5rem}.readiness__score{display:flex;align-items:baseline;gap:.35rem}.readiness__number{font-size:2.25rem;font-weight:800;line-height:1}.heatmap__scroll,.calendar__scroll{scrollbar-color:var(--border-strong) transparent}.heatmap__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.heatmap__table{width:100%;min-width:34rem;border-collapse:separate;border-spacing:2px;font-size:.875rem}.heatmap__table th,.heatmap__table td{padding:.5rem .55rem;text-align:left}.heatmap__table thead th{color:var(--text-subtle);font-size:.75rem;font-weight:700;vertical-align:bottom}.heatmap__table tbody th{position:sticky;left:0;z-index:1;background:var(--bg-elevated);font-weight:600}.heatmap__domain{display:block}.heatmap__focus{margin-top:.25rem}.heatmap__weight{min-width:6rem}.heatmap__weight-bar{display:block;height:4px;margin-top:.3rem;border-radius:2px;background:var(--bg-sunken)}.heatmap__weight-bar>span{display:block;height:100%;border-radius:2px;background:var(--text-subtle)}.heat-cell{border-radius:4px;font-weight:700;text-align:center!important;font-variant-numeric:tabular-nums}.heat-cell--empty{background:var(--bg-sunken);color:var(--text-subtle)}.heat-cell--1{background:var(--heat-1);color:var(--heat-ink-1)}.heat-cell--2{background:var(--heat-2);color:var(--heat-ink-2)}.heat-cell--3{background:var(--heat-3);color:var(--heat-ink-3)}.heat-cell--4{background:var(--heat-4);color:var(--heat-ink-4)}.heatmap__row--focus th{box-shadow:inset 3px 0 0 var(--warning)}.heatmap__legend{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.6rem;color:var(--text-muted);font-size:.8125rem}.heatmap__swatch{display:inline-block;width:.85rem;height:.85rem;border-radius:3px}.calendar{margin:0}.calendar__title{margin-bottom:.6rem;font-weight:700}.calendar__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.25rem}.calendar__grid{display:flex;gap:3px;width:max-content}.calendar__week,.calendar__weekdays{display:grid;grid-template-rows:1rem repeat(7,12px);gap:3px}.calendar__weekdays{padding-right:.25rem;color:var(--text-subtle);font-size:.625rem;line-height:12px}.calendar__month{width:12px;overflow:visible;color:var(--text-subtle);font-size:.6875rem;white-space:nowrap}.calendar__day{width:12px;height:12px;border-radius:3px}.calendar__day--0{background:var(--bg-sunken);box-shadow:inset 0 0 0 1px var(--border)}.calendar__day--1{background:var(--heat-1)}.calendar__day--2{background:var(--heat-2)}.calendar__day--3{background:var(--heat-3)}.calendar__day--4{background:var(--heat-4)}.calendar__day--future{background:transparent}.calendar__day--active{outline:2px solid var(--text);outline-offset:1px}.calendar__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem 1rem;margin-top:.5rem}.calendar__readout{margin:0;font-size:.875rem}.calendar__footer .heatmap__legend{margin-top:0}.calendar__key{margin:.35rem 0 0;font-size:.8125rem}.goal-form,.exam-date{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem}.goal-form .field{flex:1 1 10rem}.exam-date .field{flex:0 1 12rem}.exam-date__countdown{margin:0 0 .6rem}.exam-date__days{font-size:1.5rem}.plan-list{display:grid;gap:.3rem;margin:0;padding-left:1.1rem}a.chip{display:inline-flex;align-items:center;text-decoration:none}.sql-editor-block{margin:0}.sql-editor .cm-editor{min-height:var(--sql-editor-min-height, 10em)}.sql-editor .cm-editor.cm-focused{box-shadow:inset var(--ring)}.sql-schema{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated)}.sql-schema>summary{padding:.65rem .9rem;cursor:pointer;font-weight:600}.sql-schema__tables{display:grid;gap:.6rem;padding:0 .9rem .9rem}@media(min-width:700px){.sql-schema__tables{grid-template-columns:repeat(2,minmax(0,1fr))}}.sql-schema__columns{display:flex;flex-wrap:wrap;gap:.3rem;margin:.3rem 0 0;font-size:.8125rem}.sql-result__scroll{max-height:26rem;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);scrollbar-color:var(--border-strong) transparent}.sql-result__table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.8125rem}.sql-result__table th,.sql-result__table td{padding:.4rem .65rem;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.sql-result__table thead th{position:sticky;top:0;background:var(--bg-sunken);font-family:var(--font-sans);font-weight:700;color:var(--text-muted)}.sql-result__table tbody tr:nth-child(2n){background:color-mix(in srgb,var(--bg-sunken) 45%,transparent)}.sql-result__number{text-align:right!important;font-variant-numeric:tabular-nums}.sql-result__null{color:var(--text-subtle);font-style:italic}.sql-result__meta{margin:.35rem 0 0;font-size:.8125rem}.sql-challenge-list{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}.sql-challenge-link{display:flex;align-items:center;gap:.6rem;min-height:var(--tap-target);padding:.45rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text);text-decoration:none}.sql-challenge-link:hover{background:var(--surface-hover)}.sql-challenge-link__mark{width:1.1rem;color:var(--success);font-weight:800;text-align:center}.sql-challenge-link__title{flex:1 1 auto;min-width:0;font-weight:600}.sql-hints{margin:0;padding-left:1.2rem}.kql-note{margin:0;font-size:.8125rem}.kql-sql>summary{cursor:pointer;color:var(--text-muted);font-size:.875rem}.kql-sql .code-block{margin-top:.5rem}.kql-chart-figure{margin:0;padding:.75rem .85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated)}.kql-chart{width:100%}.kql-chart svg{display:block;max-width:100%;overflow:visible}.kql-chart__plot{position:relative}.kql-chart__caption{margin:0 0 .4rem;font-weight:700;font-size:.875rem}.kql-chart__legend{display:flex;flex-wrap:wrap;gap:.25rem .9rem;margin:0 0 .5rem;padding:0;list-style:none;color:var(--text-muted);font-size:.8125rem}.kql-chart__legend li{display:inline-flex;align-items:center;gap:.35rem}.kql-chart__swatch{display:inline-block;width:.75rem;height:.75rem;border-radius:3px}.kql-chart__grid{stroke:var(--border);stroke-width:1}.kql-chart__axis{fill:var(--text-subtle);font-size:11px}.kql-chart__bar-label{fill:var(--text-muted);font-size:12px}.kql-chart__value,.kql-chart__label{fill:var(--text-muted);font-size:11px;font-weight:600}.kql-chart__line{fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.kql-chart__point{fill:currentColor;stroke:var(--bg-elevated);stroke-width:2}.kql-chart__crosshair{stroke:var(--text-subtle);stroke-width:1;stroke-dasharray:3 3}.kql-chart__bar{fill:var(--series-1)}.kql-chart__bar--active{fill:var(--primary-hover)}.kql-chart__hit{fill:transparent}.kql-chart__tooltip{position:absolute;z-index:2;display:grid;gap:.15rem;min-width:9rem;padding:.45rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);box-shadow:var(--shadow);font-size:.8125rem;pointer-events:none}.kql-chart__tooltip-row{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}.py-loading{display:flex;align-items:center;gap:.6rem;margin:0;padding:.6rem .85rem;border-radius:var(--radius);background:var(--info-soft);font-size:.9375rem}.py-loading__spinner{width:1rem;height:1rem;border:2px solid color-mix(in srgb,var(--primary) 30%,transparent);border-top-color:var(--primary);border-radius:50%;animation:py-spin .8s linear infinite}@keyframes py-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.py-loading__spinner{animation-duration:2.4s}}.py-tests{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}.py-test{padding:.6rem .8rem;border:1px solid var(--border);border-left-width:4px;border-radius:var(--radius-sm);background:var(--bg-elevated)}.py-test--pass{border-left-color:var(--success)}.py-test--fail{border-left-color:var(--danger)}.py-test__title{display:flex;align-items:center;gap:.45rem;margin:0;font-weight:700}.py-test--pass .py-test__title>span:first-child{color:var(--success)}.py-test--fail .py-test__title>span:first-child{color:var(--danger)}.py-test__detail{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.25rem .75rem;margin:.45rem 0 0;font-size:.875rem}.py-test__detail dt{color:var(--text-subtle);font-weight:700}.py-test__detail dd{margin:0;min-width:0;overflow-wrap:anywhere}.py-traceback{margin:.3rem 0 0;padding:.5rem .6rem;border-radius:var(--radius-sm);background:var(--bg-code);color:var(--code-text);font-family:var(--font-mono);font-size:.8125rem;white-space:pre-wrap;overflow-wrap:anywhere}.page.page--wide{max-width:min(1280px,100%)}.cli-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem}.cli-layout{display:grid;gap:1rem}@media(min-width:1100px){.cli-layout{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);align-items:start}}.cli-terminal{--term-bg: #0d1424;--term-text: #e3e8f4;--term-muted: #8f9bb6;--term-error: #ff8b8b;--term-info: #7fd4e8;--term-prompt: #8fe0a4;border-radius:var(--radius);background:var(--term-bg);color:var(--term-text);overflow:hidden;border:1px solid var(--border-strong)}.cli-terminal__log{overflow-x:auto;height:min(62vh,560px);min-height:320px;padding:.75rem .9rem;overflow-y:auto;font-family:var(--font-mono);font-size:.8125rem;line-height:1.5;cursor:text;scrollbar-color:#3a4767 transparent}.cli-line{white-space:pre-wrap;overflow-wrap:anywhere}.cli-line--out:not(.cli-line--echo){width:max-content;min-width:100%;white-space:pre;overflow-wrap:normal}.cli-line--err{color:var(--term-error)}.cli-line--info{color:var(--term-info)}.cli-prompt{color:var(--term-prompt);font-weight:700}.cli-input-row{display:flex;align-items:baseline;gap:.5rem}.cli-input{flex:1 1 auto;min-width:0;padding:0;border:0;background:transparent;color:var(--term-text);font:inherit;caret-color:var(--term-prompt)}.cli-input:focus{outline:none}.cli-terminal:focus-within{box-shadow:var(--ring)}.cli-keys{display:flex;flex-wrap:wrap;gap:.4rem;padding:.5rem .6rem;border-top:1px solid #26314b;background:#111a2e}.cli-keys .btn--secondary,.cli-keys .btn--ghost{border-color:#3a4767;background:transparent;color:var(--term-text)}.cli-missions,.cli-checks,.cli-tree,.cli-tree ul{margin:0;padding:0;list-style:none}.cli-missions{display:grid;gap:.35rem}.cli-mission{display:flex;align-items:center;gap:.55rem;width:100%;min-height:var(--tap-target);padding:.4rem .65rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text);text-align:left;cursor:pointer}.cli-mission:hover{background:var(--surface-hover)}.cli-mission__title{flex:1 1 auto;min-width:0;font-weight:600}.cli-steps{margin:0;padding-left:1.2rem;font-size:.875rem}.cli-checks{display:grid;gap:.3rem;font-size:.875rem}.cli-check--pass{color:var(--success);font-weight:600}.cli-check--todo{color:var(--text-muted)}.cli-tree{display:grid;gap:.45rem;font-size:.875rem}.cli-tree ul{display:grid;gap:.2rem;margin-top:.25rem;padding-left:1.1rem;border-left:1px solid var(--border)}.cli-tree__group{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem;font-weight:700}.lab-summary{display:flex;flex-wrap:wrap;gap:.4rem}.lab-findings{display:grid;gap:.4rem;margin:0;padding:0;list-style:none}.lab-finding{border:1px solid var(--border);border-left-width:4px;border-radius:var(--radius-sm);background:var(--bg-elevated)}.lab-finding--error{border-left-color:var(--danger)}.lab-finding--warning{border-left-color:var(--warning)}.lab-finding--info{border-left-color:var(--accent-cyan)}.lab-finding__head{display:flex;align-items:center;gap:.5rem;padding:.25rem .4rem .25rem .65rem}.lab-finding__icon{width:1rem;font-weight:800;text-align:center}.lab-finding--error .lab-finding__icon{color:var(--danger)}.lab-finding--warning .lab-finding__icon{color:var(--warning)}.lab-finding--info .lab-finding__icon{color:var(--accent-cyan)}.lab-finding__title{flex:1 1 auto;min-width:0;min-height:2.25rem;padding:.25rem 0;border:0;background:none;color:var(--text);font-weight:600;text-align:left;cursor:pointer}.lab-finding__line{flex:0 0 auto;font-variant-numeric:tabular-nums}.lab-finding__body{display:grid;gap:.5rem;padding:0 .8rem .7rem;font-size:.9rem}.lab-finding__body .code-block{margin:0}.sql-editor .cm-lintRange-error{background-image:none;text-decoration:underline wavy var(--danger);text-underline-offset:3px}.sql-editor .cm-lintRange-warning{background-image:none;text-decoration:underline wavy var(--warning);text-underline-offset:3px}.sql-editor .cm-lintRange-info{background-image:none;text-decoration:underline dotted var(--accent-cyan);text-underline-offset:3px}.pipeline-graph{margin:0}.pipeline-graph__scroll{overflow-x:auto;scrollbar-color:var(--border-strong) transparent}.pipeline-graph svg{display:block;max-width:none}.pipeline-graph__box{fill:var(--bg-elevated);stroke:var(--border-strong)}.pipeline-graph__header{fill:var(--bg-sunken)}.pipeline-graph__node--stage .pipeline-graph__header{fill:var(--primary-soft)}.pipeline-graph__title{fill:var(--text);font-size:13px;font-weight:700}.pipeline-graph__node--stage .pipeline-graph__title{fill:var(--primary-text)}.pipeline-graph__condition{fill:var(--warning);font-family:var(--font-mono);font-size:10.5px}.pipeline-graph__child{fill:var(--text-muted);font-size:12px}.pipeline-graph__more{fill:var(--text-subtle);font-size:11px;font-style:italic}.pipeline-graph__edge{fill:none;stroke:var(--text-subtle);stroke-width:1.75}.pipeline-graph__edge--implicit{stroke-dasharray:5 4}.pipeline-graph__arrowhead{fill:var(--text-subtle)}.pipeline-graph__caption{margin-top:.4rem;font-size:.8125rem}.mono{font-family:var(--font-mono)}.net-table__scroll{overflow-x:auto;scrollbar-color:var(--border-strong) transparent}.net-table{width:100%;border-collapse:collapse;font-size:.875rem}.net-table th,.net-table td{padding:.3rem .4rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.net-table th{color:var(--text-subtle);font-size:.75rem;font-weight:700;white-space:nowrap}.net-table .select{min-height:2.25rem;padding:.3rem .45rem;font-size:.875rem}.net-table--rules{min-width:56rem}.net-table__number{font-variant-numeric:tabular-nums;text-align:right!important}.net-table__row--error td{background:color-mix(in srgb,var(--danger-soft) 60%,transparent)}.net-table__row--default td{color:var(--text-subtle);font-size:.8125rem}.net-swatch{display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:4px;color:#fff;font-size:.75rem;font-weight:800;text-shadow:0 0 2px rgb(0 0 0 / 60%)}.net-add{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6rem}.net-add .field{flex:0 1 14rem}.net-toggle{display:inline-flex;align-items:center;gap:.35rem;font-size:.875rem;white-space:nowrap}.net-problem{margin:0;color:var(--danger);font-size:.875rem}.net-subheading{margin:.4rem 0 0;font-size:.9rem}.address-bar{margin:.25rem 0 0}.address-bar__ends{display:flex;justify-content:space-between;color:var(--text-subtle);font-family:var(--font-mono);font-size:.75rem}.address-bar__track{display:grid;gap:3px;padding:3px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-sunken)}.address-bar__lane{position:relative;height:2rem}.address-bar__block{position:absolute;top:0;bottom:0;display:grid;place-items:center;border-radius:4px;box-shadow:0 0 0 1px var(--bg-sunken);overflow:hidden}.address-bar__block--overlap{outline:2px solid var(--danger);outline-offset:1px}.address-bar__tag{min-width:1.15rem;padding:0 .25rem;border-radius:999px;background:var(--bg-elevated);color:var(--text);font-size:.6875rem;font-weight:800;text-align:center}.address-bar__caption{margin-top:.3rem;font-size:.8125rem}.net-packet{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.5rem .75rem}.net-packet-link{padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.nsg-trace{display:grid;gap:.6rem;margin:0;padding:0;list-style:none}.nsg-trace__title{margin:0 0 .3rem;font-weight:700}.nsg-trace__rules{display:grid;gap:.3rem;margin:0;padding:0 0 0 .75rem;border-left:2px solid var(--border);list-style:none}.nsg-trace__rule{padding:.35rem .55rem;border-radius:var(--radius-sm);font-size:.875rem;animation:nsg-in .25s ease-out}@keyframes nsg-in{0%{opacity:0;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.nsg-trace__rule{animation:none}}.nsg-trace__rule--current{box-shadow:inset 0 0 0 2px var(--primary)}.nsg-trace__rule--allow{background:var(--success-soft)}.nsg-trace__rule--deny{background:var(--danger-soft)}.nsg-trace__rule-head{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.nsg-trace__criteria{display:grid;gap:.1rem;margin:.3rem 0 0;padding-left:1.1rem;font-size:.8125rem;list-style:none}.peer-diagram{display:block;width:100%;max-width:420px;margin:0 auto}.peer-diagram__link{stroke:var(--text-subtle);stroke-width:2}.peer-diagram__link--initiated{stroke-dasharray:6 5;stroke:var(--warning)}.peer-diagram__link--invalid{stroke-dasharray:3 4;stroke:var(--danger)}.peer-diagram__link--path{stroke:var(--success);stroke-width:4}.peer-diagram__state{fill:var(--text-subtle);font-size:9px}.peer-diagram__vnet rect{fill:var(--bg-elevated);stroke:var(--border-strong);stroke-width:1.5}.peer-diagram__vnet--path rect{stroke:var(--success);stroke-width:3}.peer-diagram__name{fill:var(--text);font-size:11px;font-weight:700}.peer-diagram__cidr{fill:var(--text-subtle);font-family:var(--font-mono);font-size:10px}.peer-links,.peer-statuses,.peer-quiz{display:grid;gap:.4rem;margin:0;padding:0;list-style:none}.peer-quiz{gap:.75rem;padding-left:1.2rem;list-style:decimal}.peer-link{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .9rem;padding:.4rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.875rem}.bot-page{display:flex;flex-direction:column;gap:.75rem}.bot-transcript{display:flex;flex-direction:column;gap:.6rem;min-height:40vh}.bot-msg{max-width:min(46rem,100%);padding:.6rem .85rem;border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border);overflow-wrap:anywhere}.bot-msg>p:last-child,.bot-msg ul:last-child,.bot-msg ol:last-child{margin-bottom:0}.bot-msg--user{align-self:flex-end;max-width:min(36rem,88%);background:var(--primary-soft);border-color:transparent;color:var(--primary-text);white-space:pre-wrap}.bot-msg--user p{margin:0}.bot-msg--user:empty{display:none}.bot-msg--bot{align-self:flex-start}.bot-question__prompt{margin:.4rem 0 0;font-weight:600;font-size:1.05rem}.bot-question__open{margin-left:auto;font-size:.85rem}.bot-answer{display:grid;gap:.35rem}.bot-answer p:last-child{margin-bottom:0}.bot-score{display:grid;gap:.4rem}.bot-score__meter{height:8px;border-radius:999px;background:var(--bg-sunken);overflow:hidden}.bot-score__fill{display:block;height:100%;border-radius:999px}.bot-score__fill--success{background:var(--success)}.bot-score__fill--warning{background:var(--warning)}.bot-score__fill--danger{background:var(--danger)}.bot-score__help{margin:0;font-size:.85rem}.bot-score__points{display:grid;gap:.25rem;margin:0;padding:0;list-style:none}.bot-score__points label{display:flex;gap:.45rem;align-items:flex-start;min-height:32px;cursor:pointer}.bot-score__points input{margin-top:.25rem}.bot-score__points .is-hit span[aria-hidden]{color:var(--success)}.bot-score__points .is-miss{color:var(--text-muted)}.bot-score__points .is-miss span[aria-hidden]{color:var(--danger)}.bot-results,.bot-choices{display:grid;gap:.5rem;margin:0;padding-left:1.25rem}.bot-results p{margin:.2rem 0 0;color:var(--text-muted);font-size:.925rem}.bot-links{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin:0;padding:0;list-style:none}.bot-evidence{margin:0;padding:.5rem .7rem;border-radius:var(--radius-sm);background:var(--bg-code);font-family:var(--font-mono);font-size:.8rem;white-space:pre-wrap;overflow-x:auto}.bot-report{width:100%;border-collapse:collapse;font-size:.9rem}.bot-report td{padding:.35rem .25rem;border-bottom:1px solid var(--border);vertical-align:top}.bot-report__score{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.bot-timer{position:relative;height:1.6rem;min-width:12rem;border-radius:999px;background:var(--bg-sunken);overflow:hidden;font-variant-numeric:tabular-nums;font-weight:700}.bot-timer__bar{position:absolute;inset:0 auto 0 0;background:var(--primary-soft);transition:width .25s linear}.bot-timer--low .bot-timer__bar{background:var(--danger-soft)}.bot-timer span{position:relative;display:block;padding:0 .7rem;line-height:1.6rem}.bot-dock{position:sticky;bottom:calc(var(--bottom-nav-height, 0px) + env(safe-area-inset-bottom,0px));display:grid;gap:.5rem;padding:.6rem 0 .4rem;background:var(--bg);border-top:1px solid var(--border)}@media(min-width:900px){.bot-dock{bottom:0}}.bot-chips{max-height:6.5rem;overflow-y:auto;scrollbar-color:var(--border-strong) transparent}.chip--primary{border-color:var(--primary);color:var(--primary-text)}.chip:disabled{opacity:.6;cursor:default}.bot-input{display:flex;gap:.4rem;align-items:stretch}.bot-input textarea{flex:1 1 auto;min-width:0;min-height:var(--tap-target, 44px);padding:.5rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-elevated);color:var(--text);font:inherit;resize:vertical}.bot-input textarea:focus-visible{border-color:var(--primary);box-shadow:var(--ring);outline:none}.bot-mic.is-on{background:var(--danger-soft);border-color:var(--danger)}.bot-settings summary{cursor:pointer;font-size:.85rem}.bot-settings label{align-items:flex-start;margin-top:.4rem;font-size:.9rem}.tool-chip{display:inline-flex;align-items:center;min-height:28px;padding:.15rem .55rem;border:1px solid var(--border);border-radius:999px;background:var(--bg-sunken);color:var(--text-muted);font-size:.8rem;font-weight:600;text-decoration:none}a.tool-chip:hover{border-color:var(--primary);color:var(--primary-text)}.role-links{display:inline-flex;flex-wrap:wrap;gap:.3rem .75rem;font-size:.875rem}.role-list{display:grid;gap:.4rem;margin:0;padding-left:1.2rem}.role-skills{display:grid;gap:0;margin:0;padding:0;list-style:none}.role-skills>li{display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:center;justify-content:space-between;padding:.5rem 0;border-top:1px solid var(--border)}.role-skills>li:first-child{border-top:0}.role-skills__name{display:flex;gap:.5rem;align-items:flex-start;flex:1 1 18rem;min-height:32px;cursor:pointer}.role-skills__name input,.fit-skill input{margin-top:.25rem}.role-skills__practise{display:inline-flex;flex-wrap:wrap;gap:.3rem .75rem;align-items:center;font-size:.875rem}.stepper{display:grid;gap:0;margin:0;padding:0;list-style:none}.stepper__step{position:relative;display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.75rem;padding-bottom:1rem}.stepper__step:not(:last-child):before{content:"";position:absolute;top:2rem;bottom:0;left:calc(1rem - 1px);width:2px;background:var(--border)}.stepper__num{display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;background:var(--primary-soft);color:var(--primary-text);font-weight:700}.roles-legend{align-items:center;font-size:.875rem}.roles-legend__swatch{display:inline-block;width:1rem;height:1rem;border:1px solid var(--border-strong);border-radius:4px}.fit-target{flex-wrap:nowrap}.fit-target>span{white-space:nowrap}.fit-target select{flex:1 1 auto;min-width:0}.roles-matrix{min-width:62rem}.roles-matrix thead th{min-width:5.5rem;white-space:normal}.roles-matrix thead th:first-child,.roles-matrix tbody th{min-width:10rem;max-width:12rem}.roles-matrix thead th:first-child{position:sticky;left:0;z-index:2;background:var(--bg-elevated)}.roles-matrix td.heat-cell{padding:0}.roles-matrix__cell{width:100%;min-height:40px;padding:.4rem;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;cursor:pointer}.roles-matrix__active{outline:3px solid var(--text);outline-offset:-3px}.fit-row{display:grid;gap:.2rem}.fit-area{display:grid;gap:.15rem 1rem;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));margin:0}.fit-area legend{padding:0 .3rem}.fit-skill{display:flex;gap:.5rem;align-items:flex-start;min-height:36px;cursor:pointer}.viz-split{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}@media(min-width:1100px){.viz-split{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start}.viz-split--sla{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}.viz-side-by-side{display:grid;gap:.9rem;grid-template-columns:minmax(0,1fr)}@media(min-width:700px){.viz-side-by-side{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}}.viz-subtitle{margin:0;font-size:1.125rem}.viz-list{display:grid;gap:.45rem;margin:0;padding:0;list-style:none;font-size:.925rem}.viz-list .is-muted{opacity:.6}.viz-ok{color:var(--success)}.viz-bad{color:var(--danger)}.viz-form{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}.viz-assign{display:grid;gap:.4rem;grid-template-columns:minmax(0,1fr)}@media(min-width:500px){.viz-assign{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center}}.viz-trace{display:grid;gap:.4rem;margin:0;padding:0;list-style:none}.viz-trace li{display:grid;gap:.15rem;padding:.5rem .7rem;border-left:4px solid var(--success);border-radius:var(--radius-sm);background:var(--bg-sunken)}.viz-trace li.is-bad{border-left-color:var(--danger)}.viz-trace__stage{font-weight:700;font-size:.875rem}.viz-table{width:100%;min-width:32rem;border-collapse:collapse;font-size:.9rem}.viz-table th,.viz-table td{padding:.5rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.table-scroll{overflow-x:auto}.linklike{padding:0;border:0;background:none;color:var(--primary-text);font:inherit;text-align:left;cursor:pointer}.linklike[aria-pressed=true]{text-decoration:underline}.rbac-tree{display:grid;gap:2px;margin:0;padding:0;list-style:none}.rbac-node{display:flex;flex-wrap:wrap;gap:.25rem .45rem;align-items:center;width:100%;min-height:40px;padding:.35rem .5rem;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.rbac-node:hover{background:var(--surface-hover)}.rbac-node.has-access{background:var(--success-soft)}.rbac-node.is-focus{box-shadow:inset 4px 0 0 var(--primary);background:var(--primary-soft)}.rbac-node.is-selected{border-color:var(--primary)}.rbac-node__name{font-weight:600}.rbac-node__badges{display:inline-flex;flex-wrap:wrap;gap:.25rem;margin-left:auto}.rbac-role{padding:.05rem .45rem;border:1px solid var(--success);border-radius:999px;color:var(--success);font-size:.75rem;font-weight:700}.rbac-role--direct{background:var(--success);color:var(--bg-elevated)}.rbac-flag{font-size:.8rem}.deploy-svg{width:100%;max-width:40rem;height:auto}.deploy-node circle,.deploy-node rect{fill:var(--bg-sunken);stroke:var(--border-strong)}.deploy-node text,.deploy-instance text,.deploy-weight{fill:var(--text);font-size:12px;font-weight:700}.deploy-edge{stroke:var(--border-strong);stroke-width:1.5}.deploy-instance rect{stroke-width:2}.deploy-instance--v1 rect{fill:var(--primary-soft);stroke:var(--accent-blue)}.deploy-instance--v2 rect{fill:var(--success-soft);stroke:var(--accent-emerald)}.deploy-instance.is-starting rect{stroke-dasharray:4 3;opacity:.7}.deploy-packet--v1{fill:var(--accent-blue)}.deploy-packet--v2{fill:var(--accent-emerald)}.deploy-packet.is-error{fill:var(--danger)}.deploy-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.deploy-rings{display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;font-size:.85rem}.deploy-rings li{padding:.3rem .6rem;border:1px solid var(--border-strong);border-radius:999px}.deploy-rings li.is-on{border-color:var(--accent-emerald);background:var(--success-soft)}.deploy-log{scrollbar-color:var(--border-strong) transparent;display:grid;gap:.3rem;max-height:11rem;overflow-y:auto;margin:0;padding-left:1.2rem;font-size:.875rem}.deploy-log li:first-child{font-weight:600}.deploy-quiz{padding-top:.6rem;border-top:1px solid var(--border)}input[type=range]{width:100%;accent-color:var(--primary)}.git-graph{overflow-x:auto;border-radius:var(--radius);background:var(--bg-sunken);scrollbar-color:var(--border-strong) transparent}.git-graph svg{display:block}.git-lane{fill:var(--text-subtle);font-size:11px;font-weight:700}.git-edge{fill:none;stroke:var(--text-subtle);stroke-width:2}.git-edge.is-gone{stroke-dasharray:4 4;opacity:.35}.git-commit circle{fill:var(--primary-soft);stroke:var(--primary);stroke-width:2}.git-commit.is-head circle{fill:var(--primary)}.git-commit.is-head .git-commit__id{fill:var(--text-inverted)}.git-commit.is-gone{opacity:.35}.git-commit.is-gone circle{stroke-dasharray:3 3}.git-commit__id{fill:var(--primary-text);font-size:10px;font-weight:700;font-family:var(--font-mono)}.git-label{font-size:11px;font-weight:700;fill:var(--text-muted)}.git-label--head{fill:var(--primary-text)}.git-label--tag{fill:var(--warning)}.git-terminal{scrollbar-color:var(--border-strong) transparent;display:grid;gap:.35rem;max-height:14rem;overflow-y:auto;padding:.6rem .75rem;border-radius:var(--radius);background:var(--bg-code);font-family:var(--font-mono);font-size:.8rem}.git-terminal:empty{display:none}.git-terminal pre{margin:0;white-space:pre-wrap;color:var(--text-muted)}.git-terminal .is-error pre{color:var(--danger)}.git-terminal__cmd{font-weight:700}.git-input{display:flex;gap:.4rem}.git-input input{flex:1 1 auto;min-width:0;font-family:var(--font-mono)}.git-solution{padding:.5rem .7rem;border-radius:var(--radius-sm);background:var(--bg-code);font-size:.85rem}.sla-chain{display:grid;gap:0;margin:0;padding:0;list-style:none}.sla-chain>li{position:relative;padding:.5rem 0 .5rem 1.2rem;border-left:2px solid var(--border-strong)}.sla-chain>li:before{content:"↓";position:absolute;top:.9rem;left:-.45rem;padding:0 .1rem;background:var(--bg-elevated);color:var(--text-subtle);font-size:.8rem;line-height:1}.sla-path .sla-chain>li:before{background:var(--bg-sunken)}.sla-service{display:grid;gap:.35rem}.sla-service__value{display:inline-flex;align-items:center;gap:.25rem;font-weight:700}.sla-service__value input{width:6.5rem;min-height:36px;padding:.3rem .5rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text);font:inherit}.sla-service__note{font-size:.8rem}.sla-parallel{display:grid;gap:.5rem;padding:.6rem;border:2px dashed var(--accent-emerald);border-radius:var(--radius)}.sla-path{padding:.5rem;border-radius:var(--radius-sm);background:var(--bg-sunken)}.sla-group-head{font-size:.9rem}.sla-chip{padding:.1rem .5rem;border-radius:999px;background:var(--success-soft);color:var(--success);font-size:.8rem;font-weight:700}.sla-preset{width:auto;max-width:100%}@media(min-width:1100px){.sla-result{position:sticky;top:5rem}}.sla-big{font-size:2.5rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}.sla-downtime{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0}.sla-downtime div{padding:.5rem .6rem;border-radius:var(--radius-sm);background:var(--bg-sunken)}.sla-downtime dt{color:var(--text-subtle);font-size:.8rem}.sla-downtime dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}.sla-exercise{padding-top:.6rem;border-top:1px solid var(--border)}.sla-answer{flex:0 1 9rem}.arch-layout{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}@media(min-width:1200px){.arch-layout{grid-template-columns:minmax(0,1fr) 22rem;align-items:start}}.arch-canvas{overflow:auto;max-height:78vh;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);scrollbar-color:var(--border-strong) transparent;touch-action:pan-x pan-y}.arch-canvas svg{display:block;max-width:none;user-select:none}.arch-grid-dot{fill:var(--border)}.arch-arrowhead{fill:var(--text-subtle)}.arch-edge line{stroke:var(--text-subtle);stroke-width:1.6}.arch-edge.is-selected line:first-child{stroke:var(--primary);stroke-width:3}.arch-edge .arch-edge__hit{stroke:transparent;stroke-width:16;cursor:pointer}.arch-node{--node: var(--accent-slate);cursor:grab;touch-action:none}.arch-node:focus{outline:none}.arch-node:focus-visible .arch-node__box{stroke-width:3;stroke-dasharray:5 3}.arch-node--edge{--node: var(--accent-violet)}.arch-node--compute{--node: var(--accent-blue)}.arch-node--data{--node: var(--accent-emerald)}.arch-node--network{--node: var(--accent-cyan)}.arch-node--security{--node: var(--accent-amber)}.arch-node--ops{--node: var(--accent-rose)}.arch-node__box{fill:var(--bg-elevated);stroke:var(--node);stroke-width:2}.arch-node__stripe{fill:var(--node)}.arch-node__badge{fill:var(--node);font-size:11px;font-weight:800}.arch-node__label{fill:var(--text);font-size:13px;font-weight:600}.arch-node__region{fill:var(--text-subtle);font-size:10px}.arch-node.is-selected .arch-node__box{fill:var(--primary-soft);stroke-width:3}.arch-node.is-source .arch-node__box{stroke-dasharray:6 3;stroke-width:3}.arch-node.is-flagged .arch-node__box{stroke:var(--danger);stroke-width:3}.arch-palette{border-left:4px solid var(--accent-slate)}.arch-palette--edge{border-left-color:var(--accent-violet)}.arch-palette--compute{border-left-color:var(--accent-blue)}.arch-palette--data{border-left-color:var(--accent-emerald)}.arch-palette--network{border-left-color:var(--accent-cyan)}.arch-palette--security{border-left-color:var(--accent-amber)}.arch-palette--ops{border-left-color:var(--accent-rose)}.arch-region{width:auto;min-height:36px;padding:.3rem .5rem}.arch-findings{display:grid;gap:.6rem;margin:0;padding:0;list-style:none;font-size:.9rem}.arch-finding{display:grid;gap:.2rem;padding:.5rem .6rem;border-left:4px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-sunken)}.arch-finding--error{border-left-color:var(--danger)}.arch-finding--warning{border-left-color:var(--warning)}.itv-practice-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.itv-practice-grid>.card{display:grid;gap:.35rem;align-content:start}.mock-question{font-size:1.4rem;line-height:1.3}.mock-clock{font-size:2.2rem;font-weight:800;font-variant-numeric:tabular-nums}.mock-clock.is-low{color:var(--danger)}.mock-textarea{width:100%;padding:.6rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-elevated);color:var(--text);font:inherit;font-size:16px;resize:vertical}.mock-textarea:focus-visible{border-color:var(--primary);box-shadow:var(--ring);outline:none}.mock-audio{display:block;width:100%;max-width:28rem;height:40px}.mock-transcript-text{margin:0;font-style:italic}.mock-topics{margin:0;padding:0;border:0}.mock-recordings{display:grid;gap:.9rem;margin:0;padding:0;list-style:none}.mock-rec-head{flex-wrap:nowrap;align-items:flex-start}.mock-recordings>li{padding-top:.75rem;border-top:1px solid var(--border)}.star-layout{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}@media(min-width:1000px){.star-layout{grid-template-columns:20rem minmax(0,1fr);align-items:start}}.star-list{display:grid;gap:.4rem;margin:0;padding:0;list-style:none}.star-hint{font-size:.85rem}.star-review dl{display:grid;gap:.5rem;margin:.5rem 0 0}.star-review dl>div{display:grid;grid-template-columns:1.6rem minmax(0,1fr);gap:.5rem}.star-review dt{display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:999px;background:var(--primary-soft);color:var(--primary-text);font-weight:800}.star-review dd{margin:0;white-space:pre-wrap}.incident-card{width:100%;border:1px solid var(--border);font:inherit;text-align:left;color:inherit;cursor:pointer}.incident-timeline{display:grid;gap:.6rem;margin:0;padding-left:1.3rem}.incident-choices{display:grid;gap:.5rem}.incident-choice{justify-content:flex-start;min-height:48px;text-align:left;white-space:normal}.incident-result{border-left:5px solid var(--success)}.incident-result.is-wrong{border-left-color:var(--danger)}.question-tags{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.question-tag{display:inline-flex;align-items:center;gap:.15rem;padding:.1rem .2rem .1rem .55rem;border:1px solid var(--border-strong);border-radius:999px;font-size:.85rem}.question-tag a{text-decoration:none}.question-tag button{min-width:28px;min-height:28px;border:0;background:none;color:var(--text-subtle);cursor:pointer}.question-tags__form{display:flex;gap:.35rem}.question-tags__form input{width:12rem;min-height:36px;padding:.3rem .5rem}.lab-alert{padding:.75rem 1rem;border:1px solid var(--warning);border-left-width:5px;border-radius:var(--radius);background:var(--warning-soft);color:var(--text)}.lab-cost{border-left:5px solid var(--warning)}.lab-steps{display:grid;gap:1rem;margin:0;padding:0;list-style:none}.lab-step.is-done{border-color:var(--success)}.lab-verify{padding:.75rem;border-radius:var(--radius);background:var(--bg-sunken)}.lab-output{font-family:var(--font-mono);font-size:.85rem}.lab-check{align-items:flex-start;min-height:36px}.lab-cleanup{border:2px solid var(--danger)}.iac-grid{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}@media(min-width:1250px){.iac-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.iac-pane{margin:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--bg-code)}.iac-pane__head{display:flex;gap:.6rem;align-items:center;padding:.4rem .6rem;border-bottom:1px solid var(--border);background:var(--bg-elevated)}.iac-pane__head .subtle{margin-right:auto}.iac-code{margin:0;padding:.5rem 0;overflow-x:auto;font-family:var(--font-mono);font-size:.8rem;line-height:1.5;scrollbar-color:var(--border-strong) transparent}.iac-line{display:block;padding:0 .75rem;border-left:3px solid transparent;white-space:pre}.iac-line.is-hit{border-left-color:var(--primary);background:var(--primary-soft)}.iac-note{margin:0;padding:.6rem .8rem;border-left:4px solid var(--primary);border-radius:var(--radius-sm);background:var(--bg-sunken)}.gloss{position:relative}.gloss__term{padding:0;border:0;border-bottom:1px dotted var(--primary);background:none;color:inherit;font:inherit;cursor:help}.gloss__term:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.gloss__panel{position:absolute;z-index:30;top:calc(100% + 6px);left:0;display:grid;gap:.35rem;width:min(22rem,80vw);padding:.7rem .8rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-elevated);box-shadow:var(--shadow-lg);color:var(--text);font-size:.875rem;font-weight:400;line-height:1.45;text-align:left}.gloss__links{display:flex;flex-wrap:wrap;gap:.3rem .8rem}.glossary-list{display:grid;gap:.6rem;margin:0}.glossary-entry{padding:.6rem .8rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);scroll-margin-top:5rem}.glossary-entry.is-open{border-color:var(--primary)}.glossary-entry dt{font-weight:700}.glossary-entry__term{font-weight:700;font-size:1.02rem}.glossary-entry dd{margin:.3rem 0 0}.glossary-related{display:grid;gap:.75rem;margin-top:.6rem;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}.cheat-sheet{padding:1rem 1.2rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated)}.cheat-sheet__head{display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:baseline;justify-content:space-between;padding-bottom:.4rem;border-bottom:2px solid var(--primary)}.cheat-sheet__head h2{margin:0;font-size:1.15rem}.cheat-sheet__cols{columns:1;column-gap:1.2rem;margin-top:.6rem}@media(min-width:900px){.cheat-sheet__cols{columns:2}}.cheat-block{break-inside:avoid;margin-bottom:.7rem;font-size:.85rem;line-height:1.4}.cheat-block h3{margin:0 0 .15rem;font-size:.95rem}.cheat-block ul{margin:.2rem 0;padding-left:1.1rem}.cheat-one{margin:0;color:var(--text-muted)}.cheat-tip{margin:.2rem 0}.cheat-cmd{display:block;margin-top:.15rem;font-size:.78rem;white-space:pre-wrap;word-break:break-all}.cheat-sheet__foot{margin-top:.4rem;color:var(--text-subtle);font-size:.75rem}@media print{@page{size:A4;margin:10mm}.sidebar,.top-bar,.bottom-nav,.skip-link,.no-print,.update-toast{display:none!important}.app-shell{display:block!important}.app-main{padding:0!important}body{background:#fff!important;color:#000!important}.cheat-page{max-width:none!important;padding:0!important}.cheat-sheet{padding:0;border:0;border-radius:0;background:#fff;color:#000;break-after:page}.cheat-sheet__cols{columns:2;column-gap:6mm}.cheat-block{font-size:8.5pt;margin-bottom:2.5mm}.cheat-block h3{font-size:9.5pt}.cheat-cmd{font-size:7.5pt}.cheat-one,.cheat-sheet__foot{color:#333}}@media(max-width:640px){.gloss__panel{position:fixed;top:auto;right:12px;bottom:calc(var(--bottom-nav-height, 62px) + 12px);left:12px;width:auto}}.code-block,.code-block *{scrollbar-color:var(--border-strong) transparent}.chip[aria-selected=true],.chip[aria-checked=true]{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-text)}.iac-code:focus-visible,.git-graph:focus-visible,.table-scroll:focus-visible,.pipeline-graph__scroll:focus-visible,.heatmap__scroll:focus-visible,.arch-canvas:focus-visible,.diagram-canvas:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.palette-backdrop{position:fixed;inset:0;z-index:100;display:grid;justify-items:center;align-items:start;padding:10vh 1rem 1rem;background:#080e198c}.palette{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(40rem,100%);max-height:75vh;overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-lg)}.palette__bar{display:flex;align-items:stretch;border-bottom:1px solid var(--border)}.palette__close{min-width:52px;border:0;background:transparent;color:var(--text-muted);font-size:1.1rem;cursor:pointer}.palette__close:hover{color:var(--text)}.palette__input{flex:1 1 auto;min-width:0;min-height:56px;padding:.9rem 1rem;border:0;background:transparent;color:var(--text);font:inherit;font-size:1.05rem}.palette__input:focus-visible{outline:none;box-shadow:inset 0 -2px 0 var(--primary)}.palette__list{margin:0;padding:.35rem;overflow-y:auto;list-style:none;scrollbar-color:var(--border-strong) transparent}.palette__item{display:grid;gap:.1rem;padding:.5rem .7rem;border-radius:var(--radius-sm);cursor:pointer}.palette__item.is-active{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}.palette__kind{margin:.4rem 0 .15rem;color:var(--text-subtle);font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.palette__title{overflow:hidden;color:var(--text);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.palette__subtitle{overflow:hidden;color:var(--text-muted);font-size:.85rem;text-overflow:ellipsis;white-space:nowrap}.palette__empty{padding:1rem;color:var(--text-muted)}.palette__hint{margin:0;padding:.45rem .8rem;border-top:1px solid var(--border);color:var(--text-subtle);font-size:.8rem}kbd{padding:.05rem .35rem;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;background:var(--bg-sunken);font-family:var(--font-mono);font-size:.8em}@media(max-width:640px){.palette-backdrop{padding:0}.palette{width:100%;max-height:100dvh;height:100dvh;border-radius:0}.palette__hint{display:none}}.linux-layout{display:grid;gap:1rem;align-items:start}@media(min-width:1000px){.linux-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}.linux-list{grid-column:1 / -1}.linux-list__items{max-height:16rem}}@media(min-width:1400px){.linux-layout{grid-template-columns:250px minmax(0,1fr) minmax(0,1.2fr)}.linux-list{grid-column:auto;position:sticky;top:1rem}.linux-list__items{max-height:calc(100vh - 22rem)}}.linux-list__items{display:grid;gap:.25rem;max-height:20rem;scrollbar-color:var(--border-strong) transparent;margin:0;padding:0;overflow-y:auto;list-style:none}.linux-item{display:grid;gap:.1rem;width:100%;padding:.45rem .6rem;border:1px solid transparent;border-radius:var(--radius-sm);background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.linux-item:hover{background:var(--surface-hover)}.linux-item.is-active{border-color:var(--primary);background:var(--primary-soft)}.linux-item__title{font-weight:600;font-size:.9rem}.linux-item__meta{font-size:.75rem}.linux-task__task{display:grid;gap:.25rem;padding:.6rem .75rem;border-left:3px solid var(--primary);border-radius:var(--radius-sm);background:var(--bg-sunken)}.linux-files{flex-wrap:wrap;gap:.35rem}.linux-files .btn{font-family:var(--font-mono);font-size:.8rem}.linux-hint{padding:.5rem .7rem;border-radius:var(--radius-sm);background:var(--warning-soft)}.linux-results{padding:.6rem .75rem;border-radius:var(--radius-sm)}.linux-results.is-pass{background:var(--success-soft)}.linux-results.is-fail{background:var(--danger-soft)}.linux-results__messages{margin:.25rem 0 .25rem 1.2rem;padding:0;color:var(--text)}.linux-explain{width:100%;border-collapse:collapse;font-size:.875rem}.linux-explain caption{text-align:left}.linux-explain th,.linux-explain td{padding:.35rem .5rem;border-top:1px solid var(--border);text-align:left;vertical-align:top}.linux-explain th{width:45%;font-weight:400;overflow-wrap:anywhere}.linux-followup{display:grid;gap:.25rem;padding:.6rem .75rem;border-radius:var(--radius-sm);background:var(--info-soft)}.linux-tabs{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.linux-tabs__reset{margin-left:auto}.linux-dot{display:inline-block;width:.5rem;height:.5rem;margin-left:.35rem;border-radius:50%;background:var(--danger);vertical-align:middle}.linux-editor-bar{flex-wrap:wrap;gap:.6rem}.linux-outbox{display:grid;gap:.6rem;margin:0;padding:0;list-style:none}
