:root{--bg:#f0f4f8;--surface:#fff;--surface2:#f8fafc;--border:#e2e8f0;--border2:#cbd5e1;--accent:#1d6ae5;--accent-light:#e8f0fe;--accent-dark:#1554c0;--accent3:#0f9d6e;--accent3-light:#e6f7f2;--warn:#d97706;--warn-light:#fef3c7;--danger:#dc2626;--danger-light:#fee2e2;--purple:#7c3aed;--purple-light:#ede9fe;--text:#1e293b;--text2:#475569;--text3:#94a3b8;--mono:"Space Mono",monospace;--sans:"DM Sans",sans-serif;--shadow-sm:0 1px 3px #00000012;--shadow:0 4px 12px #00000014;--shadow-lg:0 10px 30px #0000001f;--radius:12px}*{box-sizing:border-box;margin:0;padding:0}body{background:#f0f4f8;background:var(--bg);color:#1e293b;color:var(--text);font-family:DM Sans,sans-serif;font-family:var(--sans);min-height:100vh}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:#f0f4f8;background:var(--bg)}::-webkit-scrollbar-thumb{background:#cbd5e1;background:var(--border2);border-radius:3px}.login-wrap{align-items:center;background:linear-gradient(135deg,#1e3a5f,#1d6ae5 60%,#3b82f6);display:flex;justify-content:center;min-height:100vh}.login-box{background:#fff;border-radius:20px;box-shadow:0 10px 30px #0000001f;box-shadow:var(--shadow-lg);padding:44px;width:440px}.login-logo{margin-bottom:32px;text-align:center}.login-logo .atom{animation:spin 8s linear infinite;display:block;font-size:44px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.login-logo h1{color:#1d6ae5;color:var(--accent);font-family:Space Mono,monospace;font-family:var(--mono);font-size:20px;letter-spacing:3px;margin-top:10px}.login-logo p{color:#94a3b8;color:var(--text3);font-size:12px;margin-top:4px}.form-group{margin-bottom:16px}.form-group label{color:#475569;color:var(--text2);display:block;font-size:11px;font-weight:700;letter-spacing:.8px;margin-bottom:6px;text-transform:uppercase}.form-group input,.form-group select,.form-group textarea{background:#f8fafc;background:var(--surface2);border:1.5px solid #e2e8f0;border:1.5px solid var(--border);border-radius:8px;color:#1e293b;color:var(--text);font-family:DM Sans,sans-serif;font-family:var(--sans);font-size:13px;outline:none;padding:10px 14px;transition:all .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{background:#fff;border-color:#1d6ae5;border-color:var(--accent);box-shadow:0 0 0 3px #1d6ae51a}.form-group textarea{line-height:1.5;min-height:80px;resize:vertical}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-family:DM Sans,sans-serif;font-family:var(--sans);font-size:13px;font-weight:600;gap:6px;padding:9px 18px;transition:all .15s;white-space:nowrap}.btn-primary{background:#1d6ae5;background:var(--accent);color:#fff}.btn-primary:hover{background:#1554c0;background:var(--accent-dark);box-shadow:0 3px 10px #1d6ae54d}.btn-secondary{background:#fff;border:1.5px solid #cbd5e1;border:1.5px solid var(--border2);color:#1e293b;color:var(--text)}.btn-secondary:hover{background:#e8f0fe;background:var(--accent-light);border-color:#1d6ae5;border-color:var(--accent);color:#1d6ae5;color:var(--accent)}.btn-success{background:#0f9d6e;background:var(--accent3);color:#fff}.btn-success:hover{opacity:.9}.btn-warn{background:#d97706;background:var(--warn);color:#fff}.btn-warn:hover{opacity:.9}.btn-danger{background:#dc2626;background:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}.btn-sm{border-radius:6px;font-size:11px;padding:5px 11px}.btn-full{justify-content:center;width:100%}.btn-ghost{background:#0000;border:1.5px solid #e2e8f0;border:1.5px solid var(--border);color:#475569;color:var(--text2)}.btn-ghost:hover{background:#e8f0fe;background:var(--accent-light);border-color:#1d6ae5;border-color:var(--accent);color:#1d6ae5;color:var(--accent)}.btn:disabled{cursor:not-allowed;opacity:.4}.app{display:flex;min-height:100vh}.sidebar{background:#1e3a5f;bottom:0;box-shadow:2px 0 12px #0000002e;display:flex;flex-direction:column;left:0;min-width:230px;position:fixed;top:0;width:230px;z-index:10}.sidebar-logo{border-bottom:1px solid #ffffff14;padding:20px 18px}.sidebar-logo .atom-sm{animation:spin 8s linear infinite;display:inline-block;font-size:18px}.sidebar-logo h2{color:#fff;display:inline-block;font-family:Space Mono,monospace;font-family:var(--mono);font-size:12px;letter-spacing:2.5px;margin-left:8px;vertical-align:middle}.sidebar-user{background:#0000002e;border-bottom:1px solid #ffffff14;padding:12px 16px}.sidebar-user .name{color:#fff;font-size:13px;font-weight:700}.sidebar-user .role-label{color:#94a3b8;font-size:11px;margin-top:2px}.role-badge{border-radius:4px;display:inline-block;font-size:10px;font-weight:700;letter-spacing:.8px;margin-top:5px;padding:2px 8px}.rb-admin{background:#a78bfa33;border:1px solid #a78bfa4d;color:#c4b5fd}.rb-manager{background:#60a5fa33;border:1px solid #60a5fa4d;color:#93c5fd}.rb-sales{background:#34d39933;border:1px solid #34d3994d;color:#6ee7b7}.rb-viewer{background:#94a3b833;border:1px solid #94a3b84d;color:#94a3b8}.nav-section{padding:6px 0}.nav-section-label{color:#ffffff4d;font-size:9px;font-weight:700;letter-spacing:2px;padding:8px 16px 4px;text-transform:uppercase}.nav-item{align-items:center;border-left:3px solid #0000;color:#94a3b8;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:10px;padding:10px 16px;transition:all .15s}.nav-item:hover{background:#ffffff12;color:#e2e8f0}.nav-item.active{background:#1d6ae540;border-left-color:#60a5fa;color:#fff;font-weight:700}.nav-item .icon{flex-shrink:0;font-size:15px;text-align:center;width:18px}.sidebar-bottom{border-top:1px solid #ffffff14;margin-top:auto;padding:12px}.sidebar-bottom .btn-ghost{border-color:#ffffff1f;color:#ffffff8c;justify-content:center;width:100%}.sidebar-bottom .btn-ghost:hover{background:#ffffff1a;border-color:#ffffff59;color:#fff}.main{display:flex;flex:1 1;flex-direction:column;margin-left:230px;min-height:100vh}.topbar{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);box-shadow:0 1px 3px #00000012;box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;padding:14px 28px;position:sticky;top:0;z-index:5}.topbar h1{color:#1e293b;color:var(--text);font-size:17px;font-weight:700;line-height:1.2;margin:0}.topbar .breadcrumb{color:#94a3b8;color:var(--text3);font-size:11px;letter-spacing:.2px;margin-top:3px}.page{flex:1 1;padding:24px 28px}.kpi-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.kpi-card{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 3px #00000012;box-shadow:var(--shadow-sm);padding:20px 22px;transition:box-shadow .2s}.kpi-card:hover{box-shadow:0 4px 12px #00000014;box-shadow:var(--shadow)}.kpi-card .label{color:#94a3b8;color:var(--text3);font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.kpi-card .value{font-family:Space Mono,monospace;font-family:var(--mono);font-size:22px;font-weight:700;line-height:1.2;margin-top:8px}.kpi-card .sub{color:#94a3b8;color:var(--text3);font-size:11px;margin-top:5px}.kpi-card.blue{border-top:3px solid #1d6ae5;border-top:3px solid var(--accent)}.kpi-card.blue .value{color:#1d6ae5;color:var(--accent)}.kpi-card.purple{border-top:3px solid #7c3aed;border-top:3px solid var(--purple)}.kpi-card.purple .value{color:#7c3aed;color:var(--purple)}.kpi-card.green{border-top:3px solid #0f9d6e;border-top:3px solid var(--accent3)}.kpi-card.green .value{color:#0f9d6e;color:var(--accent3)}.kpi-card.warn{border-top:3px solid #d97706;border-top:3px solid var(--warn)}.kpi-card.warn .value{color:#d97706;color:var(--warn)}.table-wrap{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 3px #00000012;box-shadow:var(--shadow-sm);overflow:hidden}.table-header{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:14px 20px}.table-header h3{color:#1e293b;color:var(--text);font-size:13px;font-weight:700}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}th{background:#f8fafc;background:var(--surface2);color:#94a3b8;color:var(--text3);font-size:10px;font-weight:700;letter-spacing:.6px;padding:9px 14px;text-align:left;text-transform:uppercase;white-space:nowrap}td,th{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border)}td{color:#1e293b;color:var(--text);font-size:13px;padding:10px 14px;vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:#f5f8ff;cursor:pointer}.total-row{background:#f8fafc!important;background:var(--surface2)!important}.total-row td{font-family:Space Mono,monospace;font-family:var(--mono);font-size:12px;font-weight:700}.badge{align-items:center;border-radius:20px;display:inline-flex;font-size:10px;font-weight:700;letter-spacing:.3px;padding:3px 10px;white-space:nowrap}.badge-draft{background:#f1f5f9;border:1px solid #e2e8f0;border:1px solid var(--border);color:#64748b}.badge-pending{background:#fef3c7;background:var(--warn-light);border:1px solid #fde68a;color:#d97706;color:var(--warn)}.badge-approved{background:#e6f7f2;background:var(--accent3-light);border:1px solid #6ee7b7;color:#0f9d6e;color:var(--accent3)}.badge-rejected{background:#fee2e2;background:var(--danger-light);border:1px solid #fca5a5;color:#dc2626;color:var(--danger)}.badge-won{background:#ede9fe;background:var(--purple-light);border:1px solid #c4b5fd;color:#7c3aed;color:var(--purple)}.badge-lost{background:#f8fafc;border:1px solid #e2e8f0;border:1px solid var(--border);color:#94a3b8}.badge-cat{border-radius:5px;display:inline-block;font-size:10px;font-weight:700;letter-spacing:.2px;padding:2px 8px}.cat-project{background:#dbeafe;color:#1d4ed8}.cat-equipment{background:#ede9fe;background:var(--purple-light);color:#7c3aed;color:var(--purple)}.cat-radiopharmaceutical{background:#e6f7f2;background:var(--accent3-light);color:#065f46}.tag{background:#f8fafc;background:var(--surface2);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:5px;color:#475569;color:var(--text2);font-size:11px;font-weight:500;padding:2px 8px}.prob,.tag{display:inline-block}.prob{background:#e2e8f0;background:var(--border);height:5px;margin-right:5px;overflow:hidden;vertical-align:middle;width:40px}.prob,.prob-fill{border-radius:3px}.prob-fill{height:100%}.filters{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.search-input{background:#fff;border:1.5px solid #e2e8f0;border:1.5px solid var(--border);border-radius:8px;color:#1e293b;color:var(--text);font-family:DM Sans,sans-serif;font-family:var(--sans);font-size:13px;outline:none;padding:8px 14px;transition:all .2s;width:240px}.search-input:focus{border-color:#1d6ae5;border-color:var(--accent);box-shadow:0 0 0 3px #1d6ae51a}.filter-select{background:#fff;border:1.5px solid #e2e8f0;border:1.5px solid var(--border);border-radius:8px;color:#1e293b;color:var(--text);cursor:pointer;font-family:DM Sans,sans-serif;font-family:var(--sans);font-size:12px;outline:none;padding:7px 12px}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a8c;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.modal{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 30px #0000001f;box-shadow:var(--shadow-lg);max-height:90vh;max-width:820px;overflow-y:auto;padding:28px;width:92%}.modal-sm{max-width:500px}.modal h2{color:#1e293b;color:var(--text);font-size:17px;font-weight:700;margin-bottom:4px}.modal .sub{color:#94a3b8;color:var(--text3);font-size:12px;margin-bottom:22px}.modal-footer{border-top:1px solid #e2e8f0;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;margin-top:24px;padding-top:16px}.grid2{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr 1fr}.detail-header{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 3px #00000012;box-shadow:var(--shadow-sm);margin-bottom:20px;padding:24px}.detail-header .ref{color:#1d6ae5;color:var(--accent);font-family:Space Mono,monospace;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:2px;margin-bottom:6px}.detail-header h2{color:#1e293b;color:var(--text);font-size:20px;font-weight:700;margin-bottom:12px}.detail-meta{display:flex;flex-wrap:wrap;gap:24px}.detail-meta-item{color:#94a3b8;color:var(--text3);font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.detail-meta-item span{color:#1e293b;color:var(--text);display:block;font-size:13px;font-weight:600;letter-spacing:0;margin-top:3px;text-transform:none}.detail-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:2fr 1fr}.section-card{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 3px #00000012;box-shadow:var(--shadow-sm);margin-bottom:16px;padding:20px}.section-card h3{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);color:#94a3b8;color:var(--text3);font-size:10px;font-weight:700;letter-spacing:1.5px;margin-bottom:14px;padding-bottom:10px;text-transform:uppercase}.line-items table{width:100%}.line-items th{font-size:10px;padding:7px 10px}.line-items td{font-size:12px;padding:8px 10px}.approval-step{align-items:flex-start;display:flex;gap:14px;margin-bottom:16px}.approval-step .step-icon{align-items:center;border-radius:50%;display:flex;flex-shrink:0;font-size:13px;font-weight:700;height:32px;justify-content:center;width:32px}.step-done{background:#e6f7f2;background:var(--accent3-light);border:2px solid #0f9d6e;border:2px solid var(--accent3);color:#0f9d6e;color:var(--accent3)}.step-pending{animation:pulse 2s infinite;background:#fef3c7;background:var(--warn-light);border:2px solid #d97706;border:2px solid var(--warn);color:#d97706;color:var(--warn)}.step-wait{background:#f8fafc;background:var(--surface2);border:2px solid #cbd5e1;border:2px solid var(--border2);color:#94a3b8;color:var(--text3)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.step-info .step-title{color:#1e293b;color:var(--text);font-size:13px;font-weight:600}.step-info .step-sub{color:#94a3b8;color:var(--text3);font-size:11px;line-height:1.5;margin-top:2px}.proforma{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);color:#111;padding:36px}.proforma-header{align-items:flex-start;border-bottom:3px solid #1d6ae5;border-bottom:3px solid var(--accent);display:flex;justify-content:space-between;margin-bottom:28px;padding-bottom:20px}.proforma-logo{color:#1d6ae5;color:var(--accent);font-family:Space Mono,monospace;font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:3px}.proforma table{border-collapse:collapse;margin:16px 0;width:100%}.proforma th{background:#1e3a5f;color:#fff;font-size:10px;font-weight:700;letter-spacing:.5px;padding:9px 12px;text-align:left;text-transform:uppercase}.proforma td{border-bottom:1px solid #e5e7eb;font-size:12px;padding:9px 12px}.proforma .total-section{background:#f8fafc;background:var(--surface2);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:8px;margin-top:16px;padding:16px}.proforma .grand-total{color:#1d6ae5;color:var(--accent);font-family:Space Mono,monospace;font-family:var(--mono);font-size:18px;font-weight:700}.proforma-footer{border-top:1px solid #e5e7eb;color:#6b7280;font-size:11px;margin-top:28px;padding-top:16px}.user-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:10px;box-shadow:0 1px 3px #00000012;box-shadow:var(--shadow-sm);display:flex;gap:14px;margin-bottom:10px;padding:16px}.empty-state{color:#94a3b8;color:var(--text3);padding:60px 20px;text-align:center}.empty-state .icon{font-size:44px;margin-bottom:12px}.alert,.empty-state p{font-size:13px}.alert{border-radius:8px;margin-bottom:16px;padding:12px 16px}.alert-error{background:#fee2e2;background:var(--danger-light);border:1px solid #fca5a5;color:#dc2626;color:var(--danger)}.alert-success{background:#e6f7f2;background:var(--accent3-light);border:1px solid #6ee7b7;color:#0f9d6e;color:var(--accent3)}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}@keyframes spin-css{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@media (max-width:768px){.sidebar{transform:translateX(-100%)}.main{margin-left:0}.kpi-grid{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}.page{padding:16px}.mobile-menu-btn{align-items:center;background:#1e3a5f;border:none;border-radius:10px;box-shadow:0 2px 8px #0000004d;color:#fff;cursor:pointer;display:flex;font-size:18px;height:40px;justify-content:center;left:12px;position:fixed;top:12px;width:40px;z-index:200}.sidebar-open .sidebar{transform:translateX(0)!important;z-index:150}.sidebar-overlay{background:#00000080;display:none;inset:0;position:fixed;z-index:140}.sidebar-open .sidebar-overlay{display:block}.main{margin-left:0!important}.page{padding:12px!important}.page-header{margin-left:0!important;padding:10px 12px!important}.page-title{font-size:15px!important;padding-left:52px}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{min-width:480px}.grid2{grid-template-columns:1fr!important}.kpi-grid{grid-template-columns:1fr 1fr!important}.detail-grid{grid-template-columns:1fr!important}.section-card{padding:12px!important}.modal{border-radius:12px!important;max-height:95vh!important;max-width:96%!important;padding:16px!important;width:96%!important}.proposal-header-actions{flex-wrap:wrap;gap:6px}.proposal-header-actions .btn{font-size:11px;padding:5px 10px}.tab-bar{-webkit-overflow-scrolling:touch;flex-wrap:nowrap!important;overflow-x:auto}.tab-bar button{flex-shrink:0;white-space:nowrap}.approval-chain{flex-direction:column}.line-items table{font-size:11px}.line-items td,.line-items th{padding:5px 4px!important}input,select,textarea{font-size:16px!important}.sidebar .nav-label{display:block}.congress-calendar{overflow-x:auto}.col-hide-mobile{display:none!important}.btn{touch-action:manipulation}.kpi-card .value{font-size:18px!important}.kpi-card .label{font-size:10px!important}}.mobile-menu-btn{display:none}@media (max-width:768px){.mobile-menu-btn{display:flex}}
/*# sourceMappingURL=main.9c6831f2.css.map*/