:root{--navy: #123047;--navy-light: #1c435f;--teal: #2fd9b5;--teal-text: #0c8a6c;--bg: #f5f7f9;--card: #ffffff;--text: #1b2733;--muted: #64748b;--border: #e2e8f0;--danger: #d9483f;--warn: #b8860b}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:300px;flex-shrink:0;background:var(--navy);color:#fff;display:flex;flex-direction:column;padding:20px 0;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .brand{display:flex;align-items:center;gap:10px;padding:0 20px 20px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:12px}.hamburger-btn,.sidebar-close{display:none;align-items:center;justify-content:center;background:transparent;border:none;color:inherit;cursor:pointer;padding:4px}.sidebar-close{margin-left:auto}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#09141f73;z-index:190}.sidebar .brand .mark{width:30px;height:30px;display:block}.sidebar .brand .wordmark{height:18px;width:auto;display:block}.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1}.sidebar nav a{padding:10px 20px;text-decoration:none;color:#cbd8e3;font-size:14px;border-left:3px solid transparent}.sidebar nav>a{background:#ffffff0d}.sidebar nav a:hover{background:#2fd9b524;color:#fff}.sidebar nav a.active{background:var(--teal);border-left-color:var(--teal);color:var(--navy);font-weight:700}.nav-group-toggle{width:100%;background:none;border:none;color:#8fa6ba;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:16px 20px 6px;display:flex;align-items:center;gap:6px;cursor:pointer;text-align:left}.nav-group-toggle:hover{color:#fff}.nav-group .chevron{display:inline-block;font-size:13px;transition:transform .15s ease;transform:rotate(90deg)}.nav-group .chevron.collapsed{transform:rotate(0)}.nav-group-items{display:flex;flex-direction:column}.sidebar-footer{padding:14px 20px 16px;border-top:1px solid rgba(255,255,255,.12);margin-top:12px}.sidebar-user{display:block;font-size:12px;color:#cbd8e3;line-height:1.3;margin-bottom:10px;overflow-wrap:break-word}.sidebar-copyright{font-size:10px;color:#6f8aa1;line-height:1.4}.topbar-shell{position:sticky;top:0;z-index:60;height:76px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--border)}.account-menu{display:flex;align-items:center;gap:14px}.topbar-company-name{font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--navy);font-size:15px;background:#2fd9b51f;border-radius:999px;padding:8px 18px}.tenant-logo{max-height:60px;max-width:260px;width:auto;height:auto;object-fit:contain;padding-left:14px;border-left:1px solid var(--border)}.settings-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--muted);text-decoration:none;padding:6px 10px;border-radius:6px}.settings-link:hover{background:#2fd9b529;color:var(--navy)}.logout-button{background:#fff;color:var(--navy);border:1px solid var(--border);border-radius:6px;padding:6px 14px;font-size:13px;font-weight:700;cursor:pointer}.logout-button:hover{background:#2fd9b529;border-color:var(--teal)}.logout-button:active{background:var(--teal);color:var(--navy);border-color:var(--teal)}.main-area{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{background:#fff;border-bottom:1px solid var(--border);padding:14px 28px;display:flex;align-items:center;justify-content:space-between}.topbar h2{margin:0;font-size:18px;color:var(--navy)}.topbar .who{font-size:13px;color:var(--muted);text-align:right}.content{padding:24px 28px 24px 48px;max-width:1100px;width:100%}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:20px 22px;margin-bottom:18px}.card h3{margin:0 0 14px;font-size:15px;color:var(--navy)}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:1fr 1fr}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.content.dashboard-content{max-width:1400px}.dashboard-layout{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start}@media (max-width: 960px){.dashboard-layout{grid-template-columns:1fr}}.range-toggle{display:flex;gap:2px;background:var(--bg);padding:3px;border-radius:8px;flex-wrap:wrap}.range-toggle button{background:transparent;color:var(--muted);font-size:12px;font-weight:600;padding:6px 10px;border-radius:6px;white-space:nowrap}.range-toggle button:hover:not(.active){background:var(--border);color:var(--text)}.range-toggle button.active{background:var(--navy);color:#fff}.stat{position:relative;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px 18px 16px 20px;overflow:hidden}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent, var(--teal))}.stat--cash{--accent: var(--teal)}.stat--ar{--accent: #5aa9e6}.stat--ap{--accent: var(--warn)}.stat--pos{--accent: var(--teal)}.stat--neg{--accent: var(--danger)}.stat-icon{color:var(--accent, var(--teal));margin-bottom:8px}.stat .label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.stat .value{font-size:24px;font-weight:700;color:var(--navy);margin-top:6px}label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}input,select{width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:6px;font-family:inherit;font-size:14px;margin-bottom:14px;background:#fff;color:var(--text)}input[type=date]::-webkit-datetime-edit,input[type=date]::-webkit-datetime-edit-fields-wrapper,input[type=date]::-webkit-datetime-edit-text,input[type=date]::-webkit-datetime-edit-month-field,input[type=date]::-webkit-datetime-edit-day-field,input[type=date]::-webkit-datetime-edit-year-field{font-family:inherit}input:focus,select:focus{outline:2px solid var(--teal);outline-offset:-1px}button{background:var(--navy);color:#fff;border:none;border-radius:6px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer}button:hover{background:var(--navy-light)}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{background:#fff;color:var(--navy);border:1px solid var(--border)}button.secondary:hover{background:var(--bg)}button.small{padding:5px 10px;font-size:12px}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-bottom:1px solid var(--border);padding:8px 10px}td{padding:10px;border-bottom:1px solid var(--border)}tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase}.badge.draft{background:#eef1f4;color:var(--muted)}.badge.sent,.badge.awaiting_payment,.badge.posted{background:#fff3d6;color:var(--warn)}.badge.paid{background:#2fd9b529;color:#0d8a71}.badge.overdue,.badge.void{background:#d9483f1f;color:var(--danger)}.error-box{background:#d9483f14;border:1px solid rgba(217,72,63,.3);color:var(--danger);padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:14px}.success-box{background:#2fd9b51f;border:1px solid rgba(13,138,113,.35);color:#0d8a71;padding:10px 12px;border-radius:6px;font-size:13px;font-weight:700;margin-bottom:14px}.muted{color:var(--muted)}.auth-screen{min-height:100vh;display:flex;background:var(--bg)}@keyframes authBgDrift{0%{background-position:0% 0%}to{background-position:100% 100%}}@keyframes authGlowDrift{0%,to{transform:translate(0) scale(1)}50%{transform:translate(80px,-60px) scale(1.15)}}.auth-brand-panel{position:relative;width:70%;max-width:1000px;min-width:480px;flex-shrink:0;overflow:hidden;color:#fff;background:linear-gradient(150deg,#0a1c2b,#2a5578,#0a1c2b);background-size:300% 300%;animation:authBgDrift 9s ease-in-out infinite alternate;display:flex;flex-direction:column;padding:64px 64px 0}.auth-brand-dots{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:28px 28px;opacity:.6;pointer-events:none}.auth-brand-glow{position:absolute;left:-140px;bottom:-140px;width:420px;height:420px;border-radius:999px;background:radial-gradient(circle,#2fd9b52e,#2fd9b500 70%);animation:authGlowDrift 7s ease-in-out infinite;pointer-events:none}.auth-brand-content{position:relative;z-index:1;display:flex;flex-direction:column;height:100%}.auth-brand-logo{display:flex;align-items:center;gap:10px}.auth-brand-logo .mark{width:34px;height:34px;border-radius:8px;display:block}.auth-brand-logo .wordmark{height:20px;width:auto;display:block}.auth-brand-headline{margin-top:72px;max-width:480px}.auth-brand-headline h1{margin:0;font-size:38px;line-height:1.25;font-weight:700;color:#fff;letter-spacing:-.5px}.auth-brand-headline p{margin:18px 0 0;font-size:16px;line-height:1.6;color:#ffffffad;max-width:420px}.auth-brand-features{display:flex;flex-direction:column;gap:20px;margin-top:44px}.auth-brand-feature{display:flex;align-items:center;gap:14px}.auth-brand-feature-icon{width:40px;height:40px;flex-shrink:0;border-radius:10px;background:#2fd9b524;display:flex;align-items:center;justify-content:center}.auth-brand-feature span{font-size:15px;font-weight:600;color:#ffffffeb}.auth-brand-illustration{position:relative;flex:1;margin-top:36px}.auth-brand-illustration .back-card{position:absolute;right:18px;top:34px;width:280px;height:168px;border-radius:14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);transform:rotate(4deg)}.auth-brand-illustration .front-card{position:absolute;right:46px;top:6px;width:300px;border-radius:14px;background:#fff;box-shadow:0 20px 40px #00000047;transform:rotate(-3deg);padding:20px}.auth-brand-illustration .front-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.auth-brand-illustration .dot-row{display:flex;align-items:center;gap:8px}.auth-brand-illustration .dot{width:8px;height:8px;border-radius:999px;background:var(--teal)}.auth-brand-illustration .header-line{width:96px;height:8px;border-radius:999px;background:var(--border)}.auth-brand-illustration .paid-badge{padding:3px 9px;border-radius:999px;background:#2fd9b529;color:var(--teal-text);font-size:10px;font-weight:700;letter-spacing:.4px}.auth-brand-illustration .front-card-lines{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.auth-brand-illustration .front-card-lines div{height:7px;border-radius:999px;background:#f1f5f9}.auth-brand-illustration .front-card-bars{display:flex;align-items:flex-end;gap:6px;height:46px}.auth-brand-illustration .front-card-bars div{width:14px;border-radius:4px 4px 0 0}.auth-form-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 24px}@media (max-width: 860px){.auth-brand-panel{display:none}}.auth-card{background:#fff;border-radius:16px;padding:48px;width:100%;max-width:420px;box-shadow:0 24px 48px #1230471f,0 4px 14px #1230470f}.auth-card .brand{display:flex;align-items:center;gap:10px;margin-bottom:24px}.auth-card .brand .mark{width:34px;height:34px;border-radius:8px;background:var(--navy);color:var(--teal);display:flex;align-items:center;justify-content:center;font-weight:700}.auth-card .brand h1{font-size:18px;margin:0;color:var(--navy)}.auth-tabs{display:flex;gap:4px;background:var(--bg);border-radius:8px;padding:3px;margin-bottom:20px}.auth-tabs button{flex:1;background:transparent;color:var(--muted);font-weight:600;white-space:nowrap;padding:9px 12px}.auth-tabs button:hover:not(.active){background:#2fd9b529;color:var(--navy)}.auth-tabs button.active{background:var(--teal);color:var(--navy);box-shadow:0 1px 3px #00000014}.wizard-progress{display:flex;align-items:center;gap:6px;margin-bottom:20px}.wizard-dot{width:20px;height:4px;border-radius:999px;background:var(--border)}.wizard-dot.done{background:var(--teal)}.wizard-progress-label{margin-left:8px;font-size:12px;color:var(--muted);font-weight:600}.wizard-choice-group{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.wizard-choice{background:#fff;color:var(--text);border:1px solid var(--border);font-weight:500;padding:8px 14px;font-size:13px}.wizard-choice:hover{background:var(--bg)}.wizard-choice.selected{background:#2fd9b529;border-color:var(--teal);color:var(--teal-text);font-weight:700}.wizard-invite-row{display:flex;gap:8px;align-items:flex-end}.wizard-invite-email{flex:1;min-width:0}.wizard-invite-role{width:130px;flex-shrink:0}@media (max-width: 480px){.wizard-invite-row{flex-wrap:wrap}.wizard-invite-email{flex-basis:100%}.wizard-invite-role{flex:1;width:auto}}.wizard-invite-list{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-direction:column;gap:6px}.wizard-invite-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg);border-radius:6px;font-size:13px}.wizard-invite-list li span:first-child{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wizard-invite-remove{background:transparent;color:var(--muted);padding:0 4px;font-size:16px;line-height:1}.wizard-invite-remove:hover{background:transparent;color:var(--danger)}.wizard-done-badge{width:44px;height:44px;border-radius:999px;background:#2fd9b529;color:var(--teal-text);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700}.checklist{list-style:none;padding:0;margin:0}.checklist li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px}.checklist li:last-child{border-bottom:none}.checklist .dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--border);flex-shrink:0}.checklist li.done .dot{background:var(--teal);border-color:var(--teal)}.checklist li.done span{color:var(--muted);text-decoration:line-through}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#12304780;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:#fff;border-radius:10px;padding:24px;width:100%;max-width:440px;max-height:90vh;overflow-y:auto;font-weight:400}.modal h3{margin-top:0}.modal-pdf-preview{max-width:900px}.row-actions{display:flex;gap:6px}.empty-state{text-align:center;padding:40px 20px;color:var(--muted);font-size:14px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.page-header p{margin:0}.page-header button{flex-shrink:0;white-space:nowrap}.line-item-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px;align-items:start}@media (max-width: 860px){.sidebar{position:fixed;top:0;left:0;height:100vh;width:280px;max-width:85vw;transform:translate(-100%);transition:transform .25s ease;z-index:200;box-shadow:4px 0 24px #00000040}.sidebar.open{transform:translate(0)}.hamburger-btn,.sidebar-close{display:inline-flex}.topbar-shell{padding:0 16px;gap:10px}.topbar-company-name{padding:6px 12px;font-size:13px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-link .label,.tenant-logo{display:none}.account-menu{gap:8px}.content{padding:16px}}@media (max-width: 640px){.grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}.tour-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;pointer-events:none}.tour-spotlight{position:fixed;border-radius:10px;border:2px solid var(--teal);box-shadow:0 0 0 9999px #09141f8c,0 0 #2fd9b573;transition:top .2s ease,left .2s ease,width .2s ease,height .2s ease;pointer-events:none;animation:tourPulse 1.6s ease-in-out infinite}@keyframes tourPulse{0%,to{box-shadow:0 0 0 9999px #09141f8c,0 0 #2fd9b573}50%{box-shadow:0 0 0 9999px #09141f8c,0 0 0 6px #2fd9b500}}.tour-tooltip{position:fixed;background:#fff;border-radius:10px;padding:16px;box-shadow:0 12px 32px #12304738;pointer-events:auto;transition:top .2s ease,left .2s ease}.tour-step-count{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.tour-tooltip h4{margin:0 0 6px;font-size:15px;color:var(--navy)}.tour-tooltip p{margin:0 0 14px;font-size:13px;color:var(--muted);line-height:1.5}.tour-tooltip-actions{display:flex;align-items:center;justify-content:space-between}.tour-waiting{font-size:12px;font-weight:600;color:var(--teal-text)}
