*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:DM Mono,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.col-span-2{grid-column:span 2/span 2}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.flex-shrink{flex-shrink:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-14{gap:3.5rem}.gap-16{gap:4rem}.gap-20{gap:5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.border{border-width:1px}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{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)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f)}.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)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--font-display:"Clash Display",sans-serif;--font-body:"DM Sans",sans-serif;--font-mono:"DM Mono",monospace;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--transition:.2s ease;--blue:#2563eb;--blue-dark:#1d4ed8;--blue-darker:#1e40af;--blue-glow:rgba(37,99,235,.15);--blue-dim:rgba(37,99,235,.08);--blue-soft:rgba(37,99,235,.25);--green:#22c55e;--green-dim:rgba(34,197,94,.12);--green-soft:rgba(34,197,94,.25);--amber:#f59e0b;--amber-dim:rgba(245,158,11,.12);--red:#ef4444;--red-dim:rgba(239,68,68,.12);--red-soft:rgba(239,68,68,.25);--bg:#f7f8fb;--bg-subtle:#eef1f6;--bg-elevated:#fff;--surface:#fff;--surface-muted:#f1f4f9;--surface-hover:#e8edf5;--border:rgba(15,23,42,.08);--border-strong:rgba(15,23,42,.14);--border-blue:rgba(37,99,235,.18);--text:#0e1621;--text-strong:#0a0f18;--text-muted:#475569;--text-soft:#64748b;--text-faint:#94a3b8;--sidebar-bg:#fff;--sidebar-border:rgba(15,23,42,.08);--sidebar-area-bg:#f4f6fa;--sidebar-area-bg-hover:#e8edf5;--sidebar-area-text:#334155;--sidebar-sublink-text:#475569;--sidebar-sublink-hover-bg:rgba(37,99,235,.08);--sidebar-sublink-active-bg:rgba(37,99,235,.12);--sidebar-sublink-active-text:var(--blue-dark);--card-bg:#fff;--card-border:rgba(15,23,42,.08);--card-shadow:0 1px 3px rgba(15,23,42,.04),0 1px 2px rgba(15,23,42,.03);--card-shadow-hover:0 6px 24px rgba(15,23,42,.08),0 2px 6px rgba(15,23,42,.04);--input-bg:#fff;--input-border:rgba(15,23,42,.12);--input-border-focus:var(--blue);--input-text:var(--text);--input-placeholder:var(--text-faint);--glow-blue:radial-gradient(circle,rgba(37,99,235,.08) 0%,transparent 70%);--glow-strong:radial-gradient(circle,rgba(37,99,235,.14) 0%,transparent 70%);--code-bg:#0f172a;--code-text:#e2e8f0;color-scheme:light}html.theme-dark{--bg:#0e1621;--bg-subtle:#0c121c;--bg-elevated:#141e2d;--surface:#1a2435;--surface-muted:#141e2d;--surface-hover:#1f2b3d;--border:rgba(148,163,184,.12);--border-strong:rgba(148,163,184,.22);--border-blue:rgba(37,99,235,.25);--text:#f8fafc;--text-strong:#fff;--text-muted:#cbd5e1;--text-soft:#94a3b8;--text-faint:#64748b;--sidebar-bg:linear-gradient(180deg,#0c121c,#0e1621 45%);--sidebar-border:rgba(37,99,235,.12);--sidebar-area-bg:rgba(148,163,184,.05);--sidebar-area-bg-hover:hsla(0,0%,100%,.06);--sidebar-area-text:#cbd5e1;--sidebar-sublink-text:#94a3b8;--sidebar-sublink-hover-bg:rgba(37,99,235,.12);--sidebar-sublink-active-bg:rgba(37,99,235,.18);--sidebar-sublink-active-text:#f8fafc;--card-bg:#1a2435;--card-border:rgba(37,99,235,.1);--card-shadow:none;--card-shadow-hover:0 4px 24px rgba(0,0,0,.3);--input-bg:#141e2d;--input-border:rgba(148,163,184,.18);--input-border-focus:var(--blue);--input-text:var(--text);--input-placeholder:#64748b;--glow-blue:radial-gradient(circle,rgba(37,99,235,.12) 0%,transparent 70%);--glow-strong:radial-gradient(circle,rgba(37,99,235,.2) 0%,transparent 70%);--code-bg:#0c121c;--code-text:#e2e8f0;color-scheme:dark}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg);color:var(--text);font-family:var(--font-body);transition:background var(--transition),color var(--transition)}a{text-decoration:none}a,button{color:inherit}button{background:none;border:none;cursor:pointer;font-family:inherit}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#2563eb33;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#2563eb66}.display-xl{color:var(--text-strong);font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4.5rem);font-weight:700;letter-spacing:-.03em;line-height:1}.display-lg{font-size:clamp(1.75rem,3.5vw,2.5rem);letter-spacing:-.02em;line-height:1.1}.display-lg,.display-md{color:var(--text-strong);font-family:var(--font-display);font-weight:600}.display-md{font-size:1.5rem;letter-spacing:-.01em;line-height:1.2}.display-sm{color:var(--text-strong);font-family:var(--font-display);font-size:1.15rem;font-weight:600;line-height:1.3}.body-lg{font-size:1.1rem;line-height:1.65}.body-lg,.body-md{color:var(--text-muted)}.body-md{font-size:.95rem;line-height:1.6}.body-sm{color:var(--text-soft);font-size:.85rem;line-height:1.5}.mono-tag{background:var(--blue-dim);border:1px solid var(--border-blue);border-radius:4px;display:inline-block;font-size:.7rem;letter-spacing:.1em;padding:5px 12px}.mono-label,.mono-tag{color:var(--blue);font-family:var(--font-mono);text-transform:uppercase}.mono-label{font-size:.68rem;font-weight:500;letter-spacing:.12em}.text-blue{color:var(--blue)}.text-green{color:var(--green)}.text-amber{color:var(--amber)}.text-red{color:var(--red)}.text-muted{color:var(--text-muted)}.text-soft{color:var(--text-soft)}.forsi-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);box-shadow:var(--card-shadow);padding:24px;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.forsi-card:hover{border-color:var(--border-blue);box-shadow:var(--card-shadow-hover)}.forsi-card-flat{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:24px}.btn{align-items:center;border:1px solid transparent;border-radius:var(--radius-sm);display:inline-flex;font-family:var(--font-body);font-size:.9rem;font-weight:500;gap:8px;justify-content:center;line-height:1;padding:10px 18px;transition:all var(--transition);white-space:nowrap}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-dark);box-shadow:0 4px 16px #2563eb40;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover{background:var(--surface-hover);border-color:var(--border-blue)}.btn-ghost{background:transparent;color:var(--text-muted)}.btn-ghost:hover{background:var(--surface-hover);color:var(--text)}.btn-danger{background:var(--red-dim);border-color:var(--red-soft);color:var(--red)}.btn-danger:hover{background:var(--red);border-color:var(--red);color:#fff}.btn-sm{font-size:.8rem;padding:6px 12px}.btn-lg{font-size:1rem;padding:14px 26px}.input,.select,.textarea{background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-sm);color:var(--input-text);font-family:var(--font-body);font-size:.92rem;padding:10px 14px;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.input:focus,.select:focus,.textarea:focus{border-color:var(--input-border-focus);box-shadow:0 0 0 3px var(--blue-dim);outline:none}.input::-moz-placeholder,.textarea::-moz-placeholder{color:var(--input-placeholder)}.input::placeholder,.textarea::placeholder{color:var(--input-placeholder)}.textarea{font-family:var(--font-body);line-height:1.6;min-height:100px;resize:vertical}.label{color:var(--text-soft);display:block;font-size:.7rem;letter-spacing:.1em;margin-bottom:8px}.label,.pill{font-family:var(--font-mono);font-weight:500;text-transform:uppercase}.pill{align-items:center;border:1px solid transparent;border-radius:999px;display:inline-flex;font-size:.68rem;gap:6px;letter-spacing:.06em;padding:4px 10px}.pill-green{background:var(--green-dim);border-color:var(--green-soft);color:var(--green)}.pill-blue{background:var(--blue-dim);border-color:var(--blue-soft);color:var(--blue)}.pill-amber{background:var(--amber-dim);border-color:#f59e0b40;color:var(--amber)}.pill-red{background:var(--red-dim);border-color:var(--red-soft);color:var(--red)}.pill-gray{background:var(--surface-muted);border-color:var(--border);color:var(--text-soft)}.pill-dot{background:currentColor;border-radius:50%;height:6px;width:6px}.divider{background:var(--blue);border-radius:1px;height:2px;width:48px}.divider-h{background:var(--border);height:1px;width:100%}.glow-bg{overflow:hidden;position:relative}.glow-bg:before{background:var(--glow-blue);content:"";height:600px;pointer-events:none;position:absolute;right:-10%;top:-20%;width:600px;z-index:0}.glow-bg>*{position:relative;z-index:1}.icon-circle{align-items:center;background:var(--blue-dim);border:1px solid var(--border-blue);border-radius:10px;display:inline-flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.icon-circle svg{fill:none;height:20px;stroke:var(--blue);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6;width:20px}.flex-col{display:flex;flex-direction:column}.flex-row{display:flex;flex-direction:row}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.text-center{text-align:center}.w-full{width:100%}.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-20{gap:20px}.gap-24{gap:24px}.gap-32{gap:32px}.gap-48{gap:48px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeInUp .35s ease both}.page-shell{margin:0 auto;max-width:1400px;padding:24px clamp(16px,4vw,48px)}.page-header{align-items:flex-end;display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;margin-bottom:28px}.page-title{color:var(--text-strong);font-family:var(--font-display);font-size:clamp(1.6rem,2.4vw,2rem);font-weight:600;letter-spacing:-.01em;line-height:1.1}.page-subtitle{color:var(--text-soft);font-size:.92rem;margin-top:6px}.diff-line{display:flex;font-family:var(--font-mono);font-size:.82rem;gap:14px;line-height:1.55;padding:2px 12px;white-space:pre-wrap;word-break:break-word}.diff-line-num{color:var(--text-faint);min-width:32px;text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none}.diff-add{background:#22c55e1a;border-left:2px solid var(--green);color:var(--text)}.diff-del{background:#ef444414;border-left:2px solid var(--red);color:var(--text)}.diff-ctx{border-left:2px solid transparent;color:var(--text-muted)}.empty-state{background:var(--surface-muted);border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--text-soft);padding:64px 24px;text-align:center}.empty-state .icon-circle{height:56px;margin:0 auto 16px;width:56px}.empty-state .empty-title{color:var(--text);font-family:var(--font-display);font-size:1.05rem;font-weight:600;margin-bottom:6px}.forsi-table{border-collapse:collapse;width:100%}.forsi-table th{color:var(--text-soft);font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.08em;padding:12px 16px;text-align:left;text-transform:uppercase}.forsi-table td,.forsi-table th{border-bottom:1px solid var(--border)}.forsi-table td{color:var(--text);font-size:.92rem;padding:14px 16px}.forsi-table tr:hover td{background:var(--surface-hover)}.forsi-table tr:last-child td{border-bottom:none}
