@charset "UTF-8";:root{--ex-primary: #b9f71e;--ex-primary-dark: #a6e00c;--ex-primary-light: #f2fcd9;--ex-primary-text: #4d7c0f;--ex-on-primary: #0a0a0a;--ex-brand-black: #0a0a0a;--ex-sidebar-bg: #0a0a0a;--ex-sidebar-bg-active: #1a1a1a;--ex-sidebar-text: #a3a3a3;--ex-sidebar-text-active: #ffffff;--ex-sidebar-border: #1f1f1f;--ex-sidebar-muted: #6b6b6b;--ex-bg: #f5f6f3;--ex-surface: #ffffff;--ex-border: #e4e6e0;--ex-text: #151714;--ex-text-muted: #62675e;--ex-text-faint: #979c92;--ex-success: #16a34a;--ex-success-bg: #e9f9ef;--ex-danger: #e0293b;--ex-danger-bg: #fdecee;--ex-warning: #d97706;--ex-warning-bg: #fff4e5;--ex-info: #2563eb;--ex-info-bg: #eaf0ff;--ex-radius-sm: 6px;--ex-radius-md: 10px;--ex-radius-lg: 14px;--ex-shadow: 0 1px 2px rgba(10, 10, 10, .05), 0 1px 3px rgba(10, 10, 10, .07);--ex-shadow-md: 0 4px 12px rgba(10, 10, 10, .08)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--ex-bg);color:var(--ex-text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{margin:0;font-weight:700;color:var(--ex-text)}a{color:var(--ex-primary-text);text-decoration:none}a:hover{text-decoration:underline}.ex-page{padding:24px 28px 48px;max-width:1400px}.ex-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.ex-page-title{font-size:22px;font-weight:800}.ex-page-subtitle{color:var(--ex-text-muted);font-size:13px;margin-top:4px}.ex-grid{display:grid;gap:16px}.ex-grid-4{grid-template-columns:repeat(4,1fr)}.ex-grid-3{grid-template-columns:repeat(3,1fr)}.ex-grid-2{grid-template-columns:repeat(2,1fr)}@media (max-width: 1100px){.ex-grid-4,.ex-grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.ex-grid-4,.ex-grid-3,.ex-grid-2{grid-template-columns:1fr}}.ex-card{background:var(--ex-surface);border:1px solid var(--ex-border);border-radius:var(--ex-radius-lg);box-shadow:var(--ex-shadow)}.ex-card-body{padding:20px}.ex-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--ex-border);gap:12px;flex-wrap:wrap}.ex-card-title{font-size:15px;font-weight:700}.ex-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:var(--ex-radius-sm);padding:9px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;line-height:1;white-space:nowrap}.ex-btn:disabled{opacity:.55;cursor:not-allowed}.ex-btn-primary{background:var(--ex-primary);color:var(--ex-on-primary)}.ex-btn-primary:hover:not(:disabled){background:var(--ex-primary-dark)}.ex-btn-outline{background:transparent;border-color:var(--ex-border);color:var(--ex-text)}.ex-btn-outline:hover:not(:disabled){border-color:var(--ex-primary-text);color:var(--ex-primary-text)}.ex-btn-danger{background:var(--ex-danger-bg);color:var(--ex-danger)}.ex-btn-danger:hover:not(:disabled){background:var(--ex-danger);color:#fff}.ex-btn-success{background:var(--ex-success-bg);color:var(--ex-success)}.ex-btn-success:hover:not(:disabled){background:var(--ex-success);color:#fff}.ex-btn-sm{padding:6px 11px;font-size:12px}.ex-btn-icon{padding:7px}.ex-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.ex-label{font-size:12.5px;font-weight:600;color:var(--ex-text-muted)}.ex-input,.ex-select,textarea.ex-input{border:1px solid var(--ex-border);border-radius:var(--ex-radius-sm);padding:9px 12px;font-size:13.5px;font-family:inherit;color:var(--ex-text);background:#fff;outline:none;transition:border-color .15s ease}.ex-input:focus,.ex-select:focus,textarea.ex-input:focus{border-color:var(--ex-primary-text);box-shadow:0 0 0 3px #b9f71e59}.ex-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ex-search{position:relative}.ex-search input{padding-left:32px;min-width:220px}.ex-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ex-text-faint)}.ex-table-wrap{overflow:auto;max-height:max(320px,100vh - 300px);overscroll-behavior:contain}.ex-table-wrap.no-scroll{max-height:none}table.ex-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}table.ex-table th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ex-text-faint);font-weight:700;padding:10px 16px;white-space:nowrap;background:#fafaf8;position:sticky;top:0;z-index:2;box-shadow:inset 0 -1px 0 var(--ex-border)}table.ex-table td{padding:12px 16px;border-bottom:1px solid var(--ex-border);color:var(--ex-text);vertical-align:middle}table.ex-table tbody tr:hover{background:#fafdf2}table.ex-table tbody tr:last-child td{border-bottom:none}.ex-empty{padding:48px 16px;text-align:center;color:var(--ex-text-faint)}.ex-mono{font-family:SFMono-Regular,Consolas,monospace;font-size:12.5px}.ex-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;text-transform:capitalize}.ex-badge-success{background:var(--ex-success-bg);color:var(--ex-success)}.ex-badge-danger{background:var(--ex-danger-bg);color:var(--ex-danger)}.ex-badge-warning{background:var(--ex-warning-bg);color:var(--ex-warning)}.ex-badge-info{background:var(--ex-info-bg);color:var(--ex-info)}.ex-badge-muted{background:#eeefeb;color:var(--ex-text-muted)}.ex-stat-card{display:flex;flex-direction:column;gap:6px;padding:18px 20px}.ex-stat-label{font-size:12.5px;color:var(--ex-text-muted);font-weight:600}.ex-stat-value{font-size:24px;font-weight:800}.ex-stat-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--ex-primary-light);color:var(--ex-primary-text);margin-bottom:4px}.ex-stat-icon svg{width:20px;height:20px;display:block}.ex-stat-icon.tone-success{background:var(--ex-success-bg);color:var(--ex-success)}.ex-stat-icon.tone-warning{background:var(--ex-warning-bg);color:var(--ex-warning)}.ex-stat-icon.tone-danger{background:var(--ex-danger-bg);color:var(--ex-danger)}.ex-pagination{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;gap:12px;flex-wrap:wrap}.ex-alert{padding:12px 14px;border-radius:var(--ex-radius-sm);font-size:13px;margin-bottom:16px}.ex-alert-danger{background:var(--ex-danger-bg);color:var(--ex-danger)}.ex-alert-success{background:var(--ex-success-bg);color:var(--ex-success)}.ex-alert-info{background:var(--ex-info-bg);color:var(--ex-info)}.ex-loading{padding:40px;text-align:center;color:var(--ex-text-faint)}.ex-modal-backdrop{position:fixed;inset:0;background:#0a0a0a99;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.ex-modal{background:#fff;border-radius:var(--ex-radius-lg);width:100%;max-width:480px;box-shadow:var(--ex-shadow-md)}.ex-modal-header{padding:18px 20px;border-bottom:1px solid var(--ex-border);display:flex;align-items:center;justify-content:space-between}.ex-modal-body{padding:20px;max-height:70vh;overflow-y:auto}.ex-modal-footer{padding:14px 20px;border-top:1px solid var(--ex-border);display:flex;justify-content:flex-end;gap:10px}.ex-tabs{display:flex;gap:4px;border-bottom:1px solid var(--ex-border);padding:0 20px}.ex-tab{padding:12px 4px;margin-right:20px;font-size:13px;font-weight:600;color:var(--ex-text-muted);cursor:pointer;border-bottom:2px solid transparent}.ex-tab.active{color:var(--ex-text);border-color:var(--ex-primary);border-bottom-width:3px}
