body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0f172a;color:#e5e7eb}.app-root{display:flex;min-height:100vh}.sidebar{width:220px;background:#020617;color:#e5e7eb;display:flex;flex-direction:column;padding:16px}.sidebar-logo{font-size:20px;font-weight:700;margin-bottom:24px}.sidebar-nav a{display:block;padding:8px 0;cursor:pointer;color:#cbd5f5}.sidebar-nav a.active{color:#38bdf8}.app-main{flex:1;display:flex;flex-direction:column;padding:16px 24px}.header h1{margin:0}.header-subtitle{font-size:14px;color:#9ca3af}.dashboard{margin-top:16px}.dashboard-controls{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:16px}.dashboard-controls input[type=number]{width:80px}.widget-selector{display:flex;flex-direction:column;gap:4px}.widget-selector-list{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px}.badge{padding:2px 8px;border-radius:999px;font-size:12px}.badge-ok{background:#16a34a}.badge-error{background:#b91c1c}.error-text{color:#f97373}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.grid-item{background:#020617;border-radius:8px;padding:12px 14px;box-shadow:0 1px 3px #0f172ab3}.grid-item-wide{grid-column:span 2}.cards-row{display:flex;flex-wrap:wrap;gap:12px}.card{flex:1 1 160px;background:#020617;border-radius:8px;padding:10px 12px;border:1px solid #1f2933}.card-title{font-size:12px;color:#9ca3af;margin-bottom:6px}.card-content{font-size:18px}.card-value{font-weight:600}.bar-chart{display:flex;align-items:flex-end;gap:8px;height:160px;margin-top:8px}.bar-chart-item{flex:1;display:flex;flex-direction:column;align-items:center}.bar-chart-bar{width:100%;background:#38bdf8;border-radius:4px 4px 0 0;transition:height .2s ease}.bar-chart-label{margin-top:4px;font-size:11px;text-align:center}.timeline-chart{display:flex;align-items:flex-end;gap:4px;height:160px;margin-top:8px;overflow-x:auto}.timeline-chart-item{min-width:24px;display:flex;flex-direction:column;align-items:center}.timeline-chart-bar{width:100%;background:#22c55e;border-radius:4px 4px 0 0}.timeline-chart-label{margin-top:2px;font-size:10px;text-align:center}.table-wrapper{max-height:320px;overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:6px 8px;border:1px solid #1f2937}.data-table th{background:#020617;position:sticky;top:0;z-index:1}
