*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-navy:#1b2b5e;--color-navy-light:#2a3f80;--color-navy-dark:#111c3e;--color-brand:#2563eb;--color-brand-light:#3b82f6;--color-brand-dark:#1d4ed8;--color-brand-bg:#eff6ff;--color-brand-bg-hover:#dbeafe;--color-success:#10b981;--color-success-bg:#ecfdf5;--color-warning:#f59e0b;--color-warning-bg:#fffbeb;--color-danger:#ef4444;--color-danger-bg:#fef2f2;--color-info:#6366f1;--color-info-bg:#eef2ff;--color-white:#fff;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--font-family:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--font-weight-light:300;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -1px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -2px #0000000a;--shadow-xl:0 20px 25px -5px #00000014, 0 10px 10px -5px #00000008;--shadow-brand:0 4px 14px #2563eb40;--shadow-navy:0 4px 20px #1b2b5e26;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--sidebar-width:260px;--sidebar-collapsed-width:80px;--navbar-height:64px;--content-max-width:1200px;--z-modal:1000;--z-overlay:999}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);color:var(--color-gray-800);background-color:var(--color-gray-50);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}a{color:var(--color-brand);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-brand-dark)}img{max-width:100%;display:block}button,input,select,textarea{font-family:var(--font-family)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-gray-100)}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}.app-layout{min-height:100vh;transition:all var(--transition-base);display:flex}.main-content{margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left var(--transition-base);width:calc(100% - var(--sidebar-width));flex-direction:column;flex:1;display:flex}.sidebar-collapsed .main-content{margin-left:var(--sidebar-collapsed-width);width:calc(100% - var(--sidebar-collapsed-width))}.page-content{padding:var(--space-8);max-width:var(--content-max-width);flex:1;width:100%;margin:0 auto}.card{background:var(--color-white);border-radius:var(--radius-xl);border:1px solid var(--color-gray-200);box-shadow:var(--shadow-sm);padding:var(--space-6);transition:box-shadow var(--transition-base), transform var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card--interactive{cursor:pointer}.card--interactive:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}.btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;min-height:44px;line-height:1;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background:var(--color-brand);color:var(--color-white);box-shadow:var(--shadow-brand)}.btn--primary:hover:not(:disabled){background:var(--color-brand-dark);color:var(--color-white);transform:translateY(-1px);box-shadow:0 6px 20px #2563eb59}.btn--secondary{background:var(--color-brand-bg);color:var(--color-brand);border:1px solid var(--color-brand-bg-hover)}.btn--secondary:hover:not(:disabled){background:var(--color-brand-bg-hover)}.btn--ghost{color:var(--color-gray-600);border:1px solid var(--color-gray-200);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--color-gray-100);color:var(--color-gray-800)}.btn--danger{background:var(--color-danger);color:var(--color-white)}.btn--danger:hover:not(:disabled){background:#dc2626}.btn--sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);min-height:32px}.btn--lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-base);border-radius:var(--radius-lg);min-height:56px}.btn--full{justify-content:center;width:100%}.badge{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:4px;display:inline-flex}.badge--success{background:var(--color-success-bg);color:#065f46}.badge--warning{background:var(--color-warning-bg);color:#92400e}.badge--danger{background:var(--color-danger-bg);color:#991b1b}.badge--info{background:var(--color-info-bg);color:#3730a3}.badge--neutral{background:var(--color-gray-100);color:var(--color-gray-600)}.badge--brand{background:var(--color-brand-bg);color:var(--color-brand-dark)}.form-group{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-gray-700)}.form-input,.form-select,.form-textarea{padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-gray-800);background:var(--color-white);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);width:100%;min-height:44px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-brand);outline:none;box-shadow:0 0 0 3px #2563eb1f}.form-textarea{resize:vertical;min-height:100px}.form-hint{font-size:var(--font-size-xs);color:var(--color-gray-500)}.progress-bar{background:var(--color-gray-200);border-radius:var(--radius-full);width:100%;height:8px;overflow:hidden}.progress-bar__fill{background:linear-gradient(90deg, var(--color-brand), var(--color-brand-light));border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;padding:var(--space-4);animation:fadeIn var(--transition-base);background:#11182780;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-white);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);width:100%;max-width:520px;max-height:90vh;animation:slideUp var(--transition-slow);overflow-y:auto}.modal__header{padding:var(--space-6);border-bottom:1px solid var(--color-gray-200);justify-content:space-between;align-items:center;display:flex}.modal__body{padding:var(--space-6)}.modal__footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-gray-200);gap:var(--space-3);justify-content:flex-end;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid var(--color-gray-200);border-top-color:var(--color-brand);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin}.spinner--lg{border-width:3px;width:40px;height:40px}.loading-screen{justify-content:center;align-items:center;gap:var(--space-4);min-height:100vh;color:var(--color-gray-500);flex-direction:column;display:flex}.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:64px;height:64px;color:var(--color-gray-300)}.empty-state__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-gray-600)}.empty-state__text{font-size:var(--font-size-sm);color:var(--color-gray-400);max-width:360px}.page-header{margin-bottom:var(--space-8)}.page-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-navy);line-height:1.2}.page-subtitle{margin-top:var(--space-2);font-size:var(--font-size-base);color:var(--color-gray-500)}.section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-navy);margin-bottom:var(--space-4);align-items:center;gap:var(--space-2);display:flex}.grid-2{gap:var(--space-6);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-6);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-6);grid-template-columns:repeat(4,1fr);display:grid}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-muted{color:var(--color-gray-500)}.text-navy{color:var(--color-navy)}.text-brand{color:var(--color-brand)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-center{text-align:center}.tooltip-wrapper{display:inline-flex;position:relative}.tooltip{background:var(--color-gray-900);color:var(--color-white);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-xs);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);z-index:100;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip-wrapper:hover .tooltip{opacity:1}.divider{background:var(--color-gray-200);height:1px;margin:var(--space-6) 0}@media (width<=1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.main-content{width:100%!important;margin-left:0!important}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.page-content{padding:var(--space-4)}.page-title{font-size:var(--font-size-2xl)}.sidebar__link,.btn,.form-input,.navbar__icon-btn{min-height:48px}}@media (width<=480px){.page-title{font-size:var(--font-size-xl)}.card{padding:var(--space-4)}}.invoice-panel{padding:var(--space-8);background:var(--color-white);border-radius:var(--radius-2xl);box-shadow:var(--shadow-md)}.panel-header{margin-bottom:var(--space-8);justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.panel-header__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-extrabold);color:var(--color-navy);letter-spacing:-.02em}.panel-header__text{font-size:var(--font-size-sm);color:var(--color-gray-500);margin-top:var(--space-1)}.invoice-toolbar{gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.search-box{flex:1;min-width:240px;position:relative}.search-box__icon{left:var(--space-4);color:var(--color-gray-400);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search-box .form-input{padding-left:calc(var(--space-4) * 2.5)}.invoice-table-wrapper{border-radius:var(--radius-lg);border:1px solid var(--color-gray-100);overflow-x:auto}.invoice-table{border-collapse:collapse;text-align:left;width:100%;font-size:var(--font-size-sm)}.invoice-table th{padding:var(--space-4);background:var(--color-gray-50);color:var(--color-gray-500);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--color-gray-100);font-size:10px}.invoice-table td{padding:var(--space-4);border-bottom:1px solid var(--color-gray-100);vertical-align:middle}.invoice-table tr:hover{background:var(--color-gray-50)}.status-select{border-radius:var(--radius-full);font-size:11px;font-weight:var(--font-weight-bold);cursor:pointer;appearance:none;border:none;outline:none;padding:4px 12px}.status-select--unpaid{background:var(--color-warning-bg);color:#92400e}.status-select--paid{background:var(--color-success-bg);color:#065f46}.status-select--partially-paid{background:var(--color-info-bg);color:#3730a3}.status-select--rejected{background:var(--color-danger-bg);color:#991b1b}.sync-pill{background:var(--color-gray-100);color:var(--color-gray-500);font-size:9px;font-weight:var(--font-weight-bold);text-transform:uppercase;border-radius:4px;width:fit-content;margin-top:4px;padding:1px 6px;display:inline-flex}.logo-upload-zone{border:2px dashed var(--color-gray-200);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-gray-50);transition:all var(--transition-base)}.logo-upload-zone:hover{border-color:var(--color-brand);background:var(--color-brand-bg)}.logo-preview-container{align-items:center;gap:var(--space-4);display:flex}.logo-preview{object-fit:contain;max-width:120px;max-height:60px;padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-gray-200);background:#fff}.btn-icon{border-radius:var(--radius-md);border:1px solid var(--color-gray-200);background:var(--color-white);width:36px;height:36px;color:var(--color-gray-500);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.btn-icon:hover{background:var(--color-gray-50);color:var(--color-brand);border-color:var(--color-brand-light)}.btn-icon--danger:hover{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger)}.btn-icon--sm{width:28px;height:28px}
