:root{--bg:#f8fafc;--surface:#ffffff;--border:#e2e8f0;--text:#0f172a;--muted:#64748b;--primary:#2563eb;--primary-hover:#1d4ed8;--link:#1d4ed8;--success:#047857;--error:#dc2626;--header-h:52px;--footer-h:44px;--sidebar-w:250px;--ad-width:250px;--ad-height:200px;--scrollbar-size:10px;--scrollbar-track:color-mix(in srgb, var(--border) 45%, var(--bg));--scrollbar-thumb:#cbd5e1;--scrollbar-thumb-hover:#94a3b8;--scrollbar-thumb-active:#64748b}[data-theme=dark]{--bg:#0f172a;--surface:#1e293b;--border:#334155;--text:#f1f5f9;--muted:#94a3b8;--primary:#60a5fa;--primary-hover:#93c5fd;--link:#93c5fd;--success:#34d399;--scrollbar-track:color-mix(in srgb, var(--border) 55%, var(--bg));--scrollbar-thumb:#475569;--scrollbar-thumb-hover:#64748b;--scrollbar-thumb-active:#94a3b8}*,::after,::before{box-sizing:border-box}html{color-scheme:light}html[data-theme=dark]{color-scheme:dark}.ace_scrollbar-h,.ace_scrollbar-v,.diff-content,.legal-page,.main-col,.sidebar__ads,.validation,body,html{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.ace_scrollbar-h::-webkit-scrollbar,.ace_scrollbar-v::-webkit-scrollbar,.diff-content::-webkit-scrollbar,.legal-page::-webkit-scrollbar,.main-col::-webkit-scrollbar,.sidebar__ads::-webkit-scrollbar,.validation::-webkit-scrollbar,body::-webkit-scrollbar,html::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}.ace_scrollbar-h::-webkit-scrollbar-track,.ace_scrollbar-v::-webkit-scrollbar-track,.diff-content::-webkit-scrollbar-track,.legal-page::-webkit-scrollbar-track,.main-col::-webkit-scrollbar-track,.sidebar__ads::-webkit-scrollbar-track,.validation::-webkit-scrollbar-track,body::-webkit-scrollbar-track,html::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:999px}.ace_scrollbar-h::-webkit-scrollbar-thumb,.ace_scrollbar-v::-webkit-scrollbar-thumb,.diff-content::-webkit-scrollbar-thumb,.legal-page::-webkit-scrollbar-thumb,.main-col::-webkit-scrollbar-thumb,.sidebar__ads::-webkit-scrollbar-thumb,.validation::-webkit-scrollbar-thumb,body::-webkit-scrollbar-thumb,html::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:999px;border:2px solid var(--scrollbar-track);background-clip:padding-box}.ace_scrollbar-h::-webkit-scrollbar-thumb:hover,.ace_scrollbar-v::-webkit-scrollbar-thumb:hover,.diff-content::-webkit-scrollbar-thumb:hover,.legal-page::-webkit-scrollbar-thumb:hover,.main-col::-webkit-scrollbar-thumb:hover,.sidebar__ads::-webkit-scrollbar-thumb:hover,.validation::-webkit-scrollbar-thumb:hover,body::-webkit-scrollbar-thumb:hover,html::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}.ace_scrollbar-h::-webkit-scrollbar-thumb:active,.ace_scrollbar-v::-webkit-scrollbar-thumb:active,.diff-content::-webkit-scrollbar-thumb:active,.legal-page::-webkit-scrollbar-thumb:active,.main-col::-webkit-scrollbar-thumb:active,.sidebar__ads::-webkit-scrollbar-thumb:active,.validation::-webkit-scrollbar-thumb:active,body::-webkit-scrollbar-thumb:active,html::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active)}.ace_scrollbar-h::-webkit-scrollbar-corner,.ace_scrollbar-v::-webkit-scrollbar-corner,.diff-content::-webkit-scrollbar-corner,.legal-page::-webkit-scrollbar-corner,.main-col::-webkit-scrollbar-corner,.sidebar__ads::-webkit-scrollbar-corner,.validation::-webkit-scrollbar-corner,body::-webkit-scrollbar-corner,html::-webkit-scrollbar-corner{background:var(--scrollbar-track)}body,html{margin:0;height:100%;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text)}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}.header{display:flex;align-items:center;gap:1rem;padding:.5rem .75rem;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}.header__brand{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.header__title{font-size:1rem;font-weight:700;margin:0;white-space:nowrap;color:var(--text)}.toolbar{display:flex;flex-wrap:wrap;gap:.35rem;flex:1}.btn{padding:.35rem .65rem;font-size:.8rem;font-weight:500;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap}@media (prefers-reduced-motion:no-preference){.btn{transition:background-color .15s}}.btn:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--surface))}.btn--ghost{background:0 0}.btn--support{text-decoration:none;color:#d97706;border-color:color-mix(in srgb,#d97706 30%,var(--border))}.btn-icon{background:0 0;border:none;cursor:pointer;font-size:1.1rem;color:var(--muted);padding:.2rem .4rem;border-radius:4px}.btn-icon:hover{color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,transparent)}.btn-icon.btn--active{color:var(--primary);background:color-mix(in srgb,var(--primary) 15%,var(--surface))}.panel__head-actions{display:flex;align-items:center;gap:.15rem}.btn-icon svg{width:16px;height:16px;display:block}.btn--icon{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .55rem}.btn--icon .btn__icon{display:inline-flex;width:16px;height:16px;flex-shrink:0}.btn--icon .btn__icon svg{width:16px;height:16px}.btn--icon .btn__label{font-size:.8rem}.btn--active{background:color-mix(in srgb,var(--primary) 15%,var(--surface));border-color:var(--primary);color:var(--primary)}.btn--sm{padding:.25rem .55rem;font-size:.75rem}.btn__icon--inline{display:inline-flex;width:16px;height:16px;vertical-align:middle}.btn__icon--inline svg{width:16px;height:16px}.workspace{display:flex;flex:1;min-height:0;overflow:hidden}.main-col{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.panels{display:grid;grid-template-columns:1fr 1fr;flex:1;min-width:0;gap:1px;background:var(--border)}.panel{display:flex;flex-direction:column;background:var(--surface);min-height:0}.panel--preview{contain:layout}.panel__head{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;border-bottom:1px solid var(--border);flex-shrink:0;font-size:.75rem}.panel__label{font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);cursor:default}.panel__label--live{color:var(--success);font-weight:700}.panel__file{font-family:ui-monospace,monospace;color:var(--muted);font-size:.7rem}.editor{flex:1;min-height:200px;width:100%;font-size:14px;contain:layout style}.editor--loading{background:color-mix(in srgb,var(--border) 35%,var(--surface))}.ace_editor>.ace_sb-h div,.ace_editor>.ace_sb-v div{background:var(--scrollbar-thumb)!important;border:none!important;border-radius:999px!important}.ace_editor>.ace_sb-h:hover div,.ace_editor>.ace_sb-v:hover div{background:var(--scrollbar-thumb-hover)!important}.preview-frame{flex:1;width:100%;border:none;background:#fff;min-height:200px}.validation{padding:.4rem .75rem;font-size:.75rem;border-top:1px solid var(--border);max-height:80px;overflow-y:auto}.validation-ok{color:var(--success);margin:0;font-weight:600}.validation-err{color:var(--error);margin:0 0 .25rem;font-weight:600}.validation ul{margin:0;padding-left:1.2rem;color:var(--muted)}.diff-panel{flex-shrink:0;height:var(--diff-height,220px);min-height:100px;border-top:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column}.diff-panel[hidden]{display:none!important}.diff-resize-handle{flex-shrink:0;height:8px;margin-top:-4px;cursor:row-resize;touch-action:none;background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--border) 70%,transparent) 45%,color-mix(in srgb,var(--primary) 25%,var(--border)) 50%,color-mix(in srgb,var(--border) 70%,transparent) 55%,transparent);position:relative;z-index:2}.diff-resize-handle::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:36px;height:4px;border-radius:999px;background:color-mix(in srgb,var(--muted) 55%,transparent)}.diff-resize-handle:focus-visible::after,.diff-resize-handle:hover::after{background:var(--primary)}.diff-resize-handle:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}body.is-resizing-diff{cursor:row-resize!important;user-select:none}body.is-resizing-diff iframe{pointer-events:none}.diff-panel__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.4rem .75rem;border-bottom:1px solid var(--border);font-size:.8rem;font-weight:600;flex-shrink:0}.diff-panel__title{display:flex;align-items:center;gap:.4rem}.diff-stats{font-weight:400;color:var(--muted);font-size:.75rem}.diff-panel__actions{display:flex;align-items:center;gap:.35rem}.diff-content{flex:1;overflow:auto;min-height:0}.diff-grid{display:grid;grid-template-columns:1fr 1fr;min-height:100%}.diff-col__head{position:sticky;top:0;z-index:1;padding:.3rem .5rem;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:color-mix(in srgb,var(--border) 40%,var(--surface));border-bottom:1px solid var(--border)}.diff-col:first-child{border-right:1px solid var(--border)}.diff-line{display:flex;font-family:ui-monospace,"Cascadia Code","Fira Code",monospace;font-size:.72rem;line-height:1.5;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent)}.diff-num{flex-shrink:0;width:2.5rem;padding:0 .35rem;text-align:right;color:var(--muted);background:color-mix(in srgb,var(--border) 25%,var(--surface));user-select:none}.diff-text{flex:1;padding:0 .5rem;white-space:pre-wrap;word-break:break-all}.diff-line--added{background:color-mix(in srgb,#059669 12%,var(--surface))}.diff-line--added .diff-num{background:color-mix(in srgb,#059669 20%,var(--surface));color:#059669}.diff-line--removed{background:color-mix(in srgb,#dc2626 12%,var(--surface))}.diff-line--removed .diff-num{background:color-mix(in srgb,#dc2626 20%,var(--surface));color:#dc2626}.diff-line--faded{opacity:.35}.sidebar{width:var(--sidebar-w);flex-shrink:0;align-self:stretch;display:flex;flex-direction:column;padding:.6rem;background:var(--surface);border-left:1px solid var(--border);overflow:hidden;min-height:0}.sidebar__inner{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;align-items:center}.sidebar__ads{display:flex;flex-direction:column;gap:.5rem;width:100%;align-items:center;flex:1;min-height:0;overflow-y:auto}.ad-slot{width:var(--ad-width);max-width:100%;height:var(--ad-height);flex-shrink:0;display:flex;align-items:center;justify-content:center}.ad-placeholder{width:100%;height:100%;min-height:var(--ad-height);border:1px dashed var(--border);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:.75rem;color:var(--muted);padding:.75rem;line-height:1.4}.sidebar__note{font-size:.62rem;color:var(--muted);text-align:center;margin:0;margin-top:auto;padding-top:.5rem;line-height:1.35;width:100%;flex-shrink:0}.footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;padding:.5rem 1rem;font-size:.75rem;color:var(--muted);background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}.footer p{margin:0}.footer__links{display:flex;align-items:center;gap:.5rem}.footer__links a{color:var(--link);text-decoration:none;font-weight:500}.footer__links a:hover{color:var(--primary-hover);text-decoration:underline}.toast{position:fixed;bottom:1.25rem;right:1.25rem;padding:.65rem 1rem;border-radius:8px;font-size:.85rem;background:var(--text);color:var(--bg);opacity:0;transform:translateY(8px);pointer-events:none;z-index:100;max-width:280px;will-change:transform,opacity}@media (prefers-reduced-motion:no-preference){.toast{transition:opacity .2s,transform .2s}}.toast--show{opacity:1;transform:translateY(0)}.toast--success{background:var(--success);color:#fff}.toast--error{background:var(--error);color:#fff}.cookie-banner{position:fixed;inset:auto 0 0 0;z-index:250;padding:.75rem;pointer-events:none;opacity:0;transform:translateY(1rem)}@media (prefers-reduced-motion:no-preference){.cookie-banner{transition:opacity .35s ease,transform .35s ease}}.cookie-banner--show{opacity:1;transform:translateY(0);pointer-events:auto}.cookie-banner__panel{max-width:52rem;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.25rem;padding:1rem 1.15rem;border-radius:16px;border:1px solid color-mix(in srgb,var(--border) 80%,var(--primary) 20%);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 4px 6px -2px color-mix(in srgb,var(--text) 8%,transparent),0 20px 40px -12px color-mix(in srgb,var(--text) 18%,transparent)}.cookie-banner__icon{flex-shrink:0;width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--primary) 14%,var(--surface));color:var(--primary)}.cookie-banner__icon svg{width:1.45rem;height:1.45rem}.cookie-banner__content{flex:1 1 14rem;min-width:0}.cookie-banner__title{margin:0 0 .35rem;font-size:.95rem;font-weight:700;color:var(--text)}.cookie-banner__text{margin:0;font-size:.8rem;line-height:1.55;color:var(--muted)}.cookie-banner__text a{color:var(--link);font-weight:500;text-decoration:none}.cookie-banner__text a:hover{text-decoration:underline}.cookie-banner__actions{display:flex;flex-wrap:wrap;gap:.5rem;flex-shrink:0;width:100%}@media (min-width:720px){.cookie-banner__actions{width:auto;margin-left:auto}}.cookie-banner__btn{flex:1 1 auto;min-width:8.5rem;padding:.55rem 1rem;font-size:.8rem;font-weight:600;border-radius:10px;border:1px solid transparent;cursor:pointer;white-space:nowrap}@media (min-width:720px){.cookie-banner__btn{flex:0 0 auto}}.cookie-banner__btn--primary{background:var(--primary);color:#fff;border-color:var(--primary)}.cookie-banner__btn--primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.cookie-banner__btn--ghost{background:var(--surface);color:var(--text);border-color:var(--border)}.cookie-banner__btn--ghost:hover{background:color-mix(in srgb,var(--border) 35%,var(--surface))}.legal-page{max-width:720px;margin:0 auto;padding:2rem 1.25rem 3rem;line-height:1.7}.legal-page h1{font-size:1.75rem;margin-bottom:.5rem}.legal-page h2{font-size:1.15rem;margin-top:1.75rem}.legal-page li,.legal-page p{color:var(--muted)}.legal-page a{color:var(--link)}.legal-back{display:inline-block;margin-bottom:1.5rem;color:var(--link);text-decoration:none;font-size:.9rem}.legal-back:hover{text-decoration:underline}.legal-table{width:100%;border-collapse:collapse;font-size:.85rem;margin:1rem 0 2rem}.legal-table td,.legal-table th{border:1px solid var(--border);padding:.5rem .75rem;text-align:left;vertical-align:top}.legal-table th{background:color-mix(in srgb,var(--border) 30%,var(--surface));color:var(--text)}.license-block{margin:.75rem 0 2rem;padding:1rem 1.25rem;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--border) 12%,var(--surface));font-family:ui-monospace,"Cascadia Code",monospace;font-size:.72rem;line-height:1.65;white-space:pre-wrap;color:var(--muted);overflow-x:auto}.license-block strong{color:var(--text)}.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}.app:fullscreen{background:var(--bg)}.app:fullscreen .footer{display:none}@media (max-width:1024px){:root{--ad-width:300px;--ad-height:250px;--mobile-editor-min:max(200px, 28vh);--mobile-preview-min:max(160px, 22vh)}.workspace{flex-direction:column;flex:1;min-height:0;overflow:hidden}.main-col{flex:1;min-height:0;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.panels{flex:1 1 auto;min-height:calc(var(--mobile-editor-min) + var(--mobile-preview-min))}.sidebar{width:100%;flex:0 0 auto;border-left:none;border-top:1px solid var(--border);padding:.45rem .5rem .5rem}.sidebar__inner{width:100%;max-width:none;margin:0}.sidebar__ads{flex-direction:row;flex:0 0 auto;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;justify-content:flex-start;gap:.5rem;padding-bottom:2px;scrollbar-width:none}.sidebar__ads::-webkit-scrollbar{display:none}.ad-slot{flex:0 0 var(--ad-width)}.sidebar__note{margin-top:.35rem;padding-top:0}.diff-panel{max-height:min(38vh,280px)}.diff-grid{grid-template-columns:1fr}.diff-col:first-child{border-right:none;border-bottom:1px solid var(--border)}.diff-line{font-size:.68rem}.diff-num{width:2rem}}@media (max-width:900px){.btn--icon .btn__label{display:none}.btn--icon{padding:.4rem}.header{gap:.5rem}.toolbar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.toolbar::-webkit-scrollbar{display:none}}@media (max-width:768px){:root{--diff-height:150px;--ad-width:280px;--ad-height:100px;--mobile-editor-min:max(220px, 32vh);--mobile-preview-min:max(180px, 26vh)}.panels{display:flex;flex-direction:column;flex:1 1 auto;min-height:calc(var(--mobile-editor-min) + var(--mobile-preview-min));gap:1px;background:var(--border)}.panel{flex:1 1 auto;min-height:0}.panel--editor{min-height:var(--mobile-editor-min)}.panel--preview{min-height:var(--mobile-preview-min)}.editor{min-height:calc(var(--mobile-editor-min) - 2rem)}.preview-frame{min-height:calc(var(--mobile-preview-min) - 2rem)}.validation{max-height:56px;flex-shrink:0}.diff-panel{max-height:min(35vh,220px);min-height:80px}.header__title{display:none}}@media (max-width:480px){.btn{font-size:.72rem;padding:.3rem .5rem}}