@font-face{font-family:Switzer;src:url(/fonts/Switzer-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f4f7f5;--bg-white:#fff;--bg-border:#dce8e2;--hero-bg:#1a2e25;--hero-border:#2d4a3a;--sage:#c8d8c8;--sage-dark:#b0c4b0;--green:#2d5f4a;--green-mid:#3d8f77;--green-accent:#3d8f77;--green-dark:#235040;--green-light:#eaf3ee;--green-glow:#2d5f4a1f;--text-primary:#1a2e25;--text-secondary:#5a7a65;--text-muted:#8aaa95;--text-on-dark:#c8d8c8;--white:#fff}html{scroll-behavior:smooth}body{background-color:var(--bg-white);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6}#root{flex-direction:column;width:100%;min-height:100svh;display:flex}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;outline:none;font-family:inherit}.landing{flex-direction:column;min-height:100svh;display:flex}.nav{z-index:50;background:var(--hero-bg);border-bottom:1px solid var(--hero-border);position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;max-width:1200px;height:100px;margin:0 auto;padding:0 40px;display:flex}.wordmark{letter-spacing:-1.5px;color:var(--white);font-family:Switzer,sans-serif;font-size:52px;font-weight:700;line-height:1}.wordmark-sm{font-size:16px}.wordmark-accent{color:var(--green-accent)}.btn-signin{background:var(--green-accent);color:var(--white);border-radius:7px;padding:9px 24px;font-size:14px;font-weight:600;transition:background .15s,transform .1s}.btn-signin:hover{background:var(--green-dark);transform:translateY(-1px)}.hero{background:var(--sage);padding:96px 40px 104px;position:relative;overflow:hidden}.hero-bg-grid{background-image:linear-gradient(var(--sage-dark) 1px, transparent 1px), linear-gradient(90deg, var(--sage-dark) 1px, transparent 1px);opacity:.45;background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(90% 90%,#000 20%,#0000 100%);mask-image:radial-gradient(90% 90%,#000 20%,#0000 100%)}.hero-glow{pointer-events:none;background:radial-gradient(#2d5f4a1f 0%,#0000 65%);width:900px;height:500px;position:absolute;top:-80px;left:50%;transform:translate(-50%)}.hero-inner{z-index:1;max-width:1200px;margin:0 auto;position:relative}.hero-badge{color:var(--green);letter-spacing:.08em;text-transform:uppercase;background:#2d5f4a1a;border:1px solid #2d5f4a4d;border-radius:100px;align-items:center;gap:7px;margin-bottom:32px;padding:5px 14px;font-size:12px;font-weight:600;display:inline-flex}.hero-badge-dot{background:var(--green);border-radius:50%;width:6px;height:6px}.hero-headline{letter-spacing:-2px;color:var(--text-primary);max-width:780px;margin-bottom:28px;font-size:clamp(40px,5.5vw,72px);font-weight:800;line-height:1.06}.headline-accent{color:var(--green)}.hero-sub{color:var(--text-secondary);max-width:520px;margin-bottom:48px;font-size:clamp(15px,1.6vw,18px);line-height:1.75}.hero-ctas{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.hero-wave{background:var(--hero-bg);width:100%;height:60px;margin-bottom:-1px;display:block;position:relative}.hero-wave:after{content:"";background:var(--bg-white);clip-path:ellipse(55% 100% at 50% 100%);height:60px;position:absolute;bottom:0;left:0;right:0}.btn-primary{background:var(--green-accent);color:var(--white);border-radius:8px;align-items:center;gap:8px;padding:13px 28px;font-size:15px;font-weight:700;transition:background .15s,transform .12s,box-shadow .15s;display:inline-flex}.btn-primary:hover{background:var(--green-dark);transform:translateY(-2px);box-shadow:0 8px 28px #2d5f4a59}.btn-arrow{width:15px;height:15px;transition:transform .15s}.btn-primary:hover .btn-arrow{transform:translate(3px)}.btn-ghost{color:var(--green);border:1px solid #2d5f4a59;border-radius:8px;align-items:center;padding:13px 24px;font-size:15px;font-weight:600;transition:border-color .15s,background .15s;display:inline-flex}.btn-ghost:hover{border-color:var(--green);background:#2d5f4a12}.features{background:var(--bg-white);padding:96px 40px}.features-inner{max-width:1200px;margin:0 auto}.section-label{letter-spacing:.12em;text-transform:uppercase;color:var(--green-accent);margin-bottom:14px;font-size:11px;font-weight:700}.section-heading{letter-spacing:-.6px;color:var(--text-primary);max-width:500px;margin-bottom:56px;font-size:clamp(26px,3vw,36px);font-weight:700;line-height:1.22}.feature-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;display:grid}.feature-card{background:var(--bg-white);border:1px solid var(--bg-border);border-radius:14px;padding:36px 32px;transition:border-color .2s,box-shadow .2s,transform .2s}.feature-card:hover{border-color:var(--green-accent);transform:translateY(-3px);box-shadow:0 8px 32px #2d5f4a1a}.feature-icon{background:var(--green-light);width:48px;height:48px;color:var(--green);border-radius:12px;justify-content:center;align-items:center;margin-bottom:22px;display:flex}.feature-icon svg{width:22px;height:22px}.feature-title{color:var(--text-primary);letter-spacing:-.2px;margin-bottom:10px;font-size:17px;font-weight:700}.feature-body{color:var(--text-secondary);font-size:14px;line-height:1.75}.cta-banner{background:var(--bg);border-top:1px solid var(--bg-border);border-bottom:1px solid var(--bg-border);padding:88px 40px}.cta-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:32px;max-width:1200px;margin:0 auto;display:flex}.cta-text{flex:1;min-width:260px}.cta-heading{letter-spacing:-.8px;color:var(--text-primary);margin-bottom:10px;font-size:clamp(26px,3vw,38px);font-weight:800}.cta-sub{color:var(--text-secondary);font-size:15px}.cta-banner .btn-primary{white-space:nowrap;flex-shrink:0}.footer{background:var(--hero-bg);padding:36px 40px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1200px;margin:0 auto;display:flex}.footer-copy{color:#c8d8c873;font-size:13px}.footer-links{gap:28px;display:flex}.footer-links a{color:#c8d8c873;font-size:13px;transition:color .15s}.footer-links a:hover{color:var(--text-on-dark)}@media (width<=640px){.nav-inner{padding:0 20px}.hero{padding:64px 20px 80px}.features,.cta-banner{padding:64px 20px}.footer{padding:28px 20px}.footer-inner,.hero-ctas,.cta-inner{flex-direction:column;align-items:flex-start}}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100svh;padding:32px;display:flex}.login-card{background:var(--bg-white);border:1px solid var(--bg-border);text-align:center;border-radius:16px;flex-direction:column;align-items:center;width:100%;max-width:420px;padding:48px 44px;display:flex;box-shadow:0 4px 24px #2d5f4a14}.login-back{color:var(--text-muted);align-self:flex-start;align-items:center;gap:6px;margin-bottom:32px;font-size:13px;transition:color .15s;display:flex}.login-back:hover{color:var(--text-secondary)}.login-back svg{width:14px;height:14px}.login-logo{color:var(--text-primary);letter-spacing:-1px;margin-bottom:24px;font-family:Switzer,sans-serif;font-size:36px;font-weight:700;line-height:1}.login-logo span{color:var(--green-accent)}.login-heading{color:var(--text-primary);letter-spacing:-.3px;margin-bottom:10px;font-size:20px;font-weight:700}.login-sub{color:var(--text-secondary);max-width:300px;margin-bottom:32px;font-size:14px;line-height:1.6}.login-ms-btn{border:1px solid var(--bg-border);background:var(--bg-white);width:100%;color:var(--text-primary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:12px;margin-bottom:24px;padding:13px 20px;font-size:15px;font-weight:600;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.login-ms-btn:hover{border-color:var(--green-accent);background:var(--bg);box-shadow:0 2px 12px #2d5f4a1f}.login-ms-icon{flex-shrink:0;width:20px;height:20px}.login-help{color:var(--text-muted);font-size:13px}.login-help a{color:var(--green-accent);text-underline-offset:2px;text-decoration:underline}.login-help a:hover{color:var(--green)}.portal{min-height:100svh;display:flex}.sidebar{background:var(--hero-bg);flex-direction:column;flex-shrink:0;width:240px;height:100svh;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-logo{letter-spacing:-.8px;color:var(--white);border-bottom:1px solid var(--hero-border);padding:28px 24px 24px;font-family:Switzer,sans-serif;font-size:26px;font-weight:700;line-height:1}.sidebar-logo span{color:var(--green-accent)}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:16px 12px;display:flex}.sidebar-link{color:#c8d8c8a6;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;transition:background .15s,color .15s;display:flex}.sidebar-link:hover{color:var(--text-on-dark);background:#ffffff0f}.sidebar-link.active{color:var(--white);background:#3d8f772e}.sidebar-link.active .sidebar-icon{color:var(--green-accent)}.sidebar-icon{width:18px;height:18px;color:inherit;flex-shrink:0}.sidebar-icon svg{width:100%;height:100%}.sidebar-footer{border-top:1px solid var(--hero-border);align-items:center;gap:8px;padding:16px 12px;display:flex}.sidebar-user{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.sidebar-avatar{background:var(--green);width:34px;height:34px;color:var(--white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.sidebar-user-info{flex-direction:column;min-width:0;display:flex}.sidebar-user-name{color:var(--text-on-dark);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.sidebar-user-email{color:#c8d8c873;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.sidebar-signout{color:#c8d8c866;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s,color .15s;display:flex}.sidebar-signout:hover{color:var(--text-on-dark);background:#ffffff14}.sidebar-signout svg{width:16px;height:16px}.portal-main{background:var(--bg);flex:1;min-width:0;overflow-y:auto}.page{max-width:1100px;padding:40px 48px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:36px;display:flex}.page-title{color:var(--text-primary);letter-spacing:-.5px;margin-bottom:4px;font-size:26px;font-weight:700}.page-sub{color:var(--text-secondary);font-size:14px}.btn-action{background:var(--green);color:var(--white);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:9px 20px;font-size:14px;font-weight:600;transition:background .15s,transform .1s}.btn-action:hover{background:var(--green-mid);transform:translateY(-1px)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:48px;display:grid}.stat-card{background:var(--bg-white);border:1px solid var(--bg-border);border-radius:12px;flex-direction:column;gap:4px;padding:24px;display:flex}.stat-value{color:var(--text-primary);letter-spacing:-1px;font-size:32px;font-weight:700;line-height:1}.stat-label{color:var(--text-primary);margin-top:6px;font-size:14px;font-weight:600}.stat-sub{color:var(--text-muted);font-size:12px}.section-title{color:var(--text-primary);letter-spacing:-.2px;margin-bottom:16px;font-size:16px;font-weight:700}.quick-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.quick-card{background:var(--bg-white);border:1px solid var(--bg-border);border-radius:12px;flex-direction:column;gap:4px;padding:20px 20px 16px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;position:relative}.quick-card:hover{border-color:var(--green-accent);transform:translateY(-2px);box-shadow:0 4px 20px #2d5f4a1a}.quick-label{color:var(--text-primary);font-size:14px;font-weight:700}.quick-desc{color:var(--text-secondary);font-size:13px}.quick-arrow{width:14px;height:14px;color:var(--green-accent);margin-top:12px;transition:transform .15s}.quick-card:hover .quick-arrow{transform:translate(3px)}.empty-state{text-align:center;color:var(--text-muted);border:1px dashed var(--bg-border);background:var(--bg-white);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 40px;display:flex}.empty-state svg{opacity:.4;width:40px;height:40px}.empty-state p{max-width:300px;font-size:14px}
