:root{--bg:linear-gradient(180deg, #55c7f0 0%, #2a8fd3 55%, #1c6fb1 100%);--panel:#f4feff;--text:#0f172a;--muted:#4b5563;--border:#0f172a1f;--accent:#208ecb;--accent-strong:#167db6;--danger:#dc2626}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);background-repeat:no-repeat;background-size:cover;background-attachment:fixed;min-height:100vh;margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif}#root{min-height:100vh}.wrap{max-width:1200px;min-height:100vh;margin:0 auto;padding:18px}.wrapAdmin{width:auto;max-width:none;margin:0}.grid{grid-template-columns:1.2fr .8fr;gap:16px;display:grid}@media (width<=900px){.grid{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--border);border-radius:3px;padding:14px}.card h1{margin:0 0 8px;font-size:20px}.row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}label{color:var(--muted);font-size:12px;display:block}input[type=number]{border:1px solid var(--border);width:120px;color:var(--text);background:0 0;border-radius:10px;outline:none;padding:10px}input[type=file]{width:100%}button{color:#fff;cursor:pointer;box-shadow:none;background:#208ecb;border:1px solid #208ecb8c;border-radius:10px;padding:11px 14px;transition:transform 80ms,filter .12s}button:disabled{opacity:1;cursor:not-allowed;box-shadow:none;color:#0f172a99;background:#208ecb40;border-color:#208ecb59}button:hover:not(:disabled){filter:brightness(.98)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible{outline-offset:2px;outline:3px solid #208ecb59}.dropzone{text-align:center;color:var(--muted);background:#ffffffc7;border:1px dashed #208ecb8c;border-radius:3px;padding:16px}.fileItem{border-top:1px solid #0f172a14;grid-template-columns:32px 1fr auto;align-items:center;gap:10px;padding:8px 0;display:grid}.fileIcon{background:#208ecb14;border:1px solid #0f172a1f;border-radius:3px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.progressBar{background:#0f172a0a;border:1px solid #0f172a1f;border-radius:999px;width:240px;height:10px;overflow:hidden}.progressFill{background:linear-gradient(90deg, var(--accent), #208ecb40);height:100%}.status{color:var(--muted);font-size:12px}.errorText{color:var(--danger);margin-top:8px;font-size:13px}.healthCard{background:#ffffffdb;border:1px solid #0f172a1a;border-radius:3px;margin-bottom:12px;padding:10px}.healthOnline{color:#58d68d;font-weight:700}.healthOffline{color:#ff7676;font-weight:700}.testCard{margin-top:16px}.testLogArea{background:#ffffffbf;border:1px solid #0f172a1f;border-radius:3px;max-height:240px;padding:8px 10px;overflow:auto}.testLogLine{color:#374151;border-bottom:1px dashed #0f172a14;padding:2px 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45}.testLogLine:last-child{border-bottom:none}.heroBrand{text-align:center;color:#fffffffa;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000014;border-bottom:1px solid #ffffff26;margin:-18px -18px 16px;padding:26px 10px 14px}.heroTitle{letter-spacing:-1.2px;margin:0;font-size:58px;font-weight:900;line-height:1}.heroTitle .accent{background:#ffffff26;border:1px solid #ffffff40;border-radius:8px;margin-left:14px;padding:10px 18px;display:inline-block}.heroSubtitle{letter-spacing:-.6px;margin-top:10px;font-size:36px;font-weight:800}.heroLead{color:#ffffffeb;max-width:780px;margin:12px auto 0;font-size:18px;line-height:1.5}.adminActionRow{flex-wrap:nowrap;align-items:center;gap:4px}.buttonSmall{white-space:nowrap;border-radius:7px;margin:0;padding:4px 8px;font-size:11px;line-height:1.1}
