:root{--brand: #2da9b2;--brand-600: #1f8f99;--brand-700: #167680;--navy: #0a3b49;--navy-2: #0f5568;--aqua: #b2faff;--aqua-bg: #edfcfe;--green: #16a34a;--bg: #f5f8f9;--card: #ffffff;--ink: #0d3541;--muted: #4c6874;--line: #e5edef;--radius: 16px;--radius-lg: 20px;--radius-sm: 11px;--shadow-sm: 0 1px 2px rgba(10, 59, 73, .05);--shadow: 0 1px 3px rgba(10, 59, 73, .06), 0 8px 24px rgba(10, 59, 73, .06);--shadow-lg: 0 12px 34px rgba(10, 59, 73, .16);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--nav-h: 64px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.5}svg{display:block}.app{min-height:100%;display:flex;flex-direction:column;background:var(--bg)}.topbar{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 1px 12px #0a3b490d;padding-top:env(safe-area-inset-top,0)}.topbar-inner{max-width:640px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:62px;padding:0 18px}.brand{display:inline-flex;align-items:center}.brand-logo{height:34px;width:auto;display:block}.brand-text{font-weight:800;color:var(--navy)}.topbar .link{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);color:var(--navy);font-size:14px;font-weight:600;padding:8px 15px;border-radius:999px;font-family:inherit}.topbar .link:active{background:#f1f6f7}.content{flex:1;width:100%;max-width:640px;margin:0 auto;padding:20px 16px;padding-bottom:calc(var(--nav-h) + 40px)}.screen h1{font-size:26px;font-weight:800;letter-spacing:-.025em;margin:2px 0 0;color:var(--navy)}.muted{color:var(--muted)}.small{font-size:13px}.error{color:#b42318;background:#fef3f2;border:1px solid #fecdca;padding:10px 12px;border-radius:var(--radius-sm);font-size:14px;margin-top:12px}.empty{padding:32px 0;text-align:center}.schedule-head{display:flex;align-items:flex-start;justify-content:space-between}.greeting{font-size:14px;font-weight:600;color:var(--brand-700);margin-bottom:3px}.subhead{margin:6px 0 18px;font-size:14px;font-weight:500}.icon-btn{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--muted);box-shadow:var(--shadow-sm)}.icon-btn:active{background:#f1f6f7}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.section-label{text-transform:uppercase;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--muted);margin:24px 0 10px}.tabs{display:flex;gap:4px;margin-bottom:18px;background:#e7eff1;padding:4px;border-radius:999px}.tab{flex:1;padding:9px;border:none;background:transparent;border-radius:999px;font-size:14px;font-weight:600;color:var(--muted);font-family:inherit;transition:background .15s,color .15s}.tab.active{background:#fff;color:var(--navy);box-shadow:var(--shadow-sm)}.hero-card{display:block;text-decoration:none;color:#fff;background:linear-gradient(150deg,#0e4a5b 0%,var(--navy) 100%);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-lg);transition:transform .12s ease}.hero-card:active{transform:scale(.99)}.hero-label{text-transform:uppercase;font-size:12px;font-weight:700;letter-spacing:.07em;color:var(--aqua)}.hero-title{font-size:21px;font-weight:800;letter-spacing:-.02em;margin:8px 0 2px}.hero-sub{color:#ffffffb8;font-size:14px}.hero-meta{display:flex;flex-direction:column;gap:7px;margin-top:15px}.hero-meta span{display:inline-flex;align-items:center;gap:9px;font-size:14px;color:#ffffffe6}.hero-meta svg{flex:0 0 auto;color:var(--aqua)}.hero-cta{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;padding:14px;border-radius:999px;background:var(--brand);color:#fff;font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.04em;box-shadow:0 6px 16px #2da9b259}.list{display:flex;flex-direction:column;gap:10px}.card{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:15px 16px;text-decoration:none;color:inherit;box-shadow:var(--shadow-sm);transition:transform .12s ease,box-shadow .12s ease}.card:active{transform:scale(.985);box-shadow:var(--shadow)}.card.row{justify-content:space-between}.card-main{min-width:0;flex:1}.card-title{font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--navy)}.row-meta{display:flex;align-items:center;gap:10px;margin-top:8px}.time{font-size:13px;color:var(--muted);font-weight:500}.row-chevron{flex:0 0 auto;color:#b3c5ca;transform:rotate(-90deg)}.status{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;text-transform:capitalize}.status-scheduled{background:#eef2f4;color:#43606b}.status-in_progress{background:#fef3c7;color:#92400e}.status-completed{background:#dcfce7;color:#166534}.status-cancelled{background:#fee2e2;color:#991b1b}.status-awaiting_response{background:#fef3c7;color:#92400e}.status-approved,.status-converted{background:#dcfce7;color:#166534}.status-draft{background:#eef2f4;color:#43606b}.status-archived{background:#f1f5f9;color:#64748b}.back{display:inline-flex;align-items:center;gap:6px;margin-bottom:14px;color:var(--brand-700);font-weight:600;text-decoration:none}.vd-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.vd-head h1{flex:1}.vd-head .status{margin-top:6px;flex:0 0 auto}.vd-meta{display:flex;flex-direction:column;gap:7px;margin:8px 0 16px}.vd-title{font-size:15px;font-weight:600;color:var(--ink)}.vd-row{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:14px}.vd-row svg{flex:0 0 auto;color:var(--brand-700)}.instructions{display:flex;align-items:flex-start;gap:11px;background:var(--aqua-bg);border:1px solid #bfeaef;color:#0b5563;padding:13px 15px;border-radius:var(--radius);margin-bottom:16px;font-size:14px;line-height:1.55}.ins-ico{flex:0 0 auto;color:var(--brand-700);margin-top:1px}.progress-bar{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:13px 16px;box-shadow:var(--shadow-sm);margin-bottom:16px}.progress-title{font-size:15px;font-weight:700;color:var(--navy)}.ring{flex:0 0 auto}.ring-track{stroke:#e6eef0}.ring-value{stroke:var(--brand);transition:stroke-dashoffset .3s ease}.ring-text{font-size:13px;font-weight:700;fill:var(--navy);font-family:var(--font)}.worksheet{display:flex;flex-direction:column;gap:12px}.ws-line{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:border-color .15s}.ws-line.done{border-color:#c4e9ec}.ws-head{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 16px;background:none;border:none;text-align:left;font-family:inherit;cursor:pointer}.ws-head-main{min-width:0}.ws-heading{font-weight:700;font-size:15px;color:var(--navy)}.ws-head-side{display:flex;align-items:center;gap:10px;flex:0 0 auto}.chip{background:var(--aqua-bg);color:var(--brand-700);border:1px solid #cdeff3;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600}.ws-count{font-size:13px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.ws-count.done{color:var(--brand)}.chev{color:#9fb4ba;transition:transform .18s ease}.chev.open{transform:rotate(180deg)}.tasks{list-style:none;margin:0;padding:0 0 6px}.task{display:flex;align-items:flex-start;gap:13px;padding:13px 16px;border-top:1px solid var(--line);min-height:52px;cursor:pointer}.task:active{background:#f6fafb}.task.checked .task-body{color:var(--muted);text-decoration:line-through}.checkbox{flex:0 0 26px;height:26px;border:2px solid #cbd8dc;border-radius:8px;display:grid;place-items:center;color:#fff;transition:background .12s,border-color .12s;margin-top:1px}.task.checked .checkbox{background:var(--brand);border-color:var(--brand)}.task-object{font-weight:600}.task-comment{color:var(--muted);font-size:13px}.actions{position:fixed;left:0;right:0;bottom:0;padding:14px 16px calc(16px + env(safe-area-inset-bottom,0));max-width:640px;margin:0 auto;background:linear-gradient(to top,var(--bg) 72%,rgba(245,248,249,0))}.btn{width:100%;padding:15px;border:none;border-radius:999px;font-size:15px;font-weight:700;font-family:inherit;transition:transform .1s ease,background .12s;cursor:pointer}.btn:active{transform:scale(.98)}.btn.big{padding:17px;font-size:16px}.btn.primary,.btn.success,.btn.outline{text-transform:uppercase;letter-spacing:.045em}.btn.primary{background:var(--navy);color:#fff;box-shadow:0 8px 20px #0a3b4938}.btn.primary:active{background:#0b2f3a}.btn.success{background:var(--green);color:#fff;box-shadow:0 8px 20px #16a34a42}.btn.outline{background:#fff;border:1.5px solid var(--brand);color:var(--brand-700);margin-top:10px}.btn.outline:active{background:var(--aqua-bg)}.btn.ghost{background:#fff;border:1.5px solid var(--line);color:var(--navy);border-radius:var(--radius);margin-top:10px;box-shadow:var(--shadow-sm)}.btn.ghost:active{background:#f6fafb}.btn:disabled{opacity:.55;box-shadow:none}.done-banner{text-align:center;padding:16px;background:#dcfce7;color:#166534;border:1px solid #bbf7d0;border-radius:var(--radius);font-weight:700}.identify{padding-top:4px}.auth-hero{text-align:center;padding:20px 0 22px}.auth-hero-logo{height:44px;width:auto;margin:0 auto 20px;display:block}.auth-hero h1{margin:0 0 8px}.auth-hero-sub{color:var(--muted);font-size:15px;max-width:300px;margin:0 auto}.auth-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow)}.input{width:100%;padding:15px;font-size:16px;font-family:inherit;border:1.5px solid var(--line);border-radius:var(--radius);margin:0 0 12px;background:#fff;color:var(--ink);transition:border-color .12s,box-shadow .12s}.input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px #2da9b224}.magic-link{margin-top:4px}.magic-link .muted{margin:0 0 14px;font-size:14px}.demo-pick{margin-top:22px;display:flex;flex-direction:column;gap:10px}.demo-pick .btn.ghost,.dev-impersonate .btn.ghost{margin-top:0;text-align:left}.demo-pick>.muted{margin:0 0 2px}.dev-impersonate .link{margin-top:12px;color:var(--brand-700);background:none;border:none;font-family:inherit;font-weight:600}.identify .btn.big{margin-bottom:10px}.mode-badge{position:fixed;bottom:calc(var(--nav-h) + 14px);left:50%;transform:translate(-50%);background:var(--navy);color:#fff;font-size:11px;font-weight:600;padding:4px 12px;border-radius:999px;opacity:.85;z-index:30;pointer-events:none;box-shadow:var(--shadow)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:20;background:#fffffff0;-webkit-backdrop-filter:saturate(1.6) blur(10px);backdrop-filter:saturate(1.6) blur(10px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0)}.nav-inner{max-width:640px;margin:0 auto;display:flex}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0;height:var(--nav-h);justify-content:center;text-decoration:none;color:var(--muted);font-size:12px;font-weight:600;position:relative}.nav-item.active{color:var(--brand-700)}.nav-item.active:before{content:"";position:absolute;top:0;width:26px;height:3px;border-radius:0 0 3px 3px;background:var(--brand)}.nav-ico{flex:0 0 auto}.actions.above-nav{bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0));background:linear-gradient(to top,var(--bg) 82%,rgba(245,248,249,0))}.passkey-prompt{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--aqua-bg);border:1px solid #bfeaef;border-radius:var(--radius);padding:13px 15px;margin-bottom:16px}.passkey-actions{display:flex;gap:8px;flex:0 0 auto}.passkey-actions .btn{width:auto;padding:9px 15px;font-size:14px;margin:0}.pull-indicator{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px;overflow:hidden;transition:height .15s ease}.empty-state{text-align:center;padding:52px 0}.empty-ico{color:#b3c5ca;display:flex;justify-content:center;margin-bottom:12px}.section-title{font-size:18px;font-weight:700;color:var(--navy);margin:26px 0 4px}.avail-days{display:flex;flex-direction:column;gap:10px;margin-top:14px}.avail-row{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm);transition:border-color .12s}.avail-row.on{border-color:var(--brand);box-shadow:0 0 0 3px #2da9b21a}.avail-toggle{width:100%;display:flex;align-items:center;gap:12px;background:none;border:none;padding:0;text-align:left;font-family:inherit;cursor:pointer}.switch{flex:0 0 44px;height:26px;border-radius:999px;background:#cbd8dc;position:relative;transition:background .15s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 3px #0003}.switch.on{background:var(--brand)}.switch.on:after{transform:translate(18px)}.avail-day{font-weight:700;color:var(--navy)}.avail-times{display:flex;align-items:center;gap:10px;margin-top:12px;padding-left:56px}.time-input{padding:9px 11px;border:1.5px solid var(--line);border-radius:10px;font-size:15px;background:#fff;font-family:inherit;color:var(--ink)}.time-input:focus{outline:none;border-color:var(--brand)}.timeoff-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}.timeoff-add .input{flex:1 1 140px;margin:0}.timeoff-add .btn{width:auto;padding:13px 20px}.timeoff-list{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:8px}.timeoff-item{display:flex;justify-content:space-between;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:13px 15px;box-shadow:var(--shadow-sm)}.link.danger{color:#dc2626;background:none;border:none;font-size:14px;font-weight:600;font-family:inherit}.actions.above-nav .btn{width:100%}.quote-card .card-title{color:var(--navy)}.quote-card .card-side{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.visit-detail{padding-bottom:92px}.loc-note{margin-top:12px}.geo-hint{text-align:center;margin-top:8px}
