@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-gray-200:#e5e7eb;--spacing:.25rem;--radius-sm:.25rem;--radius-lg:.5rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}@supports (color:lab(0% 0 0)){:root,:host{--color-gray-200:lab(91.6229% -.159115 -2.26791)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:after,:before,::backdrop{border-color:var(--color-gray-200,currentcolor)}::file-selector-button{border-color:var(--color-gray-200,currentcolor)}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-1{top:calc(var(--spacing) * 1)}.top-6{top:calc(var(--spacing) * 6)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.\!filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}}:root{--font-ui:"Inter Tight", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-ui-humanist:"Literata", Georgia, serif;--font-cite:"Source Serif 4", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--bg:#fbfaf8;--bg-2:#f6f5f2;--panel:#fff;--line:#e2e1de;--line-soft:#ecebe8;--ink:#0e1217;--ink-2:#2e3339;--ink-3:#5f6469;--ink-4:#8f9397;--accent:#216970;--accent-2:#2a7f88;--accent-bg:#e3f6f8;--accent-line:#b3d9dd;--warn:#bb731b;--warn-bg:#fff3df;--warn-line:#e6cda5;--good:#258651;--good-bg:#defae6;--good-line:#acd7ba;--bad:#bd413f;--bad-bg:#fff1f0;--bad-line:#f6c2bd;--shadow-1:0 1px 2px #0f172a0a, 0 0 0 .5px #0f172a0f;--shadow-2:0 1px 2px #0f172a0d, 0 8px 24px #0f172a0f;--shadow-pop:0 8px 28px #0f172a1a, 0 1px 3px #0f172a0f;--radius:10px;--radius-sm:7px;--radius-lg:14px;--row-y:12px;--row-x:16px;--gap:14px;--pad:24px;--topbar-h:52px;--banner-h:36px;--sidebar-w:248px}@supports (color:lab(0% 0 0)){:root{--bg:lab(98.279% -.097543 1.13808);--bg-2:lab(96.5452% -.128806 1.51825);--line:lab(89.5914% -.159144 1.89906);--line-soft:lab(93.0652% -.128686 1.51836);--ink:lab(5.2525% -.827231 -3.55052);--ink-2:lab(21.105% -1.21492 -4.23629);--ink-3:lab(41.9902% -1.06397 -3.55529);--ink-4:lab(60.5531% -.869453 -2.85394);--accent:lab(40.2894% -20.8004 -11.0703);--accent-2:lab(48.4965% -23.7738 -12.6527);--accent-bg:lab(95.5417% -6.08304 -3.25667);--accent-line:lab(84.1203% -12.1146 -6.46933);--warn:lab(55.5071% 24.3689 55.9288);--warn-bg:lab(96.6147% 2.67658 15.355);--warn-line:lab(83.8753% 4.48924 23.4822);--good:lab(49.3547% -38.3674 19.7976);--good-bg:lab(95.8995% -12.4059 6.35721);--good-line:lab(82.2436% -18.6901 9.58537);--bad:lab(46.203% 50.4327 30.0437);--bad-bg:lab(96.2429% 9.19581 4.95958);--bad-line:lab(83.199% 18.4887 10.0479)}}[data-theme=dark]{--bg:#090e12;--bg-2:#101419;--panel:#14191e;--line:#25292f;--line-soft:#1b2025;--ink:#f3f2ee;--ink-2:#cfceca;--ink-3:#8f9397;--ink-4:#5f6469;--accent:#48b7c2;--accent-2:#4fccd9;--accent-bg:#02353a;--accent-line:#1c565d;--warn-bg:#3d2a02;--warn-line:#64470e;--good-bg:#003219;--good-line:#1c5434;--bad-bg:#4f1a18;--bad-line:#7a3430;--shadow-1:0 0 0 .5px #ffffff0f;--shadow-2:0 1px 2px #00000080, 0 8px 24px #0006;--shadow-pop:0 12px 32px #0000008c, 0 1px 3px #0006}@supports (color:lab(0% 0 0)){[data-theme=dark]{--bg:lab(3.68668% -.634305 -2.8351);--bg-2:lab(6.17897% -.933118 -3.92346);--panel:lab(8.34128% -1.14378 -4.20596);--line:lab(16.464% -1.19568 -4.22768);--line-soft:lab(11.8226% -1.16985 -4.2166);--ink:lab(95.3914% -.159591 1.8988);--ink-2:lab(82.6314% -.158697 1.89945);--ink-3:lab(60.5531% -.869453 -2.85394);--ink-4:lab(41.9902% -1.06397 -3.55529);--accent:lab(68.3927% -29.759 -15.8368);--accent-2:lab(75.4392% -32.72 -17.4129);--accent-bg:lab(19.2321% -14.789 -7.8754);--accent-line:lab(33.2429% -17.8403 -9.49446);--warn-bg:lab(18.8024% 6.43079 26.0819);--warn-line:lab(32.7336% 8.40171 36.5645);--good-bg:lab(17.3806% -22.5344 11.6507);--good-line:lab(31.4406% -25.484 13.1366);--bad-bg:lab(18.0069% 25.1663 14.7585);--bad-line:lab(31.7367% 31.38 18.1075)}}[data-density=compact]{--row-y:8px;--row-x:12px;--gap:10px;--pad:18px;--topbar-h:46px}[data-density=comfy]{--row-y:16px;--row-x:20px;--gap:18px;--pad:32px;--topbar-h:56px}[data-typeface=humanist]{--font-ui:"Literata", Georgia, serif}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-ui);font-feature-settings:"ss01","cv11";color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:14px;line-height:1.45}button{font:inherit;color:inherit}a{color:inherit}input,textarea,select{font:inherit;color:inherit}::selection{background:var(--accent-bg);color:var(--ink)}.app{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.demo-banner{height:var(--banner-h);letter-spacing:.01em;color:#4c2900;color:lab(20.6887% 20.5176 40.4036);border-bottom:.5px solid var(--warn-line);background:repeating-linear-gradient(135deg,#fdecd1 0 12px,#fae5c3 12px 24px);background:repeating-linear-gradient(135deg,lab(94.2941% 2.68632 15.3633) 0 12px,lab(91.9885% 3.52108 19.3488) 12px 24px);flex-shrink:0;justify-content:center;align-items:center;gap:12px;padding:0 16px;font-size:12px;display:flex}[data-theme=dark] .demo-banner{color:#ffe0ac;color:lab(90.8527% 6.35555 31.7379);background:repeating-linear-gradient(135deg,#382500 0 12px,#452e00 12px 24px);background:repeating-linear-gradient(135deg,lab(16.4368% 8.25867 27.9872) 0 12px,lab(21.0706% 9.43849 35.803) 12px 24px)}.demo-banner b{font-weight:600}.demo-banner .dot{opacity:.6;background:currentColor;border-radius:50%;width:6px;height:6px}.topbar{height:var(--topbar-h);border-bottom:.5px solid var(--line);background:var(--panel);z-index:30;flex-shrink:0;align-items:center;gap:14px;padding:0 16px;display:flex;position:relative}.brand{letter-spacing:-.005em;align-items:center;gap:9px;font-size:15px;font-weight:600;display:flex}.brand-mark{background:var(--ink);width:22px;height:22px;color:var(--bg);font-family:var(--font-mono);border-radius:6px;flex-shrink:0;place-items:center;font-size:12px;font-weight:600;display:grid}.brand-mark:after{content:""}.topbar-divider{background:var(--line);width:1px;height:22px}.shell{flex:1;min-height:0;display:flex}.sidebar{width:var(--sidebar-w);border-right:.5px solid var(--line);background:var(--panel);flex-direction:column;flex-shrink:0;gap:6px;padding:18px 12px 12px;display:flex;overflow-y:auto}.main{background:var(--bg);flex:1;min-width:0;overflow:auto}.switcher{border:.5px solid var(--line);border-radius:var(--radius);background:var(--bg-2);flex-shrink:0;align-items:stretch;font-size:13px;display:flex;overflow:hidden}.switcher-cell{cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;justify-content:center;min-width:160px;padding:6px 14px 7px;transition:background .12s;display:flex}.switcher-cell:hover{background:var(--accent-bg)}.switcher-cell+.switcher-cell{border-left:.5px solid var(--line)}.switcher-cell .lbl{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-bottom:3px;font-size:10px;font-weight:600;line-height:1}.switcher-cell .val{color:var(--ink);align-items:center;gap:6px;font-weight:500;display:flex}.switcher-cell .val svg{color:var(--ink-3);flex-shrink:0}.nav-section{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);padding:14px 10px 4px;font-size:10px;font-weight:600}.nav-section:first-child{padding-top:4px}.nav-item{color:var(--ink-2);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;width:100%;padding:7px 10px;font-size:13.5px;display:flex;position:relative}.nav-item:hover{background:var(--bg-2);color:var(--ink)}.nav-item.active{background:var(--bg-2);color:var(--ink);font-weight:500}.nav-item.active:before{content:"";background:var(--accent);border-radius:0 2px 2px 0;width:2px;position:absolute;top:8px;bottom:8px;left:-12px}.nav-item .icon{width:16px;height:16px;color:var(--ink-3);flex-shrink:0}.nav-item.active .icon{color:var(--accent-2)}.nav-item .badge{color:var(--ink-3);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.nav-item .badge.dot{background:var(--accent);border-radius:50%;width:6px;height:6px;padding:0}.page{padding:var(--pad);max-width:1200px}.page-narrow{max-width:880px}.page-wide{max-width:1280px}.page-head{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px;display:flex}.page-eyebrow{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.02em;text-transform:uppercase;margin-bottom:6px;font-size:11px;font-weight:500}.page-title{letter-spacing:-.012em;color:var(--ink);margin:0;font-size:26px;font-weight:600;line-height:1.18}.page-sub{color:var(--ink-3);max-width:62ch;margin:8px 0 0}.card{background:var(--panel);border:.5px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.card-pad{padding:var(--pad)}.card-pad-sm{padding:18px}.card+.card{margin-top:var(--gap)}.card-head{padding:14px var(--pad);border-bottom:.5px solid var(--line-soft);justify-content:space-between;align-items:center;gap:14px;display:flex}.card-head h3{letter-spacing:-.005em;margin:0;font-size:14px;font-weight:600}.card-head .meta{color:var(--ink-4);font-size:12px;font-family:var(--font-mono)}.btn{letter-spacing:-.005em;cursor:pointer;height:32px;color:var(--ink);white-space:nowrap;background:0 0;border:.5px solid #0000;border-radius:8px;align-items:center;gap:7px;padding:0 14px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn-primary:hover:not(:disabled){background:oklch(from var(--ink) calc(l - .05) c h)}.btn-secondary{background:var(--panel);border-color:var(--line);color:var(--ink)}.btn-secondary:hover{background:var(--bg-2);border-color:var(--ink-4)}.btn-ghost{color:var(--ink-2)}.btn-ghost:hover{background:var(--bg-2);color:var(--ink)}.btn-accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-accent:hover{background:var(--accent-2);border-color:var(--accent-2)}.btn-sm{border-radius:6px;height:26px;padding:0 10px;font-size:12px}.btn-lg{border-radius:10px;height:40px;padding:0 18px;font-size:14px}.pill{letter-spacing:.005em;border:.5px solid var(--line);background:var(--panel);height:22px;color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 9px;font-size:11.5px;font-weight:500;display:inline-flex}.pill-mono{font-family:var(--font-mono);font-size:11px;font-weight:500}.pill-accent{color:var(--accent);border-color:var(--accent-line);background:var(--accent-bg)}.pill-warn{color:#704000;color:lab(32.1634% 26.6124 65.4536);border-color:var(--warn-line);background:var(--warn-bg)}.pill-good{color:#005d32;color:lab(34.2521% -38.9513 20.1915);border-color:var(--good-line);background:var(--good-bg)}.pill-bad{color:#90101a;color:lab(31.0834% 50.7648 32.8155);border-color:var(--bad-line);background:var(--bad-bg)}[data-theme=dark] .pill-warn{color:#f4ca84;color:lab(83.882% 8.70833 40.7804)}[data-theme=dark] .pill-good{color:#9be5b4;color:lab(85.0855% -31.3725 16.1132)}[data-theme=dark] .pill-bad{color:#ffb4ad;color:lab(80.2925% 37.3017 20.6804)}.cite{height:22px;font-family:var(--font-mono);color:var(--accent);background:var(--accent-bg);border:.5px solid var(--accent-line);cursor:pointer;vertical-align:baseline;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;margin:0 1px;padding:0 4px 0 8px;font-size:11px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.cite:hover{background:oklch(from var(--accent-bg) calc(l - .04) c h);border-color:var(--accent-2)}.cite.is-open{background:var(--accent);color:#fff;border-color:var(--accent)}[data-theme=dark] .cite.is-open{color:var(--bg)}.cite .cite-marker{width:14px;height:14px;color:var(--accent);background:#fff9;border-radius:3px;place-items:center;font-size:10px;font-weight:600;display:inline-grid}.cite.is-open .cite-marker{color:#fff;background:#ffffff2e}[data-theme=dark] .cite .cite-marker{background:#16454a;background:lab(26.1963% -14.8795 -7.91839)}.cite-card{border:.5px solid var(--accent-line);background:var(--accent-bg);border-radius:var(--radius);margin:10px 0;font-size:13px;animation:.18s both citeIn;overflow:hidden}@keyframes citeIn{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.cite-card-head{font-family:var(--font-mono);color:var(--accent);border-bottom:.5px solid var(--accent-line);background:oklch(from var(--accent-bg) calc(l + .015) c h);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;font-size:11px;display:flex}[data-theme=dark] .cite-card-head{background:oklch(from var(--accent-bg) calc(l + .04) c h)}.cite-card-head .cite-loc{align-items:center;gap:8px;display:flex}.cite-card-head .cite-loc b{color:var(--ink);font-weight:600}.cite-card-head a{color:var(--accent);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.cite-card-head a:hover{text-decoration:underline}.cite-card-body{font-family:var(--font-cite);color:var(--ink);background:var(--panel);text-wrap:pretty;padding:14px 16px;font-size:14.5px;line-height:1.55}[data-typeface=serif-cite-only] .cite-card-body{font-family:var(--font-cite)}[data-typeface=neutral] .cite-card-body{font-family:var(--font-ui)}.field{border:.5px solid var(--line);background:var(--panel);width:100%;height:36px;color:var(--ink);border-radius:8px;outline:none;padding:0 12px;font-size:13.5px;transition:border-color .12s,box-shadow .12s}.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px oklch(from var(--accent) l c h / .15)}textarea.field{resize:none;height:auto;padding:10px 12px;line-height:1.5}.disclaimer{color:var(--ink-3);border-top:.5px solid var(--line);background:var(--bg-2);align-items:flex-start;gap:8px;padding:10px 12px;font-size:12px;display:flex}.disclaimer .icon{width:14px;height:14px;color:var(--ink-3);flex-shrink:0;margin-top:2px}.progress-track{background:var(--line);border-radius:999px;height:4px;position:relative;overflow:hidden}.progress-fill{background:var(--accent);border-radius:inherit;transition:width .35s cubic-bezier(.3,.7,.4,1);position:absolute;top:0;bottom:0;left:0}.hub-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:18px;display:grid}.module-card{background:var(--panel);border:.5px solid var(--line);border-radius:var(--radius-lg);text-align:left;cursor:pointer;flex-direction:column;padding:18px 18px 16px;transition:border-color .12s,box-shadow .12s,transform .12s;display:flex;position:relative}.module-card:hover{border-color:var(--ink-4);box-shadow:var(--shadow-2);transform:translateY(-1px)}.module-card .step{font-family:var(--font-mono);color:var(--ink-4);letter-spacing:.02em;font-size:11px;font-weight:500}.module-card h4{letter-spacing:-.005em;margin:6px 0;font-size:15.5px;font-weight:600}.module-card p{color:var(--ink-3);margin:0;font-size:13px;line-height:1.5}.module-card .module-foot{border-top:.5px solid var(--line-soft);justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding-top:12px;display:flex}.module-card .module-foot .meta{color:var(--ink-3);font-size:12px;font-family:var(--font-mono)}.module-card.is-done{border-color:var(--good-line);background:var(--good-bg)}[data-theme=dark] .module-card.is-done{background:oklch(from var(--good-bg) calc(l - .02) c h)}.module-card.is-locked{opacity:.6;cursor:not-allowed}.module-card.is-locked:hover{border-color:var(--line);box-shadow:var(--shadow-1);transform:none}.context-band{border:.5px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-1);flex-wrap:wrap;gap:0;display:flex;overflow:hidden}.context-band>div{flex:1;min-width:160px;padding:14px 18px}.context-band>div+div{border-left:.5px solid var(--line-soft)}.context-band .lbl{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-bottom:5px;font-size:10px;font-weight:600}.context-band .val{color:var(--ink);font-size:14.5px;font-weight:500}.context-band .val .sub{color:var(--ink-3);margin-left:6px;font-size:13px;font-weight:400}.chat{height:calc(100vh - var(--banner-h) - var(--topbar-h));flex-direction:column;min-height:520px;display:flex}.chat-stream{padding:24px var(--pad) 18px;flex:1;overflow:auto}.chat-msg{gap:14px;max-width:880px;margin:0 auto 22px;display:flex}.chat-msg+.chat-msg{margin-top:8px}.avatar{border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:12px;font-weight:600;display:grid}.avatar.ai{background:var(--ink);color:var(--bg);position:relative}.avatar.ai:after{content:"";background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 1.5px var(--bg);border-radius:50%;position:absolute;top:-2px;right:-2px}.avatar.user{background:var(--bg-2);color:var(--ink-2);border:.5px solid var(--line)}.bubble{flex:1;min-width:0}.bubble .who{color:var(--ink-3);align-items:center;gap:8px;margin-bottom:4px;font-size:12px;display:flex}.bubble .who b{color:var(--ink-2);font-weight:600}.bubble .ai-tag{height:18px;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:var(--accent-bg);border:.5px solid var(--accent-line);border-radius:4px;align-items:center;gap:4px;padding:0 6px;font-size:10px;font-weight:500;display:inline-flex}.bubble .body{color:var(--ink);text-wrap:pretty;font-size:14.5px;line-height:1.6}.bubble .body p{margin:0 0 10px}.bubble .body p:last-child{margin-bottom:0}.bubble .body ul{margin:6px 0 10px;padding-left:20px}.bubble .body li{margin:3px 0}.chat-foot{color:var(--ink-4);flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;font-size:11.5px;display:flex}.chat-foot .verify{color:var(--ink-3);align-items:center;gap:5px;display:inline-flex}.chat-input-wrap{border-top:.5px solid var(--line);padding:14px var(--pad) 18px;background:var(--panel)}.chat-input{border:.5px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);max-width:880px;box-shadow:var(--shadow-2);flex-direction:column;margin:0 auto;transition:border-color .12s;display:flex}.chat-input:focus-within{border-color:var(--ink-4)}.chat-input textarea{resize:none;color:var(--ink);background:0 0;border:0;outline:none;min-height:44px;padding:12px 14px 4px;font-family:inherit;font-size:14px;line-height:1.5}.chat-input textarea::placeholder{color:var(--ink-4)}.chat-input .row{justify-content:space-between;align-items:center;gap:10px;padding:6px 8px 8px 14px;display:flex}.chat-input .row .hint{color:var(--ink-4);font-size:11.5px}.chat-input .row .send{gap:6px;display:flex}.suggested{flex-wrap:wrap;gap:8px;max-width:880px;margin:0 auto 14px;display:flex}.suggest-chip{border:.5px solid var(--line);background:var(--panel);color:var(--ink-2);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:7px 12px;font-size:12.5px;transition:border-color .12s,color .12s,background .12s;display:inline-flex}.suggest-chip:hover{border-color:var(--ink-4);color:var(--ink);background:var(--bg-2)}.suggest-chip svg{color:var(--ink-4)}.chat[data-layout=split]{flex-direction:row}.chat[data-layout=split] .chat-pane{flex-direction:column;flex:1;min-width:0;display:flex}.chat[data-layout=split] .source-pane{border-left:.5px solid var(--line);background:var(--bg-2);width:42%;min-width:340px;overflow:auto}.dock-fab{z-index:60;background:var(--ink);height:48px;color:var(--bg);cursor:pointer;font:inherit;letter-spacing:-.005em;border:0;border-radius:999px;align-items:center;gap:9px;padding:0 18px 0 14px;font-size:13.5px;font-weight:500;transition:transform .15s cubic-bezier(.3,.7,.4,1),box-shadow .15s;display:inline-flex;position:fixed;bottom:24px;right:24px;box-shadow:0 12px 32px #0f172a38,0 1px 2px #0f172a2e}.dock-fab:hover{transform:translateY(-1px);box-shadow:0 16px 40px #0f172a47,0 1px 2px #0f172a2e}.dock-fab .fab-mark{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:relative}.dock-fab .fab-mark:after{content:"";width:8px;height:8px;box-shadow:0 0 0 1.5px var(--ink);background:#6ed274;background:lab(76.4344% -44.8513 36.877);border-radius:50%;position:absolute;top:-1px;right:-1px}.dock-fab .fab-tag{height:18px;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:#ffffffd9;background:#ffffff24;border-radius:4px;align-items:center;padding:0 6px;font-size:10px;display:inline-flex}.dock{z-index:60;background:var(--panel);border:.5px solid var(--line);transform-origin:100% 100%;border-radius:18px;flex-direction:column;width:min(440px,100vw - 32px);height:min(640px,100vh - 96px);animation:.22s cubic-bezier(.3,.7,.4,1) both dockIn;display:flex;position:fixed;bottom:24px;right:24px;overflow:hidden;box-shadow:0 24px 60px #0f172a38,0 1px 3px #0f172a1a}[data-theme=dark] .dock{box-shadow:0 24px 60px #0009,0 0 0 .5px #ffffff0f}@keyframes dockIn{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.dock.is-expanded{width:min(720px,100vw - 32px);height:min(820px,100vh - 64px);bottom:24px;right:24px}.dock-head{border-bottom:.5px solid var(--line-soft);flex-shrink:0;align-items:center;gap:10px;padding:12px 12px 12px 16px;display:flex}.dock-head .dock-avatar{background:var(--ink);width:30px;height:30px;color:var(--bg);border-radius:8px;flex-shrink:0;place-items:center;font-size:13px;font-weight:600;display:grid;position:relative}.dock-head .dock-avatar:after{content:"";background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 1.5px var(--panel);border-radius:50%;position:absolute;top:-2px;right:-2px}.dock-head .dock-title{flex:1;min-width:0;line-height:1.2}.dock-head .dock-title .name{color:var(--ink);align-items:center;gap:6px;font-size:13.5px;font-weight:600;display:flex}.dock-head .dock-title .ctx{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:11.5px;overflow:hidden}.dock-head .dock-actions{gap:2px;display:flex}.dock-head .dock-btn{appearance:none;cursor:pointer;width:28px;height:28px;color:var(--ink-3);background:0 0;border:0;border-radius:6px;place-items:center;transition:background .12s,color .12s;display:grid}.dock-head .dock-btn:hover{background:var(--bg-2);color:var(--ink)}.dock-stream{flex-direction:column;flex:1;gap:18px;padding:18px 18px 8px;display:flex;overflow:auto}.dock-stream .chat-msg{max-width:none;margin:0}.dock-stream .bubble .body{font-size:13.5px;line-height:1.55}.dock-stream .cite-card-body{font-size:13.5px}.dock-suggested{flex-direction:column;gap:6px;padding:6px 18px 12px;display:flex}.dock-suggested .suggest-chip{justify-content:flex-start;width:100%;font-size:12.5px}.dock-input-wrap{border-top:.5px solid var(--line-soft);background:var(--panel);flex-shrink:0;padding:10px 12px 12px}.dock-input-wrap .chat-input{box-shadow:none;border-radius:12px;margin:0}.dock-input-wrap .chat-input textarea{min-height:38px;padding:10px 12px 4px;font-size:13.5px}.dock-input-wrap .dock-disclaimer{text-align:center;color:var(--ink-4);justify-content:center;align-items:center;gap:5px;margin-top:8px;font-size:10.5px;display:flex}.dock-chip-row{flex-wrap:wrap;gap:6px;padding:4px 12px 10px;display:flex}.dock-chip-row .suggest-chip{padding:5px 10px;font-size:11.5px}@media (max-width:520px){.dock,.dock.is-expanded{width:auto;height:min(600px,100vh - 16px);bottom:8px;left:8px;right:8px}.dock-fab{bottom:12px;right:12px}}.source-doc{max-width:560px;margin:0 auto;padding:22px 28px}.source-doc .doc-meta{font-family:var(--font-mono);color:var(--ink-4);letter-spacing:.02em;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;font-size:11px;display:flex}.source-doc h2{font-family:var(--font-cite);letter-spacing:-.005em;margin:0 0 4px;font-size:18px;font-weight:600}.source-doc h3{font-family:var(--font-cite);color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;margin:18px 0 8px;font-size:14.5px;font-weight:600}.source-doc p{font-family:var(--font-cite);color:var(--ink);text-wrap:pretty;margin:0 0 10px;font-size:14.5px;line-height:1.6}.source-doc mark{color:inherit;background:#ffe291;background:lab(91.1054% 3.75423 50.3636);border-radius:2px;padding:2px 1px;box-shadow:inset 0 -1px #ecaa0b;box-shadow:inset 0 -1px lab(74.4754% 17.3326 75.9449)}[data-theme=dark] .source-doc mark{background:#664600;background:lab(32.5922% 15.0192 64.8522);box-shadow:inset 0 -1px #966800;box-shadow:inset 0 -1px lab(47.7055% 16.6487 82.5692)}.study-grid{grid-template-columns:240px 1fr;gap:28px;margin-top:18px;display:grid}.study-toc{align-self:start;font-size:13px;position:sticky;top:18px}.study-toc .toc-title{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-bottom:10px;font-size:10px;font-weight:600}.study-toc a{color:var(--ink-3);border-left:2px solid #0000;border-radius:6px;padding:5px 10px;text-decoration:none;display:block}.study-toc a:hover{color:var(--ink);background:var(--bg-2)}.study-toc a.active{color:var(--ink);border-left-color:var(--accent);background:var(--bg-2);font-weight:500}.study-content section{margin-bottom:32px;padding-bottom:8px}.study-content h2{letter-spacing:-.012em;color:var(--ink);margin:0 0 4px;font-size:18px;font-weight:600}.study-content .section-eyebrow{font-family:var(--font-mono);color:var(--ink-4);letter-spacing:.02em;margin-bottom:8px;font-size:11px}.study-content p{color:var(--ink);text-wrap:pretty;margin:0 0 10px;font-size:14.5px;line-height:1.65}.study-content ul{margin:6px 0 12px;padding-left:20px}.study-content li{margin:5px 0;font-size:14.5px;line-height:1.55}.study-callout{background:var(--bg-2);border:.5px solid var(--line);border-left:2px solid var(--accent);border-radius:6px;margin:12px 0;padding:12px 14px;font-size:13.5px}.study-callout .lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-2);margin-bottom:4px;font-size:10px;font-weight:600}.faq-list{flex-direction:column;gap:0;margin-top:14px;display:flex}.faq-item{border:.5px solid var(--line);background:var(--panel);border-radius:var(--radius);transition:border-color .12s;overflow:hidden}.faq-item+.faq-item{margin-top:10px}.faq-item.is-open{border-color:var(--ink-4);box-shadow:var(--shadow-2)}.faq-q{cursor:pointer;text-align:left;width:100%;color:var(--ink);background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.faq-q .q-text{letter-spacing:-.005em;font-size:14.5px;font-weight:500}.faq-q .chev{color:var(--ink-3);transition:transform .2s}.faq-item.is-open .chev{transform:rotate(180deg)}.faq-a{color:var(--ink-2);text-wrap:pretty;padding:0 18px 16px;font-size:14px;line-height:1.6}.faq-tags{flex-wrap:wrap;gap:6px;padding:0 18px 14px;display:flex}.quiz-shell{max-width:780px;margin:0 auto}.quiz-progress{background:var(--panel);border:.5px solid var(--line);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;padding:14px 18px;display:flex}.quiz-progress .step{font-family:var(--font-mono);color:var(--ink-3);font-size:11.5px}.quiz-progress .progress-track{flex:1;max-width:none}.quiz-card{background:var(--panel);border:.5px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);padding:28px 30px}.quiz-q{letter-spacing:-.008em;color:var(--ink);text-wrap:pretty;margin:8px 0 18px;font-size:18px;font-weight:500;line-height:1.4}.quiz-options{flex-direction:column;gap:8px;display:flex}.quiz-opt{border:.5px solid var(--line);background:var(--panel);cursor:pointer;text-align:left;width:100%;color:var(--ink);border-radius:10px;align-items:flex-start;gap:12px;padding:13px 14px;font-size:14px;line-height:1.5;transition:border-color .12s,background .12s;display:flex}.quiz-opt:hover{border-color:var(--ink-4);background:var(--bg-2)}.quiz-opt.is-selected{border-color:var(--accent);background:var(--accent-bg)}.quiz-opt.is-correct{border-color:var(--good-line);background:var(--good-bg)}.quiz-opt.is-wrong{border-color:var(--bad-line);background:var(--bad-bg)}.quiz-opt .letter{width:22px;height:22px;font-family:var(--font-mono);background:var(--bg-2);color:var(--ink-2);border:.5px solid var(--line);border-radius:6px;flex-shrink:0;place-items:center;margin-top:1px;font-size:11px;font-weight:600;display:grid}.quiz-opt.is-selected .letter{background:var(--accent);color:#fff;border-color:var(--accent)}.quiz-opt.is-correct .letter{background:var(--good);color:#fff;border-color:var(--good)}.quiz-opt.is-wrong .letter{background:var(--bad);color:#fff;border-color:var(--bad)}.quiz-opt .opt-body{flex:1;min-width:0}.quiz-feedback{background:var(--bg-2);border:.5px solid var(--line);border-radius:var(--radius);margin-top:18px;padding:16px 18px;font-size:13.5px;line-height:1.55}.quiz-feedback.good{background:var(--good-bg);border-color:var(--good-line)}.quiz-feedback.bad{background:var(--bad-bg);border-color:var(--bad-line)}.quiz-feedback .lbl{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;font-size:10px;font-weight:600}.quiz-feedback.good .lbl{color:#005d32;color:lab(34.2521% -38.9513 20.1915)}.quiz-feedback.bad .lbl{color:#90101a;color:lab(31.0834% 50.7648 32.8155)}[data-theme=dark] .quiz-feedback.good .lbl{color:#9be5b4;color:lab(85.0855% -31.3725 16.1132)}[data-theme=dark] .quiz-feedback.bad .lbl{color:#ffb4ad;color:lab(80.2925% 37.3017 20.6804)}.quiz-actions{justify-content:space-between;align-items:center;gap:12px;margin-top:18px;display:flex}.cert-stage{background:var(--bg-2);border-top:.5px solid var(--line);place-items:center;padding:32px;display:grid}.certificate{background:var(--panel);border:.5px solid var(--line);width:100%;max-width:760px;box-shadow:var(--shadow-pop);font-family:var(--font-cite);text-wrap:pretty;border-radius:6px;padding:48px 56px 40px;position:relative}.certificate:before,.certificate:after{content:"";border:.5px solid var(--line);pointer-events:none;border-radius:3px;position:absolute;inset:14px}.certificate:after{opacity:.5;border-style:dashed;inset:18px}.cert-eyebrow{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);text-align:center;margin-bottom:10px;font-size:11px}.cert-title{letter-spacing:-.012em;text-align:center;color:var(--ink);margin:0 0 4px;font-size:30px;font-weight:600}.cert-sub{text-align:center;color:var(--ink-3);font-size:14px;font-family:var(--font-ui);margin:0 0 26px}.cert-name{text-align:center;color:var(--ink);margin:18px 0 8px;font-size:34px;font-style:italic;font-weight:600}.cert-body{text-align:center;color:var(--ink-2);margin:0 0 22px;font-size:15px;line-height:1.6}.cert-body b{color:var(--ink);font-style:normal;font-weight:600}.cert-grid{border-top:.5px solid var(--line-soft);font-family:var(--font-ui);grid-template-columns:repeat(2,1fr);gap:14px 28px;padding-top:18px;display:grid}.cert-grid .lbl{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-bottom:3px;font-size:10px;font-weight:600}.cert-grid .val{color:var(--ink);font-size:13.5px;font-family:var(--font-mono)}.cert-foot{font-family:var(--font-ui);color:var(--ink-4);justify-content:space-between;align-items:center;gap:14px;margin-top:18px;font-size:11.5px;display:flex}.cert-seal{border:.5px solid var(--accent-line);background:var(--accent-bg);width:64px;height:64px;font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.08em;text-align:center;border-radius:50%;place-items:center;font-size:9px;font-weight:600;line-height:1.2;display:grid}.amendment-banner{background:var(--warn-bg);border:.5px solid var(--warn-line);border-radius:var(--radius);color:#4c2900;color:lab(20.6887% 20.5176 40.4036);align-items:flex-start;gap:12px;margin-bottom:16px;padding:14px 16px;font-size:13.5px;display:flex}[data-theme=dark] .amendment-banner{color:#ffe0ac;color:lab(90.8527% 6.35555 31.7379)}.amendment-banner .icon{flex-shrink:0;margin-top:2px}.amendment-banner b{color:var(--ink);font-weight:600}.amendment-banner .actions{flex-shrink:0;gap:8px;margin-left:auto;display:flex}.popover{background:var(--panel);border:.5px solid var(--line);border-radius:var(--radius);min-width:280px;box-shadow:var(--shadow-pop);z-index:50;animation:.14s both popIn;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden}@keyframes popIn{0%{opacity:0;transform:translateY(-4px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.popover-section{padding:6px}.popover-section+.popover-section{border-top:.5px solid var(--line-soft)}.popover-head{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);padding:8px 10px 6px;font-size:10px;font-weight:600}.popover-item{cursor:pointer;text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;display:flex}.popover-item:hover{background:var(--bg-2)}.popover-item.active{background:var(--accent-bg);color:var(--accent)}.popover-item .meta{color:var(--ink-4);font-size:11.5px;font-family:var(--font-mono);margin-left:auto}.popover-item .check{color:var(--accent);margin-left:auto}.row{align-items:center;gap:var(--gap);display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--gap);display:flex}.stack{gap:var(--gap);flex-direction:column;display:flex}.spacer{flex:1}.muted{color:var(--ink-3)}.mono{font-family:var(--font-mono)}.serif{font-family:var(--font-cite)}.kbd{min-width:18px;height:18px;font-family:var(--font-mono);background:var(--bg-2);border:.5px solid var(--line);color:var(--ink-3);border-bottom-width:1.5px;border-radius:4px;place-items:center;padding:0 4px;font-size:10.5px;display:inline-grid}@media (max-width:880px){.study-grid{grid-template-columns:1fr}.study-toc{position:static}}.consulta-layout{height:calc(100vh - var(--topbar-h) - var(--banner-h));grid-template-columns:45fr 55fr;display:grid;overflow:hidden}.chat-panel{border-right:1px solid var(--line);background:var(--panel);flex-direction:column;min-height:0;display:flex}.chat-panel-stream{flex-direction:column;flex:1;gap:0;padding:20px 16px;display:flex;overflow-y:auto}.chat-panel-stream .chat-msg{max-width:none}.chat-panel-foot{border-top:1px solid var(--line);background:var(--panel);padding:12px 16px}.pdf-viewer{background:var(--bg-2);flex-direction:column;min-height:0;display:flex;overflow:hidden}.pdf-canvas-wrap{flex:1;justify-content:center;padding:16px;display:flex;position:relative;overflow:auto}.pdf-canvas-wrap canvas{box-shadow:var(--shadow-2);display:block}.pdf-highlight{pointer-events:none;background:#ffdc0059;border:2px solid #c8a000b3;border-radius:2px;position:absolute}.pdf-nav{border-top:1px solid var(--line);background:var(--panel);justify-content:center;align-items:center;gap:16px;padding:10px;font-size:13px;display:flex}.pdf-nav button{border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:4px 10px;font-size:13px}.pdf-nav button:disabled{opacity:.4;cursor:default}.pdf-loading,.pdf-error{color:var(--ink-3);flex:1;justify-content:center;align-items:center;font-size:14px;display:flex}.pdf-error{color:var(--bad)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
