:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--fs-11:11px;--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-17:17px;--w-body:400;--w-head:600;--canvas:#f6f7f7;--surface:#fff;--sunken:#eef0ef;--hairline:#e2e5e3;--shadow:0 1px 3px #0f12100f;--r-s:8px;--r-m:12px;--r-pill:999px;--ink:#1a1e1c;--muted:#5d6661;--faint:#8b938e;--accent:#0e6b4a;--accent-ink:#fff;--good:#1d5b3c;--good-bg:#e9f4ee;--warn:#8a5a1c;--warn-bg:#faf1e0;--bad:#a1352c;--bad-bg:#fbecea;--info:#1d4e6b;--info-bg:#e8f1f7;--t-fast:.12s;--t-screen:.18s}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#17191a;--surface:#1f2224;--sunken:#121415;--hairline:#2d3134;--shadow:0 1px 3px #00000073;--ink:#e8ebe9;--muted:#a2a9a5;--faint:#798079;--accent:#43c088;--accent-ink:#0c1511;--good:#85d5ab;--good-bg:#1a2d22;--warn:#e2b473;--warn-bg:#2f281a;--bad:#e39189;--bad-bg:#33201d;--info:#8ebcda;--info-bg:#1c2a35}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#17191a;--surface:#1f2224;--sunken:#121415;--hairline:#2d3134;--shadow:0 1px 3px #00000073;--ink:#e8ebe9;--muted:#a2a9a5;--faint:#798079;--accent:#43c088;--accent-ink:#0c1511;--good:#85d5ab;--good-bg:#1a2d22;--warn:#e2b473;--warn-bg:#2f281a;--bad:#e39189;--bad-bg:#33201d;--info:#8ebcda;--info-bg:#1c2a35}}*{box-sizing:border-box}body{font:var(--w-body) var(--fs-14)/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color:var(--ink);background:var(--canvas);-webkit-text-size-adjust:100%;margin:0}h1,h2,h3,strong{font-weight:var(--w-head)}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}a,button,input,select,textarea,summary,.card,.hub-card,.list-row,.job-link,.cal-day,.cal-nav,.seg,.type-option{transition:background-color var(--t-fast) ease, border-color var(--t-fast) ease, color var(--t-fast) ease, box-shadow var(--t-fast) ease, opacity var(--t-fast) ease, transform var(--t-fast) ease, filter var(--t-fast) ease}button:not(:disabled):active,.btn:active{transform:translateY(1px)}.app-main{animation:screen-in var(--t-screen) ease-out both}@keyframes screen-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}input,select,textarea{font:inherit;border:1px solid var(--hairline);border-radius:var(--r-s);background:var(--surface);color:var(--ink);padding:9px 11px}input:hover,select:hover,textarea:hover{border-color:var(--faint)}textarea{resize:vertical}input[type=checkbox],input[type=radio]{width:17px;height:17px;accent-color:var(--accent);padding:0}button{font:inherit;cursor:pointer}button:disabled{opacity:.6;cursor:progress}button[type=submit],.btn,.row-form button,.service-form button,.request-form button,.chat-composer button,.mark-done button,.request-actions button,.edit-form button,.staff-request-form button,.settings-save,.generate .btn,.auth-form button[type=submit]{font-weight:var(--w-head);border-radius:var(--r-s);background:var(--accent);color:var(--accent-ink);border:0;padding:9px 15px}button[type=submit]:not(:disabled):hover,.btn:hover{filter:brightness(1.07)}.btn-secondary,.app-signout button,.signout button,.confirm-delete .btn-secondary{font:inherit;border:1px solid var(--hairline);border-radius:var(--r-s);background:var(--surface);color:var(--ink);padding:8px 13px}.btn-secondary:hover,.app-signout button:hover,.signout button:hover{background:var(--sunken)}.btn-danger{font:inherit;font-weight:var(--w-head);border-radius:var(--r-s);background:var(--bad);color:var(--surface);border:0;padding:8px 13px}.link-danger{font:inherit;font-size:var(--fs-14);color:var(--bad);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.linklike{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}@media (pointer:coarse){input,select,textarea{min-height:44px;font-size:16px}input[type=checkbox],input[type=radio]{min-height:0}button,.btn{min-height:44px}}.shell{max-width:640px;margin:0 auto;padding:64px 24px}h1{font-size:var(--fs-17);letter-spacing:-.01em;margin:0 0 8px}.tag{color:var(--muted);font-size:var(--fs-14);margin:0 0 32px}.status{gap:10px;margin:0;padding:0;list-style:none;display:grid}.status li{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);padding:12px 16px}.version-stamp{font-size:var(--fs-12);color:var(--faint);position:fixed;bottom:10px;right:14px}.auth{max-width:380px}.onboard{max-width:460px}.type-picker{border:0;gap:8px;margin:0;padding:0;display:grid}.type-picker legend{font-size:var(--fs-14);color:var(--muted);margin-bottom:2px;padding:0}.type-picker>p{margin:0 0 6px}.auth-form .type-option{border:1px solid var(--hairline);border-radius:var(--r-s);background:var(--surface);cursor:pointer;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.auth-form .type-option:hover{border-color:var(--faint)}.auth-form .type-option.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.auth-form .type-option input{background:0 0;border:0;border-radius:0;flex:none;width:auto;min-height:0;margin:3px 0 0;padding:0}.type-body{gap:2px;display:grid}.type-label{font-weight:var(--w-head);color:var(--ink)}.type-hint{display:block}.auth-form{gap:16px;margin:0 0 20px;display:grid}.auth-form label{font-size:var(--fs-14);color:var(--muted);gap:6px;display:grid}.auth-form button[type=submit]{padding:11px 16px}.auth-error{border-radius:var(--r-s);font-size:var(--fs-14);background:var(--bad-bg);border:1px solid var(--bad-bg);color:var(--bad);margin:0;padding:10px 12px}.auth-notice{border-radius:var(--r-s);font-size:var(--fs-14);background:var(--good-bg);border:1px solid var(--good-bg);color:var(--good);margin:0;padding:10px 12px}.auth-switch{font-size:var(--fs-14);color:var(--muted)}.signout{align-items:center;gap:14px;margin-top:28px;display:flex}.signout .who{font-size:var(--fs-14);color:var(--muted)}.app-bar{background:var(--surface);border-bottom:1px solid var(--hairline);z-index:20;position:sticky;top:0}.app-bar-inner{flex-wrap:wrap;align-items:center;gap:20px;max-width:820px;margin:0 auto;padding:12px 20px;display:flex}.brand{align-items:baseline;gap:10px;display:flex}.brand strong{font-size:var(--fs-17)}.brand .org{font-size:var(--fs-13);color:var(--muted)}.app-nav{gap:16px;display:flex}.app-nav a{color:var(--muted);font-size:var(--fs-14);border-bottom:2px solid #0000;padding:4px 0;text-decoration:none}.app-nav a:hover{color:var(--ink)}.app-nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.app-signout{align-items:center;gap:8px;margin-left:auto;display:flex}.app-main{max-width:820px;margin:0 auto;padding:24px 20px 80px}.theme-toggle{font:inherit;font-size:var(--fs-12);color:var(--muted);border:1px solid var(--hairline);border-radius:var(--r-pill);background:var(--surface);cursor:pointer;white-space:nowrap;padding:5px 11px}.theme-toggle:hover{color:var(--ink);background:var(--sunken)}@media (max-width:640px){.app-bar{position:static}.app-nav{z-index:30;background:var(--surface);border-top:1px solid var(--hairline);padding:6px 8px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;gap:0;display:flex;position:fixed;bottom:0;left:0;right:0}.app-nav a{font-size:var(--fs-12);border-radius:var(--r-s);text-align:center;border-bottom:0;padding:8px 10px}.app-nav a[aria-current=page]{color:var(--accent);background:var(--sunken)}.app-main{padding-bottom:110px}.version-stamp{bottom:calc(64px + env(safe-area-inset-bottom))}}.trial-banner{background:var(--good-bg);border-bottom:1px solid var(--hairline)}.trial-banner.urgent{background:var(--warn-bg)}.trial-banner-inner{font-size:var(--fs-14);justify-content:space-between;padding-top:10px;padding-bottom:10px}.trial-banner-inner span{color:var(--ink)}.trial-banner-inner a{color:var(--ink);font-weight:var(--w-head)}.billing-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);box-shadow:var(--shadow);gap:8px;margin-top:8px;padding:18px 20px;display:grid}.billing-card.alert{border-color:var(--warn);background:var(--warn-bg)}.billing-status{font-size:var(--fs-17);font-weight:var(--w-head);margin:0}.billing-card p{margin:0}.bill-balance{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);box-shadow:var(--shadow);gap:2px;padding:18px 20px;display:grid}.bill-balance-label{font-size:var(--fs-12);font-weight:var(--w-head);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.bill-balance-amt{font-size:var(--fs-17);font-weight:var(--w-head);letter-spacing:-.01em;font-variant-numeric:tabular-nums}.bill-model-line{margin:10px 0 16px}.bills{flex-direction:column;gap:14px;display:flex}.bill-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);box-shadow:var(--shadow);padding:16px}.bill-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.bill-status{font-size:var(--fs-11);font-weight:var(--w-head);text-transform:uppercase;letter-spacing:.04em;border-radius:var(--r-pill);padding:2px 10px}.bill-status.s-draft{color:var(--muted);background:var(--sunken)}.bill-status.s-issued{color:var(--warn);background:var(--warn-bg)}.bill-status.s-paid{color:var(--good);background:var(--good-bg)}.bill-status.s-void{color:var(--bad);background:var(--bad-bg)}.bill-lines{border-collapse:collapse;width:100%;font-size:var(--fs-14)}.bill-lines td{border-bottom:1px solid var(--hairline);vertical-align:top;padding:6px 0}.bill-lines td.num{text-align:right;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.bill-lines td.num:last-child{color:var(--ink)}.bill-total{font-size:var(--fs-14);font-weight:var(--w-head);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:12px;display:flex}.bill-help{margin-top:14px}.bill-help a{color:var(--ink)}.chat{flex-direction:column;gap:16px;display:flex}.chat-log{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.chat-bubble{border-radius:var(--r-m);max-width:78%;padding:10px 13px}.chat-bubble p{white-space:pre-wrap;word-break:break-word;margin:0}.chat-bubble time{font-size:var(--fs-11);opacity:.7;margin-top:4px;display:block}.chat-bubble.mine{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:4px;align-self:flex-end}.chat-bubble.theirs{background:var(--surface);border:1px solid var(--hairline);color:var(--ink);border-bottom-left-radius:4px;align-self:flex-start}.chat-log-entry{text-align:center;max-width:90%;font-size:var(--fs-13);color:var(--muted);background:var(--sunken);border-radius:var(--r-pill);align-self:center;padding:6px 12px}.chat-log-entry time{opacity:.8;margin-left:6px}.chat-composer{background:var(--canvas);flex-wrap:wrap;align-items:flex-end;gap:8px;padding-top:6px;display:flex;position:sticky;bottom:0}.chat-composer textarea{border-radius:var(--r-s);flex:200px;min-height:44px}.chat-composer button{padding:10px 18px}.chat-composer .auth-error{flex-basis:100%;margin:0}@media (max-width:640px){.chat-composer{bottom:calc(58px + env(safe-area-inset-bottom))}}.portal-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.portal-visit{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);box-shadow:var(--shadow);gap:10px;padding:14px;display:grid}.portal-visit .visit-info{flex-direction:column;gap:2px;display:flex}.visit-actions{flex-wrap:wrap;gap:8px 20px;display:flex}.visit-actions summary,.extra summary{cursor:pointer;font-size:var(--fs-14);color:var(--accent);font-weight:var(--w-head)}.request-form{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:10px;display:flex}.request-form .field{font-size:var(--fs-13);color:var(--muted);gap:4px;display:grid}.request-form .field.wide{flex:100%}.request-form input{padding:8px 10px}.request-form input[type=text]{width:100%}.request-form button{padding:9px 14px}.request-form .auth-error{flex-basis:100%;margin:0}.extra-block{margin-bottom:10px}.request-ok{border-radius:var(--r-s);font-size:var(--fs-14);background:var(--good-bg);border:1px solid var(--good-bg);color:var(--good);margin:6px 0;padding:10px 12px}.req-status{font-size:var(--fs-13);font-weight:var(--w-head);margin-left:auto}.req-pending{color:var(--warn)}.req-approved{color:var(--good)}.req-declined{color:var(--bad)}.nav-badge{min-width:18px;font-size:var(--fs-12);font-weight:var(--w-head);text-align:center;color:var(--surface);background:var(--bad);border-radius:var(--r-pill);margin-left:5px;padding:0 5px;line-height:18px;display:inline-block}.request-row{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding:14px;display:flex}.request-info{flex-direction:column;flex:260px;gap:2px;min-width:0;display:flex}.req-type{font-size:var(--fs-11);font-weight:var(--w-head);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.request-actions{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.request-actions .inline-form{align-items:flex-end;gap:8px;display:flex}.request-actions .field{gap:3px;display:grid}.request-actions select{padding:8px 10px}.request-actions button{padding:8px 14px}.request-actions .btn-secondary{background:var(--surface);color:var(--ink);border:1px solid var(--hairline);font-weight:var(--w-body)}.request-actions .auth-error{flex-basis:100%;margin:4px 0 0}.page-head{align-items:center;gap:12px;margin:0 0 18px;display:flex}.page-head h1{margin:0}.count{font-size:var(--fs-13);color:var(--muted);background:var(--sunken);border-radius:var(--r-pill);font-variant-numeric:tabular-nums;padding:3px 10px}.muted{color:var(--muted)}.small{font-size:var(--fs-13)}.back{color:var(--muted);font-size:var(--fs-14);margin-bottom:10px;text-decoration:none;display:inline-block}.back:hover{color:var(--ink)}.section-h{font-size:var(--fs-12);font-weight:var(--w-head);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:26px 0 10px}.empty{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);text-align:center;padding:28px}.empty p{margin:0 0 6px}.btn{margin-top:12px;text-decoration:none;display:inline-block}.hub{gap:10px;max-width:560px;margin:0;padding:0;list-style:none;display:grid}.hub-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);box-shadow:var(--shadow);color:var(--ink);flex-direction:column;gap:3px;padding:16px 18px;text-decoration:none;display:flex}.hub-card:hover{border-color:var(--faint)}.hub-title{font-weight:var(--w-head);font-size:var(--fs-14)}.cards{flex-wrap:wrap;gap:14px;display:flex}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);min-width:130px;box-shadow:var(--shadow);color:var(--ink);flex-direction:column;gap:2px;padding:18px 20px;text-decoration:none;display:flex}.card:hover{border-color:var(--faint)}.card-n{font-size:var(--fs-17);font-weight:var(--w-head);letter-spacing:-.01em;font-variant-numeric:tabular-nums}.card-l{font-size:var(--fs-13);color:var(--muted)}.card-go{justify-content:center}.row-form{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 18px;display:flex}.row-form input{flex:180px}.row-form .auth-error,.service-form .auth-error{flex-basis:100%}.list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.list.tight{gap:4px;margin:8px 0}.list-row{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);color:var(--ink);align-items:baseline;gap:12px;padding:12px 14px;text-decoration:none;display:flex}a.list-row:hover{border-color:var(--faint)}.list-row.static{cursor:default}.list-name{font-weight:var(--w-head)}.list-meta{font-size:var(--fs-13);color:var(--muted);text-align:right;margin-left:auto}.due-date{font-variant-numeric:tabular-nums;font-size:var(--fs-13);color:var(--ink);min-width:92px}.pager{justify-content:space-between;align-items:center;margin-top:16px;display:flex}.pager-links{gap:16px;display:flex}.pager-links a{color:var(--ink)}.sites{gap:14px;display:grid}.site-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);box-shadow:var(--shadow);padding:16px}.site-head{align-items:baseline;gap:10px;display:flex}.add-service{margin-top:10px}.add-service summary{cursor:pointer;font-size:var(--fs-14);color:var(--muted)}.service-form{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.service-form>input[name=description]{grid-column:1/-1}.service-form .field{font-size:var(--fs-13);color:var(--muted);gap:4px;display:grid}.service-form .field-row{grid-column:1/-1;gap:10px;display:flex}.service-form .field-row .field{flex:1 1 0;min-width:0}.service-form button{grid-column:1/-1}@media (max-width:560px){.service-form{grid-template-columns:1fr}}.entity-admin{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:10px;display:flex}.edit-details summary{cursor:pointer;font-size:var(--fs-14);color:var(--muted)}.edit-form{gap:12px;max-width:420px;margin-top:10px;display:grid}.edit-form .field{font-size:var(--fs-13);color:var(--muted);gap:4px;display:grid}.edit-form button{justify-self:start}.confirm-delete{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.confirm-delete .auth-error{flex-basis:100%;margin:4px 0 0}.worker-row{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);flex-wrap:wrap;align-items:center;gap:8px 16px;padding:14px;display:flex}.worker-info{flex-direction:column;flex:200px;gap:2px;min-width:0;display:flex}.worker-status{font-size:var(--fs-11);font-weight:var(--w-head);border-radius:var(--r-pill);padding:2px 9px}.ws-active{color:var(--good);background:var(--good-bg)}.ws-invited{color:var(--warn);background:var(--warn-bg)}.ws-no-login{color:var(--muted);background:var(--sunken)}.worker-row .entity-admin{flex-basis:100%;margin-top:0}.edit-form .toggle{font-size:var(--fs-14);color:var(--ink);align-items:center;gap:10px;display:flex}.service-item{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);padding:12px 14px;display:block}.service-line{align-items:baseline;gap:12px;display:flex}.service-line .list-meta{margin-left:auto}.manage>summary{cursor:pointer;font-size:var(--fs-14);font-weight:var(--w-head);color:var(--muted);margin-top:8px}.manage>summary:hover{color:var(--ink)}.manage[open]>summary{margin-bottom:4px}.manage-body{background:var(--sunken);border-radius:var(--r-m);gap:14px;margin-top:8px;padding:14px 16px;display:grid}.manage-row{border-top:1px solid var(--hairline);flex-wrap:wrap;align-items:center;gap:8px 16px;padding-top:10px;display:flex}.manage-row:first-child{border-top:0;padding-top:0}.schedule-actions{margin:0 0 14px}.generate{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.generate .btn{cursor:pointer;border:0;margin-top:0}.empty .generate{justify-content:center;margin-top:12px}.visit-row{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding:14px;display:flex}.visit-info{flex-direction:column;flex:240px;gap:2px;min-width:0;display:flex}.visit-info .due-date{font-weight:var(--w-head);font-size:var(--fs-14)}.visit-info .list-name{font-weight:var(--w-head)}.visit-info .list-meta{font-size:var(--fs-13);color:var(--muted);text-align:left;margin:0}.due-date.overdue{color:var(--bad)}.overdue-tag{font-size:var(--fs-11);font-weight:var(--w-head);color:var(--bad);text-transform:uppercase;letter-spacing:.04em}.mark-done{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.field-inline{gap:3px;display:grid}.mark-done input{padding:7px 9px}.mark-done input[type=number]{width:76px}.mark-done button{padding:8px 14px}.mark-done .auth-error{flex-basis:100%;margin:4px 0 0}.job-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);border-left:4px solid var(--accent);box-shadow:var(--shadow);flex-wrap:wrap;align-items:stretch;gap:10px 16px;padding:0;display:flex;overflow:hidden}.job-card.overdue{border-left-color:var(--bad)}.job-card.cancelled{border-left-color:var(--bad);background:var(--bad-bg)}.job-link{min-width:0;color:inherit;flex:260px;justify-content:space-between;align-items:center;gap:12px;padding:14px;text-decoration:none;display:flex}.job-link:hover{background:var(--sunken)}.job-info{flex-direction:column;gap:3px;min-width:0;display:flex}.job-info .list-name{font-weight:var(--w-head);font-size:var(--fs-17)}.job-addr{font-weight:var(--w-head);color:var(--ink);font-size:var(--fs-14)}.job-when{color:var(--muted);font-size:var(--fs-14);align-items:center;gap:6px;display:inline-flex}.job-when .ico{color:var(--muted);flex:none}.job-link .chev{color:var(--faint);flex:none}.job-status{font-size:var(--fs-11);font-weight:var(--w-head);text-transform:uppercase;letter-spacing:.04em;color:var(--ink)}.job-status.done{color:var(--good)}.job-status.cancelled,.job-card.overdue .job-status,.job-status.overdue{color:var(--bad)}.job-card .mark-done{align-items:center;padding:14px}.job-card:has(.job-status.done){opacity:.65}.cancelled-tag{color:var(--bad);text-transform:uppercase;font-size:var(--fs-11);letter-spacing:.04em}.job-detail{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);box-shadow:var(--shadow);gap:10px;margin-bottom:16px;padding:16px;display:grid}.detail-row{color:var(--ink);align-items:flex-start;gap:10px;margin:0;display:flex}.detail-row .ico{color:var(--muted);flex:none;margin-top:2px}.detail-note{border-top:1px solid var(--hairline);color:var(--muted);margin:4px 0 0;padding-top:10px}.banner-warn{border-radius:var(--r-s);background:var(--bad-bg);border:1px solid var(--bad-bg);color:var(--bad);font-size:var(--fs-14);margin-bottom:16px;padding:12px 14px}.detail-action{margin-top:8px}.cal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.cal-title{font-size:var(--fs-17);margin:0}.cal-nav{color:var(--ink);font-size:var(--fs-17);border:1px solid var(--hairline);border-radius:var(--r-s);background:var(--surface);padding:4px 12px;line-height:1.4;text-decoration:none}.cal-nav:hover{background:var(--sunken)}.cal-strip{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:20px;display:grid}.cal-day{color:var(--ink);border-radius:var(--r-s);border:1px solid #0000;flex-direction:column;align-items:center;gap:4px;padding:8px 0;text-decoration:none;display:flex}.cal-day:hover{background:var(--sunken)}.cal-day.sel{border-color:var(--accent);background:var(--surface)}.cal-dow{font-size:var(--fs-12);color:var(--muted)}.cal-num{font-size:var(--fs-17);font-weight:var(--w-head);border-radius:var(--r-pill);font-variant-numeric:tabular-nums;place-items:center;width:34px;height:34px;display:grid}.cal-day.today .cal-num{background:var(--accent);color:var(--accent-ink)}.cal-dot{border-radius:var(--r-pill);background:0 0;width:6px;height:6px}.cal-dot.on{background:var(--accent)}.cal-cta{text-align:center;margin-top:20px;display:block}.staff-request-form{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);max-width:460px;box-shadow:var(--shadow);flex-direction:column;gap:12px;margin-bottom:22px;padding:16px;display:flex}.staff-request-form .field{font-size:var(--fs-13);color:var(--muted);gap:4px;display:grid}.staff-request-form select,.staff-request-form input{padding:8px 10px}.staff-request-form .date-range{flex-wrap:wrap;gap:12px;display:flex}.staff-request-form .date-range .field{flex:160px}.staff-request-form button{align-self:flex-start;padding:9px 16px}.visit-controls{flex-wrap:wrap;align-items:flex-end;gap:10px 16px;display:flex}.assign .field-inline{gap:3px;display:grid}.assign select{padding:7px 9px}.assign .auth-error{flex-basis:100%;margin:4px 0 0}.settings-form{gap:16px;max-width:460px;display:grid}.settings-form .field{font-size:var(--fs-14);color:var(--muted);gap:6px;display:grid}.settings-form .modules{border:1px solid var(--hairline);border-radius:var(--r-m);background:var(--surface);gap:10px;margin:0;padding:14px 16px;display:grid}.settings-form .modules legend{font-weight:var(--w-head);padding:0 6px}.settings-form .modules>p{margin:0 0 4px}.settings-form .toggle{font-size:var(--fs-14);color:var(--ink);cursor:pointer;align-items:center;gap:10px;display:flex}.settings-save{justify-self:start;padding:11px 16px}.handling-chip{font-size:var(--fs-11);font-weight:var(--w-head);text-transform:none;letter-spacing:0;border-radius:var(--r-pill);vertical-align:middle;margin-left:8px;padding:1px 8px}.handling-chip.h-approval{color:var(--warn);background:var(--warn-bg)}.handling-chip.h-acknowledge{color:var(--info);background:var(--info-bg)}.handling-chip.h-auto_apply{color:var(--good);background:var(--good-bg)}.clash-warn{color:var(--bad);font-size:var(--fs-13);font-weight:var(--w-head)}.request-row.has-clash{border-color:var(--bad);background:var(--bad-bg)}.segmented{border-bottom:1px solid var(--hairline);gap:4px;margin:4px 0 16px;display:inline-flex}.seg{color:var(--muted);font-size:var(--fs-14);border-bottom:2px solid #0000;margin-bottom:-1px;padding:6px 10px;text-decoration:none}.seg:hover{color:var(--ink)}.seg.active{color:var(--ink);font-weight:var(--w-head);border-bottom-color:var(--accent)}.portal-request-form{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);max-width:440px;box-shadow:var(--shadow);flex-direction:column;gap:14px;margin-bottom:22px;padding:18px;display:flex}.portal-request-form .field{font-size:var(--fs-13);color:var(--muted);gap:5px;display:grid}.portal-request-form select,.portal-request-form input{width:100%}.portal-request-form .date-range{gap:12px;display:flex}.portal-request-form .date-range .field{flex:1 1 0;min-width:0}.portal-request-form button[type=submit]{align-self:flex-start;padding:10px 18px}.portal-request-form .auth-error,.portal-request-form .auth-notice{margin:0}.hero-visit{background:var(--surface);border:1px solid var(--hairline);border-left:4px solid var(--accent);border-radius:var(--r-m);box-shadow:var(--shadow);justify-items:start;gap:4px;margin:2px 0 6px;padding:20px;display:grid}.hero-kicker{font-size:var(--fs-11);font-weight:var(--w-head);text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.hero-date{font-size:var(--fs-17);font-weight:var(--w-head)}.hero-hint{margin:8px 0 0}.hero-hint a{color:var(--accent)}.welcome-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-m);box-shadow:var(--shadow);justify-items:start;gap:6px;padding:24px 20px;display:grid}.welcome-lede{font-size:var(--fs-17);font-weight:var(--w-head);margin:0}.welcome-card .btn{margin-top:8px}.skel{background:var(--sunken);border-radius:var(--r-s);animation:1.1s ease-in-out infinite skel-pulse}.skel-title{width:220px;height:22px;margin:6px 0 16px}.skel-card{border-radius:var(--r-m);height:108px;margin-bottom:14px}.skel-line{height:44px;margin-bottom:8px}.skel-line.short{width:60%}@keyframes skel-pulse{0%,to{opacity:1}50%{opacity:.55}}.freshness{font-size:var(--fs-12);color:var(--faint);margin:0 0 10px}.freshness.stale{color:var(--warn)}:root{--hero-bg:linear-gradient(160deg, #0e6b4a 0%, #0a5238 100%);--hero-ink:#f2faf6;--hero-ink-dim:#f2faf6b8;--shadow-soft:0 1px 2px #1418160d, 0 4px 16px #1418160f;--shadow-hero:0 8px 28px #0a523847}:root[data-theme=dark]{--hero-bg:linear-gradient(160deg, #128a60 0%, #0c5c40 100%);--shadow-soft:0 1px 2px #0006, 0 4px 16px #00000059;--shadow-hero:0 8px 28px #00000080}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--hero-bg:linear-gradient(160deg, #128a60 0%, #0c5c40 100%);--shadow-soft:0 1px 2px #0006, 0 4px 16px #00000059;--shadow-hero:0 8px 28px #00000080}}.portal .app-bar{background:0 0;border-bottom:0;position:static}.portal .app-bar-inner{flex-wrap:nowrap;gap:10px;max-width:560px;padding:18px 20px 0}.portal .app-main{max-width:560px;padding:6px 20px 118px}.portal .brandmark{background:var(--accent);width:34px;height:34px;color:var(--accent-ink);font-weight:var(--w-head);font-size:var(--fs-14);border-radius:10px;flex:none;place-items:center;display:grid}.portal .who{min-width:0;line-height:1.25;display:grid}.portal .who b{font-size:var(--fs-13);font-weight:var(--w-head);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.portal .who span{font-size:var(--fs-11);color:var(--faint)}.portal .avatar-btn{border-radius:var(--r-pill);background:var(--sunken);width:34px;height:34px;color:var(--muted);font-size:var(--fs-12);font-weight:var(--w-head);border:1px solid var(--hairline);cursor:pointer;flex:none;place-items:center;margin-left:auto;display:grid}.portal .avatar-btn:hover{color:var(--ink)}.portal .page-head{margin:14px 0 4px}.portal .page-head h1{letter-spacing:-.022em;font-size:29px;font-weight:680;line-height:1.15}.portal .page>.muted:first-of-type{margin-bottom:6px}.portal .section-h{font-size:var(--fs-12);letter-spacing:.1em;color:var(--faint);justify-content:space-between;align-items:baseline;margin:26px 0 10px;display:flex}.portal .section-h a{font:600 var(--fs-12)/1 system-ui, sans-serif;letter-spacing:0;text-transform:none;color:var(--accent);text-decoration:none}.portal .hero-visit{background:var(--hero-bg);color:var(--hero-ink);box-shadow:var(--shadow-hero);border:0;border-radius:22px;margin:10px 0 6px;padding:20px}.portal .hero-visit .hero-kicker{color:var(--hero-ink-dim);letter-spacing:.12em}.portal .hero-visit .hero-date{letter-spacing:-.02em;font-size:26px;font-weight:680}.portal .hero-visit .muted,.portal .hero-visit .hero-hint{color:var(--hero-ink-dim)}.portal .hero-visit .hero-hint a{color:var(--hero-ink)}.portal :is(.list-row,.empty,.welcome-card,.bill-card,.bill-balance,.portal-request-form,.job-card,.request-row,.chat-bubble.theirs){box-shadow:var(--shadow-soft);border:0}.portal :is(.list-row,.empty,.welcome-card,.bill-card,.bill-balance,.portal-request-form,.request-row){border-radius:18px}.portal .job-card{border-left:4px solid var(--accent);border-radius:18px}.portal .list-row{align-items:center;padding:13px 16px}.portal .list-row .due-date{background:var(--sunken);text-align:center;width:44px;min-width:0;height:46px;line-height:1.15;font-size:var(--fs-11);font-weight:var(--w-head);color:var(--muted);border-radius:12px;flex:none;place-content:center;padding:2px;display:grid}.portal .bill-balance{padding:20px}.portal .bill-balance-amt{letter-spacing:-.025em;font-size:34px;font-weight:700}.portal .bill-total{font-size:var(--fs-14)}.portal :is(input,select,textarea){background:var(--canvas);border-radius:12px;padding:12px 14px}.portal button[type=submit],.portal .btn{border-radius:14px;padding:13px 16px;font-size:15px}.portal .chat-composer textarea{border-radius:var(--r-pill);background:var(--surface)}.portal .chat-composer button{border-radius:var(--r-pill)}.portal .chat-bubble{border-radius:18px}.portal .chat-bubble.mine{border-bottom-right-radius:6px}.portal .chat-bubble.theirs{border-bottom-left-radius:6px}.portal .seg-row{flex-wrap:wrap;gap:8px;margin:4px 0 16px;display:flex}.portal .seg-chip{font:600 var(--fs-13)/1 system-ui, sans-serif;border-radius:var(--r-pill);border:1px solid var(--hairline);background:var(--surface);color:var(--muted);cursor:pointer;padding:10px 14px}.portal .seg-chip.on{background:var(--ink);color:var(--canvas);border-color:var(--ink)}.portal .tabbar{z-index:30;background:color-mix(in srgb, var(--surface) 90%, transparent);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--hairline);width:100%;max-width:560px;padding:8px 6px calc(10px + env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.portal .tabbar a{color:var(--faint);flex:1;justify-items:center;gap:3px;padding:4px 0;font:600 10.5px/1 system-ui,sans-serif;text-decoration:none;display:grid}.portal .tabbar a svg{width:23px;height:23px}.portal .tabbar a[aria-current=page]{color:var(--accent)}.portal .scrim{z-index:40;cursor:default;background:#0a0c0b66;border:0;width:100%;padding:0;position:fixed;inset:0}.portal .sheet{z-index:41;background:var(--surface);width:100%;max-width:560px;padding:10px 20px calc(26px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;animation:.22s cubic-bezier(.32,.72,.22,1) sheet-up;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -8px 40px #0000002e}@keyframes sheet-up{0%{transform:translate(-50%,102%)}to{transform:translate(-50%)}}.portal .sheet .grab{border-radius:var(--r-pill);background:var(--hairline);width:36px;height:4px;margin:4px auto 14px}.portal .sheet h3{font-size:var(--fs-14);font-weight:var(--w-head);margin:0 0 8px}.portal .sheet-row{border-top:1px solid var(--hairline);width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border-bottom:0;border-left:0;border-right:0;align-items:center;gap:12px;padding:14px 0;font:550 15px/1.3 system-ui,sans-serif;display:flex}.portal .sheet-row:first-of-type{border-top:0}.portal .sheet-row svg{color:var(--muted);flex:none}.portal .sheet-row .sub{font-size:var(--fs-12);color:var(--faint);margin-left:auto;font-weight:400}.portal .sheet .theme-toggle{margin-left:auto}.portal .freshness{text-align:center;margin:30px 0 0}
