*,:before,:after{box-sizing:border-box}:root{--bg:#1a1d2e;--bg-card:#242740;--bg-card-hover:#2a2e4a;--border:#2e3354;--accent:#14b8a6;--accent-dark:#0d9488;--accent-dim:#14b8a626;--green:#22c55e;--orange:#f59e0b;--red:#ef4444;--purple:#a855f7;--text:#e2e8f0;--text-muted:#94a3b8;--text-dim:#64748b;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius:10px;--radius-sm:6px}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);margin:0;padding:0;font-size:14px;line-height:1.5}button{cursor:pointer;font-family:var(--font)}input,textarea{font-family:var(--font)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.app-layout{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--bg-card);border-bottom:1px solid var(--border);z-index:100;align-items:center;gap:32px;height:56px;padding:0 24px;display:flex;position:sticky;top:0}.app-logo{color:var(--text);white-space:nowrap;align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.app-logo svg{color:var(--accent)}.app-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:24px}.tab-nav{flex:1;gap:2px;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;height:56px;padding:0 16px;font-size:13px;font-weight:500;transition:color .15s,border-color .15s;display:flex}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.menu-btn{color:var(--text-muted);background:0 0;border:none;justify-content:center;align-items:center;padding:8px;transition:color .15s;display:none}.menu-btn:hover{color:var(--text)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:8px;margin:0 0 16px;font-size:13px;font-weight:600;display:flex}.badge{letter-spacing:.03em;border-radius:20px;align-items:center;gap:6px;padding:4px 12px;font-size:13px;font-weight:600;display:inline-flex}.badge-green{color:#22c55e;background:#22c55e26}.badge-orange{color:#f59e0b;background:#f59e0b26}.badge-red{color:#ef4444;background:#ef444426}.badge-blue{color:#14b8a6;background:#14b8a626}.badge-gray{color:#94a3b8;background:#64748b33}.field-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:8px 0;display:flex}.field-row:last-child{border-bottom:none}.field-label{color:var(--text);flex:1;font-size:13px}.field-key{color:var(--text-dim);margin-left:4px;font-size:11px}.field-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:90px;color:var(--text);text-align:right;padding:5px 8px;font-size:13px;transition:border-color .15s}.field-input:focus{border-color:var(--accent);outline:none}.field-unit{width:40px;color:var(--text-dim);font-size:12px}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:9px 20px;font-size:13px;font-weight:600;transition:opacity .15s,background .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#0f1117}.btn-primary:hover:not(:disabled){background:var(--accent-dark)}.btn-secondary{background:var(--border);color:var(--text)}.btn-secondary:hover:not(:disabled){background:#3a3e5a}.btn-danger{color:var(--red);background:#ef444426;border:1px solid #ef44444d}.btn-danger:hover:not(:disabled){background:#ef444440}.btn-green{color:var(--green);background:#22c55e26;border:1px solid #22c55e4d}.btn-green:hover:not(:disabled){background:#22c55e40}.btn-blue{color:var(--accent);background:#14b8a626;border:1px solid #14b8a64d}.btn-blue:hover:not(:disabled){background:#14b8a640}.btn-purple{color:var(--purple);background:#a855f726;border:1px solid #a855f74d}.btn-purple:hover:not(:disabled){background:#a855f740}.section-title{color:var(--text);align-items:center;gap:8px;margin:0 0 16px;font-size:15px;font-weight:600;display:flex}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}.log-table{border-collapse:collapse;width:100%;font-size:13px}.log-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);border-bottom:1px solid var(--border);padding:6px 12px;font-size:11px;font-weight:600}.log-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:8px 12px}.log-table tbody tr:hover{background:var(--bg)}.dot{border-radius:50%;width:8px;height:8px;display:inline-block}.dot-green{background:var(--green)}.dot-gray{background:var(--text-dim)}.dot-red{background:var(--red)}.dot-orange{background:var(--orange)}.modal-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{border:1px solid var(--border);border-radius:var(--radius);background:#2a2e4a;width:90%;max-width:420px;padding:28px 32px;box-shadow:0 20px 60px #00000080}.modal-title{margin:0 0 10px;font-size:16px;font-weight:700}.modal-body{color:var(--text-muted);margin:0 0 24px;line-height:1.6}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.info-banner{border-radius:var(--radius-sm);color:var(--text-muted);background:#14b8a614;border:1px solid #14b8a633;align-items:center;gap:8px;padding:10px 14px;font-size:12px;display:flex}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}@media (width<=900px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.app-main{padding:16px}}@media (width<=768px){.app-header{gap:12px;padding:0 16px}.menu-btn{margin-left:auto;display:inline-flex}.tab-nav{background:var(--bg-card);border-bottom:1px solid var(--border);flex-direction:column;flex:none;gap:2px;padding:6px;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 12px 24px #00000059}.tab-nav.open{display:flex}.tab-btn{border-radius:var(--radius-sm);border-bottom:none;border-left:2px solid #0000;height:auto;padding:12px 14px;font-size:14px}.tab-btn.active{border-bottom-color:#0000;border-left-color:var(--accent);background:var(--accent-dim)}}
