:root{--bg: #1e1e1e;--bg-card: #2d2d2d;--bg-table: #252525;--bg-table-alt: #2a2a2a;--bg-header: #333333;--border: #3d3d3d;--text: #d4d4d4;--text-bright: #e0e0e0;--text-muted: #aaa;--accent: #0078d4;--accent-hover: #106ebe;--accent-pressed: #005a9e;--success: #4CAF50;--success-hover: #45a049;--success-pressed: #388e3c;--danger: #d32f2f;--danger-hover: #b71c1c;--warning: #FFA726;--error: #FF5252;--red-grad: linear-gradient(135deg, #e53935, #b71c1c);--green-grad: linear-gradient(135deg, #43a047, #1b5e20);--blue-grad: linear-gradient(135deg, #1e88e5, #0d47a1);--orange-grad: linear-gradient(135deg, #fb8c00, #e65100);--purple-grad: linear-gradient(135deg, #8e24aa, #4a148c);--teal-grad: linear-gradient(135deg, #26a69a, #00695c);--radius: 10px;--radius-sm: 6px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI,Arial,sans-serif;font-size:14px}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:14px;background:var(--bg-card);border:1px solid var(--border);padding:8px 10px;border-radius:4px;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}label{font-size:13px;display:block;margin-bottom:4px}.btn{border:none;border-radius:var(--radius-sm);padding:8px 16px;font-weight:700;color:#fff;background:var(--accent)}.btn:hover{background:var(--accent-hover)}.btn:active{background:var(--accent-pressed)}.btn:disabled{background:var(--border);color:#666;cursor:not-allowed}.btn-green{background:var(--success)}.btn-green:hover{background:var(--success-hover)}.btn-green:active{background:var(--success-pressed)}.btn-red{background:var(--danger)}.btn-red:hover{background:var(--danger-hover)}.btn-teal{background:#00897b}.btn-teal:hover{background:#00695c}.btn-ghost{background:var(--bg-card);border:1px solid var(--border);color:var(--text)}.btn-ghost:hover{background:var(--bg-table)}.btn-small{font-size:11px;font-weight:700;padding:3px 10px;min-width:48px;min-height:22px;border-radius:4px}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{background:var(--bg-header);color:var(--text-muted);font-weight:700;text-align:left;padding:6px 8px;border:1px solid var(--border);white-space:nowrap}.table td{padding:5px 8px;border:1px solid var(--border)}.table tbody tr:nth-child(2n){background:var(--bg-table)}.table tbody tr:nth-child(odd){background:var(--bg-table-alt)}.table tbody tr:hover{background:#343434}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:10px}.card-title{font-size:13px;font-weight:700;color:var(--text-bright);margin:0 0 8px}.page-scroll{padding:8px 12px 12px}.toolbar{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.toolbar-spacer{flex:1}.toolbar-label{font-size:13px;color:var(--text);white-space:nowrap}.error-box{background:#d32f2f1f;color:var(--error);border:1px solid rgba(211,47,47,.4);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:12px;font-size:13px}.success-box{background:#4caf501f;color:#a5d6a7;border:1px solid rgba(76,175,80,.4);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:12px;font-size:13px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:60;padding:16px}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:520px;max-height:92vh;overflow-y:auto;padding:18px}.modal h2{margin:0 0 14px;font-size:16px}.modal .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1 / -1}.form-group{display:flex;flex-direction:column}.form-group label{color:var(--text-bright)}.progress{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.progress>div{height:100%;border-radius:2px}.progress-row{margin-bottom:10px}.progress-head{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--text);margin-bottom:3px}.progress-head b{font-weight:700}.muted{color:var(--text-muted)}.mt{margin-top:12px}a{color:var(--text);text-decoration:none}
