:root{--bg: #f8fafc;--surface: #ffffff;--surface-2: #f1f5f9;--border: #e2e8f0;--text: #0f172a;--text-dim: #64748b;--accent: #6366f1;--accent-hover: #4f46e5;--accent-dim: #eef2ff;--success: #16a34a;--success-dim: #f0fdf4;--warning: #d97706;--warning-dim: #fffbeb;--danger: #dc2626;--danger-dim: #fef2f2;--radius: 8px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}h1,h2,h3{letter-spacing:-.01em}a{color:var(--accent)}button{font-family:inherit;font-size:.9rem;padding:.5rem .9rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-dim)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}input[type=text],input[type=email],input[type=password],input[type=file],textarea,select{font-family:inherit;font-size:.9rem;padding:.5rem .65rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);width:100%;transition:border-color .15s ease,box-shadow .15s ease}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}input[type=checkbox]{accent-color:var(--accent)}.page{max-width:1100px;margin:0 auto;padding:1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1rem}.stack{display:flex;flex-direction:column;gap:.75rem}.row{display:flex;gap:.75rem;align-items:center}.badge{display:inline-block;font-size:.75rem;font-weight:500;padding:.15rem .6rem;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim)}.badge.ready{color:var(--success);border-color:var(--success);background:var(--success-dim)}.badge.failed{color:var(--danger);border-color:var(--danger);background:var(--danger-dim)}.badge.active{color:var(--warning);border-color:var(--warning);background:var(--warning-dim)}.alert{padding:.75rem 1rem;border-radius:var(--radius);font-size:.85rem;border:1px solid;margin:0}.alert-warning{background:var(--warning-dim);border-color:var(--warning);color:#92400e}.app-shell{display:flex;align-items:stretch;min-height:100vh}.sidebar{width:220px;flex-shrink:0;display:flex;flex-direction:column;gap:1.5rem;padding:1.25rem 1rem;background:var(--surface);border-right:1px solid var(--border)}.sidebar-brand{font-weight:600;padding:0 .75rem}.sidebar-nav{display:flex;flex-direction:column;gap:.25rem;flex:1}.sidebar-nav a{padding:.5rem .75rem;border-radius:var(--radius);text-decoration:none;color:var(--text-dim);font-size:.9rem}.sidebar-nav a.active{background:var(--accent-dim);color:var(--accent);font-weight:500}.sidebar-footer{display:flex;flex-direction:column;gap:.6rem;padding:.75rem .75rem 0;border-top:1px solid var(--border)}.sidebar-footer span{font-size:.8rem;color:var(--text-dim);overflow-wrap:anywhere}.app-main{flex:1;min-width:0}.tab-nav{display:flex;flex-direction:row;gap:.25rem;border-bottom:1px solid var(--border)}.tab-nav a{padding:.5rem .9rem;text-decoration:none;color:var(--text-dim);border-bottom:2px solid transparent}.tab-nav a.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:500}.error-text{color:var(--danger);font-size:.85rem}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th{text-align:left;padding:.6rem .9rem;font-weight:600;color:var(--text-dim);border-bottom:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;user-select:none}.data-table td{padding:.6rem .9rem;border-bottom:1px solid var(--border);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--surface-2)}@media (max-width: 768px){.app-shell{flex-direction:column}.sidebar{width:auto;flex-direction:row;align-items:center;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--border);gap:.75rem}.sidebar-nav{flex-direction:row;flex-wrap:wrap;flex:unset}.sidebar-footer{flex-direction:row;align-items:center;border-top:none;padding:0;margin-left:auto}.page{padding:1rem}}
