@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#1f3030;--muted:#6e7c7a;--deep:#183f36;--green:#285b4d;--soft:#e9f2ed;--accent:#d2e3d6;--bg:#f5f7f4;--line:#dfe6df;--white:#fff;--warning:#8c5b24;--warnbg:#fcf4e7;--red:#9b4444;--dangerbg:#faeeee;--shadow:0 9px 35px rgba(20,44,36,.045)}
*{box-sizing:border-box}html{font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:var(--green)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #89bcb1;outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.52}.boot{padding:8rem 2rem;text-align:center;color:var(--muted)}
.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--deep);color:#f9fbf8;padding:27px 18px;display:flex;flex-direction:column;gap:25px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px;padding:0 8px}.brand-icon{width:42px;height:42px;display:grid;place-items:center;background:#416d5c;border:1px solid #618475;border-radius:14px;font-size:28px}.brand h1{font:800 18px/1.16 'Manrope',sans-serif;margin:0}.brand small{font-size:10px;color:#b6cec1;text-transform:uppercase;letter-spacing:.13em}.nav{display:grid;gap:5px}.nav-btn{background:none;color:#d2e5dc;border:0;border-radius:12px;padding:12px 13px;text-align:left;font-weight:600;display:flex;align-items:center;gap:12px;font-size:13px}.nav-btn:hover,.nav-btn.active{background:#356253;color:white}.nav-btn .nav-ico{font-size:18px;opacity:.94;min-width:23px}.sidefoot{margin-top:auto;border-top:1px solid #466d5f;padding:18px 12px;font-size:12px;color:#bad3c5;line-height:1.6}.sidefoot b{color:white}.sidefoot a{color:white}
.main{min-width:0;padding:30px 36px 95px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:30px}.crumb{font-size:12px;color:var(--muted)}.top-right{display:flex;align-items:center;gap:10px}.status-dot{height:8px;width:8px;border-radius:50%;display:inline-block;background:#55ab75}.status-dot.local{background:#dca65d}.pill{font-size:11px;font-weight:700;display:inline-flex;gap:7px;align-items:center;background:#edf4ed;color:#34594d;padding:7px 10px;border-radius:100px}.pill.local{color:#885b1b;background:var(--warnbg)}.page-head{display:flex;gap:18px;justify-content:space-between;align-items:start;margin-bottom:25px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:800;color:#648377;margin:0 0 9px}.page-head h2{font:800 clamp(24px,2.7vw,34px)/1.2 'Manrope',sans-serif;letter-spacing:-.04em;margin:0 0 9px}.page-head p{font-size:13px;color:var(--muted);margin:0;line-height:1.65;max-width:650px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:white;color:var(--ink);font-size:12px;font-weight:800;padding:11px 14px;border-radius:11px;line-height:1.2;white-space:nowrap}.btn:hover{border-color:#9bad9f;background:#fafdfa}.btn.primary{background:var(--deep);border-color:var(--deep);color:white}.btn.primary:hover{background:#2b5f4e}.btn.ghost{border:0;background:transparent}.btn.danger{color:var(--red);border-color:#efcccc}.btn.wide{width:100%}.link-button{border:0;background:none;color:var(--green);text-decoration:underline;font-size:12px;cursor:pointer}.stack{display:grid;gap:18px}.grid-2{display:grid;grid-template-columns:minmax(0,1.36fr) minmax(280px,.75fr);gap:18px}.panel{background:white;border:1px solid var(--line);border-radius:17px;padding:21px;box-shadow:var(--shadow);min-width:0}.panel h3{margin:0;font:800 14px 'Manrope',sans-serif}.panel-desc{margin:6px 0 16px;color:var(--muted);font-size:12px;line-height:1.55}.row-between{display:flex;align-items:center;justify-content:space-between;gap:10px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.stat{background:white;border:1px solid var(--line);border-radius:15px;padding:19px 18px}.stat b{font:800 27px/1 'Manrope',sans-serif;display:block;letter-spacing:-.04em;margin-top:6px}.stat small{font-size:11px;color:var(--muted)}.tabstrip{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0}.tab{padding:9px 13px;border:1px solid var(--line);border-radius:100px;background:white;font-size:11px;font-weight:750;color:#586a65}.tab.active{background:var(--soft);border-color:#bcd5c9;color:var(--deep)}
.item{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #edf0eb;text-align:left}.item:first-of-type{border-top:0}.item-main{flex:1;min-width:0}.item-title{font:800 13px/1.48 'Manrope',sans-serif;margin:0 0 5px}.item-sub{font-size:11px;color:var(--muted);line-height:1.5}.item button.item-open{font-size:12px;border:0;background:var(--soft);color:var(--green);font-weight:800;padding:9px 11px;border-radius:10px}.mark{height:34px;width:34px;border:1px solid var(--line);border-radius:11px;background:#f1f6f2;display:grid;place-items:center;color:var(--green);font-size:16px;flex-shrink:0}.tag{padding:5px 8px;font-size:10px;font-weight:800;background:#f0f2f0;border-radius:100px;color:#6b7570;display:inline-flex;align-items:center;white-space:nowrap}.tag.ready{background:#e6f3e9;color:#31654a}.tag.measure,.tag.inspect{background:#edf1fb;color:#365d87}.tag.approval,.tag.review{background:#f6eddf;color:#916020}.tag.safety,.tag.contractor{background:#faeeee;color:#a14e4d}.tag.done{background:#edf0ed;color:#6e7d70}.tag.purchase{background:#eef2f7;color:#53667d}.tag.later{background:#f1f1f1;color:#707070}.tag.local{background:#fcf4e7;color:#8c5b24}
.task-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:13px}.task{background:white;text-align:left;border:1px solid var(--line);border-radius:15px;padding:17px;min-height:155px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow)}.task:hover{border-color:#91b4a3;box-shadow:0 10px 25px #214e3b12}.task h3{font:800 13px/1.45 'Manrope';margin:0}.task small{color:var(--muted);font-size:11px;line-height:1.55}.task .task-footer{margin-top:auto;display:flex;gap:7px;align-items:center;flex-wrap:wrap}.task-id{font-size:10px;letter-spacing:.04em;color:#70817a;font-weight:800}.notice{border-radius:13px;padding:13px 15px;background:var(--soft);color:#385d50;font-size:12px;line-height:1.6;border:1px solid #d1e3d8}.notice.warn{background:var(--warnbg);color:var(--warning);border-color:#f1dcc0}.notice.alert{background:var(--dangerbg);color:var(--red);border-color:#eacbcb}.muted{color:var(--muted)}.compact{font-size:12px}.empty{padding:28px 14px;text-align:center;color:var(--muted);font-size:13px;line-height:1.6}.two-col-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.decision{padding:17px;background:white;border:1px solid var(--line);border-radius:14px;display:grid;gap:9px}.decision h3{font:800 13px/1.5 'Manrope';margin:0}.decision p{color:var(--muted);font-size:12px;line-height:1.6;margin:0}.decision-actions{display:flex;justify-content:space-between;gap:10px;align-items:center}
.searchbox{width:100%;padding:12px 14px;border-radius:11px;border:1px solid var(--line);background:white;font-size:13px}.tools{display:flex;gap:11px;align-items:center}.tools .searchbox{max-width:420px}.card-title{font:800 13px/1.4 'Manrope';margin:0}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.room{border:1px solid var(--line);background:white;border-radius:13px;overflow:hidden}.room-thumb{height:115px;display:grid;place-items:center;background:#e7ece6;color:#668273;font-size:12px}.room-thumb img{width:100%;height:100%;object-fit:cover}.room-content{padding:12px}.room-content h3{font:800 12px/1.4 'Manrope';margin:0 0 5px}.room-content p{color:var(--muted);margin:0;font-size:11px;line-height:1.55}.rowline{padding:13px 0;border-top:1px solid var(--line);display:flex;align-items:start;justify-content:space-between;gap:12px}.rowline:first-child{border-top:0}.checkline{display:flex;align-items:center;gap:12px}.checkline input{accent-color:var(--deep);width:18px;height:18px}.checkline b{font-size:13px}.checkline small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.purchase-line{display:flex;gap:10px;align-items:center}.inline-count{color:var(--muted);font-size:11px}
.overlay{position:fixed;inset:0;background:#14291fd0;z-index:90;display:flex;justify-content:flex-end;align-items:stretch}.sheet{background:white;width:min(560px,100%);height:100vh;overflow-y:auto;padding:24px;box-shadow:-10px 0 50px #0001}.sheet-head{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:16px}.sheet-head h2{font:800 20px/1.35 'Manrope';margin:5px 0}.close{border:0;background:#f0f3f0;width:34px;height:34px;border-radius:50%;font-size:20px}.sheet-body{display:grid;gap:14px}.field{display:grid;gap:6px;font-size:12px;font-weight:800;color:#415650}.field input,.field select,.field textarea{border:1px solid #d4dfd7;border-radius:10px;padding:11px 12px;font-size:13px;color:var(--ink);background:white;width:100%;font-weight:500;min-height:42px}.field textarea{min-height:90px;resize:vertical;line-height:1.5}.cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sheet-actions{position:sticky;bottom:-24px;margin:10px -24px -24px;padding:16px 24px 22px;display:flex;justify-content:flex-end;gap:8px;background:white;border-top:1px solid var(--line)}.link-photo{width:95px;height:84px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.photo-strip{display:flex;flex-wrap:wrap;gap:8px}.photo-list{display:grid;gap:9px}.small-link{font-size:12px;display:inline-flex;align-items:center;gap:5px}.step-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:12px}.step-row b{color:var(--ink)}.locked{max-width:480px;margin:7vh auto;background:#fff;padding:30px;border-radius:24px;border:1px solid var(--line);box-shadow:var(--shadow)}.locked h1{font:800 27px/1.3 'Manrope';margin:10px 0}.locked p{font-size:13px;color:var(--muted);line-height:1.6}.locked form{display:grid;gap:13px}.brand-center{font-size:34px;background:var(--deep);color:white;border-radius:16px;display:grid;place-items:center;width:57px;height:57px}.auth-actions{display:flex;justify-content:space-between;align-items:center;margin-top:7px;gap:10px}.mini-banner{background:#f9f1e3;border:1px solid #ead4ac;border-radius:12px;color:#875e2a;padding:11px 14px;font-size:12px;line-height:1.5;margin-bottom:18px}.photo-detail{max-width:100%;max-height:285px;object-fit:contain;border-radius:12px;background:#eee}#toast{position:fixed;right:20px;bottom:20px;background:#193d34;color:white;padding:13px 17px;border-radius:13px;box-shadow:0 13px 30px #163a2f30;opacity:0;transition:opacity .15s;pointer-events:none;font-size:12px;max-width:360px;z-index:200}#toast.show{opacity:1}.mobile-nav{display:none}.site-footer{margin-top:28px;font-size:11px;color:#94a198}
@media(max-width:1050px){.app-shell{grid-template-columns:215px 1fr}.main{padding:28px 24px 90px}.grid-2{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.app-shell{display:block}.sidebar{display:none}.main{padding:19px 17px 110px}.topbar{margin-bottom:25px}.crumb{font-size:11px}.page-head{gap:9px}.page-head h2{font-size:26px}.page-head .btn{padding:10px;font-size:11px}.stat-grid{gap:9px;margin-bottom:15px}.stat{padding:14px}.stat b{font-size:24px}.panel{padding:17px}.task-grid{grid-template-columns:1fr}.two-col-list{grid-template-columns:1fr}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;background:white;border-top:1px solid var(--line);padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom));justify-content:space-around;box-shadow:0 -5px 25px #00000008}.mobile-nav button{border:0;background:none;min-width:53px;display:grid;justify-items:center;gap:3px;color:#7b8b81;font-size:9px;font-weight:700;padding:6px 0}.mobile-nav button.active{color:var(--deep)}.mobile-nav .ico{font-size:19px}.overlay{align-items:end}.sheet{height:min(95vh,100%);width:100%;border-radius:20px 20px 0 0;padding:19px}.sheet-actions{bottom:-19px;margin:10px -19px -19px;padding:14px 19px calc(18px + env(safe-area-inset-bottom))}.cols{grid-template-columns:1fr}.locked{margin:7vh 14px;padding:23px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
