:root{--blue:#2050c2;--blue-dark:#163c95;--blue-tint:#eaf0fb;--green:#1e9e5e;--green-soft:#e6f4ed;--teal:#0f5f65;--teal-soft:#e0eeef;--ink:#0e1626;--ink-soft:#57617a;--ink-mute:#8892a6;--line:#e4e7ee;--line-soft:#f1f3f8;--bg:#fff;--bg-alt:#f6f8fc;--radius:14px;--radius-sm:10px;--shadow-sm:0 1px 3px #0f28500a, 0 1px 2px #0f28500f;--shadow:0 4px 12px #0f28500f, 0 12px 28px #0f285014;--shadow-lg:0 12px 32px #0f28501a, 0 24px 56px #0f28501f;--grad-brand:linear-gradient(135deg, var(--blue) 0%, var(--teal) 55%, var(--green) 100%);--grad-brand-soft:linear-gradient(135deg, var(--blue-tint) 0%, var(--teal-soft) 55%, var(--green-soft) 100%)}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{color:var(--ink);background:var(--bg-alt);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.55}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}html,body{background:radial-gradient(1100px 460px at 90% -10%, #2050c20f, transparent 70%), radial-gradient(900px 460px at -10% 110%, #1e9e5e0d, transparent 70%), var(--bg-alt);background-attachment:fixed}body{letter-spacing:-.005em}.app{flex-direction:column;min-height:100%;display:flex}.topbar{z-index:30;-webkit-backdrop-filter:saturate(180%)blur(14px);background:#ffffffb8;border-bottom:1px solid #e4e7eeb3;justify-content:space-between;align-items:center;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.4px;color:var(--ink);background:0 0;border:none;border-radius:10px;align-items:center;gap:12px;padding:6px 10px 6px 6px;font-size:18px;font-weight:800;transition:background .15s;display:inline-flex}.brand:hover{background:var(--line-soft);text-decoration:none}.brand-logo{object-fit:cover;border-radius:9px;width:32px;height:32px;display:block;box-shadow:0 1px 2px #0f28501a,inset 0 0 0 1px #0f28500f}.brand-name{line-height:1}.account{align-items:center;gap:12px;display:flex}.account-email{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;background:var(--line-soft);border-radius:999px;max-width:220px;padding:4px 10px;font-size:13px;overflow:hidden}.account-menu{position:relative}.account-button{border:1px solid var(--line);color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm);background:#fff;border-radius:999px;align-items:center;gap:9px;padding:5px 12px 5px 5px;font-size:14px;font-weight:600;transition:all .15s;display:inline-flex}.account-button:hover{border-color:var(--blue);color:var(--blue)}.account-avatar{background:var(--grad-brand);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:grid}.account-chev{color:var(--ink-mute);margin-left:-2px;font-size:11px}.account-popover{border:1px solid var(--line);min-width:260px;max-width:320px;box-shadow:var(--shadow-lg);z-index:50;background:#fff;border-radius:14px;padding:6px;animation:.15s both fadeUp;position:absolute;top:calc(100% + 8px);right:0}.account-popover-head{align-items:center;gap:12px;padding:12px 12px 10px;display:flex}.account-popover-avatar{background:var(--grad-brand);color:#fff;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;font-size:17px;font-weight:700;display:grid}.account-popover-meta{flex:1;min-width:0}.account-popover-name{color:var(--ink-mute);text-transform:uppercase;letter-spacing:.7px;font-size:12px;font-weight:700}.account-popover-email{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.account-popover-sep{background:var(--line);height:1px;margin:4px 6px}.account-popover-item{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:9px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:14px;text-decoration:none;display:flex}.account-popover-item:hover{background:var(--line-soft);text-decoration:none}.account-popover-item.danger{color:#c0392b}.account-popover-item.danger:hover{background:#fdecea}.settings-page{max-width:720px}.settings-section{margin-top:20px}.settings-card{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff;border-radius:14px;overflow:hidden}.settings-row{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;display:flex}.settings-row:last-child{border-bottom:none}.settings-row-label{color:var(--ink-mute);text-transform:uppercase;letter-spacing:.6px;font-size:13px;font-weight:700}.settings-row-value{color:var(--ink);margin-top:3px;font-size:15px;font-weight:500}.settings-link{color:var(--blue);font-size:14px;font-weight:600}.badge{letter-spacing:.6px;background:var(--line-soft);color:var(--ink-mute);text-transform:uppercase;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:all .18s;display:inline-flex}.btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.btn-primary{color:#fff;background:var(--grad-brand);background-position:0 0;background-size:160% 160%;box-shadow:0 1px 2px #0f285026,0 6px 14px #2050c240}.btn-primary:hover{background-position:100% 100%;transform:translateY(-1px);box-shadow:0 1px 2px #0f285026,0 10px 22px #2050c24d}.btn-ghost{color:var(--ink);border-color:var(--line);box-shadow:var(--shadow-sm);background:#fff}.btn-ghost:hover{border-color:var(--blue);color:var(--blue)}.btn-lg{padding:14px 28px;font-size:16px}.content{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:32px 28px 64px}.hero{text-align:center;max-width:640px;margin:9vh auto 0;animation:.5s both fadeUp}.hero h1{letter-spacing:-1.4px;background:linear-gradient(135deg, var(--ink) 30%, var(--blue) 75%, var(--teal) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:20px;font-size:46px;line-height:1.05}.hero p{color:var(--ink-soft);margin-bottom:28px;font-size:18px}.hero-note{color:var(--ink-soft);border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff;border-radius:999px;align-items:center;gap:8px;margin-top:22px;padding:10px 16px;font-size:13px;display:inline-flex}.hero-note:before{content:"🔒";font-size:13px}.projects-head{justify-content:space-between;align-items:center;margin-bottom:22px;animation:.4s both fadeUp;display:flex}.projects-head h2{letter-spacing:-.7px;font-size:28px;font-weight:800}.muted{color:var(--ink-soft)}.error{color:#c0392b}.sort{border:1px solid var(--line);color:var(--ink);box-shadow:var(--shadow-sm);appearance:none;cursor:pointer;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2357617A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") right 10px center no-repeat;border-radius:10px;padding:9px 32px 9px 14px;font-size:13px;font-weight:500}.sort:hover{border-color:var(--blue)}.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;animation:.45s both fadeUp;display:grid}.card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);color:inherit;background:#fff;text-decoration:none;transition:all .22s;display:block;position:relative;overflow:hidden}.card:after{content:"";border-radius:inherit;pointer-events:none;transition:all .2s;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #0000}.card:hover{box-shadow:var(--shadow);text-decoration:none;transform:translateY(-4px)}.card:hover:after{box-shadow:0 0 0 1px var(--blue) inset}.card-cover{background:var(--grad-brand-soft);place-items:center;height:150px;display:grid;position:relative;overflow:hidden}.card-cover-img{object-fit:cover;width:100%;height:100%;display:block}.card-initial{letter-spacing:-1px;color:var(--blue);opacity:.55;font-size:42px;font-weight:800}.card-body{padding:14px 16px 16px}.card-no{letter-spacing:1px;color:var(--ink-mute);text-transform:uppercase;font-size:11px;font-weight:700}.card-name{letter-spacing:-.25px;margin-top:3px;font-size:16px;font-weight:700;line-height:1.3}.card-loc{color:var(--ink-soft);margin-top:6px;font-size:13px}.footer{border-top:1px solid var(--line);color:var(--ink-soft);background:#fff;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:28px;font-size:13px;display:flex}.footer a{color:var(--ink-soft)}.footer a:hover{color:var(--blue)}.footer .dot{color:var(--line)}.project-rail{-webkit-backdrop-filter:saturate(180%)blur(10px);border-right:1px solid var(--line);z-index:5;background:#ffffffd1;width:280px;padding:20px 16px;position:fixed;top:64px;bottom:0;left:0;overflow-y:auto}.has-rail .content{padding-left:308px}@media (width<=760px){.project-rail{border-right:none;border-bottom:1px solid var(--line);background:#fff;width:auto;max-height:220px;position:static}.has-rail .content{padding-left:24px;padding-right:24px}.topbar{padding:0 18px}}.rail-head{justify-content:space-between;align-items:center;margin-bottom:12px;padding:0 6px;display:flex}.rail-head h3{text-transform:uppercase;letter-spacing:1.4px;color:var(--ink-mute);font-size:11px;font-weight:700}.sort.small{padding:6px 26px 6px 10px;font-size:12px}.rail-list{list-style:none}.rail-item{color:inherit;border-radius:10px;margin:2px 0;padding:11px 12px;text-decoration:none;transition:background .12s;display:block;position:relative}.rail-item:hover{background:var(--line-soft);text-decoration:none}.rail-item.active{background:var(--blue-tint)}.rail-item.active:before{content:"";background:var(--grad-brand);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-16px}.rail-item.active .rail-name{color:var(--blue)}.rail-name{font-size:14px;font-weight:600}.rail-no{color:var(--ink-mute);letter-spacing:.5px;margin-top:3px;font-size:11px}.project-main{min-width:0;animation:.45s both fadeUp}.project-header{align-items:center;gap:22px;margin-bottom:28px;display:flex}.project-cover{background:var(--grad-brand-soft);border:1px solid var(--line);width:104px;height:104px;box-shadow:var(--shadow-sm);border-radius:16px;flex:none;place-items:center;display:grid;overflow:hidden}.project-cover-img{object-fit:cover;width:100%;height:100%;display:block}.project-title{letter-spacing:-.8px;margin:4px 0 6px;font-size:32px;font-weight:800}.small-caps{letter-spacing:1.3px;text-transform:uppercase;color:var(--ink-mute);font-size:11px;font-weight:700}.category-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:10px;display:grid}.category-tile{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);color:inherit;background:#fff;flex-direction:column;gap:8px;padding:22px;text-decoration:none;transition:all .22s;display:flex;position:relative;overflow:hidden}.category-tile:before{content:"";pointer-events:none;background:linear-gradient(#fff0 60%,#2050c206 100%);position:absolute;inset:0}.category-tile:hover{box-shadow:var(--shadow);border-color:#2050c240;text-decoration:none;transform:translateY(-3px)}.category-icon{background:var(--blue-tint);border-radius:12px;place-items:center;width:48px;height:48px;display:grid;position:relative}.category-tile.cat-snag .category-icon{background:var(--blue-tint)}.category-tile.cat-condition .category-icon{background:var(--teal-soft)}.category-tile.cat-meetings .category-icon{background:var(--green-soft)}.category-name{letter-spacing:-.3px;font-size:17px;font-weight:700}.category-count{color:var(--ink-soft);font-size:13px;font-weight:500}.sub-section{margin-top:26px}.sub-section:first-of-type{margin-top:8px}.sub-title{text-transform:uppercase;letter-spacing:1.4px;color:var(--ink-mute);margin-bottom:10px;font-size:12px;font-weight:700}.report-list{list-style:none}.report-item-link{border:1px solid var(--line);box-shadow:var(--shadow-sm);color:inherit;background:#fff;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:14px 18px;text-decoration:none;transition:all .16s;display:flex;position:relative}.report-item-link:hover{box-shadow:var(--shadow);border-color:#2050c24d;text-decoration:none;transform:translateY(-1px)}.report-item-link:after{content:"›";color:var(--ink-mute);margin-left:8px;font-size:22px;line-height:1;transition:all .16s}.report-item-link:hover:after{color:var(--blue);transform:translate(2px)}.report-item.disabled{background:var(--line-soft);border:1px dashed var(--line);color:var(--ink-soft);cursor:not-allowed;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:14px 18px;display:flex}.report-item.disabled:after{content:"Coming soon";letter-spacing:.6px;text-transform:uppercase;color:var(--ink-mute);border:1px solid var(--line);background:#fff;border-radius:999px;margin-left:12px;padding:3px 9px;font-size:10px;font-weight:700}.report-title{color:var(--ink);font-weight:600}.small{font-size:12px}.crumbs{margin-bottom:8px;font-size:13px}.crumbs a{color:var(--ink-soft);align-items:center;gap:4px;display:inline-flex}.crumbs a:hover{color:var(--blue)}.report-header{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.plan-block{margin-bottom:40px}.plan-title{letter-spacing:-.3px;margin-bottom:14px;font-size:20px;font-weight:700}.plan-canvas{border:1px solid var(--line);width:100%;max-width:980px;box-shadow:var(--shadow);background:#fafbfc;border-radius:12px;margin:0 auto 22px;position:relative;overflow:hidden}.plan-img{width:100%;height:auto;display:block}.plan-missing{text-align:center;color:var(--ink-soft);padding:60px}.plan-pin{color:#fff;background:#c0392b;border:2.5px solid #fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 6px #0000004d}.pin-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.pin-card{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff;border-radius:12px;padding:16px;transition:all .15s}.pin-card:hover{box-shadow:var(--shadow);border-color:#2050c22e}.pin-card-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.pin-num{color:#fff;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.pin-status{text-transform:uppercase;letter-spacing:.5px;border-radius:5px;padding:3px 8px;font-size:10px;font-weight:700}.pin-status.open{color:#c0392b;background:#fdecea}.pin-status.complete{background:var(--green-soft);color:var(--green)}.pin-sev{letter-spacing:.5px;border-radius:5px;padding:3px 8px;font-size:10px;font-weight:700}.pin-sev.high{color:#b91d3d;background:#fde7e7}.pin-sev.medium{color:#b66200;background:#fff1da}.pin-sev.low{background:var(--green-soft);color:var(--green)}.pin-desc{margin-bottom:6px;font-size:13.5px;line-height:1.55}.pin-photos{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.pin-photo{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);border-radius:8px;width:100%}.pin-photo.missing{background:#f3f5f8}.pin-completion{border-top:1px dashed var(--line);margin-top:12px;padding-top:12px}.projects-head-actions{align-items:center;gap:10px;display:flex}.card-wrap{position:relative}.card-menu-btn{border:1px solid var(--line);width:30px;height:30px;color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm);z-index:1;background:#ffffffe6;border-radius:50%;place-items:center;font-size:18px;line-height:1;transition:all .15s;display:grid;position:absolute;top:8px;right:8px}.card-menu-btn:hover{border-color:var(--blue);color:var(--blue);background:#fff}.card-menu{border:1px solid var(--line);min-width:140px;box-shadow:var(--shadow-lg);z-index:10;background:#fff;border-radius:10px;padding:4px;animation:.12s both fadeUp;position:absolute;top:44px;right:8px}.card-menu button{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:8px 10px;font-size:14px;display:block}.card-menu button:hover{background:var(--line-soft)}.card-menu button.danger{color:#c0392b}.card-menu button.danger:hover{background:#fdecea}.modal-overlay{z-index:100;background:#0f193273;place-items:center;padding:20px;animation:.18s both fadeUp;display:grid;position:fixed;inset:0}.modal{box-shadow:var(--shadow-lg);background:#fff;border-radius:16px;flex-direction:column;gap:14px;width:100%;max-width:460px;padding:24px;display:flex}.modal h2{letter-spacing:-.4px;font-size:20px}.modal .field{flex-direction:column;gap:5px;display:flex}.modal .field-label{text-transform:uppercase;letter-spacing:.7px;color:var(--ink-mute);font-size:12px;font-weight:700}.modal .field-label .required{color:#c0392b}.modal .field input,.modal .field textarea{font:inherit;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:9px;outline:none;padding:10px 12px;font-size:14px;transition:border .15s}.modal .field input:focus,.modal .field textarea:focus{border-color:var(--blue)}.modal-actions{justify-content:flex-end;gap:10px;margin-top:6px;display:flex}.modal-actions .btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.sync-pill{border:1px solid var(--line);color:var(--ink-soft);box-shadow:var(--shadow-sm);background:#fff;border-radius:999px;align-items:center;gap:7px;padding:5px 12px;font-size:12px;font-weight:600;display:inline-flex}.sync-pill.pending{color:var(--blue);border-color:#2050c240}.sync-pill.error{color:#c0392b;background:#fdecea;border-color:#f4c9c2}.sync-spinner{border:2px solid var(--line);border-top-color:var(--blue);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin}.sync-dot{background:var(--blue);border-radius:50%;width:8px;height:8px}@keyframes spin{to{transform:rotate(360deg)}}@media print{.topbar,.footer,.project-rail,.no-print{display:none!important}.has-rail .content{padding-left:24px}html,body{background:#fff}}
