#root{min-height:100vh}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f3f4f6;--card:#fff;--border:#e5e7eb;--accent:#2563eb;--accent-hover:#1d4ed8;--text:#111827;--text-muted:#6b7280;--error:#dc2626;--radius:8px;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}body{background:var(--bg);color:var(--text);background-image:none;min-height:100vh;line-height:1.5}@media (prefers-color-scheme:dark){:root{--bg:#0b1220;--card:#111827;--border:#243244;--accent:#60a5fa;--accent-hover:#3b82f6;--text:#e5eefc;--text-muted:#9aa7bb;--error:#f87171;--shadow:0 10px 24px #00000047;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg);background-image:none}}.app{max-width:680px;margin:0 auto;padding:2.5rem 1rem 4rem}.app--wide{max-width:1200px}.app-header{text-align:center;margin-bottom:2rem}.header-top{flex-wrap:wrap;justify-content:center;align-items:center;gap:.875rem;display:flex}.app-title{color:var(--accent);letter-spacing:-.5px;font-size:2rem;font-weight:800}.app-subtitle{color:var(--text-muted);margin-top:.25rem;font-size:.9375rem}.top-nav{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin-top:.875rem;display:inline-flex}.top-nav_link{color:var(--text-muted);border:1px solid var(--border);background:var(--card);border-radius:999px;padding:.3rem .75rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .15s}.top-nav_link:hover{color:var(--accent);border-color:var(--accent)}.top-nav_link-active{background:var(--accent);color:#fff;border-color:var(--accent)}.app-main{flex-direction:column;gap:1.25rem;display:flex}.dashboard-grid{grid-template-columns:1fr;gap:1.25rem;display:grid}.app-footer{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;font-size:.85rem;display:flex}.app-footer_links{justify-content:center;align-items:center;gap:.5rem;display:flex}.app-footer a{color:var(--text-muted);font-weight:600;text-decoration:none}.app-footer a:hover{color:var(--accent)}.app-footer_legal{max-width:680px;font-size:.78rem}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex}.field{flex-direction:column;gap:.4rem;display:flex}.label{color:var(--text);align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;display:flex}.label-hint{color:var(--text-muted);font-size:.8rem;font-weight:400}.input{border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);color:var(--text);background:var(--bg);outline:none;width:100%;padding:.5rem .75rem;font-family:inherit;font-size:.9375rem;transition:border-color .15s,background .15s}.input:focus{border-color:var(--accent);background:#fff}.tab-group{flex-wrap:wrap;gap:.375rem;display:flex}.tab{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;border-radius:100px;padding:.375rem .875rem;font-family:inherit;font-size:.875rem;line-height:1.4;transition:all .15s}.tab:hover{border-color:var(--accent);color:var(--accent)}.tab--active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.tab--active:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.filter-group{border-top:1px solid var(--border);flex-direction:column;gap:.75rem;padding-top:1rem;display:flex}.checkbox-group{flex-wrap:wrap;gap:1rem;display:flex}.checkbox-label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.375rem;font-size:.875rem;display:flex}.checkbox-label input[type=checkbox]{cursor:pointer;accent-color:var(--accent);width:1rem;height:1rem}.btn{border-radius:calc(var(--radius) - 2px);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;padding:.5rem 1.25rem;font-family:inherit;font-size:.9375rem;font-weight:600;line-height:1.4;transition:all .15s;display:inline-flex}.btn--primary{background:var(--accent);color:#fff;border-color:var(--accent);align-self:flex-start}.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn--sm{padding:.3rem .75rem;font-size:.8125rem}.btn--ghost{border-color:var(--border);color:var(--text-muted);background:0 0}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}.error-msg{color:var(--error);font-size:.875rem}.status-badge{border:1px solid #0000;border-radius:100px;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:600;display:inline-flex}.status-badge--checking{color:#713f12;background:#fef9c3;border-color:#fde047}.status-badge--ok{color:#14532d;background:#dcfce7;border-color:#86efac}.status-badge--ok:before{content:"●";color:#16a34a;font-size:.6rem}.status-badge--unreachable{color:#7f1d1d;background:#fee2e2;border-color:#fca5a5}.status-badge--unreachable:before{content:"●";color:var(--error);font-size:.6rem}.status-badge--degraded{color:#7c2d12;background:#fff7ed;border-color:#fdba74}.status-badge--degraded:before{content:"●";color:#f97316;font-size:.6rem}.output-section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:.875rem;padding:1.5rem;display:flex}.static-page{gap:1rem}.static-page_title{letter-spacing:-.01em;font-size:1.35rem}.static-page_updated{color:var(--text-muted);margin-top:-.4rem;font-size:.85rem}.static-page p{font-size:.95rem}.api-docs-page{flex-direction:column;gap:1rem;display:flex}.api-docs-header{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.5rem}.api-docs-shell{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--card);overflow:hidden}.api-docs-shell .swagger-ui{color:var(--text);padding:.5rem;font-family:inherit}.api-docs-shell .swagger-ui .topbar{display:none}.api-docs-shell .swagger-ui .info .title,.api-docs-shell .swagger-ui .info p,.api-docs-shell .swagger-ui .info li,.api-docs-shell .swagger-ui .opblock-tag,.api-docs-shell .swagger-ui .response-col_status,.api-docs-shell .swagger-ui .response-col_description,.api-docs-shell .swagger-ui .parameter__name,.api-docs-shell .swagger-ui .parameter__type,.api-docs-shell .swagger-ui .tab li,.api-docs-shell .swagger-ui label,.api-docs-shell .swagger-ui h3,.api-docs-shell .swagger-ui h4{color:var(--text)}.api-docs-shell .swagger-ui .scheme-container{box-shadow:none;background:0 0}.static-page_empty{color:var(--text-muted);font-size:.9rem}.faq-list{flex-direction:column;gap:.625rem;display:flex}.terms-list{flex-direction:column;gap:.8rem;padding-left:1.2rem;display:flex}.terms-list h3{margin-bottom:.25rem;font-size:.95rem}.faq-item{border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--bg);padding:.65rem .8rem}.faq-item summary{cursor:pointer;font-size:.92rem;font-weight:600}.faq-item p{color:var(--text-muted);margin-top:.6rem}.admin-page{flex-direction:column;gap:1rem;display:flex}.admin-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.admin-actions{gap:.5rem;display:flex}.admin-summary-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;display:grid}.admin-summary-card{border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--bg);flex-direction:column;gap:.2rem;padding:.7rem .8rem;display:flex}.admin-summary-card span{color:var(--text-muted);font-size:.78rem}.admin-summary-card strong{font-size:.98rem}.admin-section{flex-direction:column;gap:.55rem;display:flex}.admin-section h3{font-size:.97rem}.admin-table-wrap{border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);overflow:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.83rem}.admin-table th,.admin-table td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:.5rem .55rem}.admin-table th{background:var(--bg);text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);font-size:.76rem}.admin-table_path{text-overflow:ellipsis;max-width:380px;overflow:hidden}.url-bar{background:var(--bg);border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.url-text{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:SF Mono,Consolas,Courier New,monospace;font-size:.8125rem;text-decoration:none;overflow:hidden}.url-text:hover{text-decoration:underline}.preview-toggle{display:flex}.preview-actions{flex-wrap:wrap;gap:.5rem;display:flex}.action-toolbar{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.5rem;margin-top:.25rem;padding-top:.4rem;display:flex}.action-toolbar .btn{border-radius:10px;gap:.45rem;min-height:2.4rem;padding:.55rem 1rem}.action-toolbar .merge-btn{background:var(--accent);color:#fff;border-color:var(--accent);align-self:flex-start}.action-toolbar .merge-btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:none;transform:none}.action-toolbar .btn--ghost{color:#334155;background:#ffffffbf;border-color:#cbd5e1}.action-toolbar .btn--ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:#fff}.warning-panel,.preview-panel{border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--bg);padding:.8rem}.warning-panel{background:linear-gradient(#f3f4f6d9,#f3f4f68c)}.preview-panel{background:linear-gradient(#f3f4f6f2,#f3f4f6a6)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner{border:2px solid var(--border);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;width:.75rem;height:.75rem;margin-right:.25rem;animation:.7s linear infinite spin;display:inline-block}.preview-meta{color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--card);padding:.5rem .875rem;font-size:.8125rem}.preview-box{border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);overflow:hidden}.preview-status{color:var(--text-muted);padding:1rem;font-size:.875rem}.preview-status--error{color:var(--error)}.preview-content{color:#cdd6f4;white-space:pre;resize:vertical;background:#1e1e2e;min-height:240px;max-height:420px;padding:1rem;font-family:SF Mono,Consolas,Courier New,monospace;font-size:.75rem;line-height:1.6;overflow:auto}.editor-pane{resize:vertical;min-height:260px}@keyframes panel-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.skeleton{flex-direction:column;gap:.45rem;padding:.6rem 0;display:flex}.skeleton-line{background:linear-gradient(90deg,#94a3b840,#94a3b866,#94a3b840) 0 0/250% 100%;border-radius:999px;height:.8rem;animation:1.2s ease-in-out infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.preview-content::-webkit-scrollbar{width:10px;height:10px}.textarea::-webkit-scrollbar{width:10px;height:10px}.preview-content,.textarea{scrollbar-width:thin;scrollbar-color:#94a3b873 transparent}.preview-content::-webkit-scrollbar-track{background:0 0}.textarea::-webkit-scrollbar-track{background:0 0}.preview-content::-webkit-scrollbar-thumb{background:#94a3b873 padding-box padding-box;border:2px solid #0000;border-radius:999px}.textarea::-webkit-scrollbar-thumb{background:#94a3b873 padding-box padding-box;border:2px solid #0000;border-radius:999px}.preview-content::-webkit-scrollbar-thumb:hover{background:#64748bb3 padding-box padding-box}.textarea::-webkit-scrollbar-thumb:hover{background:#64748bb3 padding-box padding-box}.dropzone{border:1px dashed var(--border);border-radius:calc(var(--radius) - 2px);background:var(--bg);text-align:center;cursor:pointer;padding:1rem;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone:focus-visible,.dropzone--active{border-color:var(--accent);background:#fff}.dropzone-title{font-size:.95rem;font-weight:600}.dropzone-subtitle{color:var(--text-muted);font-size:.85rem}.textarea{resize:vertical;min-height:9.5rem}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.source-list{flex-direction:column;gap:.55rem;display:flex}.source-list_items{flex-direction:column;gap:.4rem;list-style:none;display:flex}.source-list_items li{border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--bg);justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .55rem;display:flex}.sources-panel_header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.9rem;display:flex}.sources-panel{grid-column:1/-1}.sources-panel_actions{gap:.4rem;display:flex}.sources-grid{grid-template-columns:1fr;gap:.85rem;display:grid}.source-slot{border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--bg);flex-direction:column;gap:.7rem;padding:.85rem;display:flex}.source-slot_header{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.source-slot_fetch-row{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.warning-box{border-radius:calc(var(--radius) - 2px);background:#fff7ed;border:1px solid #fdba74;padding:.75rem}.warning-title{margin-bottom:.5rem;font-size:.9rem}.warning-list{color:#9a3412;flex-direction:column;gap:.3rem;padding-left:1.25rem;font-size:.85rem;list-style:outside;display:flex}.toast-stack{z-index:100;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1rem;right:1rem}.toast{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);min-width:250px;max-width:360px;box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem .7rem;animation:.18s panel-fade-in;display:flex}.toast--error{border-color:#fca5a5}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseGlow{0%{box-shadow:0 0 #2563eb4d}70%{box-shadow:0 0 0 8px #2563eb00}to{box-shadow:0 0 #2563eb00}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.panel-animate{animation:.3s ease-out slideInUp}.editor-container{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);transition:border-color .15s,box-shadow .15s;overflow:hidden}.editor-container:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb14}.monaco-loading{background:var(--card);border-radius:var(--radius);flex-direction:column;gap:.75rem;height:420px;padding:1rem;display:flex}.monaco-skeleton{background:linear-gradient(90deg, var(--border) 0%, #ffffff1a 50%, var(--border) 100%);background-size:1000px 100%;border-radius:4px;height:40px;animation:2s infinite shimmer}.monaco-skeleton:last-child{height:100px}.merge-progress{border-radius:var(--radius);color:var(--accent);background:linear-gradient(135deg,#2563eb1a,#63a5eb0d);border:1px solid #2563eb33;align-items:center;gap:.75rem;margin:1rem 0;padding:1rem;font-size:.95rem;font-weight:600;animation:.2s ease-out slideInUp;display:flex}.progress-spinner{border:2.5px solid #2563eb33;border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}.btn{transition:all .15s;position:relative}.btn:active{transform:scale(.98)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb33}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 12px #2563eb4d}.btn:disabled{opacity:.5;cursor:not-allowed}.toast{animation:.2s cubic-bezier(.34,1.56,.64,1) slideInUp}.toast.exit{animation:.2s ease-out reverse slideInUp}details{animation:.2s ease-out slideInDown}details[open] summary{margin-bottom:.5rem}.dropzone--active{animation:1.5s infinite pulseGlow}.loading-spinner{animation:1s linear infinite spin}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#6b728066;border-radius:4px;transition:background .15s}::-webkit-scrollbar-thumb:hover{background:#6b728099}.keyboard-hint{background:var(--border);color:var(--text-muted);border:1px solid var(--border);border-radius:3px;padding:.2rem .4rem;font-family:Monaco,Menlo,monospace;font-size:.75rem;font-weight:500;display:inline-block}@media (width<=640px){.app{padding:1.5rem .75rem 2.5rem}.app--wide{max-width:100%}.card,.output-section{padding:1rem}.top-nav{width:100%;display:flex}.top-nav_link{text-align:center;flex:1}.api-docs-header{padding:1rem}.admin-table{font-size:.78rem}.toast-stack{left:.75rem;right:.75rem}.toast{width:100%;max-width:none}.sources-panel_actions{width:100%}.sources-panel_actions .btn{flex:1}.action-toolbar{justify-content:stretch}.action-toolbar .btn{width:100%}}@media (width>=920px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.output-section{grid-column:1/-1}}@media (prefers-color-scheme:dark){:root{--bg:#0b1220;--card:#111827;--border:#243041;--accent:#60a5fa;--accent-hover:#3b82f6;--text:#f3f4f6;--text-muted:#9ca3af;--error:#f87171;--shadow:0 1px 3px #00000059, 0 1px 2px #00000040}.input:focus,.dropzone:hover,.dropzone:focus-visible,.dropzone--active{background:#0f172a}.status-badge--checking{color:#fde68a;background:#3f3204;border-color:#a16207}.status-badge--ok{color:#bbf7d0;background:#052e16;border-color:#15803d}.status-badge--unreachable{color:#fecaca;background:#450a0a;border-color:#b91c1c}.status-badge--degraded{color:#fed7aa;background:#431407;border-color:#c2410c}.preview-content{color:#dbeafe;background:#020617}.api-docs-shell{background:#0f172a}.api-docs-shell .swagger-ui{color:var(--text)}.api-docs-shell .swagger-ui .info .title,.api-docs-shell .swagger-ui .info p,.api-docs-shell .swagger-ui .info li,.api-docs-shell .swagger-ui .opblock-tag,.api-docs-shell .swagger-ui .response-col_status,.api-docs-shell .swagger-ui .response-col_description,.api-docs-shell .swagger-ui .parameter__name,.api-docs-shell .swagger-ui .parameter__type,.api-docs-shell .swagger-ui .tab li,.api-docs-shell .swagger-ui label,.api-docs-shell .swagger-ui h3,.api-docs-shell .swagger-ui h4,.api-docs-shell .swagger-ui .model-title,.api-docs-shell .swagger-ui .model,.api-docs-shell .swagger-ui .prop-type,.api-docs-shell .swagger-ui .prop-format,.api-docs-shell .swagger-ui .model-box,.api-docs-shell .swagger-ui .parameter__in,.api-docs-shell .swagger-ui small{color:#dbe5f3}.api-docs-shell .swagger-ui .opblock,.api-docs-shell .swagger-ui .model-box,.api-docs-shell .swagger-ui table tbody tr td,.api-docs-shell .swagger-ui table thead tr td,.api-docs-shell .swagger-ui table thead tr th,.api-docs-shell .swagger-ui .responses-inner,.api-docs-shell .swagger-ui .opblock-description-wrapper,.api-docs-shell .swagger-ui .opblock-section-header,.api-docs-shell .swagger-ui .parameters-col_description,.api-docs-shell .swagger-ui .responses-table{background:#111827;border-color:#243041}.api-docs-shell .swagger-ui .btn,.api-docs-shell .swagger-ui button,.api-docs-shell .swagger-ui select,.api-docs-shell .swagger-ui input,.api-docs-shell .swagger-ui textarea{color:#e2e8f0;background:#0b1220;border-color:#334155}.api-docs-shell .swagger-ui .tab li.active{border-color:#60a5fa}.warning-box{background:#3f1d03;border-color:#ea580c}.warning-list{color:#fdba74}.warning-panel,.preview-panel{background:#0f172a}.action-toolbar{background:0 0}.action-toolbar .btn--ghost{color:#dbe5f3;background:#0f172ab3;border-color:#334155}.preview-content::-webkit-scrollbar-thumb{background:#94a3b866 padding-box padding-box}.textarea::-webkit-scrollbar-thumb{background:#94a3b866 padding-box padding-box}.preview-content,.textarea{scrollbar-color:#94a3b866 transparent}}
