:root{--brand-50: #fbf5fc;--brand-100: #f3e5f5;--brand-200: #e1bee7;--brand-300: #ce93d8;--brand-400: #ba68c8;--brand-500: #ab47bc;--brand-600: #9c27b0;--brand-700: #8e24aa;--brand-800: #7b1fa2;--brand-900: #4a148c;--brand-gradient: linear-gradient(135deg, #ba68c8 0%, #8e24aa 100%);--brand-shadow: 0 4px 14px rgba(156, 39, 176, .32);--ink-900: #0f172a;--ink-800: #1e293b;--ink-700: #334155;--ink-600: #475569;--ink-500: #64748b;--ink-400: #94a3b8;--ink-300: #cbd5e1;--ink-200: #e2e8f0;--ink-100: #f1f5f9;--ink-50: #f8fafc;--surface: #ffffff;--emerald-50: #ecfdf5;--emerald-500: #10b981;--emerald-600: #059669;--amber-50: #fffbeb;--amber-500: #f59e0b;--amber-600: #d97706;--rose-50: #fef2f2;--rose-500: #ef4444;--rose-600: #dc2626;--blue-50: #eff6ff;--blue-500: #3b82f6;--blue-600: #2563eb;--font-sans: "Plus Jakarta Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .08)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;font-family:var(--font-sans);background-color:#f8fafc;color:var(--ink-900);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--brand-600);text-decoration:none;transition:color .15s ease}a:hover{color:var(--brand-700)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;min-height:38px;padding:0 18px;font-size:13.5px;font-weight:700;font-family:inherit;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;line-height:1}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-primary{background:linear-gradient(135deg,#ab47bc,#7b1fa2);color:#fff;border:none;border-radius:var(--radius-md);box-shadow:0 2px 8px #9c27b04d;font-weight:700}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#ba68c8,#6a1b9a);box-shadow:0 4px 14px #9c27b066;transform:translateY(-1px);color:#fff}.btn-success,.btn-save-green{background:linear-gradient(135deg,#4caf50,#2e7d32);color:#fff;border:none;border-radius:var(--radius-md);box-shadow:0 2px 8px #4caf504d;font-weight:700;padding:0 20px}.btn-success:hover:not(:disabled),.btn-save-green:hover:not(:disabled){background:linear-gradient(135deg,#66bb6a,#1b5e20);box-shadow:0 4px 14px #4caf5066;transform:translateY(-1px);color:#fff}.btn-secondary{background:#fff;color:var(--ink-700);border:1.5px solid var(--ink-200);border-radius:var(--radius-md);box-shadow:0 1px 2px #0000000a;font-weight:600}.btn-secondary:hover:not(:disabled){background:var(--ink-50);border-color:var(--ink-300);color:var(--ink-900);transform:translateY(-1px)}.btn-excel{background:linear-gradient(135deg,#107c41,#0c592e);color:#fff;border:none;border-radius:var(--radius-md);box-shadow:0 2px 8px #107c414d;font-weight:700}.btn-excel:hover:not(:disabled){background:linear-gradient(135deg,#189852,#084221);box-shadow:0 4px 14px #107c4166;transform:translateY(-1px);color:#fff}.btn-search{background:linear-gradient(135deg,#0ea5e9,#2563eb);color:#fff;border:none;border-radius:var(--radius-md);box-shadow:0 2px 8px #2563eb4d;font-weight:700}.btn-search:hover:not(:disabled){background:linear-gradient(135deg,#38bdf8,#1d4ed8);box-shadow:0 4px 14px #2563eb66;transform:translateY(-1px);color:#fff}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;border-radius:var(--radius-md);box-shadow:0 2px 8px #dc26264d;font-weight:700}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#f87171,#b91c1c);box-shadow:0 4px 14px #dc262666;transform:translateY(-1px);color:#fff}.btn-ghost{background:transparent;color:var(--ink-600);border:none}.btn-ghost:hover:not(:disabled){background:var(--ink-100);color:var(--ink-900)}.btn-sm{height:32px;min-height:32px;padding:0 12px;font-size:12px;border-radius:var(--radius-sm)}.btn-lg{height:42px;min-height:42px;padding:0 26px;font-size:14px;border-radius:var(--radius-md)}.btn-icon{width:34px;height:34px;padding:0;border-radius:var(--radius-md);background:#fff;border:1px solid var(--ink-200);color:var(--ink-600);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.btn-icon:hover:not(:disabled){background:var(--ink-50);border-color:var(--ink-300);color:var(--ink-900);transform:translateY(-1px)}.toolbar{background:#fff;border:1px solid var(--ink-200);border-radius:var(--radius-lg);padding:12px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.toolbar .search-box{position:relative;min-width:220px;flex:1 1 240px}.toolbar .search-box input{width:100%;height:38px;padding:0 14px 0 38px;border:1.5px solid var(--ink-200);border-radius:var(--radius-md);font-size:13.5px;font-family:inherit;background:#fff;color:var(--ink-900);outline:none;transition:all .15s ease}.toolbar .search-box input:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px #9c27b01f}.toolbar .search-box .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-400);pointer-events:none;display:flex}.seg{display:inline-flex;background:var(--ink-100);padding:3px;border-radius:var(--radius-md);gap:2px}.seg button{height:32px;padding:0 14px;font-size:12.5px;font-weight:600;font-family:inherit;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--ink-600);cursor:pointer;transition:all .15s ease;white-space:nowrap}.seg button:hover{color:var(--ink-900)}.seg button.active{background:#fff;color:var(--brand-700);box-shadow:0 1px 3px #0000000f}.data-table-wrap{background:#fff;border:1px solid var(--ink-200);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:20px}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;text-align:left}.data-table th{background:#f8fafc;color:var(--ink-600);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:12px 16px;border-bottom:1px solid var(--ink-200);white-space:nowrap}.data-table td{padding:14px 16px;border-bottom:1px solid var(--ink-100);color:var(--ink-800);vertical-align:middle;background:#fff;white-space:nowrap}.data-table tbody tr{transition:background-color .12s ease}.data-table tbody tr:hover td{background-color:#faf8ff}.data-table tbody tr:last-child td{border-bottom:none}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.form-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.form-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.field label{font-size:12.5px;font-weight:600;color:var(--ink-700)}.field.required label:after{content:" *";color:var(--rose-500)}.field input[type=text],.field input[type=password],.field input[type=email],.field input[type=number],.field input[type=tel],.field input[type=date],.field select,.field textarea{width:100%;height:38px;padding:0 12px;font-size:13.5px;font-family:inherit;color:var(--ink-900);background:#fff;border:1.5px solid var(--ink-200);border-radius:var(--radius-md);outline:none;transition:all .15s ease;box-sizing:border-box}.field select,select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px 14px;padding-right:36px;cursor:pointer}.field textarea{height:auto;min-height:80px;padding:10px 12px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,select:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px #9c27b01f}.field input:disabled,.field select:disabled,.field textarea:disabled,select:disabled{background:var(--ink-50);color:var(--ink-500);cursor:not-allowed}.switch{position:relative;display:inline-block;width:44px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background-color:var(--ink-300);transition:.2s;border-radius:24px}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.2s;border-radius:50%}input:checked+.slider{background-color:var(--brand-600)}input:checked+.slider:before{transform:translate(20px)}.card{background:#fff;border:1px solid var(--ink-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:20px;position:relative}.card-head{padding:16px 20px;border-bottom:1px solid var(--ink-100);display:flex;align-items:center;justify-content:space-between}.card-head h3{margin:0;font-size:15px;font-weight:700;color:var(--ink-900)}.card-body{padding:20px}@media (max-width: 900px){.form-grid-3,.form-grid-4{grid-template-columns:repeat(2,1fr);gap:12px}.form-editor-grid{grid-template-columns:1fr!important}}@media (max-width: 768px){.toolbar{flex-direction:column;align-items:stretch;gap:10px;padding:12px}.toolbar>div{width:100%!important;max-width:100%!important;display:flex;flex-wrap:wrap;gap:8px}.toolbar .search-box{width:100%!important;max-width:100%!important;min-width:0!important}.toolbar>.btn{width:100%;justify-content:center}.toolbar .seg{width:100%;display:flex}.toolbar .seg button{flex:1;text-align:center;justify-content:center}}@media (max-width: 640px){.form-grid,.form-grid-2,.form-grid-3,.form-grid-4{grid-template-columns:1fr!important;gap:12px}.app-shell__content{padding:12px 10px 24px}.card-body{padding:14px 12px}.card-head{padding:12px 14px;flex-direction:column;align-items:flex-start;gap:8px}.data-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;border-radius:var(--radius-md)}.data-table{display:table;min-width:600px;width:100%}.data-table th,.data-table td{padding:10px 12px;font-size:12.5px}}
