:root{--brand:#0f766e;--brand-dark:#115e59;--bg:#f8fafc;--card:#fff;--text:#0f172a;--muted:#64748b;--border:#e2e8f0;--radius:14px;--sidebar-w:248px;--tabbar-h:64px;color:var(--text);background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{-webkit-tap-highlight-color:transparent;margin:0}h1{margin:0 0 4px;font-size:1.5rem}h2{margin:0 0 8px;font-size:1.05rem}a{color:inherit;text-decoration:none}.muted{color:var(--muted);margin:0}.pad{padding:16px}.shell{flex-direction:column;min-height:100dvh;display:flex}.sidebar{display:none}.topbar{z-index:5;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:var(--card);border-bottom:1px solid var(--border);align-items:center;gap:10px;display:flex;position:sticky;top:0}.content{padding:16px;padding-bottom:calc(var(--tabbar-h) + 24px + env(safe-area-inset-bottom));flex:1;width:100%;max-width:960px;margin:0 auto}.tabbar{z-index:10;background:var(--card);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;inset:auto 0 0}.tabbar a{min-height:var(--tabbar-h);color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.72rem;display:flex}.tabbar a.active{color:var(--brand);font-weight:600}@media (width>=900px){.shell{flex-direction:row}.topbar,.tabbar{display:none}.sidebar{height:100dvh;width:var(--sidebar-w);background:var(--card);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:16px;padding:20px 12px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:0 8px;display:flex}.brand div{flex-direction:column;line-height:1.2;display:flex}.brand span{color:var(--muted);font-size:.75rem}.sidebar nav{flex-direction:column;gap:2px;display:flex}.sidebar nav a{color:#334155;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.sidebar nav a:hover{background:#f1f5f9}.sidebar nav a.active{color:var(--brand-dark);background:#ccfbf1;font-weight:600}.content{padding:32px}}.page{flex-direction:column;gap:16px;display:flex}.page-header{align-items:center;gap:14px;display:flex}.page-icon{width:48px;height:48px;color:var(--brand-dark);background:#ccfbf1;border-radius:12px;place-items:center;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:0 1px 2px #0f172a0a}.grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.tile{color:var(--brand-dark);flex-direction:column;gap:6px;transition:box-shadow .15s;display:flex}.tile strong{color:var(--text)}.tile:hover{box-shadow:0 4px 14px #0f172a1a}.checklist{flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.list{flex-direction:column;padding:4px 16px;display:flex}.list a{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:14px 0;display:flex}.list a:last-child{border-bottom:0}.pill{color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:600;display:inline-block}.pill.ok{color:#166534;background:#dcfce7}.pill.high,.pill.error,.pill.denied,.pill.invalid,.pill.rejected{color:#991b1b;background:#fee2e2}.pill.medium,.pill.pending_approval{color:#92400e;background:#fef3c7}.pill.low,.pill.approved{color:#166534;background:#dcfce7}label{flex-direction:column;gap:4px;margin:12px 0;font-size:.85rem;font-weight:600;display:flex}select,textarea,input{font:inherit;border:1px solid var(--border);background:#fff;border-radius:10px;padding:10px 12px;font-weight:400}textarea{font-family:ui-monospace,Menlo,monospace;font-size:.8rem}button{font:inherit;background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:10px;min-height:44px;padding:0 18px;font-weight:600}button:hover{background:var(--brand-dark)}button.secondary{color:#0f172a;background:#e2e8f0}.row{flex-wrap:wrap;gap:10px;display:flex}.result{color:#e2e8f0;background:#0f172a;border-radius:10px;max-height:260px;padding:12px;font-size:.75rem;overflow:auto}.approval{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.audit{flex-direction:column;gap:8px;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex}.err{color:#991b1b;font-size:.8rem}.auth{place-items:center;min-height:100dvh;padding:16px;display:grid}.auth-card,.auth-stack{flex-direction:column;gap:4px;width:100%;max-width:400px;display:flex}.auth-stack{gap:12px}.auth-card img{margin-bottom:8px}button.link{color:var(--brand-dark);background:0 0;min-height:40px;font-weight:500}button.link:hover{background:0 0;text-decoration:underline}.signout{margin-top:auto}.notice{background:#ecfeff;border:1px solid #a5f3fc;border-radius:10px;margin:8px 0;padding:10px 12px;font-size:.9rem}.code{letter-spacing:.08em;background:#f1f5f9;border-radius:8px;padding:6px 10px;font-size:1.2rem}.push-right{margin-left:auto}.list a.stack{flex-direction:column;align-items:flex-start;gap:2px}input[type=search]{width:100%}.notes{white-space:pre-wrap;color:#334155}.card form .row input{flex:90px;min-width:0}.page>a{padding:4px 0}.contact-row{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 0;display:flex}.contact-row:first-of-type{border-top:0}.contact-row .row.small{gap:4px}.contact-row .row.small .link{min-height:32px;padding:0 8px 0 0}.subform{border-top:1px solid var(--border);padding-top:4px}.check{flex-direction:row;align-items:center;gap:10px;font-weight:500}.check input{width:20px;height:20px}fieldset{border:1px solid var(--border);border-radius:10px;margin:12px 0;padding:0 12px 4px}legend{color:var(--muted);padding:0 6px;font-size:.8rem;font-weight:700}.small-link{min-height:32px;padding:0}.sub-h{margin-top:16px}.property{border-top:1px solid var(--border);padding:12px 0}.property:first-of-type{border-top:0}.history{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;font-size:.85rem;list-style:none;display:flex}.choice{flex-direction:column;gap:6px;margin:8px 0;display:flex}select{min-height:44px}.grow{flex:140px;min-width:0}.main-check{white-space:nowrap;margin:0}fieldset .check{margin:6px 0}a.button{background:var(--brand);color:#fff;border-radius:10px;align-items:center;min-height:44px;padding:0 18px;font-weight:600;display:inline-flex}a.button.secondary{color:#0f172a;background:#e2e8f0}details summary{cursor:pointer;font-weight:600}.danger{border-color:#fecaca}.danger-button{background:#b91c1c}.danger-button:hover{background:#991b1b}.dup-row{align-items:flex-start;margin:10px 0}.dup-row input{margin-top:3px}.item{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.faded{opacity:.6}.line{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding:10px 0;display:flex}.line:first-of-type{border-top:0}.totals{grid-template-columns:1fr auto;gap:4px 16px;margin:12px 0;display:grid}.totals dt,.totals dd{margin:0}.totals dd{text-align:right}.week{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.day h3{margin:0 0 6px;font-size:.9rem}.day.today{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.slot{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding:8px 0;font-size:.85rem;display:flex}.slot:first-of-type{border-top:0}.slot input[type=datetime-local]{flex:100%;min-width:0;padding:6px 8px;font-size:.8rem}.slot button{min-height:36px;padding:0 12px}.rate-row{align-items:center;margin:6px 0}.rate-row input{min-width:0;max-width:120px}.choices{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;display:grid}.choice-card{border:2px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;gap:4px;margin:0;padding:12px;font-weight:400;display:flex}.choice-card.on{border-color:var(--brand);background:#f0fdfa}.choice-card input{align-self:flex-start}.level{border:1px solid var(--border);border-radius:12px;margin:10px 0;padding:12px}.level-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.swatch{border-radius:4px;flex-shrink:0;width:14px;height:14px}.small-note{margin:4px 0 0;font-size:.8rem}.bar{background:#e2e8f0;border-radius:7px;height:14px;margin:12px 0 6px;display:flex;overflow:hidden}.bar span{height:100%;display:block}.person{border-top:1px solid var(--border);padding:10px 0}.person:first-of-type{border-top:0}.qb{border:1px dashed var(--border);border-radius:10px;margin:12px 0;padding:10px 12px}.cost-rows{margin:12px 0}.cost-row{flex-wrap:wrap;align-items:center;gap:6px;padding:4px 0;display:flex}.cost-row input[inputmode]{min-width:0;max-width:120px}.cost-row select{max-width:160px}.cost-add{align-items:center}.cost-add input[inputmode]{max-width:110px}.account-cell{flex-direction:column;min-width:140px;display:flex}.account-cell input{width:100%}.pnl{border:1px solid var(--border);background:#fcfdfd;border-radius:12px;margin:16px 0;padding:12px}.pnl h3{margin:0 0 8px;font-size:.95rem}.pnl-section{margin-bottom:10px}.pnl-row{justify-content:space-between;gap:12px;padding:3px 8px;font-size:.88rem;display:flex}.pnl-row.section-head{border-bottom:1px solid var(--border);font-weight:700}.pnl-row.group{color:#334155;font-weight:600}.pnl-row.subtotal,.pnl-row.section-total{border-top:1px solid var(--border);font-weight:600}.pnl-row.section-total{background:#f1f5f9}.pnl-grand{border-top:2px solid var(--text);margin-top:12px;padding-top:6px}.pnl-row.strong{font-size:.95rem;font-weight:700}.pnl-tag{border-radius:999px;margin-left:8px;padding:1px 7px;font-size:.7rem}.pnl-tag.on{color:#166534;background:#dcfce7}.pnl-tag.off{color:#64748b;background:#f1f5f9}.pnl-check{border-top:1px dashed var(--border);margin-top:12px;padding-top:8px}.ok-text{color:#166534;font-weight:600}.qb-pl{border:1px solid var(--border);background:#fff;border-radius:8px;margin:16px 0;padding:16px 12px;font-size:.9rem}.qb-title{text-align:center;margin-bottom:12px}.qb-report{font-size:1.15rem;font-weight:600}.qb-head{letter-spacing:.06em;color:#64748b;border-bottom:2px solid #94a3b8;justify-content:space-between;padding:0 8px 4px;font-size:.72rem;display:flex}.qb-row{justify-content:space-between;align-items:center;gap:12px;padding:3px 8px;display:flex}.qb-row:hover{background:#f8fafc}.qb-name{flex-wrap:wrap;flex:1;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.qb-amount{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;min-width:90px}.qb-row.section-head{margin-top:10px;font-weight:700}.qb-row.group{color:#334155;font-weight:600}.qb-row.subtotal,.qb-row.section-total{border-top:1px solid #94a3b8;font-weight:600}.qb-row.key-total{background:#f8fafc;border-top:1px solid #94a3b8;margin-top:4px;font-weight:700}.qb-row.grand{border-top:2px solid var(--text);border-bottom:3px double var(--text)}.qb-controls{align-items:center;gap:4px;display:inline-flex}.qb-controls select{border-radius:999px;max-width:150px;min-height:28px;padding:2px 6px;font-size:.72rem}.qb-controls select.on{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.qb-controls select.off{color:#64748b;background:#f8fafc}.qb-controls .link{color:#94a3b8;min-height:28px;padding:0 6px}.chips{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.chip{color:var(--text);border:1px solid var(--border);background:#fff;border-radius:999px;min-height:40px;padding:0 14px;font-weight:500}.chip:hover{background:#f1f5f9}.chip.on{background:var(--brand);color:#fff;border-color:var(--brand)}.chip-note{opacity:.8;font-size:.7rem}.hours-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:12px;display:grid}.hours-grid .small-note{grid-column:1/-1}.by-month{border-collapse:collapse;width:100%;margin:12px 0;font-size:.85rem}.by-month th,.by-month td{text-align:right;border-bottom:1px solid var(--border);padding:4px 8px}.by-month th:first-child,.by-month td:first-child{text-align:left}.qb-check{width:18px;height:18px;min-height:0;accent-color:var(--brand);cursor:pointer;flex:none;margin:0;padding:0}.qb-label{flex:0 auto}.qb-name{justify-content:flex-start}.qb-row.is-off{color:#94a3b8}.qb-row.is-off .qb-amount{text-decoration:line-through}.qb-kind{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:999px;min-height:24px;padding:0 9px;font-size:.7rem;font-weight:500}.qb-kind:hover{background:#dcfce7}.qb-x{color:#94a3b8;min-height:24px;padding:0 6px}.qb-hint{text-align:center;margin:0 0 8px}.kinds{margin:12px 0}.kinds summary{cursor:pointer;font-weight:600}.kind-group{margin:10px 0}.kind-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:3px 0;font-size:.88rem;display:flex}.kind-row select{max-width:170px;min-height:32px;font-size:.8rem}
