#root{min-height:100vh}:root{color:#132018;background:#f3efe4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 0 0,#5d794a38,#0000 34rem),linear-gradient(135deg,#f8f4e9 0%,#efe7d5 100%);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{color:#fffdf6;cursor:pointer;background:#275637;border:0;border-radius:999px;padding:.82rem 1.1rem;font-weight:800;transition:transform .16s,box-shadow .16s,background .16s;box-shadow:0 12px 24px #1836222e}button:hover{background:#1f442c;transform:translateY(-1px)}button.secondary{color:#24422e;box-shadow:none;background:#ede4cf}button.secondary:hover{background:#dfd0b2}.app-shell{width:min(1440px,100% - 32px);margin:0 auto;padding:32px 0 48px}.invite-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.invite-card{background:#fffdf6f5;border:1px solid #30442a24;border-radius:28px;width:min(620px,100%);padding:clamp(24px,6vw,48px);box-shadow:0 24px 80px #33302029}.invite-card h1{color:#17251b;margin:8px 0 16px;font-size:clamp(2rem,7vw,3.5rem);line-height:1}.invite-copy{color:#52604d;margin-bottom:24px;font-size:1.08rem;line-height:1.6}.invite-card form{gap:14px;display:grid}.invite-success{color:#275637;background:#e8f1df;border:1px solid #27563738;border-radius:16px;padding:18px}.invite-success p{color:#52604d;margin-bottom:0}.button-link{color:#fff;background:#275637;border-radius:12px;justify-content:center;align-items:center;margin-top:14px;padding:11px 16px;font-weight:800;text-decoration:none;display:inline-flex}.client-workspace-shell{width:min(1180px,100% - 32px);margin:0 auto;padding:32px 0 48px}.client-workspace-header{background:#fdfbf5;border-radius:24px;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:18px;padding:28px;display:flex;box-shadow:0 20px 50px #2a36261f}.client-workspace-header h1{margin:4px 0 8px}.client-projects{margin-bottom:18px}.client-project-list{flex-wrap:wrap;gap:10px;display:flex}.client-workspace-grid{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:18px;display:grid}.message-thread,.client-file-list{gap:10px;margin:16px 0;display:grid}.client-message,.client-file-list article{background:#f8f6ee;border:1px solid #27563726;border-radius:14px;padding:12px 14px}.client-message p{margin:6px 0 0}.client-file-list article{justify-content:space-between;align-items:center;gap:12px;display:flex}.client-workspace-error{margin-top:18px}.owner-access-shell{width:min(720px,100% - 32px);margin:0 auto;padding:48px 0}.owner-access-shell>.button-link{margin-top:18px}.owner-access-denied{text-align:left}.owner-communication-panel,.owner-invitation-panel{margin:18px 0}.owner-communication-grid{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:18px;margin-top:18px;display:grid}.invite-link-result{background:#e8f1df;border:1px solid #27563738;border-radius:16px;gap:8px;margin-top:14px;padding:14px;display:grid}.invite-link-result a{color:#275637;overflow-wrap:anywhere}.invite-link-result small{color:#52604d}.hero-card,.panel,.stats-grid article{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffdf6db;border:1px solid #30442a1f;border-radius:28px;box-shadow:0 24px 80px #3330201f}.hero-card{grid-template-columns:1fr minmax(280px,420px);align-items:center;gap:24px;padding:clamp(28px,4vw,56px);display:grid}.eyebrow{color:#7a5427;letter-spacing:.14em;text-transform:uppercase;margin:0 0 .5rem;font-size:.78rem;font-weight:900}h1,h2{color:#142719;margin:0;line-height:1.02}h1{max-width:920px;font-size:clamp(2.6rem,6vw,5.3rem)}h2{font-size:clamp(1.35rem,2.4vw,2.1rem)}.hero-copy{color:#52604f;max-width:780px;font-size:1.15rem;line-height:1.7}.approval-box{background:#f4edda;border:1px solid #27563738;border-radius:22px;padding:24px}.approval-box span,.badge{color:#7a5427;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;font-weight:900}.approval-box strong{margin-top:8px;font-size:1.5rem;display:block}.approval-box p{color:#5d654f;margin-bottom:0;line-height:1.5}.reset-button{margin-top:18px}.reset-confirmation{background:#fff0e8;border:1px solid #85302040;border-radius:16px;margin-top:14px;padding:14px}.approval-box .reset-confirmation strong{color:#853020;margin:0;font-size:1.05rem}.approval-box .reset-confirmation p{margin:6px 0 0}.reset-confirmation .button-row{margin-top:12px}.danger-button{background:#853020}.backend-readiness{background:#fffdf6b8;border:1px solid #2756372e;border-radius:18px;margin-top:18px;padding:14px}.backend-readiness span{color:#275637;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:950;display:block}.backend-readiness p{color:#5d654f;margin:.35rem 0 0;font-size:.92rem}.backend-readiness-error{background:#fff0e8;border-color:#85302040}.auth-preview{margin-top:20px}.auth-toggle{flex-wrap:wrap;gap:12px;display:flex}.auth-note,.auth-session-status,.auth-mode-copy{color:#5d654f;margin:1rem 0 0;line-height:1.55}.auth-session-status{color:#275637;background:#27563714;border-radius:999px;padding:8px 12px;font-size:.85rem;font-weight:800;display:inline-block}.auth-mode-copy{color:#24422e;border-left:4px solid #27563747;padding-left:14px;font-weight:800}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:20px 0;display:grid}.stats-grid article{padding:22px}.stats-grid span{color:#275637;font-size:2.5rem;font-weight:950;display:block}.stats-grid p{color:#5b6255;margin:.3rem 0 0;font-weight:800}.content-grid{grid-template-columns:minmax(320px,.82fr) minmax(420px,1.18fr);gap:20px;margin-top:20px;display:grid}.bottom-grid{grid-template-columns:minmax(320px,.9fr) minmax(320px,1.1fr)}.panel{padding:24px}.panel-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}label{color:#3e493c;gap:8px;margin-bottom:16px;font-size:.92rem;font-weight:850;display:grid}input,select,textarea{color:#17251b;background:#fffdf6;border:1px solid #2f442a2e;border-radius:16px;outline:none;padding:.86rem .95rem}textarea{resize:vertical;min-height:116px}input:focus,select:focus,textarea:focus{border-color:#275637;box-shadow:0 0 0 4px #2756371a}.two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.checkbox-row{align-self:end;align-items:center;min-height:48px;display:flex}.checkbox-row input{accent-color:#275637;width:18px;height:18px}.request-list,.crew-list{gap:16px;display:grid}.request-card,.crew-card,.ai-note,.schedule-note{background:#fffaf0;border:1px solid #30442a1f;border-radius:20px}.request-card{padding:18px}.request-topline,.crew-card,.inline-form,.button-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.request-topline strong{color:#17251b;font-size:1.1rem}.status,.badge{background:#ede4cf;border-radius:999px;padding:.42rem .7rem}.status-approved,.status-scheduled{color:#275637;background:#d9ead4}.status-needs-review,.status-needs-more-info{color:#7a5427;background:#f4ddbb}dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0;display:grid}dt{color:#7a7b70;text-transform:uppercase;font-size:.74rem;font-weight:900}dd{color:#26352a;margin:2px 0 0;font-weight:750}.ai-note,.schedule-note{color:#384436;margin-top:12px;padding:12px;line-height:1.45}.schedule-note{background:#eef5e7}.button-row{flex-wrap:wrap;justify-content:flex-start;margin-top:14px}.detail-panel{margin-top:20px}.detail-grid,.photo-grid{gap:16px;display:grid}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-card{background:#fffaf0;border:1px solid #30442a1f;border-radius:20px;padding:18px}.detail-card h3{color:#17251b;margin:0 0 12px}.form-error{color:#853020;background:#fff0e8;border:1px solid #85302040;border-radius:12px;margin:0 0 12px;padding:10px 12px;font-weight:800}.new-client-panel{background:#f7f3e7;border:1px solid #27563738;border-radius:18px;margin:16px 0;padding:16px}.new-client-panel legend{color:#275637;padding:0 6px;font-size:1.05rem;font-weight:950}.new-client-help{color:#5d654f;margin:0 0 12px}.duplicate-client-dialog{background:#fff4d8;border:1px solid #8554274d;border-radius:16px;margin-top:14px;padding:14px}.duplicate-client-dialog strong{color:#7a5427}.duplicate-client-dialog p{color:#5d654f;line-height:1.5}.edit-grid{margin-top:16px}.internal-note{color:#3e493c;background:#f8edda;border:1px solid #7a54272e;border-radius:20px;margin-top:12px;padding:12px;line-height:1.45}.structured-proposal{background:#e8f1df}.proposal-panel{background:#edf6e7;border:1px solid #2756372e;border-radius:20px;justify-content:space-between;align-items:center;gap:16px;margin-top:12px;padding:16px;display:flex}.proposal-panel h3,.proposal-panel p{margin:0}.proposal-panel h3{color:#275637;font-size:1.45rem}.proposal-panel small{color:#5b6255;margin-top:6px;font-weight:750;display:block}.audit-log{background:#fffaf0;border:1px solid #30442a1f;border-radius:20px;margin-top:16px;padding:16px}.compact-header{margin-bottom:8px}.audit-log h3{margin:0}.audit-log ol{gap:10px;margin:0;padding-left:1.2rem;display:grid}.audit-log li strong,.audit-log li span{display:block}.audit-log li span,.empty-note{color:#6a705f;margin:4px 0 0;font-size:.86rem}.photo-upload-block{margin-top:18px}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin-top:12px}.photo-card{background:#fffaf0;border:1px solid #30442a1f;border-radius:18px;margin:0;overflow:hidden}.photo-card img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.photo-card figcaption{color:#3e493c;word-break:break-word;padding:10px;font-size:.82rem;font-weight:800}.crew-card{padding:14px}.crew-card p{color:#5b6255;margin:4px 0 0}.inline-form{align-items:end;margin-top:16px}.inline-label{flex:1;margin-bottom:0}.boundary-list{color:#3c473a;gap:14px;margin:0;padding-left:1.1rem;line-height:1.6;display:grid}@media (width<=980px){.hero-card,.content-grid,.bottom-grid,.stats-grid,.client-workspace-grid,.owner-communication-grid{grid-template-columns:1fr}}@media (width<=640px){.app-shell{width:min(100% - 20px,1440px);padding-top:12px}.hero-card,.panel{border-radius:20px;padding:18px}.two-col,.detail-grid,dl{grid-template-columns:1fr}.inline-form,.proposal-panel,.request-topline,.panel-header{flex-direction:column;align-items:stretch}}
