:root{--color-blue-100: #e8f2ff;--color-blue-200: #c5e0ff;--color-blue-300: #8fbfff;--color-blue-400: #598bff;--color-blue-500: #3366e6;--color-blue-600: #2952b8;--color-green-100: #e6f9f4;--color-green-200: #b3f0e0;--color-green-300: #66e3c4;--color-green-400: #00b894;--color-green-500: #009876;--color-green-600: #007a5e;--color-red-100: #ffe8ed;--color-red-200: #ffc5d1;--color-red-300: #ff8fa8;--color-red-400: #ff3d71;--color-red-500: #e6124a;--color-red-600: #b80e3a;--color-violet-100: #f3ebfe;--color-violet-200: #e0cbfd;--color-violet-300: #c19bfb;--color-violet-400: #732fed;--color-violet-500: #5d24be;--color-violet-600: #4a1d97;--color-yellow-100: #fff5e6;--color-yellow-200: #ffe4b3;--color-yellow-300: #ffc966;--color-yellow-400: #ffa940;--color-yellow-500: #e68a1a;--color-yellow-600: #945911;--color-neutrals-0: #ffffff;--color-neutrals-50: #f7f9fc;--color-neutrals-100: #f0f3f8;--color-neutrals-200: #edf1f7;--color-neutrals-300: #e4e9f2;--color-neutrals-400: #c5cdd9;--color-neutrals-500: #8f9bb3;--color-neutrals-600: #687084;--color-neutrals-700: #4a5568;--color-neutrals-800: #2e3a59;--color-neutrals-900: #222b45;--color-neutrals-950: #1a202e;--space-0: 0px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--space-9: 48px;--space-0-5: 2px;--font-size-heading-1: 32px;--font-size-heading-2: 24px;--font-size-heading-3: 20px;--font-size-heading-4: 16px;--font-size-heading-5: 14px;--font-size-heading-6: 12px;--font-size-body-1: 20px;--font-size-body-2: 16px;--font-size-body-3: 14px;--font-size-body-4: 12px;--font-size-button-1: 16px;--font-size-button-2: 14px;--font-size-label-1: 14px;--font-size-label-2: 12px;--font-weight-heading-1: 600;--font-weight-heading-2: 600;--font-weight-heading-3: 500;--font-weight-heading-4: 500;--font-weight-heading-5: 500;--font-weight-heading-6: 500;--font-weight-body-1: 400;--font-weight-body-2: 400;--font-weight-body-3: 400;--font-weight-body-4: 400;--font-weight-button-1: 400;--font-weight-button-2: 400;--font-weight-label-1: 500;--font-weight-label-2: 500;--line-height-heading-1: 1.4;--line-height-heading-2: 1.4;--line-height-heading-3: 1.4;--line-height-heading-4: 1.4;--line-height-heading-5: 1.4;--line-height-heading-6: 1.4;--line-height-body-1: 26px;--line-height-body-2: 22px;--line-height-body-3: 20px;--line-height-body-4: 18px;--line-height-button-1: 18px;--line-height-button-2: 16px;--line-height-label-1: 16px;--line-height-label-2: 16px;--letter-spacing-heading-1: -.35px;--letter-spacing-heading-2: -.35px;--letter-spacing-heading-3: -.35px;--letter-spacing-heading-4: 0px;--letter-spacing-heading-5: 0px;--letter-spacing-heading-6: .6px;--letter-spacing-body-1: 0px;--letter-spacing-body-2: 0px;--letter-spacing-body-3: 0px;--letter-spacing-body-4: 0px;--letter-spacing-button-1: 0px;--letter-spacing-button-2: 0px;--letter-spacing-label-1: 0px;--letter-spacing-label-2: 0px;--border-radius-1: 4px;--border-radius-2: 8px;--border-radius-3: 12px;--border-radius-4: 16px;--border-radius-5: 20px;--border-radius-full: 20000px;--border-width-base: 1px;--border-width-drop-area: 2px;--border-style-base: solid;--border-style-drop-area: dashed;--font-family: Inter;--transition-duration: .15s;--color-background-base: var(--color-neutrals-0);--color-background-subtle: var(--color-neutrals-50);--color-background-secondary: var(--color-neutrals-100);--color-background-active: var(--color-neutrals-0);--color-background-active-hover: var(--color-neutrals-100);--color-background-inactive: var(--color-neutrals-200);--color-background-inverse: var(--color-neutrals-900);--color-background-brand: var(--color-violet-400);--color-background-brand-hover: var(--color-violet-500);--color-background-brand-subtle: var(--color-violet-100);--color-background-error: var(--color-red-400);--color-background-error-hover: var(--color-red-500);--color-background-error-subtle: var(--color-red-100);--color-background-success-subtle: var(--color-green-100);--color-background-success: var(--color-green-400);--color-background-success-hover: var(--color-green-500);--color-background-warning-subtle: var(--color-yellow-100);--color-background-warning: var(--color-yellow-400);--color-background-warning-hover: var(--color-yellow-500);--color-background-info-subtle: var(--color-blue-100);--color-background-info: var(--color-blue-400);--color-background-info-hover: var(--color-blue-500);--color-background-input: var(--color-neutrals-50);--color-background-scrollbar: var(--color-neutrals-0);--color-background-scrollbar-thumb: var(--color-neutrals-300);--color-text-base: var(--color-neutrals-900);--color-text-subtle: var(--color-neutrals-600);--color-text-strong: var(--color-neutrals-950);--color-text-inactive: var(--color-neutrals-400);--color-text-on-background: var(--color-neutrals-0);--color-text-brand: var(--color-violet-400);--color-text-brand-hover: var(--color-violet-500);--color-text-error: var(--color-red-400);--color-text-error-on-background: var(--color-red-600);--color-text-success: var(--color-green-400);--color-text-success-on-background: var(--color-green-600);--color-text-warning: var(--color-yellow-400);--color-text-warning-on-background: var(--color-yellow-600);--color-text-info: var(--color-blue-400);--color-text-info-on-background: var(--color-blue-600);--color-border-base: var(--color-neutrals-300);--color-border-subtle: var(--color-neutrals-200);--color-border-strong: var(--color-neutrals-400);--color-border-inactive: var(--color-neutrals-100);--color-border-brand: var(--color-violet-400);--color-border-brand-hover: var(--color-violet-500);--color-border-brand-subtle: var(--color-violet-300);--color-border-error: var(--color-red-300);--color-border-success: var(--color-green-300);--color-border-warning: var(--color-yellow-300);--color-border-info: var(--color-blue-300);--color-icon-base: var(--color-neutrals-900);--color-icon-subtle: var(--color-neutrals-600);--color-icon-strong: var(--color-neutrals-950);--color-icon-inactive: var(--color-neutrals-400);--color-icon-on-background: var(--color-neutrals-0);--color-icon-brand: var(--color-violet-400);--color-icon-brand-hover: var(--color-violet-500);--color-icon-error: var(--color-red-400);--color-icon-error-on-background: var(--color-red-600);--color-icon-success: var(--color-green-400);--color-icon-success-on-background: var(--color-green-600);--color-icon-warning: var(--color-yellow-400);--color-icon-warning-on-background: var(--color-yellow-600);--color-icon-info: var(--color-blue-400);--color-icon-info-on-background: var(--color-blue-600);--sunhat-border-width: var(--border-width-base);--sunhat-border-style: var(--border-style-base);--sunhat-border-color: var(--color-border-base);--sunhat-border-color-danger: var(--color-background-error);--sunhat-border-color-primary: var(--color-violet-600);--sunhat-border-width-drop-area: var(--border-width-drop-area);--sunhat-border-style-drop-area: var(--border-style-drop-area);--sunhat-border-color-drop-area: #cccccc;--animation-duration-collapse: .2s;--animation-easing-enter: ease-out;--animation-easing-leave: ease-in;--sunhat-border: var(--sunhat-border-width) var(--sunhat-border-style) var(--sunhat-border-color);--padding-input: calc(var(--space-1) + 1px) var(--space-2)}:root{--font-family-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-family-code: "JetBrains Mono", var(--font-family-mono);--shadow-xs: 0 1px 2px rgba(10, 9, 13, .04);--shadow-sm: 0 1px 2px rgba(10, 9, 13, .04), 0 1px 3px rgba(10, 9, 13, .08);--shadow-md: 0 2px 4px rgba(10, 9, 13, .04), 0 4px 8px rgba(10, 9, 13, .08);--shadow-lg: 0 4px 8px rgba(10, 9, 13, .04), 0 8px 24px rgba(10, 9, 13, .08);--shadow-focus-brand: 0 0 0 3px rgba(115, 47, 237, .16);--shadow-focus-error: 0 0 0 3px rgba(255, 61, 113, .16)}:root{--font-family-serif: Georgia, "Times New Roman", Times, serif;--color-box-review: #d9a13b;--color-box-blocked: #d3455b;--color-bar-warning: #e8b451;--color-border-blocked-card: #e8b3bd;--color-doc-canvas: #f6f5f3;--chip-xls-bg: #e8f6ee;--chip-xls-fg: #1a7f4b;--chip-doc-bg: #e8eefb;--chip-doc-fg: #2b52a8;--chip-pdf-bg: #fbeaea;--chip-pdf-fg: #a83232;--chip-md-bg: #f3f0ea;--chip-md-fg: #6b5c3e;--chip-txt-bg: #eef1f4;--chip-txt-fg: #4a5563;--chip-html-bg: #eaf4fb;--chip-html-fg: #2a6f97;--chip-json-bg: #f4eef8;--chip-json-fg: #6b4f8a;--chip-ppt-bg: #f8efe4;--chip-ppt-fg: #a85b12}@font-face{font-family:InterVariable;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/InterVariable.woff2) format("woff2")}@font-face{font-family:InterVariable;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/InterVariable-Italic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/InterVariable.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/InterVariable-Italic.woff2) format("woff2")}.welcome{--welcome-ease: cubic-bezier(.22, 1, .36, 1);--welcome-enter: .9s;--welcome-stagger: .14s;--welcome-leave: .36s;position:relative;display:block;min-height:100dvh;overflow:hidden;background:linear-gradient(180deg,var(--color-background-base) 0%,var(--color-background-subtle) 55%,var(--color-background-brand-subtle) 100%);color:var(--color-text-base)}.welcome-sky{position:absolute;inset:0;pointer-events:none}.welcome-glow{position:absolute;width:46vmax;height:46vmax;border-radius:var(--border-radius-full);filter:blur(72px);opacity:.55;animation:welcome-drift 26s ease-in-out infinite alternate}.welcome-glow--sun{top:-18vmax;right:-12vmax;background:var(--color-background-warning-subtle)}.welcome-glow--sea{bottom:-22vmax;left:-14vmax;background:var(--color-background-brand-subtle);animation-duration:32s;animation-direction:alternate-reverse}.welcome-stage{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-7);min-height:100dvh;padding:var(--space-9) var(--space-6)}.welcome-mark{display:grid;place-items:center;width:64px;height:64px;border-radius:var(--border-radius-full);background:var(--color-background-base);box-shadow:var(--shadow-md),0 0 0 8px var(--color-background-brand-subtle);animation:welcome-breathe 5.5s ease-in-out infinite}.welcome-step{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);width:100%;max-width:520px;text-align:center;transition:opacity var(--welcome-leave) ease-in,transform var(--welcome-leave) ease-in,filter var(--welcome-leave) ease-in}.welcome-step--leaving{opacity:0;transform:translateY(-6px);filter:blur(2px)}.welcome-step h1{margin:0;font-size:var(--font-size-heading-3);font-weight:var(--font-weight-heading-3);line-height:var(--line-height-heading-3);color:var(--color-text-strong);text-wrap:balance}.welcome-line{opacity:0;animation:welcome-rise var(--welcome-enter) var(--welcome-ease) forwards;animation-delay:calc(var(--i, 0) * var(--welcome-stagger) + .12s)}.welcome-line--soft{margin:0;max-width:440px;font-size:var(--font-size-body-1);line-height:var(--line-height-body-1);color:var(--color-text-subtle);text-wrap:pretty}.welcome-form{display:flex;gap:var(--space-2);width:100%;max-width:400px;margin-top:var(--space-3)}.welcome-input{flex:1;min-width:0;transition:box-shadow var(--transition-duration) ease-out,border-color var(--transition-duration) ease-out}.welcome-input:focus{box-shadow:var(--shadow-focus-brand)}.welcome-photo{margin-top:var(--space-2)}.welcome-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-top:var(--space-3)}.welcome-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-top:var(--space-2)}.welcome-chip{padding:var(--space-1) var(--space-4);border:1px solid var(--color-border-base);border-radius:var(--border-radius-full);background:var(--color-background-base);color:var(--color-text-base);font:inherit;font-size:var(--font-size-body-3);cursor:pointer;transition:background var(--transition-duration) ease-out,border-color var(--transition-duration) ease-out,color var(--transition-duration) ease-out,transform .24s var(--welcome-ease)}.welcome-chip:hover{border-color:var(--color-border-brand-subtle);transform:translateY(-1px)}.welcome-chip--on{border-color:var(--color-border-brand);background:var(--color-background-brand-subtle);color:var(--color-text-brand)}.welcome-chip:focus-visible,.welcome-quiet:focus-visible{outline:none;box-shadow:var(--shadow-focus-brand)}.welcome-quiet{padding:var(--space-1) var(--space-2);border:none;border-radius:var(--border-radius-2);background:none;color:var(--color-text-subtle);font:inherit;font-size:var(--font-size-body-3);cursor:pointer}.welcome-quiet:hover{color:var(--color-text-brand)}.welcome-error{margin:0;font-size:var(--font-size-body-3);color:var(--color-text-error)}.welcome-dots{display:flex;gap:var(--space-2);margin:0;padding:0;list-style:none}.welcome-dot{width:6px;height:6px;border-radius:var(--border-radius-full);background:var(--color-border-strong);transition:width .6s var(--welcome-ease),background .6s var(--welcome-ease)}.welcome-dot--done{background:var(--color-border-brand-subtle)}.welcome-dot--on{width:22px;background:var(--color-background-brand)}@keyframes welcome-rise{0%{opacity:0;transform:translateY(10px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}@keyframes welcome-breathe{0%,to{transform:scale(1);box-shadow:var(--shadow-md),0 0 0 8px var(--color-background-brand-subtle)}50%{transform:scale(1.035);box-shadow:var(--shadow-md),0 0 0 14px var(--color-background-brand-subtle)}}@keyframes welcome-drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(-6vmax,4vmax,0) scale(1.08)}}@media(prefers-reduced-motion:reduce){.welcome-line{opacity:1;animation:none}.welcome-glow,.welcome-mark{animation:none}.welcome-step,.welcome-dot,.welcome-chip{transition:none}.welcome-step--leaving{transform:none;filter:none}}app-framework-review{display:block;font-size:var(--font-size-body-3);line-height:var(--line-height-body-3)}app-framework-review.shell,app-framework-review.fill{display:flex;flex-direction:column;height:100%;min-height:0}app-framework-review .split{min-width:0;min-height:0}app-framework-review.shell .split{display:flex;flex:1;flex-direction:column}app-framework-review.shell .split.open{display:grid;grid-template-columns:minmax(0,1fr) var(--space-3) var(--panel);align-items:stretch}app-framework-review.shell .split-main{flex:1;overflow:auto}app-framework-review.shell .questions{max-height:none}app-framework-review.fill .split,app-framework-review.fill .split-main{display:flex;flex:1;flex-direction:column;min-height:0}app-framework-review.fill .split-main{overflow:hidden}app-framework-review.fill .questions,app-framework-review.fill .doc-view,app-framework-review.fill .doc-gates{flex:1;max-height:none}app-framework-review .split-main,app-framework-review .doc-panel,app-framework-review .doc-view,app-framework-review .doc-gates{min-width:0;min-height:0}app-framework-review .split.open .split-main{overflow:auto}app-framework-review .split.dragging{cursor:col-resize;-webkit-user-select:none;user-select:none}app-framework-review .split.dragging .doc-view{pointer-events:none}app-framework-review .gutter{position:relative;cursor:col-resize;touch-action:none;outline:none}app-framework-review .gutter:before{content:"";position:absolute;inset:0 auto 0 50%;width:var(--space-0-5);transform:translate(-50%);border-radius:var(--border-radius-1);background:transparent;transition:background var(--transition-duration) ease}app-framework-review .gutter:hover:before,app-framework-review .gutter:focus-visible:before,app-framework-review .split.dragging .gutter:before{background:var(--color-border-brand)}app-framework-review .head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}app-framework-review .title{margin:0;color:var(--color-text-strong);font-size:var(--font-size-heading-4);font-weight:600;line-height:var(--line-height-heading-4)}app-framework-review .sub{margin:var(--space-0-5) 0 0;color:var(--color-text-subtle);font-size:var(--font-size-body-4);line-height:var(--line-height-body-4)}app-framework-review .sub strong{color:var(--color-text-base);font-weight:500}app-framework-review .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-2);margin:var(--space-3) 0}app-framework-review .stats+.sub{margin:calc(var(--space-2) * -1) 0 var(--space-3)}app-framework-review .stat{display:flex;flex-direction:column;gap:var(--space-0-5);min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-base);border-radius:var(--border-radius-2);background:var(--color-background-subtle)}app-framework-review .stat .n{color:var(--n, var(--color-text-strong));font-size:var(--font-size-heading-3);font-weight:600;line-height:1.2;letter-spacing:var(--letter-spacing-heading-3);font-variant-numeric:tabular-nums}app-framework-review .stat .l{overflow:hidden;color:var(--color-text-subtle);font-size:var(--font-size-body-4);line-height:var(--line-height-body-4);text-overflow:ellipsis;white-space:nowrap}app-framework-review .stat--success{--n: var(--color-text-success)}app-framework-review .stat--warning{--n: var(--color-text-warning)}app-framework-review .stat--brand{--n: var(--color-text-brand);border-color:var(--color-border-brand-subtle);background:var(--color-background-brand-subtle)}app-framework-review .tabs{display:flex;gap:var(--space-1);margin:var(--space-1) 0 var(--space-3);border-bottom:1px solid var(--color-border-base)}app-framework-review .tabs button{display:inline-flex;align-items:center;gap:var(--space-1);margin-bottom:-1px;padding:var(--space-2) var(--space-3);border:0;border-bottom:2px solid transparent;border-radius:var(--border-radius-1) var(--border-radius-1) 0 0;background:none;color:var(--color-text-subtle);font:inherit;font-weight:500;cursor:pointer;transition:color var(--transition-duration) ease,background-color var(--transition-duration) ease}app-framework-review .tabs button:hover{color:var(--color-text-base);background:var(--color-background-subtle)}app-framework-review .tabs button:focus-visible{box-shadow:var(--shadow-focus-brand)}app-framework-review .tabs button.on{border-bottom-color:var(--color-border-brand);color:var(--color-text-strong)}app-framework-review .count{display:inline-flex;align-items:center;justify-content:center;min-width:var(--space-5);padding:0 var(--space-1);border-radius:var(--border-radius-full);background:var(--color-background-subtle);color:var(--color-text-subtle);font-size:var(--font-size-body-4);font-weight:500;line-height:var(--line-height-body-4);font-variant-numeric:tabular-nums}app-framework-review .tabs button.on .count{background:var(--color-background-brand-subtle);color:var(--color-text-brand)}app-framework-review .count.alert{background:var(--color-background-warning-subtle);color:var(--color-text-warning-on-background)}app-framework-review .toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}app-framework-review .toolbar input[type=search]{flex:1 1 220px;min-width:0}app-framework-review .toolbar select{width:auto;max-width:240px}app-framework-review .check{display:inline-flex;align-items:center;gap:var(--space-1);height:var(--space-7);padding:0 var(--space-1);color:var(--color-text-subtle);font-size:var(--font-size-body-3);cursor:pointer;-webkit-user-select:none;user-select:none}app-framework-review .check:hover{color:var(--color-text-base)}app-framework-review .check input{margin:0;accent-color:var(--color-background-brand)}app-framework-review .questions{display:flex;flex-direction:column;gap:var(--space-2);max-height:720px;overflow:auto}app-framework-review .q{border:1px solid var(--color-border-base);border-radius:var(--border-radius-2);background:var(--color-background-base);transition:border-color var(--transition-duration) ease}app-framework-review .q:hover,app-framework-review .q[open]{border-color:var(--color-border-strong)}app-framework-review .q.issue{box-shadow:inset 3px 0 0 var(--color-border-warning)}app-framework-review .q>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:calc(var(--border-radius-2) - 1px);cursor:pointer;list-style:none}app-framework-review .q>summary::-webkit-details-marker{display:none}app-framework-review .q>summary:hover{background:var(--color-background-subtle)}app-framework-review .q>summary:focus-visible{box-shadow:var(--shadow-focus-brand)}app-framework-review .q[open]>summary{border-bottom:1px solid var(--color-border-base);border-bottom-left-radius:0;border-bottom-right-radius:0}app-framework-review .code{display:inline-flex;align-items:center;padding:var(--space-0-5) var(--space-1);border:0;border-radius:var(--border-radius-1);background:var(--color-background-subtle);color:var(--color-text-base);font-family:var(--font-family-mono);font-size:var(--font-size-body-4);font-weight:600;line-height:var(--line-height-body-4);white-space:nowrap}app-framework-review button.code{color:var(--color-text-brand);cursor:pointer}app-framework-review button.code:hover{background:var(--color-background-brand-subtle);color:var(--color-text-brand-hover)}app-framework-review .qtext{overflow:hidden;color:var(--color-text-base);text-overflow:ellipsis;white-space:nowrap}app-framework-review .q[open] .qtext{white-space:normal}app-framework-review .chips{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-1)}app-framework-review .chip-btn{display:inline-flex;padding:0;border:0;border-radius:var(--border-radius-1);background:none;font:inherit;cursor:pointer}app-framework-review .chip-btn:hover{box-shadow:var(--shadow-focus-brand)}app-framework-review .qbody{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}app-framework-review .meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--font-size-body-4);line-height:var(--line-height-body-4)}app-framework-review .section{color:var(--color-text-subtle)}app-framework-review .prop{display:inline-flex;gap:var(--space-1);padding:0 var(--space-2);border:1px solid var(--color-border-base);border-radius:var(--border-radius-full);color:var(--color-text-base)}app-framework-review .pl{color:var(--color-text-subtle)}app-framework-review .type-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}app-framework-review .type-row label{color:var(--color-text-subtle)}app-framework-review .type-row select{width:auto}app-framework-review .answer{margin:0;color:var(--color-text-base);white-space:pre-wrap}app-framework-review .choices{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}app-framework-review .choices>li{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--border-radius-2);background:var(--color-background-subtle)}app-framework-review .choices>li.checked{background:var(--color-background-brand-subtle)}app-framework-review .choice{display:flex;align-items:flex-start;gap:var(--space-2)}app-framework-review .box{display:inline-grid;flex:none;place-items:center;width:var(--space-4);height:var(--space-4);margin-top:var(--space-0-5);border:1px solid var(--color-border-strong);border-radius:var(--border-radius-1);background:var(--color-background-base);line-height:0}app-framework-review .box app-icon{display:block}app-framework-review .checked .box{border-color:var(--color-border-brand);background:var(--color-background-brand);color:var(--color-text-on-background)}app-framework-review .choices .answer,app-framework-review .choices .docs,app-framework-review .choices .guidance{margin-left:var(--space-6)}app-framework-review .docs{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;list-style:none}app-framework-review .docs li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--font-size-body-4);line-height:var(--line-height-body-4)}app-framework-review .docs app-icon{color:var(--color-icon-subtle)}app-framework-review .dname{font-weight:500;overflow-wrap:anywhere}app-framework-review button.dname{padding:0;border:0;background:none;color:var(--color-text-brand);font:inherit;font-weight:500;text-align:left;cursor:pointer}app-framework-review button.dname:hover,app-framework-review button.dname.on{color:var(--color-text-brand-hover);text-decoration:underline}app-framework-review .guidance{font-size:var(--font-size-body-4);line-height:var(--line-height-body-4)}app-framework-review .guidance summary{color:var(--color-text-subtle);cursor:pointer}app-framework-review .guidance summary:hover{color:var(--color-text-base)}app-framework-review .guidance p{max-height:200px;margin:var(--space-1) 0 0;padding:var(--space-2) var(--space-3);overflow:auto;border-left:2px solid var(--color-border-base);color:var(--color-text-subtle);white-space:pre-wrap}app-framework-review .empty{margin:0;padding:var(--space-6) var(--space-4);border:1px dashed var(--color-border-base);border-radius:var(--border-radius-2);color:var(--color-text-subtle);text-align:center}app-framework-review .doc-panel{display:flex;flex-direction:column;overflow:hidden;border-left:1px solid var(--color-border-base);background:var(--color-background-base)}app-framework-review .doc-head{display:flex;flex:none;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-base)}app-framework-review .doc-name{flex:1;min-width:0;margin:0;overflow:hidden;color:var(--color-text-strong);font-weight:600;text-overflow:ellipsis;white-space:nowrap}app-framework-review .doc-view,app-framework-review .doc-gates{display:flex;flex:1;flex-direction:column;min-height:0;padding:var(--space-3);overflow:auto}app-framework-review .doc-view.is-off,app-framework-review .doc-gates.is-off{display:none}app-framework-review .doc-view{overflow:hidden}app-framework-review .doc-view app-file-viewer{flex:1;min-height:0}app-framework-review .doc-gates:not(.is-off){display:grid;grid-template-columns:minmax(0,var(--pages)) var(--space-3) minmax(0,1fr);padding:0;overflow:hidden}app-framework-review .doc-gates.solo{display:flex;flex-direction:column}app-framework-review .doc-gates.stack:not(.is-off){display:flex;flex-direction:column;padding:0;overflow:hidden}app-framework-review.fill .doc-gates.stack .questions{flex:none;padding-bottom:0}app-framework-review .doc-gates.stack .doc-pages{flex:1}app-framework-review .doc-gates .questions,app-framework-review .doc-pages{min-width:0;min-height:0;padding:var(--space-3);overflow:auto}app-framework-review .doc-gates .questions{max-height:none}app-framework-review .gate-head{padding:var(--space-2) var(--space-3)}app-framework-review .gate-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}app-framework-review .gate-rule{margin:0;color:var(--color-text-subtle);font-size:var(--font-size-body-4);line-height:var(--line-height-body-4)}app-framework-review .gate-head .gate-rule{margin:var(--space-1) 0 0;color:var(--color-text-subtle);font-size:var(--font-size-body-4);line-height:var(--line-height-body-4)}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-family),"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;line-height:20px;color:var(--color-text-base);background:var(--color-background-base);color-scheme:light;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-thumb{background-color:var(--color-neutrals-400);background-clip:padding-box;border:3px solid transparent;border-radius:999px;min-height:32px}::-webkit-scrollbar-thumb:hover{background-color:var(--color-neutrals-500);border-width:2px}::-webkit-scrollbar-button{display:none}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--color-neutrals-400) transparent}}h1,h2,h3,h4,h5,h6,p,figure{margin:0}button,input,select,textarea{font:inherit;color:inherit}img,svg{display:block}a{color:var(--color-text-brand);text-decoration:none}a:hover{color:var(--color-text-brand-hover);text-decoration:underline}:focus-visible{outline:none;box-shadow:var(--shadow-focus-brand);border-radius:var(--border-radius-1)}.card{background:var(--color-background-base);border:1px solid var(--color-border-base);border-radius:var(--border-radius-3);box-shadow:var(--shadow-xs);padding:14px 16px}.card--brand{border-color:var(--color-background-brand)}.card--blocked{border-color:var(--color-border-blocked-card)}.card--dashed{border-style:dashed;box-shadow:none}.mono{font-family:var(--font-family-mono)}.serif{font-family:var(--font-family-serif)}.label-caps{font-size:11px;font-weight:600;line-height:16px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-subtle)}.subtle{color:var(--color-text-subtle)}.error{color:var(--color-text-error-on-background)}.link-brand{appearance:none;margin:0;padding:0;border:0;background:none;font-size:12.5px;font-weight:500;line-height:18px;color:var(--color-text-brand);cursor:pointer;text-align:left}.link-brand:hover{text-decoration:underline}.link-brand:disabled{color:var(--color-text-inactive);cursor:not-allowed;text-decoration:none}.code-chip{display:inline-flex;align-items:center;padding:2px 6px;border-radius:var(--border-radius-1);background:var(--color-background-subtle);color:var(--color-text-subtle);font-family:var(--font-family-mono);font-size:11px;font-weight:600;line-height:16px;white-space:nowrap}.sh-input{height:32px;width:100%;min-width:0;padding:0 12px;box-sizing:border-box;border:1px solid var(--color-border-base);border-radius:var(--border-radius-2);background:var(--color-background-base);color:var(--color-text-base);font-size:var(--font-size-body-3)}.sh-input:focus{outline:none;border-color:var(--color-border-brand);box-shadow:var(--shadow-focus-brand)}.sh-textarea{width:100%;min-width:0;min-height:280px;padding:12px;box-sizing:border-box;border:1px solid var(--color-border-base);border-radius:var(--border-radius-2);background:var(--color-background-base);color:var(--color-text-base);font-family:var(--font-family-mono);font-size:13px;line-height:20px;resize:vertical}.sh-textarea:focus{outline:none;border-color:var(--color-border-brand);box-shadow:var(--shadow-focus-brand)}.page-outlet>:not(router-outlet){animation:sunhat-page-in .28s cubic-bezier(.32,.72,0,1)}@keyframes sunhat-page-in{0%{opacity:0;transform:translateY(6px)}}@media(prefers-reduced-motion:reduce){.page-outlet>:not(router-outlet){animation:none}}.transition{transition:background-color var(--transition-duration) ease,border-color var(--transition-duration) ease,color var(--transition-duration) ease,box-shadow var(--transition-duration) ease}.skeleton{display:block;width:100%;height:16px;border-radius:var(--border-radius-1);background:linear-gradient(90deg,var(--color-neutrals-200) 25%,var(--color-neutrals-100) 37%,var(--color-neutrals-200) 63%);background-size:400% 100%;animation:sunhat-shimmer 1.4s ease infinite}@keyframes sunhat-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page{padding:20px 24px 32px;width:100%;box-sizing:border-box;overflow-x:hidden}.page--wide{max-width:none}.ide-page{display:flex;flex:1;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.page-title{margin-bottom:4px;font-size:22px;font-weight:600;line-height:30px;letter-spacing:-.01em}.page-sub{color:var(--color-text-subtle);font-size:14px;line-height:20px}.table-card{border:1px solid var(--color-border-base);border-radius:var(--border-radius-3);background:var(--color-background-base);overflow-x:auto}.table-card--raised{box-shadow:var(--shadow-xs)}.file-tree-toolbar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--color-border-base)}.file-tree-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle)}.file-tree-list{flex:1 1 auto;min-height:80px;overflow:auto;padding:6px}.file-tree-root,.file-tree-root ul{margin:0;padding:0;list-style:none}.file-tree-row{display:flex;align-items:center;gap:6px;width:100%;margin:0;padding:4px 8px 4px 0;border:0;border-radius:var(--border-radius-2);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.file-tree-row:hover,.file-tree-row.is-active{background:var(--color-background-base)}.file-tree-row app-icon{flex:none;color:var(--color-text-subtle)}.file-tree-name{flex:1;min-width:0;font-family:var(--font-family-code);font-size:13px;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-tree-size{flex:none;font-size:10.5px;color:var(--color-text-subtle)}.file-access{flex:none;font-size:9.5px;font-weight:600;letter-spacing:.04em;line-height:1;padding:2px 4px;border-radius:var(--border-radius-1)}.file-access.is-ro{background:var(--color-background-subtle);color:var(--color-text-subtle)}.file-access.is-rw{background:var(--color-background-success-subtle);color:var(--color-text-success-on-background)}.run-badge{flex:none;font-size:9.5px;font-weight:600;line-height:1;padding:2px 4px;border-radius:var(--border-radius-1);background:var(--color-background-subtle);color:var(--color-text-subtle)}.run-badge[data-status=running],.run-badge[data-status=pending],.run-badge[data-status=waiting]{background:color-mix(in srgb,var(--color-background-brand) 16%,transparent);color:var(--color-text-base)}.run-badge[data-status=success]{background:var(--color-background-success-subtle);color:var(--color-text-success-on-background)}.run-badge[data-status=failed]{background:color-mix(in srgb,var(--color-red-400) 16%,transparent);color:var(--color-text-error-on-background)}.file-viewer-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px}.file-viewer-head .dev-meta{margin:0;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.file-viewer-path{font-family:var(--font-family-mono);font-size:12px;overflow-wrap:anywhere}.file-viewer-actions{flex:none;display:flex;align-items:center;gap:6px}.file-viewer-confirm{display:inline-flex;align-items:center;gap:6px;padding:2px 4px 2px 8px;border-radius:var(--border-radius-2);border:1px solid var(--color-border-base);font-size:12px}.file-viewer-note{margin:0}app-file-viewer app-code-editor{flex:1;min-height:0}.file-viewer-modes{display:inline-flex;padding:2px;gap:2px;border-radius:var(--border-radius-2);background:var(--color-background-subtle)}.file-viewer-modes button,.file-viewer-modes a{border:0;padding:3px 9px;font-size:12px;border-radius:calc(var(--border-radius-2) - 2px);background:none;color:var(--color-text-subtle);cursor:pointer;text-decoration:none}.file-viewer-modes button.is-active,.file-viewer-modes a.is-active{background:var(--color-background-base);color:var(--color-text-strong);box-shadow:var(--shadow-xs)}.file-md{flex:1;min-height:0;overflow:auto;padding:16px 20px;font-size:14px;line-height:1.6;color:var(--color-text-strong);overflow-wrap:break-word;border:1px solid var(--color-border-subtle);border-radius:var(--border-radius-2);background:var(--color-background-base);-webkit-font-smoothing:antialiased}.file-md.md-page{padding:48px max(32px,calc((100% - 720px)/2)) 96px;font-size:16px;line-height:1.65}.file-md>:first-child{margin-top:0}.file-md>:last-child{margin-bottom:0}.file-md :is(p,ul,ol,pre,blockquote,table,.diagram){margin:0 0 .75em}.file-md :is(h1,h2,h3,h4,h5,h6){font-weight:600;line-height:1.3;letter-spacing:-.01em;color:var(--color-text-strong)}.file-md h1{font-size:1.875em;margin:1.2em 0 .4em;letter-spacing:-.02em}.file-md h2{font-size:1.5em;margin:1.4em 0 .35em}.file-md h3{font-size:1.25em;margin:1.2em 0 .3em}.file-md :is(h4,h5,h6){font-size:1em;margin:1em 0 .25em}.file-md :is(strong,b){font-weight:600}.file-md :is(ul,ol){padding-left:1.6em}.file-md ul{list-style:disc}.file-md ul ul{list-style:circle}.file-md ul ul ul{list-style:square}.file-md ol{list-style:decimal}.file-md li{padding-left:.2em;margin:.25em 0}.file-md li::marker{color:var(--color-text-subtle)}.file-md li>:is(ul,ol,p){margin:.25em 0}.file-md a{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-underline-offset:.2em;transition:text-decoration-color .15s}.file-md a:hover{text-decoration-color:currentColor}.file-md :not(pre)>code{padding:.15em .35em;font-family:var(--font-family-code);font-size:.85em;color:var(--color-text-error-on-background);border-radius:4px;background:color-mix(in srgb,var(--color-text-subtle) 13%,transparent)}.file-md pre{padding:1em 1.25em;overflow-x:auto;font-family:var(--font-family-code);font-size:.85em;line-height:1.55;border-radius:6px;background:var(--color-background-subtle)}.file-md pre code{font:inherit;background:none}.file-md blockquote{padding:.1em 0 .1em .9em;border-left:3px solid var(--color-text-strong);font-size:1.05em}.file-md hr{margin:1.5em 0;border:0;border-top:1px solid var(--color-border-subtle)}.file-md img{max-width:100%;border-radius:4px}.file-md table{border-collapse:collapse;font-size:.875em;display:block;overflow-x:auto}.file-md th,.file-md td{padding:6px 10px;border:1px solid var(--color-border-subtle);text-align:left;vertical-align:top}.file-md th{background:var(--color-background-subtle);font-weight:600;color:var(--color-text-subtle)}.file-md input[type=checkbox]{margin:0 .4em 0 -1.4em;vertical-align:middle}.file-md li:has(>input[type=checkbox]){list-style:none}.file-md .hit{background:var(--color-background-warning-subtle);color:inherit}.file-md .hit.on{background:var(--color-border-warning);scroll-margin-top:calc(var(--space-9) + var(--space-4))}.file-md .diagram{margin:1.25em 0;overflow-x:auto;text-align:center}.file-md .diagram svg{max-width:100%;height:auto}.file-viewer-frame{flex:1;min-height:0;width:100%;border:1px solid var(--color-border-base);border-radius:var(--border-radius-2);background:var(--color-background-subtle)}.file-viewer-image-wrap{flex:1;min-height:0;overflow:auto;border:1px solid var(--color-border-base);border-radius:var(--border-radius-2);background:var(--color-background-subtle);padding:12px}app-docx-preview{display:flex;flex-direction:column;flex:1;min-height:0}.docx-preview-scroll{flex:1;min-height:0;overflow:auto;border:1px solid var(--color-border-base);border-radius:var(--border-radius-2);background:var(--color-background-subtle);padding:12px}.docx-preview-body .docx-wrapper{background:transparent;padding:0}.docx-preview-body .docx-wrapper>section.docx{background:#fff;color:#000;box-shadow:0 1px 4px #0000002e;margin:0 auto 16px;max-width:100%;overflow-x:auto}.file-viewer-image{display:block;max-width:100%;height:auto;margin:0 auto}
