:root{--bg-page:#0f172a;--bg-card:#1e293b;--bg-subtle:#334155;--line:#475569;--text-main:#f8fafc;--text-muted:#94a3b8;--brand:#38bdf8;--brand-hover:#0284c7;--accent:#a855f7;--success:#22c55e;--success-bg:#22c55e26;--error:#ef4444;--error-bg:#ef444440;--warning:#f59e0b;--warning-bg:#f59e0b33;--font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", Menlo, Monaco, Consolas, monospace}[data-theme=light]{--bg-page:#f8fafc;--bg-card:#fff;--bg-subtle:#f1f5f9;--line:#cbd5e1;--text-main:#0f172a;--text-muted:#64748b;--brand:#0284c7;--brand-hover:#0369a1;--accent:#9333ea;--success:#16a34a;--success-bg:#16a34a1f;--error:#dc2626;--error-bg:#dc262626;--warning:#d97706;--warning-bg:#d9770626}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-page);color:var(--text-main);flex-direction:column;min-height:100vh;line-height:1.6;display:flex}.wrap{width:min(74rem,100% - 2rem);margin-inline:auto}header.site-header{background:var(--bg-card);border-bottom:1px solid var(--line);padding:1.25rem 0}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.logo-group h1{letter-spacing:-.02em;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:800;display:flex}.logo-badge{background:var(--brand);color:#0f172a;text-transform:uppercase;border-radius:4px;padding:.15rem .45rem;font-size:.75rem;font-weight:700}.tagline{color:var(--text-muted);margin-top:.15rem;font-size:.9rem}.header-actions{align-items:center;gap:.75rem;display:flex}.btn-secondary{background:var(--bg-subtle);border:1px solid var(--line);color:var(--text-main);cursor:pointer;border-radius:6px;align-items:center;gap:.4rem;padding:.45rem .85rem;font-size:.875rem;transition:all .2s;display:inline-flex}.btn-secondary:hover{border-color:var(--brand);color:var(--brand)}main{flex-direction:column;flex:1;gap:1.5rem;padding:1.75rem 0 3rem;display:flex}.card{background:var(--bg-card);border:1px solid var(--line);border-radius:12px;padding:1.25rem 1.5rem}.presets-section{flex-direction:column;gap:.85rem;display:flex}.section-title{justify-content:space-between;align-items:center;font-size:1.1rem;font-weight:700;display:flex}.preset-pills{flex-wrap:wrap;gap:.5rem;display:flex}.preset-pill{background:var(--bg-subtle);border:1px solid var(--line);color:var(--text-main);cursor:pointer;border-radius:20px;padding:.4rem .75rem;font-size:.85rem;transition:all .15s}.preset-pill:hover{border-color:var(--brand)}.preset-pill.active{background:var(--brand);color:#0f172a;border-color:var(--brand);font-weight:600}.constraint-panel{background:var(--bg-card);border-left:4px solid var(--brand);flex-direction:column;gap:.75rem;display:flex}.constraint-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.constraint-name{font-size:1.25rem;font-weight:700}.constraint-desc{color:var(--text-muted);margin-top:.2rem;font-size:.92rem}.constraint-controls{border-top:1px dashed var(--line);flex-wrap:wrap;align-items:center;gap:1rem;padding-top:.5rem;display:flex}.input-group{align-items:center;gap:.5rem;font-size:.9rem;display:flex}.input-group label{color:var(--text-muted)}.input-group input[type=text],.input-group input[type=number],.input-group select{background:var(--bg-subtle);border:1px solid var(--line);color:var(--text-main);border-radius:6px;padding:.35rem .65rem;font-size:.9rem}.status-banner{border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.25rem;font-size:.95rem;font-weight:600;transition:all .2s;display:flex}.status-banner.valid{background:var(--success-bg);border:1px solid var(--success);color:var(--success)}.status-banner.invalid{background:var(--error-bg);border:1px solid var(--error);color:var(--error)}.editor-wrapper{border:1px solid var(--line);background:var(--bg-subtle);border-radius:8px;position:relative;overflow:hidden}.editor-container{min-height:18rem;position:relative}.editor-backdrop,.editor-input{width:100%;height:100%;font-family:var(--font-mono);white-space:pre-wrap;word-wrap:break-word;border:none;border-radius:0;margin:0;padding:1.25rem;font-size:1.05rem;line-height:1.7;position:absolute;top:0;left:0;overflow-y:auto}.editor-backdrop{color:#0000;pointer-events:none;z-index:1}.editor-input{color:var(--text-main);caret-color:var(--brand);z-index:2;resize:vertical;background:0 0}.editor-input:focus{outline:none}.editor-wrapper:focus-within{border-color:var(--brand);box-shadow:0 0 0 2px #38bdf840}mark.violation-mark{color:#0000;border-bottom:2px solid var(--error);background-color:#ef444466;border-radius:2px}mark.violation-mark.warning{border-bottom:2px solid var(--warning);background-color:#f59e0b59}.editor-footer{background:var(--bg-card);border-top:1px solid var(--line);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem 1rem;font-size:.85rem;display:flex}.stats-group{gap:1.25rem;display:flex}.stats-group span strong{color:var(--text-main)}.editor-actions{gap:.5rem;display:flex}.btn-action{background:var(--bg-subtle);border:1px solid var(--line);color:var(--text-main);cursor:pointer;border-radius:5px;padding:.35rem .65rem;font-size:.8rem;transition:all .15s}.btn-action:hover{border-color:var(--brand);color:var(--brand)}.diagnostics-panel{grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));gap:1rem;display:grid}.violations-list{flex-direction:column;gap:.4rem;max-height:14rem;margin-top:.5rem;display:flex;overflow-y:auto}.violation-item{background:var(--bg-subtle);border-left:3px solid var(--error);border-radius:6px;justify-content:space-between;align-items:center;padding:.4rem .75rem;font-size:.85rem;display:flex}.violation-item.warning{border-left-color:var(--warning)}.freq-bars{flex-direction:column;gap:.35rem;margin-top:.5rem;display:flex}.freq-row{font-size:.85rem;font-family:var(--font-mono);align-items:center;gap:.5rem;display:flex}.freq-bar-bg{background:var(--bg-subtle);border-radius:4px;flex:1;height:8px;overflow:hidden}.freq-bar-fill{background:var(--brand);border-radius:4px;height:100%}.privacy-box{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;font-size:.875rem;display:flex}.privacy-box label{cursor:pointer;color:var(--text-main);align-items:center;gap:.5rem;display:flex}footer.site-footer{background:var(--bg-card);border-top:1px solid var(--line);text-align:center;color:var(--text-muted);padding:1.75rem 0;font-size:.9rem}footer.site-footer a{color:var(--brand);text-underline-offset:3px;font-weight:600;text-decoration:underline}footer.site-footer .footer-credit{margin-top:.4rem;font-size:.85rem}
