:root{--primary:#000;--primary-hover:#222;--accent:#007aff;--accent-hover:#0066d6;--danger:#ff453a;--danger-hover:#e03e34;--success:#34c759;--success-hover:#2db84e;--warning:#ff9500;--warning-hover:#e68a00;--bg:#f5f5f5;--card-bg:#fff;--text:#000;--text-secondary:#8e8e93;--text-tertiary:#c7c7cc;--border:#e0e0e0;--surface:#f5f5f5;--sidebar-bg:#000;--sidebar-active:#007aff;--control-height:40px;--control-height-compact:36px;--space-page-desc:20px;--space-card-title:16px;--space-title-desc:8px;--space-after-desc:12px;--space-form-row:12px}.page-header{color:var(--text);margin-bottom:20px;font-size:20px;font-weight:600}.page-desc{color:var(--text-secondary);margin:-12px 0 var(--space-page-desc);font-size:13px;line-height:1.5}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:20px;overflow-x:auto}.card h3{margin:0 0 var(--space-card-title);color:var(--text);font-size:16px;font-weight:600}.card h3+.desc{margin-top:calc(-1 * (var(--space-card-title) - var(--space-title-desc)));margin-bottom:var(--space-after-desc)}.card .desc{color:var(--text-secondary);margin:0 0 var(--space-after-desc);font-size:13px;line-height:1.5}.card .hint{color:var(--text-tertiary);margin-top:6px;font-size:12px;line-height:1.45}.filter-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.filter-bar select,.filter-bar input{border:1px solid var(--border);appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238E8E93' d='M6 8L1 3h10z'/%3E%3C/svg%3E") right 10px center no-repeat;border-radius:10px;outline:none;padding:10px 32px 10px 12px;font-size:14px;transition:border-color .2s}.filter-bar select:focus,.filter-bar input:focus{border-color:var(--accent)}.btn{cursor:pointer;white-space:nowrap;background:0 0;border:2px solid #0000;border-radius:22px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-danger{color:var(--danger);border-color:var(--danger);background:#fff;border-width:1px}.btn-danger:hover:not(:disabled){background:#fff5f5}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:var(--success-hover)}.btn-warning{background:var(--warning);color:#fff}.btn-warning:hover:not(:disabled){background:var(--warning-hover)}.btn-outline{color:var(--text);border:1px solid var(--text);background:#fff}.btn-outline:hover:not(:disabled){background:#f5f5f5}.btn-dark{background:var(--primary);color:#fff}.btn-dark:hover:not(:disabled){background:var(--primary-hover)}.btn-sm{border-radius:16px;min-width:60px;min-height:32px;padding:6px 18px;font-size:12px}td .btn+.btn{margin-left:8px}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;white-space:nowrap;padding:12px 14px}th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);font-size:12px;font-weight:600}td{border-bottom:1px solid #f0f0f0}tr:hover td{background:#fafafa}.clickable{color:var(--accent);cursor:pointer;font-weight:500;text-decoration:none}.clickable:hover{text-decoration:underline}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--accent)}.panel-actions{margin-bottom:16px}.badge{border-radius:12px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-pending{color:#856404;background:#fff3cd}.badge-success{color:#155724;background:#d4edda}.badge-danger{color:#721c24;background:#f8d7da}.badge-info{color:#0c5460;background:#d1ecf1}.badge-warning{color:#856404;background:#fff3cd}.badge-default{color:#8e8e93;background:#f0f0f0}.modal-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;padding:20px 24px;font-size:17px;font-weight:600;display:flex}.modal-body{padding:0 24px 24px}.modal-footer{justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.modal-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:4px;font-size:24px;line-height:1}.detail-row{border-bottom:1px solid #f5f5f5;padding:10px 0;display:flex}.detail-row .dt{width:110px;color:var(--text-secondary);flex-shrink:0;font-size:14px}.detail-row .dd{word-break:break-all;flex:1;font-size:14px}.form-group{margin-bottom:16px}.form-group label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;display:block}.form-input{box-sizing:border-box;width:100%;min-height:var(--control-height);border:1px solid var(--border);font-size:15px;line-height:calc(var(--control-height) - 2px);background:#fff;border-radius:10px;outline:none;padding:0 12px;transition:border-color .2s}textarea.form-input{min-height:auto;padding:10px 12px;line-height:1.45}.form-input:focus{border-color:var(--accent)}.form-row{margin-top:var(--space-form-row);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.form-row .form-input{flex:1;width:auto;min-width:200px}.form-row .btn{min-height:var(--control-height);height:var(--control-height);box-sizing:border-box;flex-shrink:0;align-self:center;padding-top:0;padding-bottom:0}.card .btn-row{margin-top:var(--space-form-row);flex-wrap:wrap;gap:8px;display:flex}.card .checkbox-row{margin-bottom:var(--space-after-desc);align-items:center;gap:8px;font-size:14px;display:flex}.login-card .form-group{margin-bottom:16px}.login-card .form-group label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;display:block}.login-card .form-input{box-sizing:border-box;width:100%;min-height:var(--control-height-compact);height:var(--control-height-compact);border:1px solid var(--border);font-size:14px;line-height:calc(var(--control-height-compact) - 2px);background:#fff;border-radius:10px;outline:none;padding:0 12px}.login-card .form-input:focus{border-color:var(--accent)}.login-card .btn{box-sizing:border-box;border-radius:22px;height:44px;min-height:44px;padding:0 16px;font-size:14px;font-weight:500}.login-card .btn.full-width{width:100%}.login-card .back-btn{margin-top:16px}.panel-overlay{z-index:200;background:#0006;position:fixed;inset:0}.slide-panel{z-index:201;background:#fff;width:min(640px,100vw);position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.panel-header{z-index:1;border-bottom:1px solid var(--border);background:#fff;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:sticky;top:0}.panel-body{padding:20px}.urgent-row td:first-child{box-shadow:inset 3px 0 0 var(--warning);padding-left:17px}.critical-row td:first-child{box-shadow:inset 3px 0 0 var(--danger);padding-left:17px}.empty-state{text-align:center;color:var(--text-secondary);padding:48px}@media (width<=768px){.slide-panel{width:100vw}th,td{padding:10px;font-size:13px}.filter-bar{flex-direction:column;align-items:stretch}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#222;background:#fafafa;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#app{min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer}
