:root{--c-blue:#1b5c38;--c-blue-600:#155030;--c-blue-50:#e8f5ee;--c-green:#4ade80;--c-green-dark:#16a34a;--c-green-soft:#dcfce7;--c-purple:#3d9a68;--c-purple-soft:#d4eee0;--c-ink:#0f172a;--c-ink-2:#1e293b;--c-text:#0f172a;--c-text-muted:#64748b;--c-text-faint:#94a3b8;--c-line:#e2e8f0;--c-line-soft:#eef2f7;--c-surface:#fff;--c-bg:#f8fafc;--c-bg-2:#f1f5f9;--c-warn:#f59e0b;--c-warn-soft:#fef3c7;--c-danger:#ef4444;--c-danger-soft:#fee2e2;--shadow-xs:0 1px 2px #0f172a0a;--shadow-sm:0 1px 2px #0f172a0a, 0 1px 3px #0f172a0f;--shadow-md:0 4px 12px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-lg:0 20px 40px -12px #0f172a1f, 0 8px 20px -8px #0f172a14;--shadow-pop:0 24px 60px -20px #1b5c3840;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-full:999px;--f-heading:"Sora", "Inter", system-ui, sans-serif;--f-body:"Inter", system-ui, sans-serif;--f-mono:"JetBrains Mono", ui-monospace, monospace;--bg:var(--c-bg);--bg-card:var(--c-surface);--text:var(--c-text);--text-muted:var(--c-text-muted);--border-light:var(--c-line-soft);--accent:var(--c-blue);--radius:var(--r-lg);--font-display:var(--f-heading);--font-body:var(--f-body)}*{box-sizing:border-box}html,body{font-family:var(--f-body);color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-size:14px;line-height:1.5}h1,h2,h3,h4,h5{font-family:var(--f-heading);letter-spacing:-.02em;color:var(--c-ink);margin:0;font-weight:600}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--c-blue);text-decoration:none}a:hover{text-decoration:underline}#root{min-height:100vh}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{background:var(--c-bg);grid-template-columns:248px 1fr;min-height:100vh;display:grid}.app-main{flex-direction:column;min-width:0;min-height:100vh;display:flex}.app-content{flex:1;padding:28px 36px 60px}.sidebar{border-right:1px solid var(--c-line);background:#fff;flex-direction:column;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{border-bottom:1px solid var(--c-line-soft);align-items:center;margin-bottom:16px;padding:8px 8px 20px;display:flex}.brand-mark{color:#fff;width:30px;height:30px;font-family:var(--f-heading);letter-spacing:-.04em;background:linear-gradient(135deg,#1b5c38 0%,#3d9a68 100%);border-radius:8px;flex-shrink:0;place-items:center;font-size:14px;font-weight:700;display:grid;position:relative;overflow:hidden}.brand-name{font-family:var(--f-heading);letter-spacing:-.02em;color:var(--c-ink);font-size:15px;font-weight:600}.brand-tier{color:var(--c-text-muted);letter-spacing:.06em;text-transform:uppercase;margin-top:-2px;font-size:10px}.workspace-pill{border-radius:var(--r-md);background:var(--c-bg);border:1px solid var(--c-line);cursor:pointer;align-items:center;gap:8px;margin-bottom:14px;padding:8px 10px;transition:background .15s;display:flex}.workspace-pill:hover{background:var(--c-bg-2)}.workspace-avatar{background:var(--c-purple);color:#fff;border-radius:6px;place-items:center;width:24px;height:24px;font-size:11px;font-weight:600;display:grid}.workspace-info{flex:1;min-width:0}.workspace-info .label{color:var(--c-text-faint);text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:500}.workspace-info .name{color:var(--c-ink);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.sidebar-group-title{text-transform:uppercase;letter-spacing:.08em;color:var(--c-text-faint);padding:0 10px 8px;font-size:10px;font-weight:600}.nav-item{border-radius:var(--r-md);color:var(--c-text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:flex}.nav-item:hover{background:var(--c-bg);color:var(--c-ink)}.nav-item.active{background:var(--c-blue-50);color:var(--c-blue)}.nav-item.active svg{color:var(--c-blue)}.nav-item svg{width:16px;height:16px;color:var(--c-text-muted);flex-shrink:0}.nav-item .nav-badge{background:var(--c-blue);color:#fff;border-radius:var(--r-full);margin-left:auto;padding:1px 6px;font-size:10px;font-weight:600}.sidebar-footer{border-top:1px solid var(--c-line-soft);margin-top:auto;padding-top:14px}.user-pill{border-radius:var(--r-md);cursor:pointer;align-items:center;gap:10px;padding:8px 10px;transition:background .15s;display:flex}.user-pill:hover{background:var(--c-bg)}.user-pill .name{color:var(--c-ink);font-size:13px;font-weight:500;line-height:1.2}.user-pill .email{color:var(--c-text-muted);font-size:11px;line-height:1.2}.avatar{color:#fff;background:linear-gradient(135deg,#3d9a68,#1b5c38);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:600;display:grid}.topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--c-line);z-index:30;background:#fffc;align-items:center;gap:16px;padding:14px 36px;display:flex;position:sticky;top:0}.crumbs{color:var(--c-text-muted);align-items:center;gap:8px;font-size:13px;display:flex}.crumbs .current{color:var(--c-ink);font-weight:500}.crumbs .sep{opacity:.4}.search{flex:1;max-width:420px;margin-left:auto;position:relative}.search input{border:1px solid var(--c-line);background:var(--c-bg);border-radius:var(--r-md);outline:none;width:100%;padding:8px 12px 8px 34px;font-size:13px;transition:border-color .15s,background .15s}.search input:focus{border-color:var(--c-blue);background:#fff;box-shadow:0 0 0 3px #1e3a8a14}.search svg{width:14px;height:14px;color:var(--c-text-muted);position:absolute;top:50%;left:11px;transform:translateY(-50%)}.search .kbd{border:1px solid var(--c-line);color:var(--c-text-muted);font-size:10px;font-family:var(--f-mono);background:#fff;border-radius:4px;padding:1px 5px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.topbar-actions{align-items:center;gap:6px;display:flex}.icon-btn{border-radius:var(--r-md);width:34px;height:34px;color:var(--c-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;transition:background .15s,color .15s;display:grid;position:relative}.icon-btn:hover{background:var(--c-bg);color:var(--c-ink)}.icon-btn svg{width:16px;height:16px}.icon-btn .dot{background:var(--c-green);border-radius:50%;width:6px;height:6px;position:absolute;top:7px;right:8px;box-shadow:0 0 0 2px #fff}.btn{border-radius:var(--r-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn svg{width:14px;height:14px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--c-ink);color:#fff;border-color:var(--c-ink)}.btn-primary:hover:not(:disabled){background:var(--c-ink-2)}.btn-accent{background:var(--c-blue);color:#fff;border-color:var(--c-blue)}.btn-accent:hover:not(:disabled){background:var(--c-blue-600)}.btn-ghost{color:var(--c-ink);border-color:var(--c-line);background:#fff}.btn-ghost:hover:not(:disabled){background:var(--c-bg)}.btn-quiet{color:var(--c-text);background:0 0}.btn-quiet:hover:not(:disabled){background:var(--c-bg)}.btn-danger{background:var(--c-danger);color:#fff;border-color:var(--c-danger)}.btn-danger:hover:not(:disabled){filter:brightness(.95)}.btn-sm{padding:5px 10px;font-size:12px}.btn-lg{padding:11px 18px;font-size:14px}.btn-full{justify-content:center;width:100%}.card{border:1px solid var(--c-line);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);background:#fff}.card-pad{padding:20px}.card-header{border-bottom:1px solid var(--c-line-soft);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card-title{color:var(--c-ink);font-size:14px;font-weight:600;font-family:var(--f-heading)}.card-subtitle{color:var(--c-text-muted);margin-top:2px;font-size:12px}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px;display:grid}.kpi{border:1px solid var(--c-line);border-radius:var(--r-lg);background:#fff;padding:18px 20px;position:relative;overflow:hidden}.kpi-label{color:var(--c-text-muted);align-items:center;gap:6px;font-size:12px;font-weight:500;display:flex}.kpi-label svg{width:13px;height:13px}.kpi-value{font-family:var(--f-heading);letter-spacing:-.03em;color:var(--c-ink);align-items:baseline;gap:4px;margin-top:8px;font-size:28px;font-weight:600;display:flex}.kpi-currency{color:var(--c-text-muted);font-size:16px;font-weight:500}.kpi-delta{border-radius:var(--r-sm);align-items:center;gap:3px;margin-top:10px;padding:2px 6px;font-size:11px;font-weight:600;display:inline-flex}.kpi-delta.up{background:var(--c-green-soft);color:var(--c-green-dark)}.kpi-delta.down{background:var(--c-danger-soft);color:var(--c-danger)}.kpi-card{border:1px solid var(--c-line);border-radius:var(--r-lg);background:#fff;padding:16px 18px;position:relative;overflow:hidden}.kpi-card .kpi-label{color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:11px;font-weight:500}.kpi-card .kpi-value{font-family:var(--f-heading);letter-spacing:-.03em;color:var(--c-ink);font-size:26px;font-weight:600}.kpi-card .kpi-sub{color:var(--c-text-muted);margin-top:4px;font-size:11px}.kpi-delta.flat{background:var(--c-bg-2);color:var(--c-text-muted)}.kpi-spark{opacity:.9;width:90px;height:36px;position:absolute;bottom:0;right:0}.badge{border-radius:var(--r-full);white-space:nowrap;align-items:center;gap:5px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;width:5px;height:5px}.badge-success{background:var(--c-green-soft);color:var(--c-green-dark)}.badge-warn,.badge-warning{background:var(--c-warn-soft);color:#92400e}.badge-danger{background:var(--c-danger-soft);color:#991b1b}.badge-info{background:var(--c-blue-50);color:var(--c-blue)}.badge-neutral{background:var(--c-bg-2);color:var(--c-text-muted)}.badge-purple{background:var(--c-purple-soft);color:var(--c-purple)}.badge-slate{color:#1e40af;background:#eff6ff}.table{border-collapse:collapse;width:100%;font-size:13px}.table thead th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--c-text-muted);background:var(--c-bg);border-bottom:1px solid var(--c-line);padding:10px 16px;font-size:11px;font-weight:600}.table tbody td{border-bottom:1px solid var(--c-line-soft);vertical-align:middle;padding:12px 16px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{cursor:pointer}.table tbody tr:hover{background:var(--c-bg)}.cell-strong{color:var(--c-ink);font-weight:500}.cell-muted{color:var(--c-text-muted);font-size:12px}.cell-mono{font-family:var(--f-mono);font-size:12px}.cell-flex{align-items:center;gap:10px;display:flex}.thumb{background:var(--c-bg-2);border-radius:8px;flex-shrink:0;width:36px;height:36px;position:relative;overflow:hidden}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--c-ink);font-size:12px;font-weight:500}.field .hint{color:var(--c-text-muted);font-size:11px}.input,.textarea,.select{border:1px solid var(--c-line);border-radius:var(--r-md);background:#fff;outline:none;width:100%;padding:9px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s}.input:focus,.textarea:focus,.select:focus{border-color:var(--c-blue);box-shadow:0 0 0 3px #1e3a8a14}.textarea{resize:vertical;min-height:90px;font-family:inherit}.input-group{border:1px solid var(--c-line);border-radius:var(--r-md);background:#fff;align-items:center;display:flex;overflow:hidden}.input-group:focus-within{border-color:var(--c-blue);box-shadow:0 0 0 3px #1e3a8a14}.input-group .prefix{color:var(--c-text-muted);background:var(--c-bg);border-right:1px solid var(--c-line);place-items:center;height:100%;padding:0 10px;font-size:13px;display:grid}.input-group input{border:0;outline:0;flex:1;padding:9px 12px}.toggle{background:var(--c-line);cursor:pointer;border-radius:999px;flex-shrink:0;width:32px;height:18px;transition:background .2s;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.toggle.on{background:var(--c-blue)}.toggle.on:after{transform:translate(14px)}.tabs{border-bottom:1px solid var(--c-line);gap:4px;display:flex}.tab{color:var(--c-text-muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-size:13px;font-weight:500;transition:color .15s,border-color .15s}.tab:hover{color:var(--c-ink)}.tab.active{color:var(--c-ink);border-bottom-color:var(--c-ink)}.segmented{background:var(--c-bg);border:1px solid var(--c-line);border-radius:var(--r-md);gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--c-text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:500}.segmented button.active{color:var(--c-ink);box-shadow:var(--shadow-xs);background:#fff}.modal-backdrop,.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0f172a73;justify-content:center;align-items:flex-start;padding:32px 20px;animation:.15s fade;display:flex;position:fixed;inset:0;overflow-y:auto}.modal,.modal-box{border-radius:var(--r-xl);width:100%;max-width:560px;box-shadow:var(--shadow-lg);background:#fff;flex-direction:column;max-height:calc(100vh - 64px);margin:auto;animation:.2s pop;display:flex;overflow:hidden}.modal-close{cursor:pointer;color:var(--c-text-muted);border-radius:var(--r-sm);background:0 0;border:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;line-height:1;transition:background .15s;display:flex;position:absolute;top:14px;right:14px}.modal-close:hover{background:var(--c-bg);color:var(--c-ink)}.modal-lg{max-width:760px}.modal-header{border-bottom:1px solid var(--c-line-soft);flex-shrink:0;padding:20px 24px 14px}.modal-body{flex:1;padding:20px 24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--c-line-soft);background:var(--c-bg);flex-shrink:0;justify-content:flex-end;gap:8px;padding:14px 24px;display:flex}.toast-stack{z-index:200;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--c-ink);color:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-lg);align-items:center;gap:10px;min-width:280px;padding:12px 14px 12px 12px;font-size:13px;animation:.25s slide-in;display:flex}.toast .toast-icon{background:var(--c-green);border-radius:50%;flex-shrink:0;place-items:center;width:26px;height:26px;display:grid}.toast.danger .toast-icon{background:var(--c-danger)}.toast.warn .toast-icon{background:var(--c-warn)}.page-header{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px;display:flex}.page-title{font-size:24px;font-weight:600;font-family:var(--f-heading);letter-spacing:-.025em}.page-subtitle{color:var(--c-text-muted);margin-top:4px;font-size:13px}.chart-wrap{width:100%;height:220px;position:relative}.timeline{flex-direction:column;gap:0;display:flex}.timeline-row{grid-template-columns:80px 24px 1fr auto;align-items:flex-start;gap:14px;padding:12px 0;display:grid}.timeline-rail{justify-content:center;display:flex;position:relative}.timeline-rail:before{content:"";background:var(--c-line);width:2px;position:absolute;top:14px;bottom:-12px}.timeline-row:last-child .timeline-rail:before{display:none}.timeline-dot{background:var(--c-line);z-index:1;border:2px solid #fff;border-radius:50%;width:10px;height:10px;margin-top:4px;position:relative}.timeline-dot.success{background:var(--c-green)}.timeline-dot.danger{background:var(--c-danger)}.timeline-dot.warn{background:var(--c-warn)}.timeline-dot.info{background:var(--c-blue)}.timeline-date{color:var(--c-text-muted);font-variant-numeric:tabular-nums;font-size:12px}.property-card{border:1px solid var(--c-line);border-radius:var(--r-lg);cursor:pointer;background:#fff;transition:box-shadow .15s,border-color .15s;overflow:hidden}.property-card:hover{box-shadow:var(--shadow-md)}.property-photo{background:var(--c-bg-2);background-position:50%;background-size:cover;height:140px;position:relative}.photo-placeholder{width:100%;height:100%;color:var(--c-text-faint);font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.1em;background-image:repeating-linear-gradient(135deg,#0000 0 12px,#0f172a08 12px 13px);place-items:center;font-size:10px;display:grid}.property-body{padding:14px 16px}.property-title{font-size:14px;font-weight:600;font-family:var(--f-heading);color:var(--c-ink)}.property-address{color:var(--c-text-muted);margin-top:2px;font-size:12px}.property-meta{border-top:1px solid var(--c-line-soft);color:var(--c-text-muted);justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;font-size:12px;display:flex}.property-meta strong{color:var(--c-ink);font-family:var(--f-heading);font-weight:600}.state-block{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:56px 24px;display:flex}.state-icon{background:var(--c-bg);width:56px;height:56px;color:var(--c-text-muted);border-radius:14px;place-items:center;display:grid}.state-title{font-size:16px;font-weight:600;font-family:var(--f-heading);color:var(--c-ink)}.state-text{color:var(--c-text-muted);max-width:360px;font-size:13px}.skeleton{background:linear-gradient(90deg, var(--c-bg-2) 0%, #e8eef5 50%, var(--c-bg-2) 100%);background-size:200% 100%;border-radius:6px;animation:1.4s linear infinite shimmer}.loading-page{min-height:100vh;color:var(--c-text-muted);justify-content:center;align-items:center;gap:10px;font-size:.9rem;display:flex}.spinner{border:2px solid #1e3a8a33;border-top-color:var(--c-blue);border-radius:50%;width:18px;height:18px;animation:.65s linear infinite spin;display:inline-block}.page-loader{background:var(--c-bg);z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.page-loader__content{flex-direction:column;align-items:center;gap:28px;animation:.4s both loader-fade-in;display:flex}.page-loader__logo{opacity:0;animation:.5s .1s both loader-logo-in}.page-loader__track{background:var(--c-line-soft);opacity:0;border-radius:999px;width:140px;height:2px;animation:.3s .35s both loader-fade-in;overflow:hidden}.page-loader__bar{background:linear-gradient(90deg,#1b5c38,#4ade80);border-radius:999px;width:45%;height:100%;animation:1.4s ease-in-out infinite loader-slide}@keyframes loader-logo-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes loader-fade-in{0%{opacity:0}to{opacity:1}}@keyframes loader-slide{0%{transform:translate(-120%)}50%{transform:translate(120%)}to{transform:translate(300%)}}.landing{background:var(--c-bg);min-height:100vh}.landing-nav{border-bottom:1px solid var(--c-line-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;background:#f8fafcd9;justify-content:space-between;align-items:center;padding:22px 48px;display:flex;position:sticky;top:0}.landing-hero{grid-template-columns:1.05fr 1fr;align-items:center;gap:60px;max-width:1280px;margin:0 auto;padding:80px 48px 60px;display:grid}.eyebrow{border:1px solid var(--c-line);color:var(--c-text-muted);background:#fff;border-radius:999px;align-items:center;gap:7px;margin-bottom:22px;padding:4px 10px 4px 4px;font-size:12px;display:inline-flex}.eyebrow .pill{background:var(--c-green-soft);color:var(--c-green-dark);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:600}.hero-title{font-size:56px;line-height:1.05;font-family:var(--f-heading);letter-spacing:-.035em;color:var(--c-ink);font-weight:600}.hero-title .accent{background:linear-gradient(120deg,#1b5c38,#3d9a68);color:#0000;-webkit-background-clip:text;background-clip:text}.hero-sub{color:var(--c-text-muted);max-width:480px;margin-top:18px;font-size:17px;line-height:1.55}.hero-cta{gap:10px;margin-top:28px;display:flex}.hero-trust{color:var(--c-text-muted);gap:24px;margin-top:36px;font-size:12px;display:flex}.hero-trust strong{color:var(--c-ink);font-family:var(--f-heading);margin-bottom:2px;font-size:18px;font-weight:600;display:block}.hero-figure{border:1px solid var(--c-line);border-radius:var(--r-xl);box-shadow:var(--shadow-pop);background:#fff;overflow:hidden;transform:perspective(1500px)rotateY(-6deg)rotateX(2deg)}.feature-grid{grid-template-columns:repeat(3,1fr);gap:18px;max-width:1280px;margin:0 auto;padding:80px 48px;display:grid}.feature{border:1px solid var(--c-line);border-radius:var(--r-lg);background:#fff;padding:22px}.feature-icon{background:var(--c-blue-50);width:36px;height:36px;color:var(--c-blue);border-radius:10px;place-items:center;margin-bottom:14px;display:grid}.feature h3{margin-bottom:6px;font-size:15px}.feature p{color:var(--c-text-muted);margin:0;font-size:13px;line-height:1.55}.auth-wrap{background:#fff;grid-template-columns:1fr 1.1fr;min-height:100vh;display:grid}.auth-card{flex-direction:column;justify-content:center;width:100%;max-width:520px;margin:0 auto;padding:60px 80px;display:flex}.auth-title{font-size:28px;font-family:var(--f-heading);letter-spacing:-.025em;margin-bottom:6px;font-weight:600}.auth-sub{color:var(--c-text-muted);margin-bottom:24px;font-size:14px}.social-buttons{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;display:grid}.btn-social{border-radius:var(--r-md);border:1px solid var(--c-line);cursor:pointer;height:42px;color:var(--c-ink);background:#fff;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.btn-social:hover{background:var(--c-bg);box-shadow:var(--shadow-xs);border-color:#cbd5e1}.btn-facebook{color:#1877f2}.social-divider{color:var(--c-text-faint);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:10px;margin-bottom:16px;font-size:11px;font-weight:500;display:flex}.social-divider:before,.social-divider:after{content:"";background:var(--c-line);flex:1;height:1px}.auth-side{color:#fff;background:linear-gradient(160deg,#0f172a 0%,#1b5c38 60%,#3d9a68 130%);align-items:center;padding:48px;display:flex;position:relative;overflow:hidden}.auth-side:before{content:"";background:radial-gradient(800px 400px at 80% 10%,#3d9a6866,#0000 60%),radial-gradient(600px 300px at 10% 90%,#4ade802e,#0000 60%);position:absolute;inset:0}.auth-side-content{z-index:1;max-width:440px;position:relative}.auth-side h2{color:#fff;letter-spacing:-.03em;font-size:32px;line-height:1.15}.auth-side p{color:#ffffffb3;margin-top:16px;font-size:15px;line-height:1.6}.dropdown{border:1px solid var(--c-line);border-radius:var(--r-lg);width:360px;box-shadow:var(--shadow-lg);z-index:50;background:#fff;position:absolute;top:44px;right:0;overflow:hidden}.notif-item{border-bottom:1px solid var(--c-line-soft);cursor:pointer;gap:10px;padding:12px 14px;transition:background .15s;display:flex}.notif-item:hover{background:var(--c-bg)}.notif-item:last-child{border-bottom:0}.notif-dot{background:var(--c-blue);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.notif-dot.read{background:0 0}.notif-title{color:var(--c-ink);font-size:13px;font-weight:500}.notif-text{color:var(--c-text-muted);margin-top:2px;font-size:12px}.notif-time{color:var(--c-text-faint);margin-top:4px;font-size:11px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border:2px solid var(--c-bg);background:#cbd5e1;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}::-webkit-scrollbar-track{background:0 0}.row{align-items:center;gap:10px;display:flex}.col{flex-direction:column;gap:10px;display:flex}.grow{flex:1}.muted{color:var(--c-text-muted)}.mono{font-family:var(--f-mono)}.hamburger-btn{cursor:pointer;color:var(--c-ink);border-radius:var(--r-sm);background:0 0;border:none;flex-shrink:0;padding:4px;display:none}.hamburger-btn:hover{background:var(--c-bg)}.sidebar-backdrop{z-index:99;background:#0006;display:none;position:fixed;inset:0}@media (width<=980px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.feature-grid{grid-template-columns:1fr}.landing-hero{grid-template-columns:1fr;padding:40px 24px}.auth-wrap{grid-template-columns:1fr}.auth-side{display:none}.auth-card{padding:40px 24px}.app-shell{grid-template-columns:1fr}.app-content{padding:20px 16px 40px}.topbar{padding:12px 16px}.hamburger-btn{justify-content:center;align-items:center;display:flex}.sidebar{z-index:100;height:100dvh;box-shadow:var(--shadow-lg);transition:transform .25s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.sidebar-open{transform:translate(0)}.sidebar-backdrop{display:block}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table-wrap table{min-width:600px}.modal-backdrop,.modal-overlay{padding:16px}.modal{width:100%;max-width:100%;max-height:calc(100vh - 32px);margin:0}.modal-lg{width:100%}}@media (width<=640px){.kpi-grid{grid-template-columns:1fr}.auth-card{padding:32px 20px}.app-content{padding:16px 12px 32px}.topbar{gap:8px}.search{display:none}.crumbs{font-size:12px}.page-header{flex-direction:column;align-items:flex-start;gap:12px}.page-header>div:last-child{width:100%}.page-header button{justify-content:center;width:100%}}.rgrid{display:grid}.rgrid-2{grid-template-columns:repeat(2,1fr)}.rgrid-3{grid-template-columns:repeat(3,1fr)}.rgrid-4{grid-template-columns:repeat(4,1fr)}.split-260{grid-template-columns:260px 1fr;display:grid}.repair-li-row{grid-template-columns:140px 1fr 64px 32px;display:grid}@media (width<=980px){.rgrid-4{grid-template-columns:repeat(2,1fr)}.split-260{grid-template-columns:1fr}}@media (width<=640px){.rgrid-2,.rgrid-3,.rgrid-4{grid-template-columns:1fr}}@media (width<=560px){.repair-li-row{grid-template-columns:1fr 1fr}}.page-sub{color:var(--c-text-muted);margin-top:4px;font-size:13px}.prop-card{border:1px solid var(--c-line);border-radius:var(--r-lg);background:#fff;transition:box-shadow .15s,border-color .15s;overflow:hidden}.prop-card:hover{box-shadow:var(--shadow-md);border-color:#cbd5e1}.prop-photo{object-fit:cover;width:100%;height:160px;display:block}.prop-body{padding:14px 16px 16px}.table-wrap{border:1px solid var(--c-line);border-radius:var(--r-lg);-webkit-overflow-scrolling:touch;background:#fff;overflow-x:auto}.table-wrap table{border-collapse:collapse;width:100%;min-width:640px}.table-wrap thead tr{background:var(--c-bg)}.table-wrap th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--c-text-muted);border-bottom:1px solid var(--c-line);white-space:nowrap;padding:10px 16px;font-size:11px;font-weight:600}.table-wrap td{color:var(--c-ink);border-bottom:1px solid var(--c-line-soft);padding:12px 16px;font-size:13px}.table-wrap tbody tr:last-child td{border-bottom:none}.table-wrap tbody tr:hover td{background:var(--c-bg)}.modal-head{border-bottom:1px solid var(--c-line-soft);justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-title{font-size:16px;font-weight:600;font-family:var(--f-heading);color:var(--c-ink)}.modal-foot{border-top:1px solid var(--c-line-soft);justify-content:flex-end;gap:8px;margin-top:20px;padding:14px 0 0;display:flex}.lease-hero-body{align-items:center;gap:20px;padding:20px 24px;display:flex}.lease-hero-photo{border-radius:var(--r-md);flex-shrink:0;width:120px;height:84px;overflow:hidden}.lease-hero-actions{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;display:flex}.lease-kpi-grid{grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:20px;display:grid}.lease-mid-grid{grid-template-columns:1fr 1fr 260px;gap:16px;margin-bottom:20px;display:grid}.lease-bottom-grid{grid-template-columns:300px 1fr 260px;gap:16px;display:grid}.pay-tx-row{align-items:center;gap:12px;padding:10px 16px 10px 44px;display:flex}@media (width<=980px){.lease-kpi-grid{grid-template-columns:repeat(3,1fr)}.lease-mid-grid{grid-template-columns:1fr 1fr}.lease-bottom-grid{grid-template-columns:1fr}.lease-hero-body{flex-wrap:wrap}.lease-hero-actions{width:100%}.lease-hero-photo{width:100%;height:160px}}@media (width<=640px){.lease-kpi-grid{grid-template-columns:repeat(2,1fr)}.lease-mid-grid{grid-template-columns:1fr}.lease-hero-photo{height:120px}.pay-tx-row{flex-wrap:wrap;gap:8px;padding-left:16px}.lease-hero-actions .btn{flex:auto;justify-content:center;font-size:12px}}.empty-state{text-align:center;border:1px solid var(--c-line);border-radius:var(--r-lg);background:#fff;flex-direction:column;align-items:center;gap:12px;padding:64px 24px;display:flex}.empty-state-icon{color:var(--c-text-faint);margin-bottom:4px}.empty-state h3{font-size:16px;font-weight:600;font-family:var(--f-heading);color:var(--c-ink);margin:0}.empty-state p{color:var(--c-text-muted);max-width:320px;margin:0;font-size:13px}.tour-tooltip{background:var(--c-surface);border-radius:var(--r-lg);padding:18px 20px 16px;animation:.22s cubic-bezier(.4,0,.2,1) tour-in;position:relative;box-shadow:0 24px 60px -12px #0a19124d,0 4px 16px #0a19121f,0 0 0 1px #1b5c3826}@keyframes tour-in{0%{opacity:0;transform:scale(.94)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.tour-tooltip__top{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.tour-tooltip__counter{font-family:var(--f-heading);color:var(--c-blue);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:700}.tour-tooltip__skip{cursor:pointer;color:var(--c-text-faint);border-radius:var(--r-sm);font-size:11px;font-family:var(--f-body);background:0 0;border:none;padding:3px 7px;transition:color .15s,background .15s}.tour-tooltip__skip:hover{color:var(--c-text-muted);background:var(--c-bg)}.tour-progress{background:var(--c-line);border-radius:999px;height:3px;margin-bottom:16px;overflow:hidden}.tour-progress__fill{background:linear-gradient(90deg, var(--c-blue) 0%, var(--c-green-dark) 100%);border-radius:999px;height:100%;transition:width .3s cubic-bezier(.4,0,.2,1)}.tour-tooltip__body{margin-bottom:14px}.tour-tooltip__icon{text-align:center;margin-bottom:10px;font-size:28px;line-height:1}.tour-tooltip__title{font-family:var(--f-heading);color:var(--c-ink);letter-spacing:-.01em;margin:0 0 7px;font-size:15px;font-weight:700}.tour-tooltip__desc{color:var(--c-text-muted);margin:0;font-size:13px;line-height:1.58}.tour-dots{gap:5px;margin-bottom:14px;display:flex}.tour-dot{background:var(--c-line);border-radius:999px;flex-shrink:0;width:5px;height:5px;transition:all .22s cubic-bezier(.4,0,.2,1)}.tour-dot.active{background:var(--c-blue);width:16px}.tour-dot.done{background:var(--c-green-dark)}.tour-tooltip__footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.tour-arrow{background:var(--c-surface);pointer-events:none;width:10px;height:10px;position:absolute;box-shadow:-1px -1px #1b5c381f}.tour-arrow--right{top:50%;left:-5px;transform:translateY(-50%)rotate(-45deg)}.tour-arrow--left{top:50%;right:-5px;transform:translateY(-50%)rotate(135deg)}.tour-arrow--bottom{top:-5px;left:32px;transform:rotate(45deg);box-shadow:-1px -1px #1b5c381f}.tour-arrow--top{bottom:-5px;left:32px;transform:rotate(-135deg)}.dash-main-grid{grid-template-columns:1.7fr 1fr;gap:16px;margin-bottom:16px;display:grid}.dash-bottom-grid{grid-template-columns:1.4fr 1fr;gap:16px;display:grid}@media (width<=980px){.dash-main-grid,.dash-bottom-grid{grid-template-columns:1fr}.payments-grid,.tenants-grid{grid-template-columns:1fr!important}}.toast{z-index:9999;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);align-items:center;gap:10px;max-width:360px;padding:12px 18px;font-size:13px;font-weight:500;animation:.2s pop;display:flex;position:fixed;bottom:20px;right:20px}.toast-success{color:#fff;background:#16a34a}.toast-error{color:#fff;background:#ef4444}.toast-info{background:var(--c-ink);color:#fff}.plan-gate-banner{background:var(--c-blue-50);border-radius:var(--r-md);color:var(--c-blue);cursor:pointer;border:1px solid #1b5c3833;align-items:center;gap:8px;padding:10px 14px;font-size:13px;transition:background .15s;display:flex}.plan-gate-banner:hover{background:#d4eedc}.plan-gate-lock{opacity:.7;align-items:center;display:flex}.plan-gate-cta{background:var(--c-blue);color:#fff;border-radius:var(--r-sm);white-space:nowrap;margin-left:auto;padding:3px 10px;font-size:12px;font-weight:600}.plan-gate-page{justify-content:center;align-items:center;min-height:320px;display:flex}.plan-gate-page-inner{text-align:center;flex-direction:column;align-items:center;gap:12px;max-width:360px;display:flex}.plan-gate-icon{background:var(--c-blue-50);width:64px;height:64px;color:var(--c-blue);border-radius:50%;justify-content:center;align-items:center;display:flex}.plan-gate-page-inner h3{margin:0;font-size:18px;font-weight:700}.plan-gate-page-inner p{color:var(--c-text-muted);margin:0;font-size:14px}.upgrade-modal{max-width:440px;padding:32px;position:relative}.upgrade-modal-header{text-align:center;margin-bottom:24px}.upgrade-badge{background:var(--c-blue);color:#fff;letter-spacing:.08em;border-radius:999px;margin-bottom:12px;padding:4px 14px;font-size:11px;font-weight:700;display:inline-block}.upgrade-modal-header h2{margin:0 0 8px;font-size:22px}.upgrade-price{justify-content:center;align-items:baseline;gap:4px;display:flex}.upgrade-amount{color:var(--c-blue);font-size:36px;font-weight:800}.upgrade-period{color:var(--c-text-muted);font-size:14px}.upgrade-tagline{color:var(--c-text-muted);margin:8px 0 0;font-size:13px}.upgrade-features{flex-direction:column;gap:10px;margin:0 0 24px;padding:0;list-style:none;display:flex}.upgrade-features li{align-items:center;gap:10px;font-size:14px;display:flex}.upgrade-cta{justify-content:center;width:100%}.upgrade-dev-panel{border:1px dashed var(--c-blue);border-radius:var(--r-md);background:var(--c-blue-50);padding:14px 16px}.upgrade-dev-label{color:var(--c-blue-600);text-align:center;letter-spacing:.03em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:600}.upgrade-success{text-align:center;color:var(--c-green-dark);background:var(--c-green-soft);border-radius:var(--r-md);padding:12px;font-weight:600}:root{--dv-green:#1b5c38;--dv-green-600:#155030;--dv-green-50:#e8f5ee;--dv-green-2:#3d9a68;--dv-green-2-soft:#d4eee0;--dv-lime:#8cc63f;--dv-bright:#4ade80;--dv-ink:#0f172a;--dv-ink-2:#1e293b;--dv-muted:#64748b;--dv-faint:#94a3b8;--dv-line:#e2e8f0;--dv-line-soft:#eef2f7;--dv-bg:#f8fafc;--dv-bg-2:#f1f5f9;--f-heading:"Sora", system-ui, sans-serif;--f-body:"Inter", system-ui, sans-serif}.dv-landing *{box-sizing:border-box}html{scroll-behavior:smooth}.dv-landing{font-family:var(--f-body);color:var(--dv-ink);background:var(--dv-bg);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.55;overflow-x:hidden}.dv-landing h1,.dv-landing h2,.dv-landing h3,.dv-landing h4{font-family:var(--f-heading);letter-spacing:-.025em;color:var(--dv-ink);margin:0;font-weight:600}.dv-landing a{color:inherit;text-decoration:none}.dv-landing button{cursor:pointer;font-family:inherit}.dv-landing .btn{white-space:nowrap;border:1px solid #0000;border-radius:12px;align-items:center;gap:8px;padding:12px 22px;font-size:14px;font-weight:600;transition:all .2s;display:inline-flex}.dv-landing .btn-primary{background:linear-gradient(135deg, var(--dv-green) 0%, var(--dv-green-2) 100%);color:#fff;box-shadow:0 8px 24px -8px #1b5c3880}.dv-landing .btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px -8px #1b5c388c}.dv-landing .btn-primary:active{transform:translateY(0)}.dv-landing .btn-ghost{color:var(--dv-ink);border-color:var(--dv-line);background:#fff}.dv-landing .btn-ghost:hover{background:var(--dv-bg-2);transform:translateY(-2px)}.dv-landing .btn-sm{border-radius:10px;padding:8px 16px;font-size:13px}.dv-landing .nav{z-index:100;-webkit-backdrop-filter:blur(14px);background:#f8fafcbf;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:14px 48px;transition:border-color .3s,background .3s;display:flex;position:fixed;top:0;left:0;right:0}.dv-landing .nav.scrolled{border-bottom-color:var(--dv-line);background:#f8fafceb}.dv-landing .nav-brand{font-family:var(--f-heading);letter-spacing:.04em;color:var(--dv-ink);align-items:center;gap:11px;font-size:19px;font-weight:700;display:flex}.dv-landing .nav-links{color:var(--dv-muted);gap:32px;font-size:14px;font-weight:500;display:flex}.dv-landing .nav-links a{padding:4px 0;transition:color .2s;position:relative}.dv-landing .nav-links a:after{content:"";background:linear-gradient(90deg, var(--dv-green), var(--dv-green-2));border-radius:2px;width:0%;height:2px;transition:width .25s;position:absolute;bottom:0;left:0}.dv-landing .nav-links a:hover{color:var(--dv-ink)}.dv-landing .nav-links a:hover:after{width:100%}.dv-landing .nav-actions{align-items:center;gap:10px;display:flex}.dv-landing .logo-mark{line-height:0;display:inline-block;position:relative}.dv-landing .logo-draw .draw-path{stroke-dasharray:600;stroke-dashoffset:600px;animation:1.6s cubic-bezier(.65,0,.35,1) forwards logo-draw}.dv-landing .logo-draw .draw-path.p2{animation-delay:.45s}.dv-landing .logo-draw .logo-dot{opacity:0;transform-origin:50%;animation:.5s cubic-bezier(.34,1.56,.64,1) 1.7s forwards dot-pop}@keyframes logo-draw{to{stroke-dashoffset:0}}@keyframes dot-pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.dv-landing .logo-float{animation:5s ease-in-out 2.4s infinite logo-float}@keyframes logo-float{0%,to{transform:translateY(0)rotate(0)}35%{transform:translateY(-3px)rotate(-2deg)}70%{transform:translateY(1px)rotate(1.5deg)}}.dv-landing .logo-dot-pulse{transform-origin:50%;transform-box:fill-box;animation:2.6s ease-in-out 2.6s infinite dot-pulse}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.75;transform:scale(1.35)}}.dv-landing .hero{grid-template-columns:1.05fr 1fr;align-items:center;gap:64px;max-width:1280px;min-height:86vh;margin:0 auto;padding:150px 48px 90px;display:grid;position:relative}.dv-landing .hero-bg{z-index:-1;pointer-events:none;position:absolute;inset:-200px 0 0;overflow:hidden}.dv-landing .blob{filter:blur(70px);opacity:.5;border-radius:50%;position:absolute}.dv-landing .blob-1{background:radial-gradient(circle,#3d9a6859,#0000 65%);width:560px;height:560px;animation:18s ease-in-out infinite blob-drift-1;top:-80px;right:-120px}.dv-landing .blob-2{background:radial-gradient(circle,#8cc63f47,#0000 65%);width:420px;height:420px;animation:22s ease-in-out infinite blob-drift-2;bottom:0;left:-140px}.dv-landing .blob-3{background:radial-gradient(circle,#1b5c3833,#0000 65%);width:300px;height:300px;animation:26s ease-in-out infinite blob-drift-3;top:35%;left:38%}@keyframes blob-drift-1{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-70px,50px)scale(1.12)}}@keyframes blob-drift-2{0%,to{transform:translate(0)scale(1)}50%{transform:translate(60px,-45px)scale(.92)}}@keyframes blob-drift-3{0%,to{transform:translate(0)}33%{transform:translate(45px,30px)}66%{transform:translate(-30px,-20px)}}.dv-landing .particle{background:linear-gradient(135deg, var(--dv-green-2), var(--dv-lime));opacity:.16;border-radius:4px;animation:linear infinite particle-rise;position:absolute}@keyframes particle-rise{0%{opacity:0;transform:translateY(0)rotate(0)}12%{opacity:.18}88%{opacity:.18}to{opacity:0;transform:translateY(-110vh)rotate(220deg)}}.dv-landing .hero-grid{background-image:linear-gradient(#1b5c380b 1px,#0000 1px),linear-gradient(90deg,#1b5c380b 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(90% 70% at 50% 30%,#000 30%,#0000 75%);mask-image:radial-gradient(90% 70% at 50% 30%,#000 30%,#0000 75%)}.dv-landing .eyebrow{border:1px solid var(--dv-line);color:var(--dv-muted);background:#fff;border-radius:999px;align-items:center;gap:8px;margin-bottom:26px;padding:5px 12px 5px 5px;font-size:12.5px;display:inline-flex;box-shadow:0 2px 10px #0f172a0a}.dv-landing .eyebrow .pill{background:var(--dv-green-50);color:var(--dv-green);text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:700}.dv-landing .eyebrow .pill-dot{background:var(--dv-bright);border-radius:50%;width:6px;height:6px;margin-right:5px;animation:2s ease-in-out infinite dot-pulse;display:inline-block}.dv-landing .hero-title{letter-spacing:-.04em;font-size:clamp(40px,5.4vw,64px);font-weight:700;line-height:1.04}.dv-landing .hero-title .accent{background:linear-gradient(110deg, var(--dv-green) 10%, var(--dv-green-2) 55%, var(--dv-lime) 100%);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:6s ease-in-out infinite gradient-slide}@keyframes gradient-slide{0%,to{background-position:0%}50%{background-position:100%}}.dv-landing .hero-sub{color:var(--dv-muted);max-width:480px;margin-top:22px;font-size:17px;line-height:1.6}.dv-landing .hero-cta{gap:12px;margin-top:32px;display:flex}.dv-landing .hero-stats{gap:36px;margin-top:44px;display:flex}.dv-landing .hero-stat strong{font-family:var(--f-heading);letter-spacing:-.02em;color:var(--dv-ink);font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;display:block}.dv-landing .hero-stat span{color:var(--dv-muted);font-size:12.5px}.dv-landing .mockup-wrap{perspective:1400px;position:relative}.dv-landing .mockup{border:1px solid var(--dv-line);transform-style:preserve-3d;background:#fff;border-radius:18px;transition:transform .4s;animation:7s ease-in-out infinite mockup-float;overflow:hidden;transform:rotateY(-7deg)rotateX(3deg);box-shadow:0 40px 80px -28px #1b5c3847,0 12px 30px -12px #0f172a1f}.dv-landing .mockup-wrap:hover .mockup{transform:rotateY(-3deg)rotateX(1deg)}@keyframes mockup-float{0%,to{translate:0}50%{translate:0 -14px}}.dv-landing .mockup-bar{background:var(--dv-ink);color:#ffffffa6;align-items:center;gap:8px;padding:11px 16px;font-size:12px;display:flex}.dv-landing .mockup-bar .dot-r{background:#ff5f57;border-radius:50%;width:9px;height:9px}.dv-landing .mockup-bar .dot-y{background:#febc2e;border-radius:50%;width:9px;height:9px}.dv-landing .mockup-bar .dot-g{background:#28c840;border-radius:50%;width:9px;height:9px}.dv-landing .mockup-body{padding:24px}.dv-landing .chart-line{stroke-dasharray:700;stroke-dashoffset:700px}.dv-landing .chart-line.animate{animation:2s cubic-bezier(.5,0,.3,1) .6s forwards chart-draw}@keyframes chart-draw{to{stroke-dashoffset:0}}.dv-landing .chart-area{opacity:0}.dv-landing .chart-area.animate{animation:1s 2s forwards fade-in}@keyframes fade-in{to{opacity:1}}.dv-landing .float-card{border:1px solid var(--dv-line);z-index:2;background:#fff;border-radius:14px;align-items:center;gap:10px;padding:12px 16px;font-size:13px;display:flex;position:absolute;box-shadow:0 18px 40px -14px #0f172a38}.dv-landing .float-card .fc-icon{border-radius:10px;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.dv-landing .float-card strong{font-family:var(--f-heading);font-size:13px;display:block}.dv-landing .float-card span{color:var(--dv-muted);font-size:11.5px}.dv-landing .float-card-1{animation:6s ease-in-out .5s infinite float-a;top:-26px;right:-18px}.dv-landing .float-card-2{animation:7s ease-in-out 1s infinite float-b;bottom:30px;left:-42px}@keyframes float-a{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes float-b{0%,to{transform:translateY(0)}50%{transform:translateY(10px)}}.dv-landing .mock-badges{grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:18px;display:grid}.dv-landing .mock-badge{border:1px solid var(--dv-line);border-radius:10px;padding:10px 12px}.dv-landing .mock-badge .b-pill{border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:10.5px;font-weight:600;display:inline-flex}.dv-landing .mock-badge .b-num{font-family:var(--f-heading);margin-top:5px;font-size:20px;font-weight:700}.dv-landing .reveal{opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(28px)}.dv-landing .reveal.visible{opacity:1;transform:translateY(0)}.dv-landing .reveal-d1{transition-delay:80ms}.dv-landing .reveal-d2{transition-delay:.16s}.dv-landing .reveal-d3{transition-delay:.24s}.dv-landing .reveal-d4{transition-delay:.32s}.dv-landing .reveal-d5{transition-delay:.4s}.dv-landing .section{max-width:1280px;margin:0 auto;padding:90px 48px}.dv-landing .section-head{text-align:center;max-width:620px;margin:0 auto 56px}.dv-landing .section-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--dv-green-2);margin-bottom:14px;font-size:12px;font-weight:700;display:inline-block}.dv-landing .section-title{letter-spacing:-.03em;font-size:clamp(28px,3.4vw,40px);font-weight:700;line-height:1.12}.dv-landing .section-sub{color:var(--dv-muted);margin-top:14px;font-size:15.5px}.dv-landing .features{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.dv-landing .feature{border:1px solid var(--dv-line);background:#fff;border-radius:16px;padding:26px;transition:transform .3s,box-shadow .3s,border-color .3s;position:relative;overflow:hidden}.dv-landing .feature:before{content:"";background:linear-gradient(90deg, var(--dv-green), var(--dv-green-2), var(--dv-lime));opacity:0;height:3px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.dv-landing .feature:hover{border-color:var(--dv-green-2-soft);transform:translateY(-6px);box-shadow:0 24px 48px -20px #1b5c3840}.dv-landing .feature:hover:before{opacity:1}.dv-landing .feature-icon{background:var(--dv-green-50);width:44px;height:44px;color:var(--dv-green);border-radius:12px;place-items:center;margin-bottom:18px;transition:transform .3s,background .3s,color .3s;display:grid}.dv-landing .feature:hover .feature-icon{background:linear-gradient(135deg, var(--dv-green), var(--dv-green-2));color:#fff;transform:scale(1.08)rotate(-4deg)}.dv-landing .feature h3{margin-bottom:8px;font-size:16px}.dv-landing .feature p{color:var(--dv-muted);margin:0;font-size:13.5px;line-height:1.6}.dv-landing .steps{grid-template-columns:repeat(3,1fr);gap:18px;display:grid;position:relative}.dv-landing .step{text-align:center;padding:10px 22px;position:relative}.dv-landing .step-num{border:1px solid var(--dv-line);width:58px;height:58px;font-family:var(--f-heading);color:var(--dv-green);z-index:1;background:#fff;border-radius:18px;place-items:center;margin:0 auto 18px;font-size:20px;font-weight:700;display:grid;position:relative;box-shadow:0 8px 20px -8px #1b5c3833}.dv-landing .steps:before{content:"";background:repeating-linear-gradient(90deg, var(--dv-green-2) 0 8px, transparent 8px 16px);opacity:.4;height:2px;position:absolute;top:29px;left:18%;right:18%}.dv-landing .step h3{margin-bottom:8px;font-size:16px}.dv-landing .step p{color:var(--dv-muted);margin:0;font-size:13.5px;line-height:1.6}.dv-landing .quotes{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.dv-landing .quote{border:1px solid var(--dv-line);background:#fff;border-radius:16px;flex-direction:column;gap:16px;padding:26px;display:flex}.dv-landing .quote .stars{color:#f59e0b;letter-spacing:2px;font-size:14px}.dv-landing .quote p{color:var(--dv-ink-2);flex:1;margin:0;font-size:14px;line-height:1.65}.dv-landing .quote .who{align-items:center;gap:10px;display:flex}.dv-landing .quote .who .avatar{color:#fff;border-radius:50%;place-items:center;width:36px;height:36px;font-size:13px;font-weight:600;display:grid}.dv-landing .quote .who strong{font-size:13px;font-family:var(--f-heading);display:block}.dv-landing .quote .who span{color:var(--dv-muted);font-size:12px}.dv-landing .cta-panel{background:linear-gradient(150deg, #10331f 0%, var(--dv-green) 45%, var(--dv-green-2) 110%);color:#fff;text-align:center;border-radius:24px;padding:72px 56px;position:relative;overflow:hidden}.dv-landing .cta-panel:before{content:"";background:radial-gradient(circle,#8cc63f40,#0000 65%);border-radius:50%;width:500px;height:500px;animation:16s ease-in-out infinite blob-drift-1;position:absolute;top:-200px;right:-120px}.dv-landing .cta-panel h2{color:#fff;letter-spacing:-.03em;font-size:clamp(26px,3.2vw,38px);position:relative}.dv-landing .cta-panel p{color:#ffffffbf;max-width:440px;margin:14px auto 30px;position:relative}.dv-landing .cta-panel .btn-white{color:var(--dv-green);background:#fff;position:relative}.dv-landing .cta-panel .btn-white:hover{transform:translateY(-2px);box-shadow:0 14px 30px -10px #0000004d}.dv-landing .cta-logo{opacity:.08;animation:8s ease-in-out infinite logo-float;position:absolute;bottom:-30px;left:40px}.dv-landing .footer{border-top:1px solid var(--dv-line);max-width:1280px;color:var(--dv-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin:0 auto;padding:48px;font-size:13px;display:flex}.dv-landing .footer .links{gap:24px;display:flex}.dv-landing .footer .links a:hover{color:var(--dv-ink)}@media (prefers-reduced-motion:reduce){.dv-landing *,.dv-landing :before,.dv-landing :after{transition-duration:1ms!important;animation-duration:1ms!important;animation-delay:0s!important}.dv-landing .logo-draw .draw-path{stroke-dashoffset:0}.dv-landing .logo-draw .logo-dot{opacity:1}.dv-landing .chart-line{stroke-dashoffset:0}.dv-landing .chart-area{opacity:1}.dv-landing .reveal{opacity:1;transform:none}}@media (width<=960px){.dv-landing .nav{padding:12px 20px}.dv-landing .nav-links{display:none}.dv-landing .hero{grid-template-columns:1fr;gap:48px;padding:120px 20px 60px}.dv-landing .section{padding:60px 20px}.dv-landing .features,.dv-landing .steps,.dv-landing .quotes{grid-template-columns:1fr}.dv-landing .steps:before{display:none}.dv-landing .float-card-2{left:-8px}.dv-landing .float-card-1{right:-6px}.dv-landing .hero-stats{flex-wrap:wrap;gap:22px}}.dv-landing section[id],.dv-landing header[id]{scroll-margin-top:88px}.dv-landing .pricing{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:22px;max-width:760px;margin:0 auto;display:grid}.dv-landing .price-card{border:1px solid var(--dv-line);background:#fff;border-radius:20px;flex-direction:column;gap:18px;padding:32px 30px;transition:transform .3s,box-shadow .3s,border-color .3s;display:flex;position:relative;overflow:hidden}.dv-landing .price-card:hover{transform:translateY(-6px);box-shadow:0 24px 48px -20px #1b5c3838}.dv-landing .price-card.featured{background:linear-gradient(white, white) padding-box, linear-gradient(135deg, var(--dv-green), var(--dv-green-2), var(--dv-lime)) border-box;border:2px solid #0000;box-shadow:0 30px 60px -24px #1b5c3859}.dv-landing .price-tag{background:linear-gradient(135deg, var(--dv-green), var(--dv-green-2));color:#fff;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:4px 11px;font-size:10.5px;font-weight:700;position:absolute;top:16px;right:16px}.dv-landing .price-name{font-family:var(--f-heading);color:var(--dv-muted);text-transform:uppercase;letter-spacing:.08em;font-size:15px;font-weight:700}.dv-landing .price-amount{align-items:baseline;gap:6px;display:flex}.dv-landing .price-amount .num{font-family:var(--f-heading);letter-spacing:-.03em;color:var(--dv-ink);font-size:40px;font-weight:800}.dv-landing .price-amount .per{color:var(--dv-muted);font-size:13px}.dv-landing .price-desc{color:var(--dv-muted);margin:0;font-size:13.5px;line-height:1.55}.dv-landing .price-feats{flex-direction:column;flex:1;gap:11px;margin:4px 0 0;padding:0;list-style:none;display:flex}.dv-landing .price-feats li{color:var(--dv-ink-2);align-items:flex-start;gap:9px;font-size:13.5px;line-height:1.45;display:flex}.dv-landing .price-feats svg{flex-shrink:0;margin-top:2px}.dv-landing .price-foot{color:var(--dv-faint);margin:0;font-size:12px}.dv-landing .price-card .btn{justify-content:center;width:100%}@media (width<=960px){.dv-landing .pricing{grid-template-columns:1fr;max-width:420px}}.app-shell .page-anim{animation:.42s cubic-bezier(.2,.7,.2,1) pageIn}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.app-shell .kpi-grid>*{animation:.5s cubic-bezier(.2,.7,.2,1) both cardRise}.app-shell .kpi-grid>:first-child{animation-delay:40ms}.app-shell .kpi-grid>:nth-child(2){animation-delay:.1s}.app-shell .kpi-grid>:nth-child(3){animation-delay:.16s}.app-shell .kpi-grid>:nth-child(4){animation-delay:.22s}.app-shell .kpi-grid>:nth-child(5){animation-delay:.28s}.app-shell .kpi-grid>:nth-child(6){animation-delay:.34s}@keyframes cardRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.app-shell .kpi,.app-shell .kpi-card{transition:transform .25s,box-shadow .25s,border-color .25s}.app-shell .kpi:hover,.app-shell .kpi-card:hover{box-shadow:var(--shadow-lg);border-color:var(--c-blue-50);transform:translateY(-4px)}.app-shell .card{transition:box-shadow .25s,border-color .25s}.app-shell .card:hover{box-shadow:var(--shadow-md)}.app-shell .btn:not(:disabled):active{transform:translateY(1px)scale(.985)}.app-shell .btn-accent:hover:not(:disabled),.app-shell .btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px -6px #1b5c3866}.app-shell .nav-item{transition:background .15s,color .15s,transform .15s}.app-shell .nav-item:hover:not(.active){transform:translate(3px)}.app-shell .nav-item.active{position:relative}.app-shell .nav-item.active:before{content:"";background:var(--c-blue);border-radius:0 3px 3px 0;width:3px;position:absolute;top:22%;bottom:22%;left:0}.app-shell .table tbody tr{transition:background .15s}.app-shell .icon-btn .dot{transform-origin:50%;animation:2.2s ease-in-out infinite badgePulse}@keyframes badgePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(1.3)}}@media (prefers-reduced-motion:reduce){.app-shell .page-anim,.app-shell .kpi-grid>*,.app-shell .icon-btn .dot{animation:none!important}.app-shell .kpi:hover,.app-shell .kpi-card:hover,.app-shell .card:hover,.app-shell .btn:not(:disabled):active,.app-shell .btn-accent:hover:not(:disabled),.app-shell .btn-primary:hover:not(:disabled),.app-shell .nav-item:hover:not(.active){transform:none!important}}
