.topbar{justify-content:flex-start;gap:18px}.topbar-right{margin-left:auto}.topnav{display:flex;gap:4px}.navlink{color:#c7d3cd;text-decoration:none;font-size:.85rem;font-weight:600;padding:6px 12px;border-radius:7px;transition:background .12s ease,color .12s ease}.navlink:hover{background:#ffffff14;color:#fff}.navlink-active{background:#ffffff24;color:#fff}.today{max-width:920px;margin:0 auto}.today-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}.today-eyebrow{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-deep);font-weight:700;margin:0 0 6px}.today-date{margin:0;font-size:1.9rem;letter-spacing:-.02em}.pill{display:inline-flex;align-items:center;padding:6px 14px;border-radius:999px;font-size:.8rem;font-weight:600;white-space:nowrap}.pill-ok{background:#e2f1ec;color:var(--accent-deep)}.pill-warn{background:#fbeede;color:#9a5b16}.pill-neutral{background:#eaeeec;color:var(--muted)}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:28px}.stat{background:var(--surface);padding:18px 20px;display:flex;flex-direction:column;gap:4px}.stat-value{font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.stat-label{font-size:.78rem;color:var(--muted)}.stat-warn .stat-value{color:#9a5b16}.state{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px;text-align:center;color:var(--muted)}.state-error{color:var(--danger)}.joblist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.job{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:var(--radius);padding:16px 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.job-scheduled{border-left-color:var(--muted)}.job-in_progress{border-left-color:var(--accent)}.job-done{border-left-color:#79c2ae}.job-missed{border-left-color:var(--danger)}.job-cancelled{border-left-color:var(--line);opacity:.7}.job-main{min-width:0}.job-site{display:flex;align-items:baseline;gap:10px}.job-name{font-weight:600;font-size:1rem}.job-area{font-size:.8rem;color:var(--muted)}.job-task{margin:6px 0 0;font-size:.86rem;color:var(--muted);line-height:1.45}.job-meta{display:flex;flex-direction:column;align-items:flex-end;gap:8px;white-space:nowrap}.assign{display:flex;align-items:center;gap:8px}.assign-select,.status-select{font-family:inherit;font-weight:600;border-radius:7px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-repeat:no-repeat;transition:border-color .12s ease,box-shadow .12s ease}.assign-select:focus,.status-select:focus{outline:none;box-shadow:0 0 0 3px #1f8a702e}.assign-select:disabled,.status-select:disabled{opacity:.6;cursor:wait}.assign-select{font-size:.86rem;color:var(--ink);background-color:#f5f8f6;border:1px solid var(--line);padding:5px 26px 5px 10px;background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236b7a72' stroke-width='1.5'/%3E%3C/svg%3E");background-position:right 9px center}.assign-select:focus{border-color:var(--accent)}.assign-empty{color:#9a5b16;border-color:#e6cfae;background-color:#fcf3e6}.off-team{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#9a5b16;background:#fbeede;border-radius:5px;padding:2px 6px}.status-select{font-size:.74rem;border:1px solid transparent;padding:4px 22px 4px 9px;background-color:#eef2f0;color:var(--ink-soft);background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23556' stroke-width='1.5'/%3E%3C/svg%3E");background-position:right 7px center}.status-select.status-scheduled{background-color:#eef2f0;color:var(--ink-soft)}.status-select.status-in_progress{background-color:#e4f3ef;color:var(--accent-deep)}.status-select.status-done{background-color:#e2f1ec;color:var(--accent-deep)}.status-select.status-missed{background-color:#fbecea;color:var(--danger)}.status-select.status-cancelled{background-color:#eef0ee;color:var(--muted)}.job-price{font-size:.82rem;color:var(--muted)}@media (max-width: 560px){.summary{grid-template-columns:1fr}.job{flex-direction:column}.job-meta{flex-direction:row;align-items:center;flex-wrap:wrap}}.job-cleaner-note{margin:6px 0 0;font-size:.84rem;color:var(--ink-soft);background:#f1f6f3;border-radius:6px;padding:6px 10px;line-height:1.4;display:flex;gap:8px;flex-wrap:wrap}.job-cleaner-note b{font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-deep);padding-top:1px}.page{max-width:920px;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}.page-eyebrow{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-deep);font-weight:700;margin:0 0 6px}.page-title{margin:0;font-size:1.6rem;letter-spacing:-.02em}.primary-btn{background:var(--accent);color:#fff;border:none;padding:9px 16px;border-radius:8px;font-size:.88rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .12s ease;white-space:nowrap}.primary-btn:hover:not(:disabled){background:var(--accent-deep)}.primary-btn:disabled{opacity:.5;cursor:not-allowed}.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:24px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.field2{display:flex;flex-direction:column;gap:6px}.field2 span{font-size:.78rem;font-weight:600;color:var(--ink-soft)}.field2 .req{color:var(--danger);font-style:normal;margin-left:2px}.field2 input,.field2 select{font-family:inherit;font-size:.92rem;color:var(--ink);background:#fbfdfc;border:1px solid var(--line);border-radius:8px;padding:9px 11px;transition:border-color .12s ease,box-shadow .12s ease}.field2 input:focus,.field2 select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1f8a702e}.form-actions{display:flex;justify-content:flex-end;margin-top:18px}.tag{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:5px}.tag-residential{background:#e4f3ef;color:var(--accent-deep)}.tag-commercial{background:#eae6f5;color:#5b4b8a}.clientlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.client-block{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.client-header{width:100%;display:flex;align-items:center;gap:10px;padding:15px 18px;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left}.client-header:hover{background:#f7faf8}.client-name{font-weight:600;font-size:1rem;color:var(--ink)}.chev{color:var(--muted);font-size:.8rem;display:inline-block;transition:transform .12s ease}.chev-open{transform:rotate(90deg)}.client-meta-inline{margin-left:auto;display:flex;gap:14px;font-size:.82rem;color:var(--muted)}.sites-panel{border-top:1px solid var(--line);padding:16px 18px;background:#fafcfb}.sites-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.sites-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.ghost-add{background:none;border:1px solid var(--line);border-radius:7px;padding:5px 11px;font-size:.8rem;font-weight:600;font-family:inherit;color:var(--accent-deep);cursor:pointer;transition:background .12s ease}.ghost-add:hover{background:#eef4f1}.site-form{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:12px}.sitelist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.site{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:11px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.site-main{display:flex;align-items:center;gap:8px;min-width:0}.site-name{font-weight:600;font-size:.92rem}.site-area{font-size:.78rem;color:var(--muted)}.site-meta{display:flex;align-items:center;gap:12px;font-size:.8rem;color:var(--muted)}.site-access{font-style:italic}.site-rate{font-weight:600;color:var(--ink-soft);white-space:nowrap}.sites-empty{font-size:.85rem;color:var(--muted);padding:6px 2px}@media (max-width: 560px){.form-grid{grid-template-columns:1fr}.client-meta-inline{display:none}.site{flex-direction:column;align-items:flex-start}}.cleaner{max-width:640px;margin:0 auto}.cleaner-head{margin-bottom:22px}.cleaner-eyebrow{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-deep);font-weight:700;margin:0 0 6px}.cleaner-date{margin:0;font-size:1.7rem;letter-spacing:-.02em}.cleaner-sub{margin:6px 0 0;color:var(--muted);font-size:.92rem}.myjobs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.myjob{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--radius);padding:16px 18px}.myjob-scheduled{border-left-color:var(--muted)}.myjob-in_progress{border-left-color:var(--accent)}.myjob-done{border-left-color:#79c2ae;background:#fbfdfc}.myjob-missed{border-left-color:var(--danger)}.myjob-cancelled{border-left-color:var(--line);opacity:.7}.myjob-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.myjob-site{display:flex;align-items:baseline;gap:10px}.myjob-name{font-weight:600;font-size:1.05rem}.myjob-area{font-size:.82rem;color:var(--muted)}.mystatus{font-size:.74rem;font-weight:700;padding:3px 10px;border-radius:6px;background:#eef2f0;color:var(--ink-soft);white-space:nowrap}.mystatus-in_progress{background:#e4f3ef;color:var(--accent-deep)}.mystatus-done{background:#e2f1ec;color:var(--accent-deep)}.mystatus-missed{background:#fbecea;color:var(--danger)}.myjob-line{margin:4px 0;font-size:.9rem;line-height:1.45;display:flex;gap:10px}.myjob-line b{flex:0 0 64px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding-top:2px}.myjob-line span{color:var(--ink)}.myjob-actions{margin:14px 0 12px}.myjob-note{display:flex;flex-direction:column;gap:8px}.myjob-note textarea{width:100%;font-family:inherit;font-size:.9rem;color:var(--ink);background:#fbfdfc;border:1px solid var(--line);border-radius:8px;padding:9px 11px;resize:vertical;box-sizing:border-box}.myjob-note textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1f8a702e}.myjob-note .ghost-add{align-self:flex-start}@media (max-width: 560px){.myjob-actions .primary-btn{width:100%}}:root{--ink: #122019;--ink-soft: #2b3a32;--paper: #eef1ee;--surface: #ffffff;--line: #d9e0db;--accent: #1f8a70;--accent-deep:#176b57;--muted: #6b7a72;--danger: #b3402f;--radius: 10px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}.screen-centered{min-height:100%;display:grid;place-items:center;color:var(--muted);padding:24px}.notice{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:32px;max-width:380px;text-align:center}.notice h1{margin:0 0 8px;font-size:1.25rem;color:var(--ink)}.notice p{margin:0;color:var(--muted);line-height:1.5}.login{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(120% 90% at 50% -10%,#1b2e25 0%,var(--ink) 55%)}.login-card{width:100%;max-width:360px;background:var(--surface);border-radius:14px;padding:36px 32px 32px;box-shadow:0 24px 60px #06120d59}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.login-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--ink);color:#fff;font-weight:700;letter-spacing:-.04em;font-size:.95rem}.login-name{font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;color:var(--muted)}.login-title{margin:0 0 4px;font-size:1.5rem;letter-spacing:-.02em}.login-sub{margin:0 0 24px;color:var(--muted);font-size:.9rem}.field{display:block;margin-bottom:16px}.field span{display:block;font-size:.78rem;font-weight:600;color:var(--ink-soft);margin-bottom:6px}.field input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:8px;font-size:.95rem;font-family:inherit;color:var(--ink);background:#fbfdfc;transition:border-color .12s ease,box-shadow .12s ease}.field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1f8a702e}.login-error{background:#fbecea;color:var(--danger);border-radius:8px;padding:9px 12px;font-size:.85rem;margin-bottom:16px}.login-btn{width:100%;padding:12px;border:none;border-radius:8px;background:var(--accent);color:#fff;font-weight:600;font-size:.95rem;font-family:inherit;cursor:pointer;transition:background .12s ease}.login-btn:hover:not(:disabled){background:var(--accent-deep)}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.app-shell{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:58px;background:var(--ink);color:#fff}.topbar-brand{display:flex;align-items:center;gap:10px}.topbar-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:var(--accent);color:#fff;font-weight:700;font-size:.8rem;letter-spacing:-.04em}.topbar-name{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#c7d3cd}.topbar-right{display:flex;align-items:center;gap:16px}.topbar-user{font-size:.88rem;color:#dde6e1}.ghost-btn{background:transparent;border:1px solid rgba(255,255,255,.22);color:#fff;padding:6px 12px;border-radius:7px;font-size:.82rem;font-family:inherit;cursor:pointer;transition:background .12s ease}.ghost-btn:hover{background:#ffffff1a}.content{flex:1;padding:40px 24px}.placeholder{max-width:540px;margin:0 auto;text-align:center;padding-top:8vh}.placeholder-eyebrow{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-deep);font-weight:700;margin:0 0 12px}.placeholder h1{margin:0 0 12px;font-size:2rem;letter-spacing:-.02em}.placeholder-body{color:var(--muted);line-height:1.6;margin:0}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
