:root{--bg: #0c1117;--bg-elevated: #151b24;--bg-card: #1a222d;--border: #2a3544;--text: #e8edf4;--text-muted: #8b9cb3;--accent: #3b82f6;--accent-hover: #2563eb;--success: #22c55e;--success-bg: rgba(34, 197, 94, .12);--danger: #ef4444;--danger-bg: rgba(239, 68, 68, .12);--warning: #f59e0b;--warning-bg: rgba(245, 158, 11, .12);--radius: 10px;--shadow: 0 4px 24px rgba(0, 0, 0, .35);font-family:DM Sans,system-ui,sans-serif;line-height:1.5;color:var(--text);background:var(--bg)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--bg-elevated);border-right:1px solid var(--border);padding:1.5rem 1rem;display:flex;flex-direction:column;gap:2rem}.brand{padding:0 .75rem}.brand h1{margin:0;font-size:1.1rem;font-weight:700;letter-spacing:-.02em}.brand p{margin:.25rem 0 0;font-size:.75rem;color:var(--text-muted)}.nav{display:flex;flex-direction:column;gap:.25rem}.nav a{padding:.65rem .85rem;border-radius:var(--radius);color:var(--text-muted);font-weight:500;font-size:.9rem;transition:background .15s,color .15s}.nav a:hover{background:var(--bg-card);color:var(--text)}.nav a.active{background:#3b82f626;color:var(--accent)}.main{padding:2rem 2.5rem;overflow-x:auto}.page-header{margin-bottom:1.75rem}.page-header h2{margin:0;font-size:1.65rem;font-weight:700;letter-spacing:-.03em}.page-header p{margin:.35rem 0 0;color:var(--text-muted);font-size:.95rem}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:1.75rem}.metric-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;box-shadow:var(--shadow)}.metric-card .label{font-size:.78rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.metric-card .value{font-size:1.75rem;font-weight:700;margin-top:.35rem;font-variant-numeric:tabular-nums}.metric-card.highlight .value{color:var(--success)}.reports-summary .metric-card{display:flex;flex-direction:column;gap:.2rem}.reports-summary .metric-card .value{font-size:1.5rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;box-shadow:var(--shadow)}.card h3{margin:0 0 1rem;font-size:1rem;font-weight:600}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{flex-direction:row;flex-wrap:wrap;align-items:center}.grid-2{grid-template-columns:1fr}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1.1rem;border-radius:8px;border:none;cursor:pointer;font-weight:600;font-size:.875rem;transition:background .15s,opacity .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border)}.btn-danger{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(239,68,68,.3)}.form-group{display:block;width:100%;margin-bottom:1.25rem}.field-label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.5rem;color:var(--text)}.form-group input,.form-group select{display:block;width:100%;padding:.6rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text)}.form-group input:focus,.form-group select:focus{outline:2px solid rgba(59,130,246,.4);border-color:var(--accent)}.upload-form{max-width:560px}.upload-fields{display:flex;flex-direction:column;gap:.25rem}.file-field{margin-bottom:1rem}.file-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:88px;border:2px dashed var(--border);border-radius:var(--radius);padding:1rem 1.25rem;text-align:center;background:var(--bg);cursor:pointer;transition:border-color .15s,background .15s;box-sizing:border-box}.file-drop-hint{color:var(--text-muted);font-size:.9rem}.form-actions{margin-top:.5rem;padding-top:.5rem}.form-actions .btn-primary{width:100%}.delete-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.btn-danger-outline{background:transparent;color:var(--danger);border:1px solid rgba(239,68,68,.45)}.btn-danger-outline:hover:not(:disabled){background:var(--danger-bg)}.file-drop:hover,.file-drop.has-file{border-color:var(--accent);background:#3b82f60d}.file-drop input{display:none}.file-drop .filename{margin-top:.5rem;font-size:.85rem;color:var(--success);font-family:JetBrains Mono,monospace}.filters-bar{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;align-items:flex-end}.filters-bar .form-group{margin:0;min-width:140px;flex:1}.filters-bar .form-group.search{flex:2;min-width:200px}.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border)}table.data-table{width:100%;border-collapse:collapse;font-size:.85rem}table.data-table th,table.data-table td{padding:.65rem .85rem;text-align:left;border-bottom:1px solid var(--border)}table.data-table th{background:var(--bg-elevated);font-weight:600;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;position:sticky;top:0}table.data-table tbody tr:hover{background:#ffffff05}table.data-table td.hostname{font-family:JetBrains Mono,monospace;font-size:.8rem}table.data-table td.date-cell{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.72rem;font-weight:600}.badge-ok{background:var(--success-bg);color:var(--success)}.badge-fail{background:var(--danger-bg);color:var(--danger)}.badge-warn{background:var(--warning-bg);color:var(--warning)}.pagination{display:flex;align-items:center;justify-content:space-between;margin-top:1rem;gap:1rem;flex-wrap:wrap}.pagination .info{color:var(--text-muted);font-size:.85rem}.alert{padding:.85rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem}.alert-error{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(239,68,68,.25)}.alert-success{background:var(--success-bg);color:var(--success);border:1px solid rgba(34,197,94,.25)}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.dist-bar{display:flex;flex-direction:column;gap:.5rem}.dist-row{display:grid;grid-template-columns:1fr 3fr 60px;gap:.75rem;align-items:center;font-size:.82rem}.dist-row .bar{height:8px;background:var(--bg);border-radius:4px;overflow:hidden}.dist-row .bar fill,.dist-row .bar-inner{display:block;height:100%;background:var(--accent);border-radius:4px}.history-list{list-style:none;margin:0;padding:0}.history-list li{display:flex;justify-content:space-between;align-items:center;padding:.65rem 0;border-bottom:1px solid var(--border);font-size:.88rem}.history-list li:last-child{border-bottom:none}.history-list a{color:var(--accent);font-weight:500}.loading{color:var(--text-muted);padding:2rem;text-align:center}.checkbox-inline{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-muted);padding-bottom:.5rem}.checkbox-inline input{accent-color:var(--accent)}
