@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";body{margin:0}.adblock-modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:99999;background:#0f172abf;justify-content:center;align-items:center;width:100vw;height:100vh;padding:20px;animation:.25s ease-out fadeIn;display:flex;position:fixed;top:0;left:0}.adblock-modal-card{background:var(--color-surface,#fff);color:var(--color-text,#1e293b);border:1px solid var(--color-border,#d1d9e6);text-align:center;border-radius:16px;flex-direction:column;align-items:center;width:100%;max-width:440px;padding:40px 32px;animation:.3s cubic-bezier(.34,1.56,.64,1) scaleUp;display:flex;box-shadow:0 20px 25px -5px #00000026,0 10px 10px -5px #0000000a}.adblock-modal-icon{margin-bottom:20px;font-size:48px;animation:2s ease-in-out infinite pulse}.adblock-modal-card h2{color:#ef4444;letter-spacing:-.025em;margin:0 0 12px;font-size:24px;font-weight:800}.adblock-modal-card p{color:var(--color-muted,#64748b);margin:0 0 28px;font-size:15px;line-height:1.6}.adblock-modal-card strong{color:var(--color-text,#1e293b);font-weight:700}.btn-adblock-reload{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;border-radius:8px;width:100%;padding:14px 24px;font-size:16px;font-weight:700;transition:transform .2s,background .2s,box-shadow .2s;box-shadow:0 4px 6px -1px #2563eb33,0 2px 4px -1px #2563eb1a}.btn-adblock-reload:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-2px);box-shadow:0 10px 15px -3px #2563eb4d,0 4px 6px -2px #2563eb0d}.btn-adblock-reload:active{transform:translateY(0)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@media (width<=480px){.adblock-modal-card{padding:32px 20px}.adblock-modal-card h2{font-size:21px}.adblock-modal-card p{margin-bottom:24px;font-size:14px}}.category-navbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:40;transition:background .25s,border-color .25s;position:relative;overflow:visible;box-shadow:0 1px 3px #00000014}.category-navbar__inner{align-items:center;max-width:1400px;margin:0 auto;padding:0 20px;display:flex;overflow:visible}.category-navbar__item{position:relative}.category-navbar__title{color:var(--color-text-secondary);font-family:var(--font-sans);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-sm);align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:600;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}.category-navbar__title:hover,.category-navbar__title--active,.category-navbar__item--open .category-navbar__title{color:var(--color-text);background:var(--color-surface-hover)}.category-navbar__arrow{opacity:.6;width:14px;height:14px;transition:transform .2s cubic-bezier(.16,1,.3,1),opacity .2s}@media (hover:hover){.category-navbar__item:hover .category-navbar__dropdown{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.category-navbar__item:hover .category-navbar__arrow{opacity:1;transform:rotate(180deg)}}.category-navbar__dropdown--open{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:translateY(0)!important}.category-navbar__item--open .category-navbar__arrow{opacity:1;transform:rotate(180deg)}.category-navbar__dropdown{background:var(--dropdown-bg,var(--color-surface-elevated));-webkit-backdrop-filter:blur(16px);border:1px solid var(--color-border);border-radius:var(--radius-lg);opacity:0;visibility:hidden;z-index:1001;pointer-events:none;min-width:250px;padding:12px;transition:opacity .18s cubic-bezier(.16,1,.3,1),transform .18s cubic-bezier(.16,1,.3,1),visibility .18s;position:absolute;top:calc(100% + 6px);left:0;transform:translateY(6px);box-shadow:0 16px 36px -6px #0006,0 4px 12px #0003}html[data-theme=light] .category-navbar__dropdown{box-shadow:0 16px 36px -6px #0f172a1f,0 4px 12px #0f172a0d}.category-navbar__dropdown--right{left:auto;right:0}.category-navbar__dropdown--large{min-width:480px;max-width:580px}.category-navbar__dropdown-header{border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;align-items:center;margin-bottom:8px;padding:4px 8px 10px;display:flex}.category-navbar__dropdown-tag{text-transform:uppercase;letter-spacing:.08em;color:var(--color-primary-light);font-size:11px;font-weight:700}.category-navbar__dropdown-count{color:var(--color-muted);background:var(--color-surface-hover);border-radius:var(--radius-full);padding:2px 8px;font-size:11px;font-weight:600}.category-navbar__dropdown-grid{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;grid-template-columns:1fr;gap:3px;max-height:440px;padding-right:2px;display:grid;overflow-y:auto}.category-navbar__dropdown-grid--two-col{grid-template-columns:repeat(2,minmax(210px,1fr));gap:4px 8px}.category-navbar__dropdown-grid::-webkit-scrollbar{width:5px}.category-navbar__dropdown-grid::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.category-navbar__link{color:var(--color-text-secondary);font-family:var(--font-sans);border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;font-size:13px;font-weight:500;transition:all .15s;display:flex;text-decoration:none!important}.category-navbar__link-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.category-navbar__link-arrow{opacity:0;width:14px;height:14px;color:var(--color-primary-light);flex-shrink:0;transition:all .15s;transform:translate(-4px)}.category-navbar__link:hover{background:var(--color-surface-hover);color:var(--color-text);transform:translate(2px);text-decoration:none!important}.category-navbar__link:hover .category-navbar__link-arrow{opacity:.8;transform:translate(0)}.category-navbar__link--active{background:var(--color-primary-glow);color:var(--color-primary-light);font-weight:600}.category-navbar__link--active .category-navbar__link-arrow{opacity:1;transform:translate(0)}@media (width<=768px){.category-navbar__inner{scrollbar-width:none;-ms-overflow-style:none;padding:0 12px;overflow-x:auto}.category-navbar__inner::-webkit-scrollbar{display:none}.category-navbar__dropdown{border-radius:16px 16px 0 0;width:100%;min-width:100%;max-height:75vh;padding:16px;position:fixed;inset:auto 0 0;transform:translateY(100%);box-shadow:0 -8px 30px #0006}.category-navbar__dropdown--open{transform:translateY(0)!important}.category-navbar__dropdown-grid--two-col{grid-template-columns:1fr}}.ad-slot{background:var(--color-surface,#ffffff08);border:1px dashed var(--color-border,#ffffff1a);border-radius:6px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.ad-slot ins.adsbygoogle{width:100%!important;height:100%!important;display:block!important}.ad-placeholder{color:#8896a8;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:100%;height:100%;padding:12px;font-size:12px;display:flex}.ad-label{color:#64748b;text-transform:uppercase;letter-spacing:.05em;background:#e2e8f0;border-radius:3px;padding:2px 8px;font-size:10px;font-weight:700}.ad-slot-name{color:#94a3b8;font-weight:600}.ad-size{color:#b0bac8;font-size:10px}.ad-banner--leaderboard{width:100%;max-width:728px;height:90px;margin:0 auto}.ad-banner--medium{width:300px;height:250px}.ad-banner--center-rail{flex-shrink:0;width:100%;height:30%}.ad-banner--center-rail .ad-placeholder{gap:2px;padding:6px;font-size:10px}.ad-banner--fixed-banner{border:none;border-top:1px solid #c5cdd8;border-radius:0;width:min(728px,100vw);max-width:100vw;height:90px;margin:0;box-shadow:0 -4px 20px #0f172a1f}.ad-video--floating{background:#0f172a;border-radius:8px;width:300px;max-width:calc(100vw - 32px);height:170px;margin:0;box-shadow:0 8px 32px #0f172a59}.ad-placeholder--floating-video{background:linear-gradient(135deg,#1e293b 0%,#334155 100%);height:100%;position:relative}.ad-placeholder--floating-video .ad-video-play{width:48px;height:48px;font-size:18px}.ad-banner--large{width:100%;max-width:970px;height:90px;margin:0 auto}.ad-banner--split{background:#1e293b;width:100%;max-width:none;height:100%;min-height:300px;margin:0}.ad-banner--split .ad-placeholder{color:#94a3b8}.ad-sidebar{flex-shrink:0;width:160px;min-height:600px}.ad-placeholder--vertical{min-height:580px}.ad-video{max-width:640px;height:200px;margin:0 auto}.ad-video--split{background:#0f172a;max-width:none;height:100%;min-height:300px}.ad-placeholder--split-video{background:linear-gradient(135deg,#1e293b 0%,#334155 100%);flex-direction:column;gap:8px;position:relative}.ad-video-play{color:#1e293b;background:#fffffff2;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:4px;padding-left:4px;font-size:22px;display:flex;box-shadow:0 4px 20px #0000004d}.ad-placeholder--video{flex-direction:row;gap:12px}.ad-video-icon{color:#64748b;background:#cbd5e1;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:18px;display:flex}.ad-fullscreen-overlay{z-index:9999;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ad-fullscreen{background:#1e293b;border-radius:12px;width:90vw;max-width:800px;height:70vh;position:relative;overflow:hidden}.ad-fullscreen-close{z-index:1;color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .2s;position:absolute;top:12px;right:12px}.ad-fullscreen-close:hover{background:#ffffff40}.ad-placeholder--fullscreen{color:#94a3b8;height:100%;font-size:16px}.ad-countdown{color:#64748b;margin-top:8px;font-size:12px}.ad-top{justify-content:center;align-items:center;width:100%;padding:10px 16px;display:flex}.gutter-skyscraper{z-index:100;width:160px;min-height:600px;display:none;position:fixed;top:140px}.gutter-skyscraper--left{left:max(16px,50% - 780px)}.gutter-skyscraper--right{right:max(16px,50% - 780px)}@media (width>=1540px){.gutter-skyscraper{display:block}}.ad-section--split{background:var(--color-surface);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);width:100%;padding:0}.ad-section__split{grid-template-columns:1fr 1fr;gap:50px;width:100%;min-height:500px;display:grid}.ad-section__half{min-height:300px;display:flex;overflow:hidden}.ad-section__half:first-child{border-right:1px solid var(--color-border)}.ad-section__half .ad-slot{border:none;border-radius:0;width:100%;max-width:none;height:100%;min-height:300px;margin:0}@media (width<=768px){.ad-section__split{min-height:unset;grid-template-columns:1fr}.ad-section__half{min-height:220px}.ad-section__half:first-child{border-right:none;border-bottom:1px solid var(--color-border)}.ad-section__half .ad-slot{min-height:220px}}.section-ad-divider{background:var(--color-surface);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);justify-content:center;align-items:center;width:100%;padding:14px 16px;display:flex}.section-ad-divider--full{padding:0}.section-ad-divider--full .ad-slot{border:none;border-radius:0;width:100%;max-width:none;height:90px;margin:0}.section-ad-divider:not(.section-ad-divider--full) .ad-banner--leaderboard{width:100%;max-width:100%}.section-ad-divider:not(.section-ad-divider--full) .ad-banner--medium{margin:0 auto}.content-sections{background:var(--color-bg);width:100%;transition:background .25s}.section-inner{max-width:1180px;margin:0 auto;padding:0 24px}.section-title{color:var(--color-text);text-align:center;letter-spacing:-.02em;margin:0 0 28px;font-size:24px;font-weight:800;position:relative}.section-title:after{content:"";background:var(--color-accent-cyan);border-radius:2px;width:48px;height:3px;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.section-title--light{color:var(--color-text)}.section-title--light:after{background:var(--color-accent-emerald)}.info-section{background:var(--color-surface);border-top:1px solid var(--color-border);padding:56px 0;transition:background .25s,border-color .25s}.info-section__grid{grid-template-columns:1fr 1fr;gap:36px;display:grid}.info-section__col p{color:var(--color-text-secondary);margin:0 0 16px;font-size:14.5px;line-height:1.7}.info-section__col ul{flex-direction:column;gap:10px;margin:0;padding-left:20px;display:flex}.info-section__col li{color:var(--color-text);font-size:14px;line-height:1.6}.info-section__example-label{text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--color-text)!important;margin-bottom:8px!important;font-size:13px!important}.code-sample{color:#e2e8f0;border-radius:var(--radius-md);font-family:var(--font-mono);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);background:#080c14;margin:0 0 16px;padding:18px;font-size:12.5px;line-height:1.65;overflow-x:auto}.validator-section{background:var(--color-surface-elevated);border-top:1px solid var(--color-border);color:var(--color-text);padding:56px 0;transition:background .25s,border-color .25s}.validator-section p{color:var(--color-text-secondary);margin:0 0 16px;font-size:14.5px;font-weight:500;line-height:1.75}.validator-section strong{color:var(--color-text);font-weight:700}.validator-section__grid{grid-template-columns:1fr 1fr;gap:36px;display:grid}.knowledge-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:8px 0 0;padding:0;list-style:none;display:grid}.knowledge-links li{margin-bottom:0}.knowledge-links a{color:var(--color-primary-light);font-size:13.5px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-block}.knowledge-links a:hover{color:var(--color-text);text-decoration:underline;transform:translate(2px)}.faq-section{background:var(--color-surface);border-top:1px solid var(--color-border);padding:56px 0 64px;transition:background .25s,border-color .25s}.faq-list{flex-direction:column;gap:12px;max-width:840px;margin:0 auto;display:flex}.faq-item{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:border-color .18s,background .18s;overflow:hidden}.faq-item:hover{border-color:var(--color-border-hover)}.faq-item__question{cursor:pointer;width:100%;color:var(--color-text);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;font-family:inherit;font-size:14.5px;font-weight:700;transition:background .15s;display:flex}.faq-item__question:hover{background:var(--color-surface-hover)}.faq-item__icon{background:var(--color-surface-elevated);border:1px solid var(--color-border);width:24px;height:24px;color:var(--color-primary-light);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:700;transition:transform .2s;display:flex}.faq-item__answer{color:var(--color-text-secondary);border-top:1px solid var(--color-border);margin:0 20px 16px;padding:14px 20px 18px;font-size:14px;line-height:1.7}@media (width<=768px){.info-section__grid,.validator-section__grid{grid-template-columns:1fr;gap:24px}.knowledge-links{grid-template-columns:1fr}.info-section,.validator-section,.faq-section{padding:36px 0}}.site-footer{background:var(--color-surface);color:var(--color-text-secondary);font-family:var(--font-sans);border-top:1px solid var(--color-border);transition:background-color .25s,color .25s,border-color .25s;position:relative;overflow:hidden}.site-footer__container{z-index:1;max-width:1320px;margin:0 auto;padding:32px 24px 24px;position:relative}.site-footer__mega-grid{border-bottom:1px solid var(--color-border);grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding-bottom:28px;display:grid}.site-footer__column{flex-direction:column;gap:20px;display:flex}.footer-card{padding:16px 18px;transition:border-color .2s,background .2s,transform .2s}.footer-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.footer-card__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;display:flex}.footer-card__title-wrap{align-items:center;gap:8px;display:flex}.footer-card__dot{border-radius:50%;width:6px;height:6px}.footer-card__dot--cyan{background:var(--color-accent-cyan);box-shadow:0 0 6px var(--color-accent-cyan)}.footer-card__dot--emerald{background:var(--color-accent-emerald);box-shadow:0 0 6px var(--color-accent-emerald)}.footer-card__dot--purple{background:var(--color-accent-purple);box-shadow:0 0 6px var(--color-accent-purple)}.footer-card__dot--amber{background:var(--color-accent-amber);box-shadow:0 0 6px var(--color-accent-amber)}.footer-card__dot--blue{background:#60a5fa;box-shadow:0 0 6px #60a5fa}.footer-card__dot--rose{background:var(--color-accent-rose);box-shadow:0 0 6px var(--color-accent-rose)}.footer-card__title{color:var(--color-text);letter-spacing:.01em;margin:0;font-size:13.5px;font-weight:700}.footer-card__badge{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-muted);border:1px solid var(--color-border);padding:2px 7px;font-size:10.5px;font-weight:700}.footer-card__list{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.footer-card__list--grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px;display:grid}.footer-card__item{margin:0}.footer-card__link{color:var(--color-text-secondary);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:3px 6px;font-size:12.5px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.footer-card__link-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.footer-card__link-arrow{opacity:0;color:var(--color-primary-light);font-size:11px;font-weight:700;transition:all .15s;transform:translate(-4px)}.footer-card__link:hover{color:var(--color-text);background:var(--color-surface-hover);transform:translate(3px)}.footer-card__link:hover .footer-card__link-arrow{opacity:1;transform:translate(0)}.footer-card__link.active{color:var(--color-primary-light);background:var(--color-primary-glow);font-weight:600}.site-footer__bottom{color:var(--color-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:20px;font-size:12.5px;display:flex}.site-footer__copyright strong{color:var(--color-text);font-weight:600}.site-footer__legal-nav{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.site-footer__legal-item{align-items:center;gap:10px;display:inline-flex}.site-footer__legal-sep{color:var(--color-border);font-size:10px}.site-footer__legal-link{color:var(--color-text-secondary);font-weight:500;text-decoration:none;transition:color .15s}.site-footer__legal-link:hover,.site-footer__legal-link.active{color:var(--color-primary-light);text-decoration:underline}.site-footer__back-to-top{background:var(--btn-primary-bg);color:var(--btn-primary-text);border:1px solid var(--btn-primary-border);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:7px;padding:7px 14px;font-size:12px;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 1px 3px #0003}.site-footer__back-to-top:hover{box-shadow:0 2px 8px var(--color-primary-glow);color:#fff;background:linear-gradient(135deg,#0369a1 0%,#075985 100%);border-color:#38bdf880;transform:translateY(-2px)}.site-footer__back-to-top:active{transform:translateY(0)}.site-footer__back-to-top svg{transition:transform .2s}.site-footer__back-to-top:hover svg{transform:translateY(-2px)}@media (width<=1100px){.site-footer__mega-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}@media (width<=768px){.site-footer__mega-grid{grid-template-columns:1fr;gap:16px}.site-footer__bottom{flex-direction:column;align-items:flex-start;gap:12px}}.fixed-bottom-ads{z-index:900;pointer-events:none;position:fixed;inset:auto 0 0}.fixed-bottom-ads__banner{pointer-events:auto;z-index:901;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.fixed-bottom-ads__video{pointer-events:auto;z-index:902;position:fixed;bottom:30px;right:16px}.fixed-bottom-ads__close{z-index:2;color:#fff;cursor:pointer;background:#1e293b;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:16px;line-height:1;transition:background .15s;display:flex;position:absolute;top:-10px;right:-10px;box-shadow:0 2px 8px #00000040}.fixed-bottom-ads__close:hover{background:#334155}.fixed-bottom-ads__banner .fixed-bottom-ads__close{top:4px;right:4px}@media (width<=768px){.fixed-bottom-ads__video{bottom:90px;right:8px}}@media (width<=480px){.fixed-bottom-ads__video{bottom:80px;right:4px}}.theme-toggle{background:var(--toggle-bg,#ffffff14);border:1px solid var(--toggle-border,#ffffff24);color:var(--toggle-color,#e2e8f0);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:7px;padding:6px 12px;font-family:inherit;font-size:12.5px;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.theme-toggle:hover{background:var(--toggle-hover-bg,#ffffff26);border-color:var(--toggle-hover-border,#38bdf866);color:var(--toggle-hover-color,#fff);transform:translateY(-1px)}.theme-toggle:active{transform:translateY(0)}.theme-toggle:focus-visible{outline:2px solid var(--color-primary-light,#38bdf8);outline-offset:2px}.theme-toggle__icon-wrap{justify-content:center;align-items:center;width:16px;height:16px;display:flex}.theme-toggle__icon{width:16px;height:16px;transition:transform .3s}.theme-toggle:hover .theme-toggle__icon--sun{color:#fbbf24;transform:rotate(45deg)}.theme-toggle:hover .theme-toggle__icon--moon{color:#38bdf8;transform:rotate(-15deg)}.theme-toggle__label{letter-spacing:.02em}@media (width<=640px){.theme-toggle__label{display:none}.theme-toggle{padding:6px 8px}}*,:before,:after{box-sizing:border-box}:root{--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Consolas", monospace;--header-h:64px;--category-nav-h:44px;--editor-chrome:154px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--color-bg:#090d16;--color-canvas:#090d16;--color-surface:#0f1624;--color-surface-elevated:#162032;--color-surface-hover:#ffffff0f;--color-border:#ffffff14;--color-border-hover:#ffffff29;--color-border-active:#38bdf880;--color-border-subtle:#ffffff0a;--color-text:#f8fafc;--color-text-secondary:#94a3b8;--color-muted:#64748b;--color-link:#38bdf8;--color-link-hover:#7dd3fc;--color-primary:#0284c7;--color-primary-hover:#0369a1;--color-primary-light:#38bdf8;--color-primary-dark:#075985;--color-primary-glow:#38bdf840;--color-accent-cyan:#38bdf8;--color-accent-emerald:#34d399;--color-accent-purple:#c084fc;--color-accent-amber:#fbbf24;--color-accent-rose:#f87171;--color-success:#10b981;--color-success-bg:#10b9811f;--color-success-border:#10b98140;--color-error:#f43f5e;--color-error-bg:#f43f5e1f;--color-error-border:#f43f5e40;--header-bg:#090d16d9;--header-border:#ffffff14;--toolbar-bg:#131b2b;--input-bg:#0b101b;--panel-bg:#0e1522;--dropdown-bg:#141c2c;--btn-primary-bg:linear-gradient(135deg, #0284c7 0%, #0369a1 100%);--btn-primary-text:#fff;--btn-primary-border:#38bdf84d;--btn-secondary-bg:#ffffff0d;--btn-secondary-hover:#ffffff1a;--btn-secondary-text:#e2e8f0;--btn-secondary-border:#ffffff1a;--toggle-bg:#ffffff0f;--toggle-border:#ffffff1f;--toggle-color:#cbd5e1;--toggle-hover-bg:#ffffff1f;--toggle-hover-border:#38bdf866;--toggle-hover-color:#fff;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-glow:0 0 24px #38bdf826}[data-theme=light],html.light{--color-bg:#f8fafc;--color-canvas:#f8fafc;--color-surface:#fff;--color-surface-elevated:#f1f5f9;--color-surface-hover:#f1f5f9;--color-border:#e2e8f0;--color-border-hover:#cbd5e1;--color-border-active:#0284c7;--color-border-subtle:#f1f5f9;--color-text:#0f172a;--color-text-secondary:#475569;--color-muted:#64748b;--color-link:#0284c7;--color-link-hover:#0369a1;--color-primary:#0284c7;--color-primary-hover:#0369a1;--color-primary-light:#38bdf8;--color-primary-dark:#075985;--color-primary-glow:#0284c726;--color-success:#059669;--color-success-bg:#dcfce7;--color-success-border:#86efac;--color-error:#dc2626;--color-error-bg:#fee2e2;--color-error-border:#fca5a5;--header-bg:#ffffffe6;--header-border:#e2e8f0;--toolbar-bg:#f8fafc;--input-bg:#fff;--panel-bg:#fff;--dropdown-bg:#fff;--btn-primary-bg:linear-gradient(135deg, #0284c7 0%, #0369a1 100%);--btn-primary-text:#fff;--btn-primary-border:#0284c7;--btn-secondary-bg:#f1f5f9;--btn-secondary-hover:#e2e8f0;--btn-secondary-text:#1e293b;--btn-secondary-border:#cbd5e1;--toggle-bg:#f1f5f9;--toggle-border:#cbd5e1;--toggle-color:#334155;--toggle-hover-bg:#e2e8f0;--toggle-hover-border:#0284c7;--toggle-hover-color:#0f172a;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 16px #00000014;--shadow-glow:0 0 20px #0284c71a}html,body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;transition:background-color .25s,color .25s;overflow-x:hidden}.app{flex-direction:column;min-height:100vh;padding-bottom:0;display:flex}.header{z-index:50;background:var(--header-bg);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--header-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:20px;padding:10px 24px;transition:background .25s,border-color .25s;display:flex;position:sticky;top:0}.header-brand{color:inherit;align-items:center;gap:12px;text-decoration:none;display:flex}.header-brand:hover .logo{box-shadow:0 0 16px var(--color-primary-glow);border-color:#38bdf880;transform:translateY(-1px)}.logo{font-size:18px;font-weight:800;font-family:var(--font-mono);color:var(--color-accent-cyan);border-radius:var(--radius-md);background:linear-gradient(135deg,#38bdf826,#a855f726);border:1px solid #38bdf84d;padding:6px 12px;transition:all .2s}.header-brand__text{flex-direction:column;display:flex}.header-brand__title-row{align-items:center;gap:8px;display:flex}.header-title{letter-spacing:-.02em;color:var(--color-text);margin:0;font-size:18px;font-weight:800}.header-badge{border-radius:var(--radius-sm);color:var(--color-accent-cyan);letter-spacing:.04em;background:#38bdf81f;border:1px solid #38bdf840;padding:1px 6px;font-size:11px;font-weight:700}.header-subtitle{color:var(--color-muted);margin:2px 0 0;font-size:12px;font-weight:500}.header-right{align-items:center;gap:12px;display:flex}.header-nav{background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:8px;align-items:center;gap:4px;padding:3px;display:flex}.header-nav a{color:var(--color-text-secondary);cursor:pointer;border:1px solid #0000;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-block}.header-nav a:hover{color:var(--color-text);background:var(--color-surface-hover)}.header-nav a.active{background:var(--btn-primary-bg);color:var(--btn-primary-text);border:1px solid var(--btn-primary-border);box-shadow:0 1px 4px var(--color-primary-glow)}.header-nav a.active:hover{color:#fff;background:linear-gradient(135deg,#0369a1 0%,#075985 100%)}.header-divider{background:var(--color-border);width:1px;height:24px}.main-layout{flex-shrink:0;width:100%;display:flex}.main-layout--editor{height:calc(100vh - var(--editor-chrome) + 180px);max-height:calc(100vh - var(--editor-chrome) + 180px);flex:none;padding:0;display:flex;overflow:hidden}.main-content{flex-direction:column;flex:1;gap:16px;width:100%;min-width:0;padding:16px;display:flex}.main-content--editor{flex-direction:column;flex:1;gap:10px;min-height:0;padding:10px 16px 0;display:flex}.editor-toolbar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;transition:background .25s,border-color .25s;display:flex}.editor-toolbar__sources{flex-wrap:wrap;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.toolbar-item{align-items:center;gap:8px;display:flex}.toolbar-item--url{flex:1;align-items:center;gap:8px;min-width:240px;display:flex}.toolbar-item--url input{background:var(--input-bg);min-width:0;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-mono);flex:1;padding:8px 12px;font-size:12.5px;transition:border-color .15s,box-shadow .15s}.toolbar-item--url input:focus{border-color:var(--color-border-active);box-shadow:0 0 0 3px var(--color-primary-glow);outline:none}.status-inline{border-radius:var(--radius-sm);white-space:nowrap;letter-spacing:.01em;flex-shrink:0;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.status-inline--success{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.status-inline--error{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error-border)}.editor-workspace{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:0;box-shadow:var(--shadow-sm);flex:1;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;padding:12px;transition:background .25s,border-color .25s;display:grid}.editor-panel{background:var(--panel-bg);border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:visible}.editor-panel>:not(.panel-header):not(.input-editor-toolbar){flex:1;min-height:0;overflow:hidden}.panel-header{border-bottom:1px solid var(--color-border);background:#ffffff05;flex-shrink:0;justify-content:space-between;align-items:center;height:32px;margin-bottom:6px;padding:6px 10px;display:flex}.panel-header h2{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text);align-items:center;gap:8px;margin:0;font-size:12px;font-weight:700;display:flex}.panel-header__dot{border-radius:50%;width:7px;height:7px;display:inline-block}.panel-header__dot--cyan{background:var(--color-accent-cyan);box-shadow:0 0 8px var(--color-accent-cyan)}.panel-header__dot--emerald{background:var(--color-accent-emerald);box-shadow:0 0 8px var(--color-accent-emerald)}.panel-header__meta{font-family:var(--font-mono);color:var(--color-muted);letter-spacing:.02em;font-size:11px;font-weight:500}.shortcut-badge{font-family:var(--font-mono);color:inherit;letter-spacing:-.02em;background:#ffffff26;border-radius:4px;align-items:center;margin-left:6px;padding:1px 5px;font-size:10px;font-weight:600;display:inline-flex}.btn-upload-chip{align-items:center;gap:6px;display:inline-flex}.action-column{flex-direction:column;flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;gap:10px;min-width:140px;height:100%;padding:0 4px;display:flex}.action-column__buttons{flex-direction:column;flex-shrink:0;justify-content:center;align-items:stretch;gap:8px;width:100%;display:flex}.action-column .btn{white-space:nowrap;letter-spacing:.01em;min-width:130px;padding:8px 14px;font-size:12.5px}.action-divider{background:var(--color-border);height:1px;margin:4px 0}.indent-label--vertical{color:var(--color-muted);text-transform:uppercase;letter-spacing:.05em;flex-direction:column;align-items:stretch;gap:4px;font-size:11px;font-weight:600;display:flex}.indent-label--vertical select{background:var(--input-bg);width:100%;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;padding:6px 8px;font-size:12px;transition:border-color .15s}.indent-label--vertical select:focus{border-color:var(--color-border-active);outline:none}.btn{border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .18s cubic-bezier(.16,1,.3,1);display:inline-flex}.btn-sm{padding:6px 12px;font-size:12px}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);border:1px solid var(--btn-primary-border);box-shadow:0 1px 3px #0003}.btn-primary:hover:not(:disabled){box-shadow:0 2px 8px var(--color-primary-glow);background:linear-gradient(135deg,#0369a1 0%,#075985 100%);border-color:#38bdf880}.btn-secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border)}.btn-secondary:hover:not(:disabled){background:var(--btn-secondary-hover);color:var(--color-text);border-color:var(--color-border-hover)}.btn-outline{color:var(--color-primary-light);border:1px solid var(--btn-secondary-border);background:0 0}.btn-outline:hover:not(:disabled){background:var(--color-primary-glow);border-color:var(--color-border-active);color:var(--color-text)}.tool-page-intro{padding:4px 0 8px}@media (width<=900px){.header{flex-direction:column;align-items:flex-start;gap:12px;padding:12px 16px}.header-right{justify-content:space-between;width:100%}.editor-workspace{grid-template-columns:1fr;gap:16px}.action-column{flex-direction:row;min-width:100%;height:auto}.action-column__buttons{flex-flow:wrap;justify-content:center}.action-column .btn{min-width:100px}}.json-editor{background:#fff;border:1px solid #d1d9e6;border-radius:8px;position:relative;overflow:hidden}.json-editor--fill{flex:1 1 0;width:100%;min-height:0;overflow:hidden}.json-editor--fill>div{max-height:100%;overflow:hidden;height:100%!important}.json-editor .cm-editor{max-height:100%;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:13px;overflow:hidden;height:100%!important}.json-editor .cm-scroller{overscroll-behavior:auto;max-height:100%;overflow:auto!important}.json-editor .cm-content{min-height:100%;padding-left:12px}.json-editor .cm-placeholder{padding-left:12px}.json-editor .cm-editor.cm-focused{outline:none}.json-editor:not(.json-editor--fill) .cm-scroller{min-height:200px}.json-editor .cm-content .cm-string,.json-editor .cm-content .cm-property,.json-editor .cm-content .tok-string,.json-editor .cm-content .tok-property,.json-editor .cm-content .cmt-string,.json-editor .cm-content .cmt-property{white-space:nowrap!important}.json-tree-view{border:1px solid var(--color-border,#d1d9e6);background:var(--color-surface,#fff);max-height:500px;font-family:var(--font-mono,"JetBrains Mono", monospace);border-radius:8px;padding:16px;font-size:13px;transition:background .2s,border-color .2s;overflow:auto}.json-tree-view--dark{background:#0e1420;border-color:#ffffff14}.json-tree-view--light{background:#fff;border-color:#e2e8f0}.editor-text-view,.editor-readonly-view{width:100%;font-family:var(--font-mono);color:#1e293b;resize:vertical;box-sizing:border-box;background:#fff;border:1px solid #d1d9e6;border-radius:0 0 8px 8px;margin:0;padding:12px;font-size:13px;line-height:1.5}.editor-text-view--fill,.editor-readonly-view--fill{resize:none;flex:1;min-height:0;overflow:auto}.editor-readonly-view{white-space:pre-wrap;word-break:break-word}.editor-form-view{background:#fff;border:1px solid #d1d9e6;border-radius:0 0 8px 8px;flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px;display:flex;overflow:auto}.editor-panel .json-tree-view{border-radius:0 0 8px 8px;flex:1;min-height:0;max-height:none}.editor-panel .editor-form-view,.editor-panel .editor-text-view--fill,.editor-panel .editor-readonly-view--fill{flex:1}.editor-form-view__field{grid-template-columns:140px 1fr;align-items:center;gap:10px;font-size:13px;display:grid}.editor-form-view__field span{color:#1d4ed8;word-break:break-word;font-weight:700}.editor-form-view__field input{width:100%;font-family:var(--font-mono);border:1px solid #d1d9e6;border-radius:6px;padding:8px 10px;font-size:13px}.editor-form-view__field input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 2px #2563eb26}@media (width<=640px){.editor-form-view__field{grid-template-columns:1fr}}.input-editor-toolbar{background:var(--toolbar-bg);border-bottom:1px solid var(--color-border);border-radius:var(--radius-sm) var(--radius-sm) 0 0;z-index:5;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;min-height:38px;padding:4px 10px;transition:background .25s,border-color .25s;display:flex;position:relative;overflow:visible}.output-editor-toolbar{border-top:2px solid var(--color-accent-emerald)}.input-editor-toolbar__group{flex-shrink:0;align-items:center;gap:3px;display:flex}.input-editor-toolbar__icon-btn{border-radius:var(--radius-sm);width:30px;height:28px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;transition:all .15s;display:inline-flex}.input-editor-toolbar__icon-btn svg{width:15px;height:15px}.input-editor-toolbar__icon-btn svg.is-active{color:var(--color-primary-light)}.input-editor-toolbar__icon-btn:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-border)}.input-editor-toolbar__icon-btn:disabled{opacity:.35;cursor:not-allowed}.input-editor-toolbar__sample-btn{border:1px solid var(--btn-secondary-border);border-radius:var(--radius-sm);background:var(--btn-secondary-bg);height:28px;color:var(--color-text);cursor:pointer;margin-right:4px;padding:0 10px;font-size:12px;font-weight:600;transition:all .15s}.input-editor-toolbar__sample-btn:hover{background:var(--btn-secondary-hover);border-color:var(--color-border-hover)}.input-editor-toolbar__settings{z-index:30;position:relative}.input-editor-toolbar__settings-panel{z-index:100;border-radius:var(--radius-md);background:var(--dropdown-bg);border:1px solid var(--color-border);min-width:140px;box-shadow:var(--shadow-md);padding:10px 12px;position:absolute;top:calc(100% + 6px);left:0}.input-editor-toolbar__settings-panel label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;flex-direction:column;gap:6px;font-size:11px;font-weight:700;display:flex}.input-editor-toolbar__settings-panel select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--color-text);padding:6px 8px;font-size:12.5px}.input-editor-toolbar__view-btn{border:1px solid var(--btn-secondary-border);border-radius:var(--radius-sm);background:var(--btn-secondary-bg);height:28px;color:var(--color-text);cursor:pointer;align-items:center;gap:4px;margin-left:4px;padding:0 10px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.input-editor-toolbar__view-btn:hover{background:var(--btn-secondary-hover)}.input-editor-toolbar__view-btn[aria-expanded=true]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.input-editor-toolbar__view-menu{background:var(--dropdown-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:110px;box-shadow:var(--shadow-md);flex-direction:column;gap:2px;padding:4px;display:flex}.input-editor-toolbar__view-menu button{border-radius:var(--radius-sm);color:var(--color-text-secondary);text-align:left;cursor:pointer;background:0 0;border:none;padding:6px 10px;font-size:12.5px;font-weight:500;transition:all .15s}.input-editor-toolbar__view-menu button:hover:not(:disabled):not(.active){background:var(--color-surface-hover);color:var(--color-text)}.input-editor-toolbar__view-menu button.active{background:var(--color-primary-glow);color:var(--color-primary-light);font-weight:600}.input-editor-toolbar__view-menu button:disabled{opacity:.4;cursor:not-allowed}.editor-panel--input.is-fullscreen,.editor-panel--output.is-fullscreen{background:var(--color-surface);padding:12px}.editor-panel--input.is-fullscreen .json-editor,.editor-panel--output.is-fullscreen .json-editor{flex:1}@media (width<=900px){.input-editor-toolbar{flex-wrap:wrap;justify-content:flex-start}}.ts-generator{background:#fff;border:1px solid #d1d9e6;border-radius:8px;padding:20px}.ts-generator-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.ts-generator-header h3{color:#1e293b;margin:0;font-size:16px}.feature-badge{color:#fff;text-transform:uppercase;letter-spacing:.05em;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:4px;padding:3px 8px;font-size:10px;font-weight:700}.ts-generator-desc{color:#64748b;margin:0 0 16px;font-size:13px}.ts-generator-controls{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.ts-generator-controls label{color:#475569;flex-direction:column;gap:4px;font-size:13px;font-weight:500;display:flex}.ts-generator-controls input{border:1px solid #d1d9e6;border-radius:6px;width:200px;padding:8px 12px;font-size:13px}.ts-output{color:#e2e8f0;white-space:pre;background:#0f172a;border-radius:8px;max-height:400px;margin:0;padding:16px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:13px;line-height:1.6;overflow:auto}.ts-empty{text-align:center;color:#94a3b8;background:#f8fafc;border-radius:8px;padding:32px;font-size:14px}.json-diff{background:#fff;border:1px solid #d1d9e6;border-radius:8px;padding:20px}.json-diff-header{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.json-diff-header h3{color:#1e293b;margin:0;font-size:16px}.diff-status{border-radius:4px;padding:3px 10px;font-size:12px;font-weight:600}.diff-status--changed{color:#b45309;background:#fef3c7}.diff-status--same{color:#15803d;background:#dcfce7}.json-diff-desc{color:#64748b;margin:0 0 16px;font-size:13px}.json-diff-panels{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}@media (width<=768px){.json-diff-panels{grid-template-columns:1fr}}.json-diff-panel label{color:#475569;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.json-diff-panel textarea{resize:vertical;box-sizing:border-box;border:1px solid #d1d9e6;border-radius:8px;width:100%;height:160px;padding:12px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:13px}.json-diff-result{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=768px){.json-diff-result{grid-template-columns:1fr}}.json-diff-result-panel{border:1px solid #d1d9e6;border-radius:8px;overflow:hidden}.json-diff-result-label{color:#64748b;background:#f1f5f9;border-bottom:1px solid #d1d9e6;padding:8px 12px;font-size:12px;font-weight:600}.json-diff-result-panel pre{max-height:300px;margin:0;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:12px;line-height:1.6;overflow:auto}.diff-line{white-space:pre;padding:1px 12px}.diff-line--added{color:#166534;background:#dcfce7}.diff-line--removed{color:#991b1b;background:#fee2e2}.diff-line--unchanged{color:#475569}.tool-page-intro{max-width:1200px;margin:0 auto;padding:12px 16px 0}.tool-page-intro h2{color:var(--color-text);letter-spacing:-.02em;margin:0 0 6px;font-size:22px;font-weight:800}.tool-page-intro p{color:var(--color-text-secondary);margin:0;font-size:14px;line-height:1.6}.info-page{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:860px;box-shadow:var(--shadow-sm);margin:24px auto 48px;padding:36px 32px}.info-page h2{color:var(--color-text);letter-spacing:-.02em;margin:0 0 20px;font-size:26px;font-weight:800}.info-page p{color:var(--color-text-secondary);margin:0 0 16px;font-size:15px;line-height:1.7}.info-page__links{columns:2;gap:24px;margin:24px 0 0;padding:0;list-style:none}.info-page__links li{break-inside:avoid;margin-bottom:8px}.info-page__links a{color:var(--color-primary-light);font-size:14px;font-weight:600;text-decoration:none;transition:all .15s}.info-page__links a:hover{color:var(--color-text);text-decoration:underline}@media (width<=640px){.info-page{margin:16px;padding:24px 20px}.info-page__links{columns:1}}
