:root{--bg-dark:#0f172a;--bg-card:#1e293b;--border:#334155;--text-primary:#f8fafc;--text-secondary:#94a3b8;--success:#22c55e;--warn:#eab308;--danger:#ef4444;--info:#3b82f6}body{background-color:var(--bg-dark);color:var(--text-primary);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}.dashboard-container{box-sizing:border-box;flex-direction:column;gap:20px;height:100vh;padding:20px;display:flex}.health-bar{background-color:var(--bg-card);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;padding:16px 24px;display:flex;box-shadow:0 4px 6px -1px #0000001a}.health-metrics{gap:30px;display:flex}.metric-group{flex-direction:column;align-items:center;display:flex}.metric-group .label{color:var(--text-secondary);margin-bottom:4px;font-size:11px;font-weight:700}.metric-group .value{font-size:20px;font-weight:800}.metric-group.ok .value{color:var(--success)}.metric-group.warn .value{color:var(--warn)}.metric-group.danger .value{color:var(--danger)}.metric-group.info .value{color:var(--info)}.system-mode{border-left:1px solid var(--border);border-right:1px solid var(--border);flex-direction:column;align-items:center;padding:0 30px;display:flex}.system-mode .label{color:var(--text-secondary);margin-bottom:6px;font-size:11px;font-weight:700}.badge{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:4px 12px;font-size:11px;font-weight:700}.mode-normal{color:#22c55e;background-color:#22c55e26;border:1px solid #22c55e}.mode-throttled{color:#eab308;background-color:#eab30826;border:1px solid #eab308}.mode-critical{color:#ef4444;background-color:#ef444426;border:1px solid #ef4444}.decision-panel{align-items:center;gap:12px;display:flex}.form-select{border:1px solid var(--border);color:#fff;background-color:#0f172a;border-radius:6px;outline:none;padding:8px 12px;font-size:13px}.form-select.small{padding:4px 8px;font-size:12px}.btn{cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:opacity .2s}.btn:hover{opacity:.8}.btn.warning{background-color:var(--warn);color:#000}.btn.danger{background-color:var(--danger);color:#fff}.btn.small{padding:4px 8px;font-size:11px}.middle-grid{grid-template-columns:2fr 1fr;gap:20px;display:grid}.card{background-color:var(--bg-card);border:1px solid var(--border);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.card-header{border-bottom:1px solid var(--border);background-color:#ffffff05;align-items:center;padding:12px 16px;display:flex}.card-header h3{flex:1;margin:0;font-size:14px;font-weight:600}.legend{color:var(--text-secondary);align-items:center;gap:8px;font-size:11px;display:flex}.box{border-radius:2px;width:12px;height:12px;display:inline-block}.color-green{background-color:#15803d}.color-yellow{background-color:#a16207}.color-red{background-color:#b91c1c}.color-gray{background-color:#334155}.heatmap-grid{padding:16px;overflow-x:auto}#heatmap-table{border-collapse:collapse;width:100%;font-size:11px}#heatmap-table th{color:var(--text-secondary);width:3.5%;padding-bottom:8px;font-weight:400}#heatmap-table th:first-child{text-align:left;color:#fff;width:60px;font-weight:700}#heatmap-table td{padding:2px}.hm-cell{aspect-ratio:1;cursor:pointer;border-radius:3px;width:100%;transition:transform .1s}.hm-cell:hover{z-index:10;transform:scale(1.15);box-shadow:0 0 5px #00000080}.page-list{max-height:250px;padding:8px;overflow-y:auto}.page-item{border-left:3px solid var(--success);background:#0003;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 12px;display:flex}.page-item.throttled{border-left-color:var(--warn)}.page-item.isolated{border-left-color:var(--danger);opacity:.7}.page-name{margin-bottom:2px;font-size:13px;font-weight:600}.page-rate{color:var(--text-secondary);font-size:11px}.log-stream{flex:1;padding:12px;font-family:monospace;font-size:12px;overflow-y:auto}.log-line{border-bottom:1px dashed #ffffff0d;margin-bottom:6px;padding-bottom:4px;line-height:1.4}.log-line .time{color:var(--text-secondary);margin-right:8px}.log-line .type{margin-right:8px;font-weight:700}.log-line.success{color:var(--success)}.log-line.error{color:var(--danger)}.log-line.warning{color:var(--warn)}.log-status{border-radius:3px;margin-right:8px;padding:2px 6px;font-family:sans-serif;font-size:10px}.job-queue-panel{margin-top:0}.job-queue-table-wrap{scrollbar-width:thin;scrollbar-color:#334155 transparent}.job-queue-table-wrap::-webkit-scrollbar{width:6px;height:6px}.job-queue-table-wrap::-webkit-scrollbar-thumb{background:#334155;border-radius:4px}.job-queue-table-wrap::-webkit-scrollbar-track{background:0 0}#jq-table tbody tr{border-bottom:1px solid #33415580;transition:background .15s}#jq-table tbody tr:hover{background:#3b82f60f}#jq-table td{vertical-align:middle;padding:6px 8px}.jq-page-name{color:#e2e8f0;font-size:11px;font-weight:600;line-height:1.3}.jq-thumb{object-fit:cover;background:#0f172a;border:1px solid #334155;border-radius:4px;width:32px;height:32px}.jq-thumb-placeholder{color:#475569;background:#1e293b;border:1px dashed #334155;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.jq-thumb-wrap{cursor:zoom-in;display:inline-block;position:relative}.jq-thumb-wrap .jq-thumb-preview{z-index:200;pointer-events:none;background:#0f172a;border:2px solid #334155;border-radius:10px;padding:4px;display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 8px 32px #000000b3}.jq-thumb-wrap:hover .jq-thumb-preview{display:block}.jq-type-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:8px;padding:1px 5px;font-size:9px;font-weight:600;display:inline-block}.jq-type-post{color:#60a5fa;background:#3b82f626;border:1px solid #3b82f64d}.jq-type-story{color:#c084fc;background:#a855f726;border:1px solid #a855f74d}.jq-type-video{color:#f472b6;background:#ec489926;border:1px solid #ec48994d}.jq-type-dark_post{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b4d}.jq-status-badge{letter-spacing:.3px;border-radius:8px;padding:1px 6px;font-size:9px;font-weight:700;display:inline-block}.jq-status-PENDING{color:#eab308;background:#eab30826;border:1px solid #eab3084d}.jq-status-PROCESSING{color:#3b82f6;background:#3b82f626;border:1px solid #3b82f64d;animation:1.5s ease-in-out infinite jq-pulse}.jq-status-FAILED{color:#ef4444;background:#ef444426;border:1px solid #ef44444d}.jq-status-SCHEDULED{color:#22c55e;background:#22c55e26;border:1px solid #22c55e4d}.jq-status-DEAD{color:#6b7280;background:#6b728026;border:1px solid #6b72804d;text-decoration:line-through}@keyframes jq-pulse{0%,to{opacity:1}50%{opacity:.6}}.jq-schedule-time{color:#e2e8f0;font-family:Courier New,monospace;font-size:11px}.jq-schedule-countdown{color:#94a3b8;margin-top:1px;font-size:9px}.jq-schedule-now{color:#22c55e;font-size:10px;font-weight:700}.jq-fail-info{color:#f87171;cursor:help;vertical-align:middle;background:#ef444433;border:1px solid #ef44444d;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;margin-left:4px;font-size:10px;display:inline-flex;position:relative}.jq-fail-info:hover .jq-fail-tooltip{display:block}.jq-fail-tooltip{color:#f87171;white-space:pre-wrap;word-break:break-all;z-index:100;background:#0f172a;border:1px solid #ef4444;border-radius:6px;min-width:180px;max-width:280px;padding:8px 12px;font-family:monospace;font-size:11px;line-height:1.4;display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000080}.jq-fail-tooltip:after{content:"";border:5px solid #0000;border-top-color:#ef4444;position:absolute;top:100%;left:50%;transform:translate(-50%)}.jq-btn-edit{color:#60a5fa;cursor:pointer;background:#3b82f626;border:1px solid #3b82f64d;border-radius:4px;margin-right:3px;padding:2px 6px;font-size:10px;transition:all .15s}.jq-btn-edit:hover{background:#3b82f64d}.jq-btn-delete{color:#ef4444;cursor:pointer;background:#ef444426;border:1px solid #ef44444d;border-radius:4px;padding:2px 6px;font-size:10px;transition:all .15s}.jq-btn-delete:hover{background:#ef44444d}.jq-empty-state{text-align:center;color:#64748b;padding:40px 20px;font-size:12px}
