/* ReviewGrow — login / signup / onboarding (green identity)
 *
 * NOT hand-written. Concatenation of the original design files, verbatim,
 * in the same cascade order the design's own pages load them.
 * Do not edit by hand: edit the source and re-run tools/build-assets.mjs.
 *
 *   app.css  (bf84580f63104ae9…)
 *   design-system.css  (03b170cb1410a950…)
 */

/* ===== app.css ===== */
:root{--forest:#173d2e;--ink:#183a2d;--muted:#5d7264;--line:#dce7da;--pale:#f4f8f1}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#f8faf7;font-family:'DM Sans',Arial,sans-serif;font-size:15px;line-height:1.6}a{color:#315e3f;text-decoration:underline;text-underline-offset:3px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #83ad6c;outline-offset:3px}.app-header{height:75px;background:white;border-bottom:1px solid #e4ebe1;display:flex;align-items:center}.app-header-inner{width:min(1120px,100%);padding:0 24px;margin:auto;display:flex;justify-content:space-between;align-items:center}.app-brand{display:flex;align-items:center;gap:9px;text-decoration:none;font-size:19px;font-weight:800;letter-spacing:-.8px;color:var(--ink)}.app-brand-mark{background:var(--forest);color:#d6ebc7;width:33px;height:33px;border-radius:9px;display:grid;place-items:center;font-size:24px}.app-brand b{font-weight:500;color:#526d5a}.header-link{font-size:13px;font-weight:700}.shell{max-width:580px;padding:48px 20px 90px;margin:0 auto}.shell.wide{max-width:800px}.back-link{font-size:13px;font-weight:700;display:inline-block;margin-bottom:20px}.card{background:white;border:1px solid var(--line);border-radius:10px;padding:clamp(24px,5vw,44px);box-shadow:0 12px 40px #183a2d08}.kicker{font-size:10px;letter-spacing:1.5px;color:#54755a;font-weight:800}.card h1{font-size:clamp(28px,5vw,38px);line-height:1.18;letter-spacing:-1.5px;margin:12px 0;font-weight:700}.card h2{font-size:23px;letter-spacing:-.7px;margin:0 0 10px}.intro,.muted{color:var(--muted)}.intro{margin:0 0 25px;line-height:1.75}.form-field{margin-top:17px}.form-field label,.field-label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.form-field input,.form-field select,.form-field textarea{display:block;width:100%;padding:12px 13px;background:#fff;border:1px solid #cddbcf;border-radius:6px;color:var(--ink);min-height:48px}.form-field textarea{min-height:98px;resize:vertical}.form-field input::placeholder,.form-field textarea::placeholder{color:#87988a}.hint{font-size:12px;color:#607567;margin:5px 0 0}.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:50px;border-radius:6px;border:1px solid transparent;padding:0 20px;font-size:13px;font-weight:700;text-decoration:none;transition:background .2s,transform .2s}.button:hover{transform:translateY(-1px)}.button-dark{background:var(--forest);color:white}.button-dark:hover{background:#24533c}.button-outline{background:#fff;color:var(--ink);border-color:#cddbcf}.button:disabled{opacity:.6;cursor:wait;transform:none}.form-actions{display:flex;gap:10px;margin-top:25px}.form-actions .button{flex:1}.form-foot{text-align:center;font-size:13px;color:var(--muted);margin:23px 0 0}.status{padding:12px 14px;border-radius:6px;font-size:13px;margin:18px 0;background:#eef5e9;color:#355b3d}.status.error{background:#fff2ef;color:#8d332d}.status:empty{display:none}.steps-label{display:flex;justify-content:space-between;align-items:center;color:#597760;font-size:12px;font-weight:700;margin-bottom:12px}.progress{height:5px;background:#e7eee4;border-radius:8px;margin-bottom:29px;overflow:hidden}.progress span{display:block;background:#668f69;height:100%;width:33%;transition:width .25s ease}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.span-two{grid-column:1/-1}.check-group{display:flex;gap:10px;flex-wrap:wrap}.check-group label{display:flex;gap:8px;align-items:center;padding:9px 12px;border:1px solid var(--line);border-radius:5px;font-size:13px;font-weight:600}.check-group input{accent-color:var(--forest);width:17px;height:17px;margin:0}.wizard-heading{margin-bottom:20px}.wizard-heading p{margin:0;color:var(--muted)}.success-icon{display:grid;place-items:center;width:52px;height:52px;background:#e8f2e3;color:#4a7952;border-radius:50%;font-size:25px;margin-bottom:20px}.dashboard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.dashboard-list{margin:25px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:16px}.dashboard-item{border:1px solid #e4ede2;border-radius:6px;padding:16px;min-width:0}.dashboard-item span{display:block;color:#647c68;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px}.dashboard-item p{margin:7px 0 0;overflow-wrap:anywhere}.loading{text-align:center;padding:55px 20px;color:var(--muted)}.spinner{display:inline-block;width:18px;height:18px;border:2px solid #cbdcc8;border-top-color:#366446;border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle;margin-right:9px}@keyframes spin{to{transform:rotate(360deg)}}[hidden]{display:none!important}@media(max-width:550px){.shell{padding:30px 16px 60px}.card{padding:25px 20px}.form-grid,.dashboard-list{grid-template-columns:1fr}.span-two{grid-column:auto}.dashboard-head{display:block}.dashboard-head .button{margin-top:15px}.app-header-inner{padding:0 16px}.form-actions{flex-wrap:wrap}.form-actions .button{min-width:120px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}


/* ===== design-system.css ===== */
/* ReviewGrow shared visual system: applied after the existing page styles. */
:root{--rg-forest:#173c2d;--rg-forest-hover:#245640;--rg-ink:#172c22;--rg-muted:#5c6d63;--rg-ivory:#f7f8f4;--rg-mint:#e6f1e2;--rg-border:#dfe7dd;--rg-radius:10px;--rg-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--rg-shadow:0 12px 35px rgba(24,58,43,.06)}
body{font-family:var(--rg-font);color:var(--rg-ink);-webkit-font-smoothing:antialiased}h1,h2,h3,.brand,.app-brand{font-family:var(--rg-font)}a,button,input,textarea,select{font-family:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #8ab686;outline-offset:3px}.button{border-radius:7px;min-height:50px;transition:background .2s ease,box-shadow .2s ease,transform .2s ease,border-color .2s ease}.button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 7px 18px rgba(24,58,43,.12)}.button:active:not(:disabled){transform:translateY(0);box-shadow:none}.button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.button-dark{background:var(--rg-forest);color:white}.button-dark:hover:not(:disabled){background:var(--rg-forest-hover)}.button-outline{background:#fff;border-color:#d3dfd2;color:var(--rg-forest)}.button-small{min-height:42px}.brand,.app-brand{letter-spacing:-.6px}.section-kicker,.eyebrow,.kicker{letter-spacing:1.3px;color:#4e7456}.section h2,.faq h2,.final-cta h2{letter-spacing:-2px}.section h2 em,.faq h2 em,.final-cta h2 em,.hero h1 em{font-family:inherit;font-weight:inherit;font-style:normal;letter-spacing:inherit;color:#4e7d57}.header{background:rgba(255,255,255,.97)}.desktop-nav{font-size:14px}.hero{padding:80px 0 88px}.hero-grid{gap:64px}.hero h1{font-family:var(--rg-font);font-size:clamp(46px,4.55vw,62px);font-weight:650;line-height:1.1;letter-spacing:-3.3px;margin:28px 0 24px}.hero-description{font-size:16px;line-height:1.8;color:#586c5e}.hero-art{background:#eaf1e6;border:1px solid #e1eade;border-radius:14px;box-shadow:var(--rg-shadow)}.hero-note{font-size:12px}.qr-card{border-radius:10px;box-shadow:0 16px 45px #1d4e3326}.phone{box-shadow:0 18px 40px #1b4a3035}.use-cases{background:#f7f9f6}.categories span{border-radius:7px;padding:10px 15px}.section{padding:110px 0}.features{background:#f8faf7}.feature-card,.price-card,.demo-panel{border-radius:10px}.feature-card,.price-card{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.feature-card:hover,.price-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(24,58,43,.06);border-color:#ceddcb}.feature-card h3,.step h3{letter-spacing:-.25px}.feature-primary{background:#e8f1e3}.demo-section{background:#173d2e}.demo-panel{box-shadow:0 20px 55px #09221935}.demo-language{display:flex;align-items:center;gap:9px;font-size:12px;color:#617767;margin:14px 0 0}.demo-language strong{color:#315e3f;background:#eef5e9;padding:3px 8px;border-radius:5px}.demo-language small{margin:0!important;text-align:left!important}.pricing .price-card{border-color:#dce6da}.pricing .featured-price{border-color:#93b68c}.faq{background:#f8faf7}.faq-list summary{font-size:15px}.final-cta{background:#e5f0e2}.footer{background:white}.footer-links>div{font-size:13px}.footer-links span,.footer-bottom{color:#617667}.dashboard-story{background:#fff}.dashboard-story-grid{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:70px}.dashboard-story h2{font-size:clamp(36px,3.6vw,49px);margin:16px 0}.dashboard-story p{color:#5e7364;line-height:1.85;max-width:420px}.text-link{font-weight:700;font-size:13px;color:#25523a;text-decoration:underline;text-underline-offset:4px;display:inline-flex;gap:12px;margin-top:12px}.dashboard-story .preview-disclaimer{font-size:11px;color:#6a806c;margin-top:27px}.dashboard-mock{border:1px solid #dce7d9;border-radius:12px;background:#fff;box-shadow:0 20px 65px #21492b12;overflow:hidden}.mock-bar{height:51px;display:flex;justify-content:space-between;align-items:center;padding:0 18px;border-bottom:1px solid #e9efe7;font-size:9px;color:#6f8673;letter-spacing:1px;font-weight:700}.mock-brand{display:flex;align-items:center;gap:7px;letter-spacing:-.2px;color:#244b31;font-size:11px}.mock-brand i{display:grid;place-items:center;background:#1c4b34;color:#e1f0d7;border-radius:5px;width:22px;height:22px;font-size:15px;font-style:normal}.mock-body{display:grid;grid-template-columns:132px 1fr;min-height:287px}.mock-body aside{border-right:1px solid #ebf0e9;padding:18px 10px;display:flex;flex-direction:column;gap:7px;color:#728878;font-size:10px}.mock-body aside span{padding:7px;border-radius:4px}.mock-active{background:#eaf3e6;color:#315b39;font-weight:700}.mock-main{background:#f9fbf8;padding:24px}.mock-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.mock-title small{display:block;color:#75927b;letter-spacing:1px;font-size:8px;font-weight:700}.mock-title strong{display:block;font-size:15px;margin-top:4px}.mock-title>span{font-size:8px;color:#537a59;padding:5px 7px;background:#edf5e9;border-radius:20px}.mock-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:19px}.mock-metrics div{background:white;border:1px solid #e7eee5;border-radius:6px;padding:11px;min-width:0}.mock-metrics small,.mock-metrics span{display:block;color:#69806d;font-size:9px}.mock-metrics b{display:block;font-size:20px;margin:7px 0}.mock-empty{margin-top:10px;border:1px solid #e7eee5;border-radius:6px;background:white;padding:16px;text-align:center}.mock-empty span,.mock-empty strong,.mock-empty small{display:block}.mock-empty span{color:#739b75;font-size:17px}.mock-empty strong{font-size:10px}.mock-empty small{font-size:9px;color:#6e8370}.app-header{height:78px}.shell{padding-top:55px}.shell .card{border-radius:12px;box-shadow:0 18px 50px rgba(22,54,35,.06)}.card h1{letter-spacing:-1.6px}.form-field input,.form-field select,.form-field textarea,.field input:not([type=checkbox]),.field select,.field textarea{border-radius:7px;border-color:#d3dfd2}.form-field input:hover,.form-field textarea:hover,.field input:hover,.field textarea:hover{border-color:#a7c2a5}.layout .sidebar{background:#fff}.layout .topbar{background:rgba(255,255,255,.97)}.layout .content{padding-top:40px}.layout .page-heading h1{letter-spacing:-1.6px}.layout .stat,.layout .panel{border-radius:10px;box-shadow:0 5px 22px #173d2e06}.layout .nav a.active{background:#eaf3e6;color:#204d33}.layout .stat{transition:transform .2s ease,box-shadow .2s ease}.layout .stat:hover{transform:translateY(-2px);box-shadow:0 10px 25px #173d2e0b}.layout .empty-icon{border-radius:8px}.layout .placeholder{background:#fff}.layout .empty-chart{background:repeating-linear-gradient(to bottom,transparent 0,transparent 50px,#eef3ed 51px)}
@media(max-width:850px){.dashboard-story-grid{grid-template-columns:1fr;gap:30px}.hero-grid{gap:35px}.hero h1{font-size:47px;letter-spacing:-2.4px}}
@media(max-width:650px){.hero{padding:44px 0 52px}.hero h1{font-size:clamp(38px,10vw,46px);letter-spacing:-2px}.hero-grid{grid-template-columns:1fr}.section{padding:75px 0}.dashboard-story h2{font-size:36px}.mock-body{grid-template-columns:90px 1fr}.mock-body aside{font-size:8px;padding:14px 5px}.mock-body aside span{padding:7px 4px}.mock-main{padding:14px}.mock-metrics{gap:5px}.mock-metrics div{padding:8px}.mock-metrics small,.mock-metrics span{font-size:8px}.mock-title strong{font-size:13px}.mock-title>span{display:none}.app-header{height:70px}.shell{padding-top:30px}.layout .content{padding-top:28px}.demo-language{flex-wrap:wrap}.button:hover:not(:disabled){transform:none}}
@media(max-width:350px){.hero h1{font-size:37px}.mock-body{grid-template-columns:1fr}.mock-body aside{display:none}.mock-main{padding:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal,.js-motion .reveal{opacity:1!important;transform:none!important}}
/* Shared button primitives also support the standalone marketing pages. */
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:0 20px;border:1px solid transparent;font-size:13px;font-weight:700;text-decoration:none;line-height:1.3;text-align:center}
.button-outline{border-color:#d3dfd2}
.button-small{min-height:42px;padding:0 18px}
.coming-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:1050px}.coming-info{padding:32px}.coming-info .empty-icon{margin:0 0 20px}.coming-info h2{font-size:19px}.coming-info p,.coming-visual p{color:#617667;font-size:13px;line-height:1.8;max-width:420px}.coming-info .button{margin-top:13px}.coming-visual{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;min-height:280px;background:#f8fbf6}.coming-visual p{margin:4px 0}.qr-illustration{width:100px;height:100px;border:1px solid #dbe8d8;border-radius:9px;background:white;display:grid;place-items:center;color:#7e9c80;font-size:68px;line-height:1;margin-bottom:15px}.coming-table{margin-top:24px;border:1px solid #e4ece2;border-radius:7px;overflow:hidden}.coming-table-head{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;padding:13px 16px;background:#f8faf7;color:#607867;font-size:10px;font-weight:800;letter-spacing:1px}.coming-table-empty{padding:45px 20px;text-align:center}.coming-table-empty strong{font-size:13px}.coming-table-empty p{color:#617667;font-size:12px;margin:5px 0}@media(max-width:650px){.coming-layout{grid-template-columns:1fr}.coming-info{padding:24px}}
/* Contrast and readable secondary copy on both light and dark surfaces. */
.dashboard-story .preview-disclaimer,.mock-bar,.mock-body aside,.mock-title small,.mock-title>span,.mock-metrics small,.mock-metrics span,.mock-empty small{color:#4b6651}
.demo-section .light-kicker{color:#b9d9b2}.demo-section h2 em{color:#d7e9d2}
.public-footer-main .public-brand b,.public-footer-main p,.public-footer-bottom,.public-plan>small,.public-price small{color:#4b6651}
.step p,.feature-card>p,.price-card li,.price-card>p,.faq-list details p{font-size:13px}
@keyframes rg-soft-appear{from{opacity:.5}to{opacity:1}}
@keyframes rg-page-enter{from{opacity:.65;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.hero-art.visible .qr-card{animation:rg-soft-appear .55s ease both}.hero-art.visible .phone{animation:rg-soft-appear .7s ease both}.public-hero,.public-body{animation:rg-page-enter .35s ease both}.layout #main-content>*{animation:rg-page-enter .3s ease both}
@media(prefers-reduced-motion:reduce){.hero-art.visible .qr-card,.hero-art.visible .phone,.public-hero,.public-body,.layout #main-content>*{animation:none!important}}
.test-code-panel{max-width:1050px;margin-top:16px}.test-code-panel>p{color:#617667;font-size:13px}.test-code-panel form{max-width:500px}.test-code-list{margin-top:22px;color:#536c59;font-size:13px}.test-code-list strong,.test-code-link{display:block}.test-code-link{color:#245640;text-decoration:underline;text-underline-offset:3px;margin-top:8px;overflow-wrap:anywhere}

