:root{font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#102744;background:#f3f7fc;--navy:#102744;--blue:#147dec;--muted:#5b6d83;--line:#d9e3ef}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{min-height:46px;border:0;border-radius:10px;background:var(--blue);color:white;padding:10px 18px;font-weight:650;cursor:pointer}button:disabled{opacity:.5;cursor:default}button.secondary{background:#e9f1fb;color:var(--navy)}button.ghost{background:transparent;color:var(--blue);padding:6px 12px}button.danger{background:#fff0f0;color:#a32d39}button.small{font-size:.9rem}button:focus-visible,a:focus-visible{outline:3px solid #66b6ff;outline-offset:2px}
header{background:var(--navy);color:white;padding:22px max(20px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;gap:16px}header h1{font-size:1.5rem;letter-spacing:-.03em;margin:0}header small{color:#bcd1ed}header button.secondary{background:#274364;color:white}header .account{text-align:right;font-size:.85rem}.logo{display:flex;align-items:center;gap:10px}.logo img{width:42px;height:42px}main{max-width:1120px;margin:auto;padding:24px 20px 112px}h2{font-size:1.75rem;letter-spacing:-.035em;line-height:1.2;margin:0 0 10px}h3{font-size:1.1rem;margin:0 0 12px}p{margin:0 0 16px}p.muted,.muted{color:var(--muted)}.eyebrow{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);font-weight:750}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.stack>*+*{margin-top:18px}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 3px 15px #10274405}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;color:#314a68;font-weight:600;font-size:.9rem}.field small{font-size:.78rem;font-weight:400;color:var(--muted)}input,select,textarea{width:100%;background:#fff;border:1px solid #c7d5e5;border-radius:9px;padding:10px 12px;color:var(--navy);min-height:46px;font-weight:400;font-size:16px}textarea{resize:vertical;min-height:84px}input:focus,textarea:focus,select:focus{outline:2px solid #8dc5ff;outline-offset:1px}input[type=checkbox]{width:20px;min-height:20px;margin-right:8px}.check{display:flex;align-items:center;gap:8px;min-height:46px}.check input{flex:none}.badge{display:inline-block;font-size:.74rem;font-weight:700;padding:4px 9px;border-radius:20px;background:#edf3fb;color:#465f7c}.badge.ready{color:#126445;background:#e3f6ef}.badge.pending{color:#805608;background:#fff4cf}.notice{padding:14px 16px;border-radius:12px;background:#e8f2ff;border:1px solid #c1dbff;margin-bottom:20px}.notice.warning{background:#fff8e7;border-color:#f4dfb0;color:#775112}.notice.error{background:#fff0f1;border-color:#edbdc2;color:#96313b}.price{font-size:2.6rem;font-weight:760;letter-spacing:-.05em;line-height:1.15}.price small{font-size:.95rem;font-weight:400;letter-spacing:0;color:var(--muted)}.metric{font-size:1.35rem;font-weight:700}.metric-label{font-size:.8rem;color:var(--muted)}.tabs{display:flex;gap:4px;padding:5px;background:#e5edf8;border-radius:12px;margin:18px 0;overflow-x:auto}.tabs button{background:transparent;color:#45607e;flex:1;white-space:nowrap;padding:8px 12px}.tabs button.active{background:white;color:var(--navy);box-shadow:0 2px 8px #10274412}.task{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.task summary{font-weight:650;cursor:pointer;min-height:44px;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}.task summary:after{content:'＋';color:var(--blue)}.task[open] summary:after{content:'−'}.toolbar{position:fixed;bottom:0;left:0;right:0;background:#fffffff2;backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:12px 20px calc(12px + env(safe-area-inset-bottom));z-index:5}.toolbar>div{max-width:1080px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:10px}.toolbar .row{flex-wrap:nowrap}.divider{border-top:1px solid var(--line);margin:18px 0}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.project{width:100%;text-align:left;background:white;color:var(--navy);padding:22px;border:1px solid var(--line);border-radius:16px;font-weight:400}.project strong{font-size:1.1rem;display:block;margin:10px 0}.project .muted{font-size:.84rem}.signin{max-width:480px;margin:28px auto}.empty{padding:44px;text-align:center}.error-list{padding-left:22px;margin-bottom:0}.error-list li{margin:8px 0}.list-row{padding:16px 0;border-top:1px solid var(--line)}.dialog-backdrop{position:fixed;inset:0;background:#10274488;display:flex;align-items:center;justify-content:center;padding:20px;z-index:10}.dialog{background:white;border-radius:18px;padding:24px;max-width:640px;width:100%;max-height:85vh;overflow:auto}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.statusline{font-size:.8rem;color:var(--muted)}.wide{grid-column:1/-1}.heading{margin-bottom:20px}
@media(max-width:720px){header{padding:16px 18px}header small{font-size:.72rem}.account span{display:none}main{padding:22px 16px 115px}.card{padding:18px}.projects{grid-template-columns:1fr}.grid.three{grid-template-columns:1fr 1fr}.grid{gap:12px}.field{margin-bottom:12px}h2{font-size:1.55rem}.toolbar{padding-left:16px;padding-right:16px}.toolbar .statusline{max-width:42%;line-height:1.25}.toolbar button{padding:10px 14px}.dialog{padding:20px}.price{font-size:2.2rem}.tabs{margin:16px 0}.tabs button{font-size:.9rem;padding:8px}.row.tight{gap:6px}.stack>*+*{margin-top:14px}}
@media(max-width:390px){.grid.three{grid-template-columns:1fr}.tabs button{padding:8px}.toolbar .statusline{font-size:.72rem}}
.bathroom-helper{margin-bottom:18px}.fixture-checklist{padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fbff}.fixture-counter{display:grid;grid-template-columns:46px minmax(0,1fr) 46px 64px;gap:8px;align-items:center}.fixture-counter button{padding:8px 4px}.fixture-counter input{text-align:center;padding:10px 4px}
.measurement-summary{padding:14px 16px;background:#e8f2ff;border:1px solid #c1dbff;border-radius:12px;margin:0 0 18px}.measurement-summary strong,.measurement-summary small{display:block}.measurement-summary small{color:var(--muted);margin-top:5px;font-size:.8rem}.task summary:focus-visible{outline:3px solid #66b6ff;outline-offset:2px;border-radius:6px}
@media(prefers-reduced-motion:no-preference){button,.project{transition:background .15s ease,box-shadow .15s ease}.project:hover{box-shadow:0 6px 20px #1027440e}}
