:root{--brand-navy-50:#eef1fb;--brand-navy-100:#d4daf4;--brand-navy-200:#a9b4e8;--brand-navy-300:#7d8fdb;--brand-navy-400:#5269ce;--brand-navy-500:#2643c2;--brand-navy-600:#1e35a0;--brand-navy-700:#162171;--brand-navy-800:#0f1750;--brand-navy-900:#080d2f;--brand-blue-50:#e6f6fd;--brand-blue-100:#b3e4f8;--brand-blue-200:#66c9f1;--brand-blue-300:#33b3ed;--brand-blue-400:#00a0e8;--brand-blue-500:#0080ba;--brand-blue-600:#00608c;--brand-blue-700:#00405e;--neutral-0:#fff;--neutral-50:#fafafa;--neutral-100:#f4f4f5;--neutral-150:#eeeff1;--neutral-200:#e4e4e7;--neutral-300:#d1d1d6;--neutral-400:#a0a0ab;--neutral-500:#70707a;--neutral-600:#51515a;--neutral-700:#3f3f46;--neutral-800:#27272a;--neutral-900:#18181b;--neutral-950:#0c0c0e;--status-success-50:#f0fdf4;--status-success-100:#dcfce7;--status-success-500:#22c55e;--status-success-600:#16a34a;--status-success-700:#15803d;--status-warning-50:#fffbeb;--status-warning-100:#fef3c7;--status-warning-500:#f59e0b;--status-warning-600:#d97706;--status-warning-700:#b45309;--status-error-50:#fef2f2;--status-error-100:#fee2e2;--status-error-500:#ef4444;--status-error-600:#dc2626;--status-error-700:#b91c1c;--status-info-50:#eff6ff;--status-info-100:#dbeafe;--status-info-500:#3b82f6;--status-info-600:#2563eb;--status-info-700:#1d4ed8;--status-purple-50:#faf5ff;--status-purple-100:#ede9fe;--status-purple-500:#a855f7;--status-purple-600:#9333ea;--status-purple-700:#7e22ce;--status-orange-50:#fff7ed;--status-orange-100:#ffedd5;--status-orange-500:#f97316;--status-orange-600:#ea580c;--bg-app:#f4f6fa;--bg-surface:var(--neutral-0);--bg-elevated:var(--neutral-0);--bg-subtle:var(--neutral-100);--bg-muted:var(--neutral-150);--border-default:var(--neutral-200);--border-subtle:var(--neutral-150);--border-strong:var(--neutral-300);--border-focus:var(--brand-blue-400);--text-primary:var(--neutral-900);--text-secondary:var(--neutral-500);--text-tertiary:var(--neutral-400);--text-disabled:var(--neutral-300);--text-inverse:var(--neutral-0);--text-brand:var(--brand-navy-700);--text-accent:var(--brand-blue-400);--interactive-primary:var(--brand-navy-700);--interactive-primary-hover:var(--brand-navy-600);--interactive-accent:var(--brand-blue-400);--interactive-accent-hover:var(--brand-blue-500);--interactive-destructive:var(--status-error-500);--interactive-destructive-hover:var(--status-error-600);--interactive-ghost-hover:var(--neutral-100);--interactive-ghost-active:var(--neutral-150);--sidebar-bg:var(--neutral-0);--sidebar-bg-hover:var(--neutral-100);--sidebar-bg-active:var(--brand-blue-50);--sidebar-text:var(--neutral-600);--sidebar-text-active:var(--brand-navy-700);--sidebar-border:var(--border-default);--sidebar-accent:var(--brand-blue-400);--sidebar-width:240px;--sidebar-collapsed-width:64px;--header-height:56px;--header-bg:var(--neutral-0);--header-border:var(--border-default);--font-sans:var(--font-roboto), "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--text-xs:.6875rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:.9375rem;--text-lg:1rem;--text-xl:1.125rem;--text-2xl:1.25rem;--text-3xl:1.5rem;--text-4xl:1.875rem;--text-5xl:2.25rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--leading-tight:1.2;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--tracking-tight:-.02em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--space-0:0px;--space-px:1px;--space-0-5:2px;--space-1:4px;--space-1-5:6px;--space-2:8px;--space-2-5:10px;--space-3:12px;--space-3-5:14px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-9:36px;--space-10:40px;--space-11:44px;--space-12:48px;--space-14:56px;--space-16:64px;--space-20:80px;--space-24:96px;--radius-none:0px;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:16px;--radius-3xl:24px;--radius-full:9999px;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 8px -1px #00000012, 0 2px 4px -1px #0000000a;--shadow-lg:0 12px 24px -4px #00000014, 0 4px 8px -2px #0000000a;--shadow-xl:0 24px 48px -8px #0000001a, 0 8px 16px -4px #0000000a;--shadow-2xl:0 48px 96px -12px #00000024;--ring-brand:0 0 0 3px #00a0e833;--ring-error:0 0 0 3px #ef444433;--ring-success:0 0 0 3px #22c55e33;--ring-warning:0 0 0 3px #f59e0b33;--duration-instant:50ms;--duration-fast:.1s;--duration-normal:.15s;--duration-slow:.2s;--duration-slower:.3s;--duration-slowest:.5s;--ease-linear:linear;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-bounce:cubic-bezier(.68, -.55, .265, 1.55)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;tab-size:4;height:100%}body{min-height:100%;font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-regular);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}a{color:var(--text-accent);transition:color var(--duration-fast) var(--ease-out);text-decoration:none}a:hover{color:var(--interactive-accent-hover)}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}h4{font-size:var(--text-base)}h5{font-size:var(--text-sm)}p{color:var(--text-secondary);line-height:var(--leading-relaxed)}ul,ol{list-style:none}img,svg{max-width:100%;display:block}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button{cursor:pointer}:focus{outline:none}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--neutral-400)}::selection{background-color:var(--brand-blue-100);color:var(--brand-navy-700)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}@keyframes pulseOpacity{0%,to{opacity:1}50%{opacity:.5}}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mono{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.btn{justify-content:center;align-items:center;gap:var(--space-1-5);padding:var(--space-2) var(--space-3-5);border-radius:var(--radius-md);height:36px;font-size:var(--text-sm);font-weight:var(--weight-medium);font-family:var(--font-sans);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;outline:none;line-height:1;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background-color:var(--interactive-primary);color:var(--text-inverse);border-color:var(--interactive-primary)}.btn-primary:hover:not(:disabled){background-color:var(--interactive-primary-hover);border-color:var(--interactive-primary-hover)}.btn-primary:focus-visible{box-shadow:var(--ring-brand)}.btn-secondary{background-color:var(--bg-surface);color:var(--text-primary);border-color:var(--border-default)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-subtle);border-color:var(--border-strong)}.btn-secondary:focus-visible{box-shadow:var(--ring-brand)}.btn-ghost{color:var(--text-secondary);background-color:#0000;border-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--interactive-ghost-hover);color:var(--text-primary)}.btn-danger{background-color:var(--interactive-destructive);color:var(--text-inverse);border-color:var(--interactive-destructive)}.btn-danger:hover:not(:disabled){background-color:var(--interactive-destructive-hover);border-color:var(--interactive-destructive-hover)}.btn-danger:focus-visible{box-shadow:var(--ring-error)}.btn-sm{height:30px;padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-lg{height:44px;padding:var(--space-3) var(--space-6);font-size:var(--text-md);border-radius:var(--radius-lg)}.btn-icon{width:36px;height:36px;padding:0}.btn-icon.btn-sm{width:30px;height:30px}.data-table{border-collapse:collapse;text-align:left;width:100%;font-size:var(--text-sm)}.data-table th{padding:var(--space-3) var(--space-4);background-color:var(--bg-subtle);color:var(--text-tertiary);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider);text-transform:uppercase;border-bottom:1px solid var(--border-default);white-space:nowrap}.data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:middle;font-size:var(--text-sm)}.data-table tbody tr{transition:background-color var(--duration-fast) var(--ease-out)}.data-table tbody tr:hover{background-color:var(--bg-muted)}.data-table tbody tr:last-child td{border-bottom:none}.badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-bold);white-space:nowrap;padding:4px 10px;line-height:1.2;display:inline-flex}.badge-dot{border-radius:var(--radius-full);flex-shrink:0;width:6px;height:6px}.badge-draft{color:var(--text-inverse);background:var(--neutral-500)}.badge-submitted{color:var(--text-inverse);background:var(--status-warning-600)}.badge-approved{color:var(--text-inverse);background:var(--status-success-600)}.badge-rejected{color:var(--text-inverse);background:var(--status-error-600)}.badge-revised{color:var(--text-inverse);background:var(--status-purple-600)}.badge-expired{color:var(--text-inverse);background:var(--neutral-400)}.badge-wip{color:var(--text-inverse);background:var(--status-orange-600)}.badge-completed{color:var(--text-inverse);background:var(--status-success-600)}.badge-issued{color:var(--text-inverse);background:var(--brand-navy-600)}.badge-paid{color:var(--text-inverse);background:var(--status-success-600)}.badge-partial{color:var(--text-inverse);background:var(--status-warning-600)}.badge-overdue{color:var(--text-inverse);background:var(--status-error-600)}.badge-unpaid{color:var(--text-inverse);background:var(--neutral-500)}.badge-advance{color:var(--text-inverse);background:var(--status-info-600)}.badge-success{color:var(--text-inverse);background:var(--status-success-600)}.badge-warning{color:var(--text-inverse);background:var(--status-warning-600)}.badge-error{color:var(--text-inverse);background:var(--status-error-600)}.badge-info{color:var(--text-inverse);background:var(--status-info-600)}.badge-purple{color:var(--text-inverse);background:var(--status-purple-600)}.badge-navy{color:var(--text-inverse);background:var(--brand-navy-600)}.form-group{gap:var(--space-1-5);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary);align-items:center;gap:var(--space-1);display:flex}.form-label-required:after{content:"*";color:var(--status-error-500);margin-left:2px}.form-hint{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.form-error{font-size:var(--text-xs);color:var(--status-error-600);margin-top:var(--space-1);align-items:center;gap:var(--space-1);display:flex}.input-base{width:100%;height:36px;padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-sans);color:var(--text-primary);background-color:var(--bg-surface);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);appearance:none;outline:none}.input-base::placeholder{color:var(--text-tertiary)}.input-base:hover:not(:disabled):not(:focus){border-color:var(--border-strong)}.input-base:focus{border-color:var(--border-focus);box-shadow:var(--ring-brand)}.input-base:disabled{opacity:.5;cursor:not-allowed;background-color:var(--bg-subtle)}.input-base.input-error{border-color:var(--status-error-500)}.input-base.input-error:focus{box-shadow:var(--ring-error)}.input,.select,.textarea{composes:input-base}.textarea{height:auto;padding:var(--space-2) var(--space-3);resize:vertical;min-height:80px;line-height:var(--leading-relaxed)}.select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2370707a' stroke-width='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 var(--space-3) center;padding-right:var(--space-8)}.spinner{border:2px solid var(--border-default);border-top-color:var(--interactive-primary);border-radius:var(--radius-full);flex-shrink:0;width:18px;height:18px;animation:.6s linear infinite spin;display:inline-block}.spinner-sm{border-width:1.5px;width:14px;height:14px}.spinner-lg{border-width:3px;width:28px;height:28px}.spinner-white{border-color:#ffffff4d;border-top-color:var(--neutral-0)}.spinner-accent{border-top-color:var(--brand-blue-400)}.skeleton{background:linear-gradient(90deg, var(--neutral-150) 0%, var(--neutral-100) 50%, var(--neutral-150) 100%);border-radius:var(--radius-md);background-size:400px 100%;animation:1.4s ease-in-out infinite shimmer}.skeleton-text{border-radius:var(--radius-sm);height:14px}.skeleton-text-sm{border-radius:var(--radius-xs);height:11px}.skeleton-avatar{border-radius:var(--radius-full)}.card{background-color:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.card-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:var(--tracking-tight)}.card-body{padding:var(--space-5)}.overlay{-webkit-backdrop-filter:blur(4px);z-index:200;padding:var(--space-4);animation:fadeIn var(--duration-fast) var(--ease-out);background-color:#18181b80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);border:1px solid;display:flex}.alert-error{background-color:var(--status-error-50);border-color:var(--status-error-100);color:var(--status-error-700)}.alert-warning{background-color:var(--status-warning-50);border-color:var(--status-warning-100);color:var(--status-warning-700)}.alert-success{background-color:var(--status-success-50);border-color:var(--status-success-100);color:var(--status-success-700)}.alert-info{background-color:var(--status-info-50);border-color:var(--status-info-100);color:var(--status-info-700)}.empty-state{padding:var(--space-16) var(--space-8);text-align:center;justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.empty-state-icon{width:48px;height:48px;color:var(--text-tertiary);opacity:.6}.empty-state-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);margin:0}.empty-state-desc{font-size:var(--text-sm);color:var(--text-secondary);max-width:360px;line-height:var(--leading-relaxed);margin:0}.page-enter{animation:slideUp var(--duration-slow) var(--ease-out) both}
