:root{--layout-sidebar-width:220px;--page-content-max-width:1720px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--border-radius-xs:2px;--border-radius-sm:4px;--border-radius:6px;--border-radius-lg:8px;--box-shadow:0 6px 16px 0 rgba(0,0,0,0.08),0 3px 6px -4px rgba(0,0,0,0.12),0 9px 28px 8px rgba(0,0,0,0.05);--box-shadow-secondary:0 6px 16px 0 rgba(0,0,0,0.08),0 3px 6px -4px rgba(0,0,0,0.12),0 9px 28px 8px rgba(0,0,0,0.05);--box-shadow-tertiary:0 1px 2px 0 rgba(0,0,0,0.03),0 1px 6px -1px rgba(0,0,0,0.02),0 2px 4px 0 rgba(0,0,0,0.02);--box-shadow-card:0 1px 3px 0 rgba(0,0,0,0.04),0 1px 2px -1px rgba(0,0,0,0.06);--color-primary:#3374ff;--color-primary-hover:#5b93ff;--color-primary-active:#2258cc;--color-primary-bg:rgba(51,116,255,0.08);--color-success:#00b365;--color-success-bg:rgba(0,179,101,0.08);--color-success-border:rgba(0,179,101,0.28);--color-warning:#f59e0b;--color-warning-bg:rgba(245,158,11,0.08);--color-warning-border:rgba(245,158,11,0.28);--sidebar-bg-from:#0b2a55;--sidebar-bg-to:#081b38;--sidebar-active-accent:#3374ff;--color-text-heading:rgba(0,0,0,0.88);--color-text-secondary:rgba(0,0,0,0.65);--color-text-tertiary:rgba(0,0,0,0.45);--color-text-quaternary:rgba(0,0,0,0.25);--color-text-link:#3374ff;--color-link:#3374ff;--color-link-hover:#5b93ff;--color-link-active:#2258cc;--color-error:#ff4d4f;--color-error-hover:#ff7875;--color-error-active:#d9363e;--color-fill:rgba(0,0,0,0.15);--color-fill-secondary:rgba(0,0,0,0.06);--color-fill-tertiary:rgba(0,0,0,0.04);--color-fill-quaternary:rgba(0,0,0,0.02);--color-border:#d9d9d9;--color-border-secondary:#f0f0f0;--table-header-bg:#f7faff;--table-row-hover:#f0f7ff;--table-row-stripe:#fafbfc;--page-bg:#f5f7fa}.cfms-root,.cfms-shell{min-height:100vh}.cfms-shell{display:grid;grid-template-columns:var(--layout-sidebar-width) 1fr;background:var(--page-bg)}.cfms-sider{border-right:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,var(--sidebar-bg-from) 0,var(--sidebar-bg-to) 100%);padding:var(--space-4) var(--space-3);display:grid;align-content:start;grid-gap:var(--space-3);gap:var(--space-3);position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.cfms-brand{display:grid;grid-gap:6px;gap:6px;padding:6px 4px 14px;border-bottom:1px solid rgba(255,255,255,.12)}.cfms-brand-row{display:flex;align-items:center;gap:10px}.cfms-brand-title{margin:0;font-size:18px;color:rgba(255,255,255,.95);font-weight:600;letter-spacing:.3px}.cfms-brand-subtitle{margin:0;font-size:12px;color:rgba(255,255,255,.55)}.cfms-nav{display:grid;grid-gap:4px;gap:4px}.cfms-nav-group-title{color:rgba(255,255,255,.5);font-size:11px;font-weight:500;letter-spacing:.6px;text-transform:uppercase;padding:12px 10px 4px}.cfms-nav-link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--border-radius);border:1px solid transparent;background:transparent;color:rgba(255,255,255,.72);font-size:14px;transition:all .2s ease}.cfms-nav-link:hover{color:rgba(255,255,255,.95);background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.08)}.cfms-nav-link.is-active{color:#ffffff;background:rgba(51,116,255,.2);border-color:rgba(51,116,255,.3);box-shadow:inset 3px 0 0 0 var(--sidebar-active-accent);font-weight:500}.cfms-nav-icon{flex:0 0 auto;width:18px;height:18px;opacity:.7}.cfms-nav-link.is-active .cfms-nav-icon{opacity:1}.cfms-nav-placeholder{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--border-radius);border:1px dashed rgba(255,255,255,.12);color:rgba(255,255,255,.4);background:transparent;cursor:default;font-size:14px}.cfms-content{min-width:0;overflow-y:auto}*{box-sizing:border-box}body,html{margin:0;padding:0;color:var(--color-text-heading);background:var(--page-bg);font-family:Inter,Source Sans\ 3,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--color-link);text-decoration:none;transition:color .15s ease}a:hover{color:var(--color-link-hover)}a:active{color:var(--color-link-active)}button,input,select,textarea{font:inherit}button{height:32px;padding:0 14px;border:1px solid var(--color-border);border-radius:var(--border-radius);background:#ffffff;color:var(--color-text-heading);cursor:pointer;transition:all .2s ease;font-size:14px}button:hover{border-color:var(--color-primary);color:var(--color-primary)}button:active{transform:translateY(.5px)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid rgba(51,116,255,.3);outline-offset:1px}button:disabled{cursor:not-allowed;color:var(--color-text-quaternary);background:var(--color-fill-tertiary);border-color:var(--color-border-secondary);opacity:.6;transform:none}input,select,textarea{min-height:32px;padding:4px 10px;border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text-heading);background:#ffffff;transition:border-color .2s ease,box-shadow .2s ease}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(51,116,255,.1)}.cfms-btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#ffffff;font-weight:500}.cfms-btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#ffffff}.cfms-btn-primary:active{background:var(--color-primary-active);border-color:var(--color-primary-active)}.cfms-btn-ghost{background:transparent;border-color:transparent;color:var(--color-text-secondary)}.cfms-btn-ghost:hover{background:var(--color-fill-secondary);border-color:transparent;color:var(--color-text-heading)}.cfms-btn-danger{color:var(--color-error);border-color:var(--color-error)}.cfms-btn-danger:hover{background:rgba(255,77,79,.06);color:var(--color-error-hover);border-color:var(--color-error-hover)}.cfms-tab-group{display:inline-flex;gap:0;border:1px solid var(--color-border);border-radius:var(--border-radius);overflow:hidden;background:#ffffff}.cfms-tab-item{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 14px;border:none;border-radius:0;background:transparent;color:var(--color-text-secondary);font-size:13px;cursor:pointer;transition:all .15s ease;position:relative}.cfms-tab-item:hover{background:var(--color-fill-tertiary);color:var(--color-text-heading);border-color:transparent}.cfms-tab-item+.cfms-tab-item{border-left:1px solid var(--color-border-secondary)}.cfms-tab-item.is-active{background:var(--color-primary);color:#ffffff;font-weight:500;border-color:transparent}.cfms-tab-item.is-active+.cfms-tab-item{border-left-color:transparent}.cfms-page{width:100%;max-width:var(--page-content-max-width);margin:0 auto;padding:var(--space-6);display:grid;grid-gap:var(--space-4);gap:var(--space-4)}.cfms-card{border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-lg);background:#ffffff;box-shadow:var(--box-shadow-card);transition:box-shadow .2s ease}.cfms-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}.cfms-page-header-main h1{margin:0;font-size:22px;line-height:32px;font-weight:600}.cfms-page-header-main p{margin:var(--space-1) 0 0;color:var(--color-text-tertiary);font-size:14px}.cfms-page-header-actions{display:flex;align-items:center;gap:var(--space-2)}.cfms-filter-panel{padding:var(--space-4);background:#ffffff;border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow-card)}.cfms-status-notice{padding:10px 14px;border-radius:var(--border-radius);border:1px solid var(--color-border-secondary);background:var(--color-fill-quaternary);color:var(--color-text-secondary);font-size:14px}.cfms-status-notice.is-success{border-color:var(--color-success-border);background:var(--color-success-bg);color:#166534}.cfms-status-notice.is-warning{border-color:var(--color-warning-border);background:var(--color-warning-bg);color:#92400e}.cfms-status-notice.is-error{border-color:rgba(217,54,62,.25);background:rgba(217,54,62,.06);color:var(--color-error-active)}.cfms-table-card{overflow-x:auto;border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-lg);background:#ffffff;box-shadow:var(--box-shadow-card)}.cfms-data-table{width:100%;border-collapse:collapse;font-size:14px}.cfms-table-head{background:var(--table-header-bg);position:-webkit-sticky;position:sticky;top:0;z-index:5}.cfms-table-head th{font-size:13px;font-weight:600;color:var(--color-text-secondary);text-align:left;border-bottom:1px solid var(--color-border-secondary)}.cfms-data-table tbody tr{transition:background-color .15s ease}.cfms-data-table tbody tr:nth-child(2n){background:var(--table-row-stripe)}.cfms-data-table tbody tr:hover{background:var(--table-row-hover)}.cfms-data-table td{border-bottom:1px solid var(--color-border-secondary)}.cfms-th-inner{display:flex;align-items:stretch;justify-content:space-between;gap:8px}.cfms-th-label{flex:1 1}.cfms-th-label.is-center{text-align:center}.cfms-col-resize-handle{flex:0 0 auto;width:8px;cursor:col-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-left:1px solid rgba(0,0,0,.06)}.cfms-col-resize-handle:hover{border-left-color:var(--color-primary)}.cfms-badge{display:inline-flex;align-items:center;justify-content:center;height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid transparent;letter-spacing:.2px}.cfms-badge.is-success{background:linear-gradient(135deg,rgba(0,179,101,.1),rgba(0,179,101,.06));border-color:var(--color-success-border);color:#166534}.cfms-badge.is-warning{background:linear-gradient(135deg,rgba(245,158,11,.12),rgba(245,158,11,.06));border-color:var(--color-warning-border);color:#92400e}.cfms-badge.is-info{background:linear-gradient(135deg,rgba(51,116,255,.1),rgba(51,116,255,.05));border-color:rgba(51,116,255,.25);color:#1d4ed8}.cfms-form-card{padding:var(--space-5)}.cfms-form-grid,.cfms-form-section{display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.cfms-form-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.cfms-form-footer{padding-top:var(--space-2);border-top:1px solid var(--color-border-secondary)}.cfms-dialog-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:60;padding:var(--space-4);animation:cfms-fade-in .15s ease-out}.cfms-dialog{width:100%;max-width:420px;border-radius:var(--border-radius-lg);border:1px solid var(--color-border-secondary);background:#ffffff;box-shadow:var(--box-shadow);padding:var(--space-5);display:grid;grid-gap:var(--space-3);gap:var(--space-3);animation:cfms-scale-in .15s ease-out}.cfms-dialog h3{margin:0;font-size:16px;font-weight:600}.cfms-dialog p{margin:0;color:var(--color-text-secondary);font-size:14px}.cfms-dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-2)}.cfms-toast{position:-webkit-sticky;position:sticky;top:var(--space-3);z-index:40;margin-left:auto;border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-lg);background:#fff;color:var(--color-text-heading);padding:10px 14px;display:inline-flex;align-items:center;gap:var(--space-2);box-shadow:var(--box-shadow-secondary);animation:cfms-slide-in .2s ease-out;font-size:14px}.cfms-toast.is-error{border-color:rgba(217,54,62,.2);background:rgba(255,77,79,.04);color:var(--color-error-active)}.cfms-toast-close{height:24px;padding:0 8px;font-size:12px}@keyframes cfms-skeleton-pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.cfms-skeleton{display:grid;grid-gap:1px;border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-lg);overflow:hidden}.cfms-skeleton,.cfms-skeleton-row{gap:1px;background:var(--color-border-secondary)}.cfms-skeleton-row{display:flex}.cfms-skeleton-cell{flex:1 1;background:#ffffff;padding:12px 16px}.cfms-skeleton-bar{height:14px;border-radius:4px;background:var(--color-fill-secondary);animation:cfms-skeleton-pulse 1.5s ease-in-out infinite}.cfms-skeleton-row:first-child .cfms-skeleton-cell{background:var(--table-header-bg)}.cfms-skeleton-row:first-child .cfms-skeleton-bar{background:var(--color-fill-tertiary)}.cfms-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.cfms-empty-state-icon{width:64px;height:64px;margin-bottom:16px;color:var(--color-text-quaternary)}.cfms-empty-state-title{margin:0 0 6px;font-size:15px;font-weight:500;color:var(--color-text-tertiary)}.cfms-empty-state-desc{margin:0;font-size:13px;color:var(--color-text-quaternary)}@keyframes cfms-fade-in{0%{opacity:0}to{opacity:1}}@keyframes cfms-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes cfms-slide-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}