:root{--dsge-blue:#1a365d;--dsge-blue-light:#2c5282;--dsge-blue-dark:#0f203a;--dsge-gold:#d69e2e;--dsge-gold-light:#f6e05e;--dsge-gray:#718096;--dsge-gray-light:#e2e8f0;--dsge-gray-dark:#2d3748;--dsge-white:#fff;--dsge-black:#1a202c;--bg-primary:#fff;--bg-secondary:#f8f9fa;--text-primary:#2d3748;--text-secondary:#718096;--border-color:#e9ecef;--text:#2d3748;--text-h:#1a365d;--bg:#fff;--border:#e9ecef;--accent:#1a365d;--accent-bg:#1a365d1a;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/145% var(--sans);letter-spacing:.18px;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=dark],.dark{--dsge-blue:#3182ce;--dsge-blue-light:#4299e1;--dsge-blue-dark:#2b6cb0;--dsge-gray:#a0aec0;--dsge-gray-light:#2d3748;--dsge-gray-dark:#1a202c;--dsge-white:#1a202c;--dsge-black:#fff;--bg-primary:#1a202c;--bg-secondary:#2d3748;--text-primary:#f7fafc;--text-secondary:#e2e8f0;--border-color:#4a5568;--text:#e2e8f0;--text-h:#f7fafc;--bg:#1a202c;--border:#4a5568;--accent:#4299e1;--accent-bg:#4299e126;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}*{box-sizing:border-box}#root{flex-direction:column;width:100%;max-width:100%;min-height:100svh;margin:0;display:flex;overflow-x:hidden}body{background-color:var(--bg);margin:0}h1,h2{font-family:var(--sans);color:var(--text-h);font-weight:600}p{margin:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--dsge-gray);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--dsge-gray-dark)}:root{--sidebar-width:220px;--topbar-height:48px;--transition-speed:.22s}.layout{background:var(--bg-primary,#f7fafc);min-height:100vh;color:var(--text-primary,#1a202c)}.sidebar{width:var(--sidebar-width);z-index:200;min-height:100vh;transition:transform var(--transition-speed) ease;background:linear-gradient(#667eea 0%,#764ba2 100%);flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:hidden}.sidebar-brand{border-bottom:1px solid #ffffff1f;align-items:center;gap:10px;padding:20px 18px 16px;display:flex}.sidebar-logo{object-fit:contain;flex-shrink:0;width:30px;height:30px}.sidebar-brand-text{flex-direction:column;gap:2px;display:flex;overflow:hidden}.sidebar-company{color:#fff;-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;font-size:.75rem;font-weight:700;line-height:1.2;display:-webkit-box;overflow:hidden}.sidebar-portal-label{color:#ffffffa6;text-transform:uppercase;letter-spacing:.5px;font-size:.65rem;font-weight:500}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:10px 10px 0;display:flex;overflow:hidden auto}.sidebar-link{color:#ffffffd1;transition:background var(--transition-speed) ease, color var(--transition-speed) ease;white-space:nowrap;border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.sidebar-link:hover{color:#fff;background:#ffffff24}.sidebar-link.active{color:#fff;background:#ffffff38;font-weight:600;box-shadow:0 1px 6px #0000001f}.sidebar-icon{text-align:center;flex-shrink:0;width:20px;font-size:1rem}.sidebar-label{text-overflow:ellipsis;overflow:hidden}.sidebar-footer{border-top:1px solid #ffffff1f;padding:12px 10px}.sidebar-user{cursor:pointer;transition:background var(--transition-speed) ease;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex;position:relative}.sidebar-user:hover{background:#ffffff1f}.user-avatar{color:#fff;background:#fff3;border:2px solid #ffffff4d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.7rem;font-weight:700;display:flex}.sidebar-user-info{flex-direction:column;flex:1;display:flex;overflow:hidden}.sidebar-user-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:600;overflow:hidden}.sidebar-user-email{color:#fff9;white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.user-dropdown{z-index:300;background:#fff;border-radius:10px;animation:.18s dropUp;position:absolute;bottom:calc(100% + 8px);left:0;right:0;overflow:hidden;box-shadow:0 8px 30px #0000002e}@keyframes dropUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{border-bottom:1px solid #e2e8f0;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.dropdown-name{color:#1a202c;font-size:.875rem;font-weight:600}.dropdown-email{color:#718096;font-size:.72rem}.dropdown-item{color:#4a5568;width:100%;transition:background var(--transition-speed) ease;align-items:center;gap:8px;padding:11px 14px;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.dropdown-item:hover{color:#1a202c;background:#f7fafc}.logout-option{cursor:pointer;color:#718096;text-align:left;width:100%;transition:background var(--transition-speed) ease, color var(--transition-speed) ease;background:0 0;border:none;align-items:center;gap:8px;padding:11px 14px;font-size:.875rem;font-weight:500;display:flex}.logout-option:hover{color:#c53030;background:#fff5f5}.main-wrapper{margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left var(--transition-speed) ease;flex-direction:column;display:flex;overflow-x:hidden}.topbar{height:var(--topbar-height);background:var(--bg-primary,#fff);border-bottom:1px solid var(--border-color,#e9ecef);z-index:100;box-sizing:border-box;align-items:center;gap:14px;width:100%;padding:0 20px;display:none;position:sticky;top:0}.hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:4px;padding:4px;display:flex}.hamburger span{background:var(--text-primary,#1a202c);border-radius:2px;width:20px;height:2px;display:block}.topbar-title{color:var(--text-primary,#1a202c);font-size:1rem;font-weight:600}.main-content{flex:1;width:100%;max-width:100%;overflow-x:hidden}.sidebar-overlay{z-index:190;background:#0006;display:none;position:fixed;inset:0}@media (width<=900px){.sidebar{transform:translate(-100%)}.sidebar.sidebar-mobile-open{transform:translate(0)}.sidebar-overlay{display:block}.main-wrapper{margin-left:0}.topbar{display:flex}}.layout.dark .topbar{background:var(--bg-primary);border-bottom-color:var(--border-color)}.layout.dark .hamburger span{background:var(--text-primary)}.dashboard{max-width:1100px;padding:32px}.dashboard-header{margin-bottom:28px}.welcome-section h1{color:var(--text-h);margin:0 0 6px;font-size:26px;font-weight:700}.welcome-subtitle{color:var(--text-secondary,#718096);font-size:14px}.dashboard-loading{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:60px;display:flex}.spinner{border:3px solid var(--border-color,#e9ecef);border-top:3px solid var(--dsge-blue,#1a365d);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.summary-cards{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px;display:grid}.summary-card{background:var(--bg-primary,#fff);border:1px solid var(--border-color,#e9ecef);border-radius:12px;flex-direction:column;gap:10px;padding:20px;transition:box-shadow .2s;display:flex;box-shadow:0 1px 4px #0000000f}.summary-card:hover{box-shadow:0 4px 12px #0000001a}.card-icon{font-size:24px}.card-body{flex:1}.card-label{color:var(--text-secondary,#718096);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px;font-weight:600}.card-value{color:var(--text-h);font-size:22px;font-weight:700}.summary-card.outstanding .card-value{color:#d69e2e}.summary-card.paid .card-value{color:#38a169}.summary-card.quotes .card-value{color:#3182ce}.card-link{color:var(--dsge-blue,#1a365d);font-size:12px;font-weight:600;text-decoration:none}.card-link:hover{text-decoration:underline}.dashboard-grid{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px;display:grid}.dashboard-panel{background:var(--bg-primary,#fff);border:1px solid var(--border-color,#e9ecef);border-radius:12px;padding:20px;box-shadow:0 1px 4px #0000000f}.panel-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.panel-header h2{color:var(--text-h);margin:0;font-size:15px;font-weight:700}.panel-link{color:var(--dsge-blue,#1a365d);font-size:12px;font-weight:600;text-decoration:none}.panel-link:hover{text-decoration:underline}.empty-state{color:var(--text-secondary,#718096);text-align:center;padding:20px 0;font-size:13px}.mini-table{border-collapse:collapse;width:100%;font-size:13px}.mini-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary,#718096);border-bottom:1px solid var(--border-color,#e9ecef);padding:6px 8px;font-size:11px;font-weight:600}.mini-table td{border-bottom:1px solid var(--border-color,#e9ecef);color:var(--text-primary,#2d3748);vertical-align:middle;padding:9px 8px}.mini-table tr:last-child td{border-bottom:none}.mono{font-family:ui-monospace,Consolas,monospace;font-size:12px}.status-badge{text-transform:capitalize;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.status-paid{color:#276749;background:#c6f6d5}.status-sent{color:#2b6cb0;background:#bee3f8}.status-overdue{color:#9b2c2c;background:#fed7d7}.status-draft{color:#4a5568;background:#e2e8f0}.status-cancelled{color:#744210;background:#fefcbf}.support-card{background:var(--bg-primary,#fff);border:1px solid var(--border-color,#e9ecef);border-radius:12px;align-items:center;gap:14px;padding:16px 20px;display:flex;box-shadow:0 1px 4px #0000000f}.support-icon{font-size:24px}.support-title{color:var(--text-h);margin-bottom:4px;font-size:14px;font-weight:600}.support-body{color:var(--text-secondary,#718096);font-size:13px}.support-link{color:var(--dsge-blue,#1a365d);font-weight:600;text-decoration:none}.support-link:hover{text-decoration:underline}@media (width<=900px){.dashboard{padding:20px 16px}.summary-cards{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}}@media (width<=560px){.summary-cards{grid-template-columns:1fr}}.app{background-color:var(--bg);min-height:100vh;margin:0;padding:0}
