:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--font-mono:"SF Mono","Cascadia Code","Fira Code","Consolas",monospace;--gray-25:#fcfcfd;--gray-50:#f9fafb;--gray-100:#f2f4f7;--gray-200:#eaecf0;--gray-300:#d0d5dd;--gray-400:#98a2b3;--gray-500:#667085;--gray-600:#475467;--gray-700:#344054;--gray-800:#1d2939;--gray-900:#101828;--green-25:#f6fef9;--green-50:#ecfdf3;--green-100:#d1fadf;--green-200:#a6f4c5;--green-300:#6ce9a6;--green-400:#32d583;--green-500:#12b76a;--green-600:#039855;--green-700:#027a48;--green-800:#05603a;--amber-50:#fffbeb;--amber-100:#fef3c7;--amber-200:#fde68a;--amber-300:#fcd34d;--amber-400:#fbbf24;--amber-500:#f59e0b;--amber-600:#d97706;--amber-700:#b45309;--red-50:#fef3f2;--red-100:#fee4e2;--red-200:#fecdca;--red-400:#f97066;--red-500:#f04438;--red-600:#d92d20;--red-700:#b42318;--blue-50:#eff8ff;--blue-100:#d1e9ff;--blue-400:#53b1fd;--blue-500:#2e90fa;--blue-600:#1570ef;--blue-700:#175cd3;--surface:#fff;--bg-primary:#fff;--bg-secondary:#f9fafb;--border:#eaecf0;--border-light:#f2f4f7;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-xs:0 1px 2px rgba(16,24,40,.05);--shadow-sm:0 1px 3px rgba(16,24,40,.1),0 1px 2px rgba(16,24,40,.06);--shadow-md:0 4px 8px -2px rgba(16,24,40,.1),0 2px 4px -2px rgba(16,24,40,.06);--shadow-lg:0 12px 16px -4px rgba(16,24,40,.08),0 4px 6px -2px rgba(16,24,40,.03);--nav-height:56px;--page-max:1080px}*,:after,:before{box-sizing:border-box}body{margin:0;padding:0;background:var(--bg-secondary);color:var(--gray-900);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{margin:0;line-height:1.2}p{margin:0}a{color:var(--green-700)}.page{max-width:var(--page-max);margin:0 auto;padding:24px 24px 40px}.card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow:hidden}.card-padded{padding:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border:1px solid transparent;border-radius:var(--radius-md);font-family:inherit;font-size:14px;font-weight:600;line-height:1.3;cursor:pointer;transition:all .15s ease;white-space:nowrap;text-decoration:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--green-600);color:#fff;border-color:var(--green-600)}.btn-primary:hover:not(:disabled){background:var(--green-700);border-color:var(--green-700)}.btn-secondary{background:var(--surface);color:var(--gray-700);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-300)}.btn-ghost{background:transparent;color:var(--gray-600);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--gray-50);color:var(--gray-700)}.btn-danger{background:var(--red-600);color:#fff;border-color:var(--red-600)}.btn-danger:hover:not(:disabled){background:var(--red-700)}.btn-sm{padding:5px 12px;font-size:13px;border-radius:var(--radius-sm)}.btn-lg{padding:12px 24px;font-size:15px}.form-group{display:flex;flex-direction:column;gap:4px}.form-label{font-size:13px;font-weight:600;color:var(--gray-600)}.form-hint{font-size:12px;color:var(--gray-400)}input,select,textarea{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-md);font-family:inherit;font-size:14px;color:var(--gray-900);background:var(--surface);transition:border-color .15s,box-shadow .15s;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green-400);box-shadow:0 0 0 3px rgba(3,152,85,.12)}input::placeholder,textarea::placeholder{color:var(--gray-400)}select{cursor:pointer}textarea{resize:vertical;min-height:80px}input[type=checkbox],input[type=radio]{width:auto}.toggle{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{position:absolute;inset:0;background:var(--gray-200);border-radius:11px;cursor:pointer;transition:background .2s}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:var(--shadow-xs)}.toggle input:checked+.toggle-slider{background:var(--green-500)}.toggle input:checked+.toggle-slider:before{transform:translateX(18px)}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:16px;font-size:12px;font-weight:600;line-height:1.5}.pill-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.pill-green{background:var(--green-50);color:var(--green-700)}.pill-amber{background:var(--amber-50);color:var(--amber-700)}.pill-red{background:var(--red-50);color:var(--red-700)}.pill-blue{background:var(--blue-50);color:var(--blue-700)}.pill-gray{background:var(--gray-100);color:var(--gray-600)}.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:var(--radius-md);font-size:14px;font-weight:500;line-height:1.5}.alert-error{background:var(--red-50);color:var(--red-700);border:1px solid var(--red-200)}.alert-warning{background:var(--amber-50);color:var(--amber-700);border:1px solid rgba(245,158,11,.2)}.alert-success{background:var(--green-50);color:var(--green-700);border:1px solid var(--green-200)}.alert-info{background:var(--blue-50);color:var(--blue-700);border:1px solid var(--blue-100)}.spinner{width:20px;height:20px;border:2.5px solid var(--gray-200);border-top-color:var(--green-600);border-radius:50%;animation:spin .7s linear infinite}.spinner-lg{width:32px;height:32px;border-width:3px}@keyframes spin{to{transform:rotate(1turn)}}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th{text-align:left;padding:10px 16px;font-size:12px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);background:var(--gray-25)}.data-table td{padding:12px 16px;border-bottom:1px solid var(--border-light);color:var(--gray-700)}.data-table tbody tr{transition:background .1s}.data-table tbody tr:hover{background:var(--gray-50)}.data-table tbody tr:last-child td{border-bottom:none}.text-xs{font-size:12px}.text-sm{font-size:13px}.text-lg{font-size:18px}.text-muted{color:var(--gray-500)}.text-mono{font-family:var(--font-mono)}.font-bold{font-weight:700}.empty-state{flex-direction:column;gap:8px;padding:40px 20px;text-align:center}.empty-state,.empty-state-icon{display:flex;align-items:center}.empty-state-icon{width:48px;height:48px;border-radius:50%;background:var(--gray-100);justify-content:center;font-size:22px}.empty-state-title{font-size:15px;font-weight:700;color:var(--gray-800)}.empty-state-desc{font-size:14px;color:var(--gray-500);max-width:320px}.app-nav{position:-webkit-sticky;position:sticky;top:0;z-index:200;height:var(--nav-height);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 20px;gap:4px}.app-nav-brand{font-size:15px;color:var(--green-700);letter-spacing:-.01em;margin-right:16px;text-decoration:none;gap:8px;flex-shrink:0}.app-nav-brand,.app-nav-brand-icon{font-weight:800;display:flex;align-items:center}.app-nav-brand-icon{width:28px;height:28px;background:var(--green-600);color:#fff;justify-content:center}.app-nav-brand-icon,.app-nav-link{border-radius:var(--radius-sm);font-size:14px}.app-nav-link{padding:6px 12px;font-weight:500;color:var(--gray-500);text-decoration:none;transition:all .12s}.app-nav-link:hover{color:var(--gray-700);background:var(--gray-50)}.app-nav-link.active{color:var(--green-700);background:var(--green-50);font-weight:600}.app-nav-sep{width:1px;height:24px;background:var(--border);margin:0 8px;flex-shrink:0}.app-nav-spacer{flex:1 1}.app-nav-user{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--gray-500)}.app-nav-role{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:var(--gray-100);color:var(--gray-600)}@media (max-width:768px){.app-nav{overflow-x:auto;gap:2px;padding:0 12px}.app-nav-link{font-size:13px;padding:6px 8px;white-space:nowrap}.app-nav-sep{display:none}}