@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";:root{--bg:#f5f8f9;--surface:#fff;--surface-raised:#edf4f6;--surface-muted:#eef4f5;--surface-accent:#eef2fa;--border:#dce5e8;--border-bright:#c4d3d8;--border-accent:#d6dff0;--divider:#e6edef;--text:#1d2b30;--label:#354a50;--muted:#596d74;--subtle:#7d9096;--cyan:#1b2f6b;--cyan-bright:#2a4596;--cyan-dim:#1b2f6b;--on-cyan:#fff;--hover-accent:#f1f4fb;--focus-ring:#1b2f6b26;--danger:#b5473b;--success:#256747;--success-surface:#edf8f1;--success-border:#cce7d5;--success-signal:#8ad8ad;--warning:#7a5210;--warning-surface:#fdf6e7;--warning-border:#f0dcae;--warning-signal:#e6b663;--glow-cyan:#3b5bb855;--glow-cyan-soft:#3b5bb833;--shadow-card:0 18px 55px #243b4410, 0 0 32px #3b5bb808;--shadow-float:0 12px 40px #243b4424;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--gutter:6%;--touch:44px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;font-optical-sizing:auto;font-family:Manrope,system-ui,sans-serif;font-weight:400}*{box-sizing:border-box}body{background:var(--bg);-webkit-tap-highlight-color:transparent;min-width:320px;min-height:100dvh;margin:0}button,input,select,textarea{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.sr-only,.api-indicator-label{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{max-width:1440px;padding:var(--safe-top) max(var(--gutter), var(--safe-right)) 0 max(var(--gutter), var(--safe-left));margin:auto}.topbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;column-gap:12px;min-height:64px;display:flex}.brand{color:var(--text);letter-spacing:-.075em;white-space:nowrap;align-items:baseline;padding:10px 0;font-size:22px;font-weight:600;text-decoration:none;display:inline-flex}.brand-highlight{color:var(--cyan-dim);text-shadow:0 0 10px var(--glow-cyan), 0 0 24px var(--glow-cyan-soft)}.topbar nav{width:100%;height:var(--touch);border-top:1px solid var(--border);order:3;gap:24px;display:flex}.topbar nav a{color:var(--muted);align-items:center;font-size:13px;text-decoration:none;transition:color .18s;display:flex;position:relative}.topbar nav a:hover,.topbar nav a.nav-active{color:var(--text)}.nav-active:after{content:"";background:var(--cyan);height:2px;box-shadow:0 0 13px var(--glow-cyan);position:absolute;bottom:0;left:0;right:0}.api-indicator{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:8px;margin-left:auto;font:9px DM Mono,monospace;display:flex}.api-indicator i{background:var(--warning-signal);border-radius:50%;width:8px;height:8px}.api-indicator.online i{background:var(--success-signal);box-shadow:0 0 9px var(--success-signal)}.api-indicator.offline i{background:var(--danger);box-shadow:0 0 9px var(--danger)}.offline-banner{color:var(--warning);background:var(--warning-surface);border:1px solid var(--warning-border);margin:12px 0 0;padding:10px 14px;font-size:13px;line-height:1.5}.update-prompt{z-index:10;left:max(16px, var(--safe-left));right:max(16px, var(--safe-right));bottom:calc(16px + var(--safe-bottom));background:var(--surface);border:1px solid var(--border);max-width:480px;box-shadow:var(--shadow-float);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin:0 auto;padding:12px 16px;display:flex;position:fixed}.update-prompt p{margin:0;font-size:14px;font-weight:600}.update-prompt-actions{align-items:center;gap:16px;margin-left:auto;display:flex}.hero{border-bottom:1px solid var(--border);grid-template-columns:1fr;align-items:center;gap:35px;min-height:426px;padding:50px 0 56px;display:grid;position:relative}.eyebrow{letter-spacing:.14em;color:var(--cyan-dim);margin:0 0 22px;font:10px DM Mono,monospace}.hero h1{letter-spacing:-.075em;margin:0;font-size:clamp(40px,14vw,58px);font-weight:600;line-height:.99}.hero h1 em{color:var(--cyan-dim);text-shadow:0 0 22px var(--glow-cyan-soft);font-style:normal}.intro{color:var(--muted);max-width:355px;margin:23px 0 21px;font-size:15px;line-height:1.7}.text-link{color:var(--text);border-bottom:1px solid var(--border-bright);padding-bottom:6px;font-size:13px;text-decoration:none}.text-link span{color:var(--cyan);margin-left:8px}.text-button{min-height:var(--touch);cursor:pointer;background:0 0;border-top:0;border-left:0;border-right:0;align-items:flex-end;padding-left:0;padding-right:0;font-family:inherit;display:inline-flex}.hero-art{border:1px solid var(--border-accent);background:radial-gradient(at 55% 38%,#e4eaf7 0%,#eaeff8 42%,#edf0f5 78%);justify-self:start;width:100%;height:220px;position:relative;overflow:hidden}.hero-art:after{content:"";pointer-events:none;background:linear-gradient(135deg,#3b5bb81a 0%,#0000 45%,#3b5bb811 100%);position:absolute;inset:0}.art-sun{opacity:.85;filter:blur(1px);background:#9fb4e6;border-radius:50%;width:112px;height:112px;position:absolute;top:32px;right:48px;box-shadow:0 0 28px #5b7bd599,0 0 72px #3b5bb844}.art-arch{background:linear-gradient(145deg,#8ea6e0,#3b5bb8 52%,#1b2f6b);border-radius:90px 90px 0 0;width:155px;height:178px;padding:21px 21px 0;position:absolute;bottom:0;left:25%;box-shadow:0 0 35px #3b5bb822}.arch-inset{background:var(--surface-muted);border-radius:70px 70px 0 0;width:100%;height:100%}.art-plinth{background:linear-gradient(160deg,#4a69c4,#1b2f6b);width:94px;height:116px;position:absolute;bottom:0;right:0;box-shadow:0 0 30px #3b5bb822}.art-label{color:var(--subtle);letter-spacing:.08em;font:9px/1.6 DM Mono,monospace;position:absolute;top:20px;left:19px}.hero-index{color:var(--muted);font:10px DM Mono,monospace;position:absolute;bottom:19px;right:0}.hero-index span{color:var(--cyan);margin:0 8px}.projects{padding:35px 0 75px}.section-heading{justify-content:space-between;align-items:end;gap:12px;display:flex}.section-heading .eyebrow{margin-bottom:9px}.section-heading h2,.dashboard h1{letter-spacing:-.065em;margin:0;font:700 29px Manrope,sans-serif}.project-count{color:var(--subtle);white-space:nowrap;padding-bottom:7px;font:10px DM Mono,monospace}.empty-state{border:1px dashed var(--border-bright);background:linear-gradient(135deg, var(--surface), var(--surface-raised));text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:236px;margin-top:24px;padding:24px 15px;display:flex}.empty-mark{justify-content:center;align-items:center;gap:4px;width:47px;height:37px;margin-bottom:14px;display:flex}.empty-mark span{border:1px solid var(--subtle);width:10px;height:22px;display:block;transform:skewY(-24deg)}.empty-mark span:nth-child(2){border-color:var(--cyan);height:31px;box-shadow:0 0 12px var(--glow-cyan)}.empty-mark span:nth-child(3){height:17px}.empty-state h3{margin:0 0 7px;font-size:15px;font-weight:600}.empty-state>p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.coming-soon{background:var(--surface-accent);border:1px solid var(--border-accent);text-align:left;align-items:center;gap:9px;width:100%;margin-top:25px;padding:11px 14px;display:flex}.sparkle{color:var(--cyan);font-size:17px}.coming-soon div{flex-direction:column;gap:3px;display:flex}.coming-soon strong{font-size:12px;font-weight:600}.coming-soon div span{color:var(--muted);font-size:11px;line-height:1.4}.tag{letter-spacing:.06em;color:var(--cyan);margin-left:auto;font:8px DM Mono,monospace}footer{border-top:1px solid var(--border);padding:18px 0 calc(24px + var(--safe-bottom));color:var(--subtle);flex-wrap:wrap;justify-content:space-between;gap:8px;font:9px DM Mono,monospace;display:flex}footer span:first-child{color:var(--muted)}.nav-action,.primary-button,.google-button{cursor:pointer;font:600 13px Manrope,sans-serif;transition:background .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s}.nav-action{min-height:var(--touch);border:1px solid var(--border-bright);color:var(--text);background:0 0;padding:0 14px}.nav-action:hover{border-color:var(--cyan-dim);color:var(--cyan)}.primary-button{min-height:var(--touch);border:1px solid var(--cyan);background:var(--cyan);color:var(--on-cyan);padding:0 18px}.primary-button:hover:not(:disabled){background:var(--cyan-bright);border-color:var(--cyan-bright);box-shadow:0 0 24px var(--glow-cyan-soft)}.primary-button:disabled,.google-button:disabled{opacity:.65;cursor:not-allowed}.google-button{background:var(--surface);border:1px solid var(--border-bright);width:100%;height:46px;color:var(--text);justify-content:center;align-items:center;gap:10px;display:flex}.google-button:hover:not(:disabled){border-color:var(--cyan-dim);background:var(--hover-accent)}.google-mark{border:1px solid var(--border);width:20px;height:20px;color:var(--cyan);border-radius:50%;place-items:center;font-family:Arial,sans-serif;font-weight:700;display:grid}.back-link,.quiet-link{min-height:var(--touch);font:inherit;color:var(--cyan);cursor:pointer;background:0 0;border:0;align-items:center;padding:0;display:inline-flex}.quiet-link:hover,.back-link:hover{text-decoration:underline}.auth-card,.profile-card{background:var(--surface);border:1px solid var(--border);width:min(100%,480px);box-shadow:var(--shadow-card);margin:34px auto 54px;padding:24px 20px}.profile-card{width:min(100%,560px)}.back-link{margin:-10px 0 18px;font-size:13px}.auth-card>.eyebrow,.profile-card>.eyebrow{margin-bottom:12px}.auth-card h1,.profile-card h1{letter-spacing:-.065em;margin:0;font:700 29px Manrope,sans-serif}.auth-intro{color:var(--muted);margin:10px 0 25px;font-size:14px;line-height:1.65}.form-divider{color:var(--subtle);align-items:center;gap:12px;margin:21px 0;font-size:11px;display:flex}.form-divider:before,.form-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-form{flex-direction:column;gap:15px;display:flex}.auth-form>label,.project-create label,.member-form-fields label{color:var(--label);flex-direction:column;gap:7px;font-size:12px;font-weight:700;display:flex}.auth-form input:not([type=radio]),.project-create input,.project-create select,.member-form-fields input{height:var(--touch);border:1px solid var(--border-bright);background:var(--surface);min-width:0;color:var(--text);border-radius:0;outline:none;padding:0 12px;font:400 16px Manrope,sans-serif}.auth-form input:not([type=radio]):focus,.project-create input:focus,.project-create select:focus,.member-form-fields input:focus{border-color:var(--cyan-dim);box-shadow:0 0 0 3px var(--focus-ring)}.auth-form input[readonly]{color:var(--muted);background:var(--surface-muted)}.auth-switch,.forgot-link{color:var(--muted);font-size:13px}.auth-switch{text-align:center;margin:12px 0 0}.forgot-link{width:fit-content;color:var(--cyan);margin:8px auto 0;display:flex}.form-message{margin:0;font-size:13px;line-height:1.6}.form-message.error{color:var(--danger)}.form-message.success{color:var(--success);background:var(--success-surface);border:1px solid var(--success-border);padding:12px 13px}.profile-form{margin-top:24px}.account-type{border:1px solid var(--border);gap:0;margin:0;padding:10px 16px 6px;display:grid}.account-type legend{color:var(--label);padding:0 5px;font-size:12px;font-weight:700}.account-type label{min-height:var(--touch);color:var(--muted);cursor:pointer;align-items:center;gap:10px;font-size:14px;display:flex}.account-type input{width:20px;height:20px;accent-color:var(--cyan);margin:0}.field-hint{color:var(--subtle);margin:-4px 0 2px;font-size:12px;line-height:1.5}.loading-panel{text-align:center;min-height:300px;color:var(--muted);place-items:center;font:12px DM Mono,monospace;display:grid}.landing-button{min-width:190px;margin-top:22px}.project-create{flex-direction:column;align-items:stretch;gap:12px;margin:24px 0;display:flex}.project-create label{flex:1}.project-create .primary-button{width:100%}.project-grid{grid-template-columns:1fr;gap:14px;display:grid}.project-card{background:var(--surface);border:1px solid var(--border);width:100%;min-height:150px;color:var(--text);text-align:left;font:inherit;cursor:pointer;flex-direction:column;align-items:flex-start;padding:22px;transition:border-color .18s,transform .18s;display:flex}.project-card .eyebrow{margin-bottom:14px;font-size:9px}.project-card-title{letter-spacing:-.04em;overflow-wrap:anywhere;margin-bottom:16px;font:700 19px Manrope,sans-serif}.project-card-date{color:var(--subtle);font-size:12px}.project-card-action{color:var(--cyan);margin-top:auto;padding-top:14px;font-size:12px;font-weight:700}.project-loading{min-height:180px}.project-error{margin:-10px 0 20px}.team-section{border-top:1px solid var(--border);margin-top:58px;padding-top:34px}.team-heading{margin-bottom:20px}.team-heading h2{letter-spacing:-.055em;margin:0;font:700 29px Manrope,sans-serif}.team-card{background:var(--surface);border:1px solid var(--border);margin-bottom:16px;padding:17px}.team-card-heading{justify-content:space-between;align-items:start;gap:16px;display:flex}.team-card-heading h3{letter-spacing:-.04em;margin:0 0 5px;font:700 18px Manrope,sans-serif}.team-card-heading p{color:var(--subtle);margin:0;font-size:12px}.role-badge,.member-role{letter-spacing:.06em;color:var(--cyan);font:9px DM Mono,monospace}.member-list{margin:18px 0 0;padding:0;list-style:none}.member-list li{border-top:1px solid var(--divider);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.member-list li>span:first-child{flex-direction:column;gap:4px;min-width:0;display:flex}.member-list strong{font-size:13px;font-weight:700}.member-list small{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.member-role{color:var(--muted);letter-spacing:0}.member-form{border-top:1px solid var(--border);margin-top:12px;padding-top:17px}.member-form .eyebrow{margin:0 0 7px}.member-form .field-hint{margin:0 0 12px}.member-form-fields{grid-template-columns:1fr;align-items:end;gap:11px;display:grid}.member-form-fields .primary-button{width:100%}.team-error{margin-bottom:14px}@media (width>=400px){.api-indicator-label{clip:auto;white-space:nowrap;width:auto;height:auto;margin:0;position:static;overflow:visible}}@media (hover:hover){.project-card:hover{border-color:var(--cyan-dim);transform:translateY(-2px)}}@media (width>=700px){:root{--gutter:7.2%}.topbar{flex-wrap:nowrap;gap:64px;height:84px}.brand{font-size:25px}.topbar nav{border-top:0;order:0;gap:32px;width:auto;height:100%}.api-indicator{font-size:10px}.nav-action,.primary-button,.google-button{font-size:12px}.hero{grid-template-columns:1fr .9fr;gap:0;padding:70px 0 60px}.hero h1{font-size:clamp(46px,6vw,77px)}.text-link{font-size:12px}.hero-art{justify-self:end;max-width:390px;height:265px}.art-arch{left:91px}.hero-index{bottom:21px}.projects{padding-top:47px}.section-heading h2,.dashboard h1{font-size:34px}.empty-state{padding:28px}.empty-state>p{font-size:12px}.coming-soon{gap:12px;width:auto;min-width:min(100%,400px)}.coming-soon strong{font-size:11px}.coming-soon div span{font-size:10px;line-height:normal}.auth-card,.profile-card{margin:55px auto 85px;padding:38px 42px}.auth-card h1,.profile-card h1{font-size:34px}.auth-intro{font-size:13px}.back-link,.auth-form>label,.project-create label,.member-form-fields label{font-size:11px}.auth-form input:not([type=radio]),.project-create input,.project-create select,.member-form-fields input{font-size:13px}.auth-switch,.forgot-link,.form-message{font-size:11px}.account-type label{font-size:12px}.field-hint{font-size:10px}.loading-panel{min-height:380px}.project-create{flex-direction:row;align-items:end}.project-create .primary-button{width:auto}.project-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.project-card-date,.team-card-heading p{font-size:10px}.team-heading h2{font-size:30px}.team-card{padding:22px}.member-list strong{font-size:11px}.member-list small{font-size:10px}.member-form-fields{grid-template-columns:1fr 1fr auto}.member-form-fields .primary-button{width:auto}}.survey-editor{padding:20px 0 75px}.survey-back{margin:0 0 8px}.survey-header{margin-bottom:16px}.survey-header .eyebrow{margin-bottom:9px}.survey-header h1{letter-spacing:-.065em;overflow-wrap:anywhere;margin:0;font:700 25px Manrope,sans-serif}.survey-layout{flex-direction:column;gap:20px;display:flex}.survey-plan-panel{top:var(--safe-top);z-index:2;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-float);padding:8px;position:sticky}.survey-plan{margin:0}.survey-plan-svg{width:100%;height:auto;max-height:34dvh;display:block}.survey-plan-empty{text-align:center;min-height:120px;color:var(--muted);place-items:center;padding:16px;font:12px DM Mono,monospace;display:grid}.plan-floor{fill:var(--surface-raised);stroke:var(--text);stroke-linejoin:miter}.plan-opening{stroke:var(--surface-raised)}.plan-door-leaf{stroke:var(--text)}.plan-door-arc{fill:none;stroke:var(--muted)}.plan-window{stroke:var(--cyan-dim)}.plan-toilet{fill:var(--surface);stroke:var(--muted)}.plan-text{fill:var(--muted);font-family:DM Mono,monospace}.plan-dimension{fill:var(--label);letter-spacing:.04em}.plan-point circle,.plan-point rect,.plan-point line{fill:var(--surface)}.plan-point-hydraulic circle{stroke:var(--cyan)}.plan-point-electric rect{stroke:var(--warning)}.plan-point-drain rect,.plan-point-drain line{stroke:var(--text)}.plan-legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin:8px 0 0;padding:0;font:10px DM Mono,monospace;list-style:none;display:flex}.plan-legend abbr{color:var(--text);font-weight:500;text-decoration:none}.survey-form{flex-direction:column;gap:16px;min-width:0;display:flex}.survey-section{background:var(--surface);border:1px solid var(--border);padding:18px 16px}.survey-section h2{letter-spacing:-.04em;margin:0 0 6px;font:700 18px Manrope,sans-serif}.survey-section-hint{color:var(--muted);margin:0 0 14px;font-size:13px;line-height:1.5}.survey-grid{grid-template-columns:1fr;gap:14px;margin-top:12px;display:grid}.survey-field{flex-direction:column;gap:7px;min-width:0;display:flex}.survey-field label{color:var(--label);font-size:13px;font-weight:700}.survey-field input,.survey-field select,.survey-field textarea{width:100%;min-width:0;min-height:var(--touch);border:1px solid var(--border-bright);background:var(--surface);color:var(--text);border-radius:0;padding:0 12px;font:400 16px Manrope,sans-serif}.survey-field textarea{resize:vertical;padding:10px 12px;line-height:1.5}.survey-field input[aria-invalid=true],.survey-field textarea[aria-invalid=true]{border-color:var(--danger)}.survey-field-hint{color:var(--subtle);margin:0;font-size:12px}.survey-field-error{color:var(--danger);margin:0;font-size:13px;line-height:1.4}.survey-check{min-height:var(--touch);color:var(--label);cursor:pointer;align-items:center;gap:10px;font-size:14px;display:flex}.survey-check input{width:22px;height:22px;accent-color:var(--cyan);margin:0}.survey-row{background:var(--surface-muted);border:1px solid var(--border);margin-top:12px;padding:14px 12px}.survey-row-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.survey-row-heading h3{letter-spacing:.12em;text-transform:uppercase;color:var(--cyan-dim);margin:0;font:500 11px DM Mono,monospace}.survey-remove,.survey-add{min-height:var(--touch);border:1px solid var(--border-bright);color:var(--text);cursor:pointer;background:0 0;padding:0 16px;font:600 13px Manrope,sans-serif;transition:border-color .18s,color .18s}.survey-remove{color:var(--danger)}.survey-remove:hover,.survey-add:hover{border-color:var(--cyan-dim)}.survey-add{width:100%;color:var(--cyan);margin-top:14px}.survey-empty{color:var(--subtle);margin:8px 0 0;font-size:13px}.survey-actions{flex-direction:column;gap:12px;display:flex}.survey-actions .primary-button{width:100%;font-size:14px}@media (width>=700px){.survey-header h1{font-size:34px}.survey-section{padding:22px}.survey-grid{grid-template-columns:1fr 1fr}.survey-add{width:auto}.survey-actions .primary-button{align-self:flex-start;width:auto;min-width:220px}}@media (width>=1024px){.survey-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:28px;display:grid}.survey-plan-panel{top:calc(16px + var(--safe-top));box-shadow:none;padding:16px}.survey-plan-svg{max-height:72dvh}}
