:root{--green: #1f7a45;--green-dark: #17603a;--green-soft: #e7f3ec;--ink: #14281d;--blue: #2f6fa3;--bg: #f3f4f1;--card: #fff;--text: #1b1f1c;--muted: #67706a;--line: #e3e6e1;--red: #b42318;--amber: #a15c07;--radius: 10px;--shadow: 0 1px 2px rgba(16, 24, 20, .05), 0 1px 3px rgba(16, 24, 20, .06)}*{box-sizing:border-box}body{margin:0;font:15px/1.5 Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--blue)}.app{min-height:100vh}.sidebar{display:none}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;background:#fff;border-bottom:1px solid var(--line);padding:10px 16px}.topbar b{flex:1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-mark{flex:none;width:30px;height:30px;display:block}.wordmark{font-family:Space Grotesk,Inter,system-ui,sans-serif;font-weight:700;letter-spacing:-.02em}.wordmark b{color:#f28c28;font-weight:700}.landing-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.3rem;color:#14213d;margin-bottom:8px}.landing-brand .brand-mark{width:40px;height:40px}main{max-width:1040px;margin:0 auto;padding:18px 16px 96px}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:5;display:flex;background:#fff;border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom))}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:.7rem;font-weight:500;color:var(--muted);text-decoration:none;border-radius:8px}.tabbar a.on{color:var(--green)}@media (min-width: 900px){.app{display:grid;grid-template-columns:232px 1fr}.topbar,.tabbar{display:none}.sidebar{display:flex;flex-direction:column;position:sticky;top:0;height:100vh;background:var(--ink);color:#fff;padding:18px 12px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.1rem;padding:0 8px}.biz-name{color:#fff9;font-size:.8rem;padding:6px 8px 18px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:12px}.side-nav{display:flex;flex-direction:column;gap:2px}.side-nav a{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:8px;color:#ffffffc7;text-decoration:none;font-weight:500}.side-nav a:hover{background:#ffffff12;color:#fff}.side-nav a.on{background:#ffffff1f;color:#fff}.sidebar .signout{margin-top:auto;text-align:left;padding:8px 10px;color:#fff9}main{padding:28px 32px 48px;width:100%}}h1{font-size:1.5rem;font-weight:700;letter-spacing:-.01em;margin:0}h2{font-size:1.02rem;font-weight:600;margin:0 0 8px}h3{font-size:.9rem;font-weight:600;margin:18px 0 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.muted{color:var(--muted)}.err{color:var(--red)}small{font-size:.82rem}section{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.row-between{display:flex;justify-content:space-between;align-items:center;margin-top:6px;gap:8px}.head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.wrap{flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:4px;flex:1 1 150px;margin-bottom:10px}.field span{font-size:.8rem;font-weight:500;color:var(--muted)}.stack>.field,section>.field{flex:none}input,textarea,select{font:inherit;padding:9px 11px;border:1px solid #d5d9d3;border-radius:8px;background:#fff;width:100%;color:var(--text);transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #1f7a4526}textarea{resize:vertical}input[type=search]{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2367706a' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 12px center;padding-left:36px}.check{display:flex;gap:8px;align-items:center;margin:4px 0 10px;font-size:.9rem}.check input{width:auto;accent-color:var(--green)}td input{min-width:0}button,.button{font:inherit;font-weight:600;font-size:.92rem;background:var(--green);color:#fff;border:1px solid var(--green);border-radius:8px;padding:9px 16px;cursor:pointer;text-decoration:none;display:inline-block;transition:background .15s}button:hover,.button:hover{background:var(--green-dark)}button:disabled{opacity:.45;cursor:default}button.secondary,a.button.secondary,label.button.secondary{background:#fff;color:var(--text);border-color:#d5d9d3}button.secondary:hover,a.button.secondary:hover{background:#f6f7f5}button.link{background:none;border:0;color:var(--blue);padding:0 6px;font-weight:500}button.link.light{color:#fff}button.danger{background:#fff;color:var(--red);border-color:#f0c7c2}button.danger:hover{background:#fdf1f0}label.button{cursor:pointer}.cards{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.cards li{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;cursor:pointer;box-shadow:var(--shadow);transition:border-color .15s}.cards li:hover{border-color:#c7cdc5}.plain{list-style:none;padding:0;margin:0}.plain li{display:flex;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer;flex-wrap:wrap}.plain li:last-child{border-bottom:0}.plain li:hover b{color:var(--green)}.lines{padding-left:18px;margin:8px 0}.lines li{padding:3px 0}.room{border-bottom:1px dashed var(--line);padding-bottom:10px;margin-bottom:12px}.room>input{margin-bottom:8px;font-weight:500}.hint{background:var(--green-soft);padding:12px;border-radius:8px;font-size:.92rem}tr.click{cursor:pointer}tr.click:hover td{background:#f8f9f7}.pill{display:inline-block;font-size:.72rem;font-weight:600;padding:3px 9px;border-radius:99px;background:#eef0ec;color:#4a524c;white-space:nowrap}.pill.draft{background:#eef0ec;color:#4a524c}.pill.estimate_sent{background:#e6effa;color:#24578a}.pill.active{background:#e3f4ea;color:#17603a}.pill.complete{background:#f1ebfb;color:#5b3a9a}.pill.invoiced{background:#fdf2dc;color:#8a5300}.pill.paid{background:#dcf3e4;color:#13542f}.pill.declined{background:#fbe7e5;color:#9b2c22}.pill.warn{background:#fdf2dc;color:#8a5300}table{width:100%;border-collapse:collapse;background:var(--card);font-size:.9rem}th{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}th,td{border-bottom:1px solid var(--line);padding:9px 8px;text-align:right}th:first-child,td:first-child{text-align:left}tbody tr:last-child td{border-bottom:0}.subtabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line)}.subtabs a{padding:10px 12px;color:var(--muted);text-decoration:none;white-space:nowrap;font-weight:500;font-size:.92rem;border-bottom:2px solid transparent;margin-bottom:-1px}.subtabs a.on{color:var(--green);border-bottom-color:var(--green)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow)}.tile small{color:var(--muted);font-weight:500}.tile b{font-size:1.25rem;font-weight:700}.tiles.small{grid-template-columns:repeat(3,1fr)}.tiles.small .tile{padding:10px 12px}.tiles.small .tile b{font-size:1rem}.board{display:grid;grid-template-columns:1fr;gap:14px}@media (min-width: 700px){.board{grid-template-columns:1fr 1fr}}.stage{border-top:3px solid var(--green);padding:16px}.board .stage:nth-child(1){border-top-color:#2f6fa3}.board .stage:nth-child(2){border-top-color:#1f7a45}.board .stage:nth-child(3){border-top-color:#6e48b5}.board .stage:nth-child(4){border-top-color:#c27a0e}.stage.empty{border-top-color:#d5d9d3}.stage-head{display:flex;align-items:flex-start;gap:10px}.stage-head h2{margin:0;font-size:.95rem}.stage-n{flex:none;width:24px;height:24px;border-radius:50%;background:#eef0ec;color:var(--muted);display:grid;place-items:center;font-size:.78rem;font-weight:700;margin-top:1px}.stage-total{margin-left:auto;white-space:nowrap;font-size:1.05rem}.stage .plain{margin-top:10px}.stage .plain li{font-size:.92rem}.stage .none{margin:10px 0 0 34px;font-size:.9rem}.stage-right{text-align:right;align-self:center}.savebar{position:sticky;bottom:76px;display:flex;justify-content:space-between;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:8px 14px;box-shadow:0 4px 16px #00000014;color:var(--muted);font-size:.9rem}@media (min-width: 900px){.savebar{bottom:16px}}.savebar:not(.show){display:none}.danger-zone{margin-top:24px;box-shadow:none;background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:18px 0 0}.logo{max-width:120px;max-height:120px;border:1px solid var(--line);border-radius:8px;padding:4px;background:#fff}.landing{max-width:560px;margin:0 auto;padding:56px 20px;display:flex;flex-direction:column;gap:16px}.landing h1{font-size:2.2rem;letter-spacing:-.02em}.landing ul{padding-left:20px;margin:0}.landing li{padding:3px 0}.stack>button,.stack>select,.head select{align-self:flex-start;width:auto}@media (max-width: 600px){table{font-size:.78rem}th,td{padding:8px 3px}td{font-variant-numeric:tabular-nums}}.scroll-x{overflow-x:auto}
