:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#343a40;background:#f4f7f6;font-synthesis:none;--green: #7ac143;--green-dark: #3f762c;--green-soft: #eaf6e1;--charcoal: #343a40;--orange: #f5a623;--surface: #ffffff;--muted: #66736d;--line: #dfe7e3;--shadow: 0 18px 50px rgba(37, 61, 50, .09)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.page-shell{width:min(100%,560px);min-height:100vh;margin:0 auto;padding:24px 20px 40px}.site-header{display:flex;align-items:center;gap:12px;padding:8px 0 36px}.site-header.compact{padding:0;flex:1;justify-content:flex-end}.brand-mark{width:48px;height:48px;border-radius:14px;object-fit:cover}.site-header.compact .brand-mark{width:38px;height:38px;border-radius:11px}.site-header div{display:grid}.site-header strong{font-size:1.05rem;letter-spacing:-.02em}.site-header span{color:var(--muted);font-size:.76rem}.site-header.compact span{display:none}h1,h2,p{margin-top:0}h1{font-size:clamp(2rem,10vw,3rem);line-height:1.04;letter-spacing:-.055em;margin-bottom:12px}h2{font-size:1.2rem;letter-spacing:-.025em}.eyebrow{color:var(--green-dark);font-size:.72rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;margin-bottom:8px}.location-intro{padding:12px 0 32px}.location-intro>p:last-child,.location-heading+p{color:var(--muted)}.profile-grid{display:grid;gap:14px;margin-top:18px}.profile-card{width:100%;display:flex;align-items:center;gap:16px;text-align:left;border:1px solid var(--line);border-radius:22px;padding:20px;background:var(--surface);color:inherit;box-shadow:var(--shadow);cursor:pointer;transition:transform .2s,border-color .2s}.profile-card:active,.service-card:active{transform:scale(.98)}.profile-card.client{border-color:#b9dca4}.profile-icon{display:grid;place-items:center;flex:0 0 52px;height:52px;border-radius:17px;color:var(--green-dark);background:var(--green-soft)}.profile-card.collaborator .profile-icon{color:var(--charcoal);background:#edf0ef}.profile-card span:last-child{display:grid;gap:4px}.profile-card strong{font-size:1.08rem}.profile-card small{color:var(--muted);line-height:1.4}.privacy-note{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:.78rem;margin-top:28px}.privacy-note svg{width:16px}.top-row{display:flex;align-items:center;margin-bottom:40px}.icon-button{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:14px;color:var(--charcoal);background:var(--surface);cursor:pointer}.icon-button svg{width:20px}.location-heading h1{font-size:2.1rem}.status-card{position:relative;overflow:hidden;display:flex;align-items:center;gap:14px;padding:20px;border-radius:22px;color:#fff;background:linear-gradient(135deg,var(--green-dark),#5b9c38);box-shadow:0 18px 40px #3f762c3d}.status-card span{display:block;opacity:.75;font-size:.78rem;margin-bottom:3px}.status-card strong{font-size:1rem}.status-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;color:var(--green-dark);background:#fff}.status-sparkle{position:absolute;right:-6px;top:-8px;width:78px;height:78px;opacity:.12}.history-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;margin:12px 0 0;padding:16px 4px;border:0;color:var(--charcoal);background:transparent;cursor:pointer}.history-toggle span{display:flex;align-items:center;gap:9px;font-weight:600}.history-toggle svg{width:19px;transition:transform .2s}.history-toggle .rotated{transform:rotate(180deg)}.timeline{list-style:none;margin:0 0 18px;padding:4px 0 4px 9px}.timeline li{display:flex;gap:14px;min-height:58px;position:relative}.timeline li>span{width:10px;height:10px;margin-top:5px;border:3px solid var(--green);border-radius:50%;background:#fff;z-index:1}.timeline li:not(:last-child):before{content:"";position:absolute;left:4px;top:15px;width:1px;height:43px;background:var(--line)}.timeline div{display:grid;align-content:start}.timeline small{color:var(--muted);margin-top:3px}.timeline .empty{color:var(--muted)}.section-block{margin-top:30px}.section-title{display:flex;justify-content:space-between;align-items:flex-end}.section-title h2{margin-bottom:0}.section-title>svg{color:var(--orange)}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:16px}.identity-card{margin-top:16px;padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.identity-card summary{cursor:pointer;font-weight:650}.identity-card summary span,.rating-comment>span{color:var(--muted);font-size:.72rem;font-weight:400}.identity-card>div{display:grid;gap:12px;margin-top:14px}.identity-card label,.rating-comment{display:grid;gap:6px;font-size:.8rem;font-weight:650}.identity-card input,.rating-comment textarea,.request-response input{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8faf9;font:inherit}.identity-card small{color:var(--muted)}.rating-comment{margin-top:16px;text-align:left}.service-card{position:relative;min-height:126px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:17px;border:1px solid var(--line);border-radius:20px;color:var(--charcoal);background:var(--surface);box-shadow:0 10px 30px #253d320e;cursor:pointer;transition:transform .2s,border-color .2s}.service-card:hover{border-color:#a9d58f}.service-card:disabled{opacity:.65}.service-card>svg:first-child{width:25px;color:var(--green-dark)}.service-card span{font-weight:650;text-align:left;line-height:1.25}.rating-card{margin-top:36px;padding:24px;border-radius:24px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}.rating-card h2{line-height:1.35}.stars{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px}.stars button{height:52px;border:1px solid var(--line);border-radius:15px;color:#a5aea9;background:#f8faf9;cursor:pointer}.stars button:hover,.stars button.selected{border-color:#efb44f;color:var(--orange);background:#fff7e8}.stars svg{fill:currentColor}.rating-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem;margin-top:8px}.external-links{margin-top:30px;padding:22px;border:1px solid var(--line);border-radius:22px;background:var(--surface)}.external-links h2{margin-bottom:16px}.external-link-list{display:grid;gap:10px}.external-link-list a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px;border-radius:15px;color:var(--charcoal);background:#f4f7f6;text-decoration:none}.external-link-list a>span{display:grid;gap:3px}.external-link-list small{color:var(--muted)}.external-link-list svg{width:20px;color:var(--green-dark)}.notice{display:flex;gap:12px;margin-top:18px;padding:16px;border-radius:18px}.notice.success{background:var(--green-soft);color:#2f6121}.notice.info{background:#fff5df;color:#75500f}.notice>span{flex:0 0 34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#ffffffb3}.notice svg{width:18px}.notice strong{display:block}.notice p{margin:3px 0 0;font-size:.82rem;line-height:1.4}footer{text-align:center;color:var(--muted);font-size:.72rem;padding-top:36px}.state-page,.collaborator-page{width:min(100%,520px);min-height:100vh;margin:auto;padding:24px;display:flex;flex-direction:column;align-items:center;text-align:center}.state-page .site-header{align-self:stretch}.state-page>.spinner{margin-top:18vh}.state-page h1{font-size:1.8rem;margin-top:22px}.state-page>p:not(.eyebrow),.collaborator-page>p:not(.eyebrow){color:var(--muted);max-width:340px;line-height:1.55}.state-icon{width:68px;height:68px;display:grid;place-items:center;border-radius:22px;margin:14vh 0 20px}.state-icon.error{color:#9c4a38;background:#ffe9e3}.state-icon.collaborator{margin-top:9vh;color:var(--green-dark);background:var(--green-soft)}.collaborator-page .top-row{width:100%;align-self:stretch}.collaborator-page h1{font-size:2rem}.coming-card{display:flex;gap:14px;text-align:left;margin:24px 0;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff}.coming-card>svg{flex:0 0 25px;color:var(--green-dark)}.coming-card div{display:grid;gap:5px}.coming-card span{color:var(--muted);font-size:.82rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:0 20px;border-radius:15px;font-weight:650;cursor:pointer}.button.primary{border:0;color:#fff;background:var(--green-dark)}.button.secondary{border:1px solid var(--line);color:var(--charcoal);background:#fff}.button svg{width:18px}.button.full{width:100%}.login-card{width:100%;display:grid;gap:16px;margin:18px 0;padding:22px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:var(--shadow);text-align:left}.login-card label{display:grid;gap:7px;font-size:.82rem;font-weight:650}.login-card input{width:100%;min-height:52px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:#f8faf9;font:inherit;font-size:1rem}.login-card input:focus{outline:3px solid rgba(122,193,67,.18);border-color:var(--green)}.worker-heading{width:100%;display:flex;align-items:center;gap:16px;text-align:left;margin:28px 0 24px}.worker-heading h1{font-size:1.75rem;margin-bottom:5px}.worker-heading span{color:var(--muted)}.worker-avatar{flex:0 0 62px;height:62px;display:grid;place-items:center;border-radius:20px;color:var(--green-dark);background:var(--green-soft)}.workplace-card{width:100%;display:grid;gap:5px;padding:20px;border-radius:20px;color:#fff;text-align:left;background:linear-gradient(135deg,var(--green-dark),#5b9c38)}.workplace-card span,.workplace-card small{opacity:.78}.cleaning-action{width:100%;display:flex;align-items:center;gap:16px;margin-top:18px;padding:22px;border:0;border-radius:22px;color:var(--charcoal);background:#fff;box-shadow:var(--shadow);text-align:left;cursor:pointer}.cleaning-action>svg{width:30px;color:var(--green-dark)}.cleaning-action span{display:grid;gap:4px}.cleaning-action strong{font-size:1.08rem}.cleaning-action small{color:var(--muted)}.switch-user{margin-top:22px}.collaborator-loading{min-height:55vh;display:grid;place-content:center;justify-items:center;gap:12px;color:var(--muted)}.confirm-card{width:100%;margin-top:16px;padding:20px;border:2px solid #b9dca4;border-radius:22px;background:var(--surface);text-align:left;box-shadow:var(--shadow)}.confirm-card h2{margin-bottom:8px}.confirm-card p:last-child{color:var(--muted);line-height:1.5}.confirm-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;margin-top:18px}.recent-cleanings{width:100%;margin-top:28px;text-align:left}.recent-cleanings ol{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:10px}.recent-cleanings li{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.recent-cleanings li>svg{width:20px;color:var(--green-dark)}.recent-cleanings li span{display:grid;gap:3px}.recent-cleanings small{color:var(--muted)}.supervisor-heading{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:22px}.supervisor-heading h1{font-size:1.8rem;margin-bottom:5px}.supervisor-heading span{color:var(--muted)}.center-picker{display:grid;gap:7px;font-size:.78rem;font-weight:700;color:var(--muted);text-align:left}.center-picker select,.request-list select{min-height:48px;padding:0 13px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--charcoal);font:inherit}.supervisor-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.supervisor-metrics article{display:grid;gap:5px;padding:15px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.supervisor-metrics svg{width:20px;color:var(--green-dark)}.supervisor-metrics strong{font-size:1.45rem}.supervisor-metrics span{color:var(--muted);font-size:.7rem}.supervisor-metrics .warning{border-color:#efb44f;background:#fff8e9}.supervisor-section{margin-top:30px;text-align:left}.location-status-list,.request-list,.rating-list,.cleaning-list{display:grid;gap:10px}.location-status-list article,.request-list article,.rating-list article,.cleaning-list article{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--line);border-radius:17px;background:var(--surface)}.location-status-list article>div,.request-list article>div,.cleaning-list article>div{display:grid;gap:4px;flex:1}.location-status-list small,.request-list small,.rating-list small,.cleaning-list span,.cleaning-list small{color:var(--muted)}.status-dot{width:11px;height:11px;border-radius:50%;background:#adb6b1}.status-dot.ok{background:var(--green)}.request-status{width:max-content;padding:3px 7px;border-radius:8px;background:#eef1ef;color:var(--muted);font-size:.65rem;font-weight:700;text-transform:uppercase}.request-status.new{background:#fff1d6;color:#795312}.request-status.in_progress{background:#e6f1ff;color:#285a91}.request-response{display:grid;gap:8px;width:min(100%,230px)}.rating-list article{display:grid;grid-template-columns:auto 1fr auto}.rating-list article>div{display:grid;gap:4px}.rating-list article p{margin:3px 0;line-height:1.4}.rating-list article>strong{color:var(--orange);letter-spacing:2px}.rating-list article.low{border-color:#efb44f;background:#fffaf0}.cleaning-list article>svg{width:20px;color:var(--green-dark)}.empty-copy{color:var(--muted)}.operations-timeline{list-style:none;margin:16px 0 0;padding:0 0 0 8px}.operations-timeline li{position:relative;display:flex;gap:13px;min-height:72px}.operations-timeline li>span{width:12px;height:12px;margin-top:4px;border:3px solid var(--green);border-radius:50%;background:#fff;z-index:1}.operations-timeline li.response>span{border-color:var(--orange)}.operations-timeline li.request>span{border-color:#478ac9}.operations-timeline li:not(:last-child):before{content:"";position:absolute;left:5px;top:16px;bottom:0;width:1px;background:var(--line)}.operations-timeline li>div{display:grid;align-content:start;gap:3px;padding-bottom:14px}.operations-timeline small{color:var(--muted)}.operations-timeline p{margin:3px 0;line-height:1.4}.admin-tree{display:grid;gap:7px;text-align:left}.tree-row{display:grid;grid-template-columns:38px minmax(0,1fr);gap:5px;align-items:stretch}.tree-expand{display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--green-dark);cursor:pointer}.tree-expand svg{width:19px;transform:rotate(-90deg);transition:transform .2s ease}.tree-expand svg.rotated{transform:rotate(0)}.tree-indent{width:1px;justify-self:center;background:var(--line)}.tree-node{display:grid;grid-template-columns:80px 1fr auto;gap:9px;align-items:center;min-height:48px;padding:8px 12px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--charcoal);text-align:left;width:100%}.tree-node span{color:var(--green-dark);font-size:.65rem;font-weight:700;text-transform:uppercase}.tree-node small{color:var(--muted)}.tree-node.selected{border-color:var(--green);background:var(--green-soft)}.access-panel{margin-top:28px;padding:22px;border:1px solid var(--line);border-radius:22px;background:var(--surface);text-align:left;box-shadow:var(--shadow)}.access-panel>p:not(.eyebrow){color:var(--muted)}.access-panel label{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 0;border-top:1px solid var(--line)}.access-panel input{width:24px;height:24px;accent-color:var(--green-dark)}.access-panel .button{margin-top:12px}.admin-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:24px;padding:5px;border-radius:16px;background:#edf1ee}.admin-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:0;border-radius:12px;background:transparent;color:var(--muted);font:inherit;font-weight:700;cursor:pointer}.admin-tabs button.active{color:var(--green-dark);background:#fff;box-shadow:0 2px 8px #14322314}.admin-tabs svg{width:18px}.admin-user-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.admin-user-toolbar h2{margin:0}.admin-management-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.admin-management-bar>div{display:flex;flex-wrap:wrap;gap:8px}.admin-management-bar .button{min-height:46px;padding:0 14px;text-decoration:none}.admin-search{flex:1 1 280px;position:relative}.admin-search svg{position:absolute;left:14px;top:13px;width:19px;color:var(--muted)}.admin-search input,.user-management>select{width:100%;min-height:46px;padding:0 14px 0 43px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--charcoal);font:inherit}.user-management>select{flex:0 1 210px;padding-left:13px}.panel-title-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.panel-title-actions>div:last-child{display:flex;flex-wrap:wrap;gap:8px}.panel-title-actions .button{min-height:42px;padding:0 12px}.location-editor{margin-top:24px}.editor-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-users-layout{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(300px,1.25fr);gap:16px;align-items:start}.admin-user-list{display:grid;gap:8px}.admin-user-list button{display:flex;align-items:center;gap:10px;padding:13px;border:1px solid var(--line);border-radius:15px;background:var(--surface);color:var(--charcoal);text-align:left;cursor:pointer}.admin-user-list button.selected{border-color:var(--green);background:var(--green-soft)}.admin-user-list button div{display:grid;gap:3px;min-width:0;flex:1}.admin-user-list small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.admin-user-list em{color:var(--muted);font-size:.68rem;font-style:normal;font-weight:700;text-transform:uppercase}.user-editor{padding:21px;border:1px solid var(--line);border-radius:21px;background:var(--surface);box-shadow:var(--shadow);text-align:left}.user-editor form,.pin-reset{display:grid;gap:13px;margin-top:17px}.user-editor label{display:grid;gap:6px;color:var(--muted);font-size:.76rem;font-weight:700}.user-editor input,.user-editor select{width:100%;min-height:48px;padding:0 13px;border:1px solid var(--line);border-radius:13px;background:#f8faf9;color:var(--charcoal);font:inherit}.pin-reset{margin:22px 0 12px;padding-top:20px;border-top:1px solid var(--line)}.button.danger{border:1px solid #efc4bc;color:#963f31;background:#fff6f4}.user-activity{margin-top:27px}.user-activity ol{list-style:none;margin:14px 0 0;padding:0}.user-activity li{position:relative;display:flex;gap:11px;min-height:62px}.user-activity li>span{width:10px;height:10px;margin-top:5px;border:2px solid var(--green);border-radius:50%;background:#fff;z-index:1}.user-activity li:not(:last-child):before{content:"";position:absolute;left:4px;top:14px;bottom:0;width:1px;background:var(--line)}.user-activity li>div{display:grid;align-content:start;gap:2px;padding-bottom:12px}.user-activity small,.user-activity p{color:var(--muted)}.user-activity p{margin:2px 0}@media(max-width:420px){.supervisor-metrics{grid-template-columns:1fr}.rating-list article{grid-template-columns:1fr}.request-list article{align-items:stretch;flex-direction:column}}@media(max-width:700px){.admin-users-layout{grid-template-columns:1fr}.admin-management-bar>div,.admin-management-bar .button{width:100%}.panel-title-actions{flex-direction:column}}.spinner{animation:spin 1s linear infinite}.spinner.small{position:absolute;right:12px;top:12px;width:16px}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:640px){.page-shell{padding-top:36px}.profile-grid{grid-template-columns:1fr 1fr}.profile-card{align-items:flex-start;flex-direction:column;min-height:190px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}.photo-picker{display:grid;gap:.5rem;margin:.85rem 0;padding:.85rem;border:1px dashed #a9b7ae;border-radius:14px;background:#f7faf8;font-weight:650}.photo-picker span,.photo-picker small{color:#627168;font-size:.78rem;font-weight:500}.photo-picker input[type=file]{width:100%;font-size:.85rem}.photo-picker.compact{margin:0;padding:.55rem;font-size:.82rem}.photo-gallery{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}.photo-gallery img{width:72px;height:72px;object-fit:cover;border-radius:10px;border:1px solid #d7e0da}
