:root{
  --ink:#062B42;
  --ink-2:#11415A;
  --teal:#00C4E6;
  --teal-soft:#DFF7FC;
  --bg:#F3F6F8;
  --card:#FFFFFF;
  --line:#DCE7EC;
  --muted:#526B7C;
  --warn:#D38B20;
  --danger:#C74646;
  --ok:#23836A;
  --shadow:0 8px 24px rgba(6,43,66,.08);
  --radius:18px;
  --safe-bottom:max(14px,env(safe-area-inset-bottom));
  --brand-navy:#062B42;
  --brand-cyan:#00C4E6;
  --brand-white:#FFFFFF;
  --accent-mint:#C9F3E4;
  --text-on-cyan:#062B42;
  --focus-ring:#007E99;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{min-height:100vh}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.app-shell{min-height:100vh;padding-bottom:92px}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:rgba(244,247,248,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(220,229,232,.7)}
.brand{display:flex;align-items:center;gap:10px}
.brand-mark{width:38px;height:38px;border-radius:12px;background:var(--ink);color:white;display:grid;place-items:center;font-weight:800}
.brand-text b{display:block;font-size:15px;letter-spacing:.02em}
.brand-text small{display:block;font-size:10px;color:var(--muted);letter-spacing:.11em}
.sync-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 10px;font-size:12px;color:var(--muted)}
.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--ok)}
.sync-chip.offline .sync-dot{background:var(--warn)}
.page{padding:14px 14px 24px;max-width:720px;margin:0 auto}
.page-title{margin:8px 2px 14px}
.page-title h1{margin:0;font-size:25px}
.page-title p{margin:5px 0 0;color:var(--muted);font-size:14px}
.section-label{font-size:12px;letter-spacing:.09em;color:var(--muted);font-weight:800;margin:22px 4px 8px;text-transform:uppercase}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.job-card{padding:16px;margin-bottom:12px}
.job-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.job-unit{font-size:22px;font-weight:800;line-height:1.05}
.job-property{margin-top:4px;color:var(--muted);font-size:14px}
.pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800;background:#EDF3F5;color:var(--ink)}
.pill.teal{background:var(--teal-soft);color:#08796E}
.pill.warn{background:#FFF2DF;color:#995F0D}
.pill.danger{background:#FCE8E7;color:#9B2E2B}
.job-meta{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}
.job-actions{display:flex;gap:8px}
.btn{border:0;border-radius:14px;padding:13px 15px;font-weight:800;background:#E9F0F2;color:var(--ink)}
.btn.primary{background:var(--ink);color:white}
.btn.teal{background:var(--teal);color:#052B28}
.btn.ghost{background:transparent;border:1px solid var(--line)}
.btn.full{width:100%}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.job-header{padding:16px}
.back-btn{border:0;background:transparent;padding:7px 0;color:var(--muted);font-weight:800}
.hero-card{padding:18px;margin-top:8px;background:linear-gradient(135deg,var(--ink),var(--ink-2));color:white;border-radius:22px;box-shadow:var(--shadow)}
.hero-card .muted{color:#BFD0D4}
.hero-top{display:flex;justify-content:space-between;gap:10px}
.hero-card h1{margin:4px 0 0;font-size:27px}
.hero-card p{margin:4px 0 0}
.status-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}
.info-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px}
.info-card{padding:14px}
.info-card h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.info-card p{margin:0;line-height:1.45}
.start-card{padding:16px;margin-top:12px}
.start-card .started{display:flex;align-items:center;justify-content:space-between}
.started-time{font-weight:800}
.photo-card,.notes-card,.finish-card{padding:16px;margin-top:12px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.card-head h2{margin:0;font-size:17px}
.count-badge{min-width:30px;text-align:center;padding:5px 8px;border-radius:999px;background:#EDF3F5;font-size:12px;font-weight:800}
.photo-input{display:block;width:100%;padding:13px;border:1px dashed #A8BEC4;border-radius:14px;background:#F9FBFB;color:var(--muted)}
.progress-wrap{margin:12px 0}
.progress-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:7px}
.progress-track{height:10px;background:#E5ECEE;border-radius:999px;overflow:hidden}
.progress-bar{height:100%;background:var(--teal);border-radius:999px}
.check-section{margin-top:12px}
.area-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;margin:18px 4px 7px}
.check-list{display:grid;gap:8px}
.check-item{display:flex;align-items:flex-start;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px}
.check-item input{width:23px;height:23px;accent-color:var(--teal);margin-top:1px;flex:0 0 auto}
.check-item span{line-height:1.35}
.check-item.done span{text-decoration:line-through;color:var(--muted)}
.quick-fab{position:fixed;right:18px;bottom:84px;z-index:30;width:58px;height:58px;border:0;border-radius:50%;background:var(--teal);color:#05322D;font-size:28px;box-shadow:0 12px 30px rgba(0,201,183,.32)}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:25;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid var(--line);padding:8px 8px var(--safe-bottom)}
.bottom-nav button{border:0;background:transparent;padding:7px 6px;color:var(--muted);font-size:11px;font-weight:800}
.bottom-nav button b{display:block;font-size:20px;line-height:1;margin-bottom:4px}
.bottom-nav button.active{color:var(--ink)}
.sheet-wrap{position:fixed;inset:0;z-index:50;background:rgba(8,27,33,.42);display:flex;align-items:flex-end}
.sheet{width:100%;max-height:88vh;overflow:auto;background:#fff;border-radius:24px 24px 0 0;padding:10px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -12px 40px rgba(0,0,0,.15)}
.sheet-handle{width:46px;height:5px;border-radius:999px;background:#D7E0E3;margin:2px auto 14px}
.sheet h2{margin:0 0 14px}
.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.quick-action{border:1px solid var(--line);border-radius:16px;padding:18px 12px;background:#F8FAFA;text-align:left;font-weight:800}
.quick-action span{display:block;font-size:26px;margin-bottom:8px}
.field{display:grid;gap:6px;margin:12px 0}
.field label{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff;color:var(--ink)}
.field textarea{min-height:92px;resize:vertical}
.issue-item,.log-item{padding:13px;border-bottom:1px solid var(--line)}
.issue-item:last-child,.log-item:last-child{border-bottom:0}
.issue-top{display:flex;justify-content:space-between;gap:10px}
.muted{color:var(--muted)}
.small{font-size:12px}
.empty{padding:28px 16px;text-align:center;color:var(--muted)}
.closeout-list{display:grid;gap:8px;margin:12px 0}
.closeout-row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.closeout-row:last-child{border-bottom:0}
.good{color:var(--ok);font-weight:800}
.bad{color:var(--danger);font-weight:800}
.hidden{display:none!important}
@media (min-width:700px){
  .page{padding-top:20px}
  .info-grid{grid-template-columns:1fr 1fr}
  .quick-fab{right:calc((100vw - 700px)/2 + 18px)}
  .bottom-nav{left:50%;transform:translateX(-50%);max-width:720px;border-left:1px solid var(--line);border-right:1px solid var(--line);border-radius:18px 18px 0 0}
}

.auth-screen{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(180deg,#0F2730 0 34%,#F4F7F8 34% 100%)}
.auth-card{width:min(100%,430px);background:#fff;border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:0 20px 60px rgba(15,39,48,.18)}
.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:22px}
.auth-brand b{display:block}
.auth-brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:.11em}
.auth-card h1{margin:0;font-size:28px}
.auth-card>p{margin:7px 0 18px;color:var(--muted);line-height:1.45}
.auth-message{padding:11px 12px;border-radius:12px;background:#FFF2DF;color:#7A520F;font-size:13px;margin-bottom:12px}
.auth-foot{margin-top:14px;color:var(--muted);font-size:11px;line-height:1.45;text-align:center}
.sync-warning{padding:11px 12px;margin:8px 0 12px;border-radius:13px;background:#FFF2DF;color:#7A520F;font-size:13px;border:1px solid #F5D39E}
.notes-input{width:100%;min-height:90px;border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff;color:var(--ink);resize:vertical}
.completion-rule{margin-top:12px;padding:11px 12px;border-radius:12px;font-size:12px;line-height:1.4}
.completion-rule.ok{background:#E7F6EE;color:#216C45}
.completion-rule.not-ok{background:#FFF2DF;color:#7A520F}


/* PTOS owner/admin operating system */
.owner-page{padding-bottom:32px}
.page-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.page-title-row>div{min-width:0}
.btn.compact{padding:10px 12px;border-radius:12px;font-size:12px;white-space:nowrap}
.owner-nav{grid-template-columns:repeat(6,1fr)}
.cleaner-nav{grid-template-columns:repeat(3,1fr)}
.mode-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 11px;font-size:11px;font-weight:800;color:var(--ink)}
.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:4px}
.metric-card{border:1px solid var(--line);background:#fff;border-radius:17px;padding:14px;text-align:left;box-shadow:var(--shadow);color:var(--ink)}
.metric-card span{display:block;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.metric-card b{display:inline-block;font-size:28px;line-height:1;margin:8px 5px 0 0}
.metric-card small{color:var(--muted)}
.action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.action-card{border:1px solid var(--line);background:#fff;border-radius:17px;padding:18px 12px;box-shadow:var(--shadow);color:var(--ink);text-align:left}
.action-card b{display:block;font-size:25px;margin-bottom:10px}
.action-card span{font-weight:800}
.action-card.accent{background:var(--ink);color:#fff;border-color:var(--ink)}
.owner-job-card{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 14px;margin-bottom:9px;cursor:pointer}
.owner-job-time{font-size:12px;font-weight:800;color:var(--muted)}
.owner-job-main{min-width:0}
.owner-job-main b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.owner-job-main span{display:block;margin-top:3px;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.owner-hero{margin-top:8px}
.owner-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:12px 0}
.detail-card{padding:13px}
.detail-card span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:800;letter-spacing:.06em}
.detail-card b{display:block;margin-top:5px;font-size:17px}
.stack-actions{display:grid;gap:8px}
.form-page{max-width:680px}
.form-card{padding:16px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.three-col{display:grid;grid-template-columns:1.4fr .65fr .85fr;gap:10px}
.option-list{display:grid;gap:8px}
.option-row{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:13px;padding:11px;background:#FAFCFC}
.option-row input{width:21px;height:21px;accent-color:var(--teal);margin-top:1px;flex:0 0 auto}
.option-row span{display:block}
.option-row b{display:block;font-size:13px}
.option-row small{display:block;color:var(--muted);margin-top:3px;line-height:1.35}
.field-help{display:block;margin-top:5px;font-size:11px;color:var(--muted)}
.warn-text{color:#995F0D}
.schedule-day{display:grid;grid-template-columns:58px minmax(0,1fr);gap:10px;margin-bottom:16px}
.schedule-date{padding-top:9px;text-align:center}
.schedule-date b{display:block;text-transform:uppercase;font-size:11px;color:var(--muted);letter-spacing:.05em}
.schedule-date span{display:block;font-weight:800;font-size:13px;margin-top:2px}
.schedule-list{min-width:0}
.property-card{display:flex;align-items:center;justify-content:space-between;padding:15px;margin-bottom:9px;cursor:pointer}
.property-card b{display:block}
.property-card span{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.property-card .chev{font-size:25px;color:#91A4AA;margin:0}
.profile-row{padding:13px 14px;margin-bottom:8px}
.profile-row b{display:block}
.profile-row span{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.mode-launch{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;border:0;border-radius:20px;padding:18px;background:var(--ink);color:#fff;text-align:left;box-shadow:var(--shadow)}
.mode-launch b{display:block;font-size:18px}
.mode-launch span{display:block;color:#BFD0D4;font-size:12px;margin-top:4px}
.mode-launch strong{font-size:24px}
.menu-list{overflow:hidden}
.menu-list button{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;border-bottom:1px solid var(--line);background:#fff;padding:14px;color:var(--ink);text-align:left}
.menu-list button:last-child{border-bottom:0}
.menu-list b{color:var(--muted)}
.owner-page .info-card{box-shadow:var(--shadow)}
.owner-page .hero-card{box-shadow:0 12px 28px rgba(15,39,48,.18)}
.bottom-nav.owner-nav button{font-size:10px}
.bottom-nav.owner-nav button b{font-size:18px}
@media (max-width:430px){
  .brand-text small{font-size:8px;letter-spacing:.06em}
  .sync-chip{padding:7px 8px;font-size:10px}
  .owner-job-card{grid-template-columns:54px minmax(0,1fr);gap:8px}
  .owner-job-card>.pill{grid-column:2;justify-self:start}
  .three-col{grid-template-columns:1fr 70px 88px}
  .page-title-row{align-items:flex-start}
}
@media (min-width:700px){
  .metric-grid{grid-template-columns:repeat(4,1fr)}
  .action-grid{grid-template-columns:repeat(4,1fr)}
  .owner-detail-grid{grid-template-columns:repeat(4,1fr)}
}

.client-card,.issue-review-card,.supply-review-card{padding:14px;margin-bottom:9px}
.client-card b{display:block;font-size:15px}
.client-card span,.client-card small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.issue-review-card p,.supply-review-card p{margin:10px 0 0;line-height:1.45;font-size:13px}
.compact-field{margin-top:10px;margin-bottom:0}
.compact-field select{padding:9px 11px}

.form-note{margin:4px 0 14px;padding:10px 11px;border-radius:12px;background:#F3F7F8;color:var(--muted);font-size:11px;line-height:1.45}


/* Cleaner photo previews */
.photo-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.photo-thumb{position:relative;aspect-ratio:1/1;border:0;border-radius:13px;overflow:hidden;background:#E8EFF1;padding:0}
.photo-thumb img{width:100%;height:100%;display:block;object-fit:cover;background:#E8EFF1}
.photo-thumb span{position:absolute;left:6px;bottom:6px;padding:4px 7px;border-radius:999px;background:rgba(15,39,48,.82);color:#fff;font-size:10px;font-weight:800}
.photo-empty{padding:12px;border:1px dashed #B9C9CD;border-radius:13px;color:var(--muted);font-size:12px;margin-bottom:10px;text-align:center}
.photo-add-input{margin-top:4px}
.photo-lightbox{position:fixed;inset:0;z-index:100;background:rgba(4,16,20,.94);display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom))}
.photo-lightbox-inner{position:relative;width:100%;height:100%;display:grid;place-items:center}
.photo-lightbox-inner img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px}
.photo-close{position:absolute;top:0;right:0;z-index:2;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--ink);font-size:27px;line-height:1}

/* Compact cleaner scope */
.scope-section{margin-top:16px}
.scope-section>.card-head{align-items:flex-start}
.scope-list{display:grid;gap:8px}
.scope-card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;box-shadow:0 4px 14px rgba(15,39,48,.04)}
.scope-card summary{list-style:none;display:flex;align-items:center;gap:11px;padding:14px;cursor:pointer;user-select:none}
.scope-card summary::-webkit-details-marker{display:none}
.scope-status{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#EEF3F4;color:var(--muted);font-weight:900;flex:0 0 auto}
.scope-status.complete{background:var(--teal-soft);color:#08796E}
.scope-name{min-width:0;flex:1}
.scope-name b{display:block;font-size:14px}
.scope-name small{display:block;margin-top:3px;color:var(--muted);font-size:11px}
.scope-chevron{font-size:18px;color:var(--muted);transition:transform .15s ease}
.scope-card[open] .scope-chevron{transform:rotate(180deg)}
.scope-body{padding:0 12px 12px;border-top:1px solid var(--line)}
.scope-actions{padding:11px 0 8px}
.scope-body .check-list{gap:6px}
.scope-body .check-item{box-shadow:none;padding:11px;background:#FBFCFC}
.closeout-row.optional{color:var(--muted)}
.closeout-row.optional small{font-size:9px;text-transform:uppercase;letter-spacing:.05em;background:#EEF3F4;padding:3px 5px;border-radius:999px;margin-left:4px}
.checklist-warning{margin-top:12px;padding:11px 12px;border-radius:12px;background:#FFF2DF;color:#7A520F;font-size:12px;line-height:1.45}
@media (min-width:560px){.photo-gallery{grid-template-columns:repeat(4,1fr)}}


/* Unified PTOS navigation + owner checklist visibility */
.owner-nav button{min-width:0;padding-left:2px;padding-right:2px}
.owner-checklist-card{padding:15px;margin-top:10px}
.owner-checklist-card .card-head{margin-bottom:8px}
.owner-checklist-modules{display:grid;gap:7px;margin-top:10px}
.owner-checklist-module{border:1px solid var(--line);border-radius:13px;background:#FAFCFC;overflow:hidden}
.owner-checklist-module summary{list-style:none;display:flex;align-items:center;gap:10px;padding:11px;cursor:pointer}
.owner-checklist-module summary::-webkit-details-marker{display:none}
.owner-checklist-module summary>span:nth-child(2){min-width:0;flex:1}
.owner-checklist-module summary b{display:block;font-size:13px}
.owner-checklist-module summary small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.owner-checklist-tasks{border-top:1px solid var(--line);padding:5px 10px 9px}
.owner-checklist-task{display:flex;gap:9px;align-items:flex-start;padding:8px 2px;border-bottom:1px solid #EAF0F2;color:var(--muted)}
.owner-checklist-task:last-child{border-bottom:0}
.owner-checklist-task span{font-weight:900;flex:0 0 auto}
.owner-checklist-task p{margin:0;font-size:12px;line-height:1.35}
.owner-checklist-task.done{color:var(--ink)}
@media (max-width:430px){
  .bottom-nav.owner-nav button{font-size:8.5px}
  .bottom-nav.owner-nav button b{font-size:16px}
}


/* Service profile editor */
.profile-help{padding:14px;margin-bottom:12px}
.profile-help b{display:block;margin-bottom:5px}
.profile-help p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.profile-manage-card{padding:14px;margin-bottom:9px}
.profile-manage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.profile-manage-head b{display:block;font-size:15px}
.profile-manage-head>div>span{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.profile-manage-meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:10px;color:var(--muted);font-size:11px}
.profile-card-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.profile-editor-page{padding-bottom:110px}
.scope-rule-card{overflow:hidden}
.scope-rule-head,.scope-rule-row{display:grid;grid-template-columns:minmax(0,1fr) 145px;gap:12px;align-items:center}
.scope-rule-head{padding:10px 13px;background:#F4F7F8;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.scope-rule-row{padding:12px 13px;border-top:1px solid var(--line)}
.scope-rule-row b{display:block;font-size:13px}
.scope-rule-row small{display:block;color:var(--muted);font-size:10px;line-height:1.4;margin-top:3px}
.scope-rule-row select{margin:0;padding:9px 10px}
.profile-save-bar{position:sticky;bottom:73px;padding:12px 0 4px;background:linear-gradient(to bottom,rgba(244,247,248,0),#F4F7F8 28%)}
@media (max-width:520px){
  .profile-manage-head{display:block}
  .profile-manage-head .status-row{margin-top:8px}
  .scope-rule-head,.scope-rule-row{grid-template-columns:minmax(0,1fr) 122px;gap:8px}
  .scope-rule-row{padding:11px}
  .scope-rule-row select{font-size:11px;padding:8px}
}


/* QoL: photo management */
.photo-thumb{position:relative}
.photo-sync-badge{position:absolute;right:6px;top:6px;padding:3px 6px;border-radius:999px;font-size:9px;font-weight:900;line-height:1;background:rgba(15,39,48,.78);color:#fff}
.photo-sync-badge.pending{background:rgba(153,95,13,.88)}
.photo-preview-actions{position:absolute;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:8px;z-index:3;background:rgba(15,39,48,.72);padding:8px;border-radius:14px;backdrop-filter:blur(8px)}
.photo-preview-actions .btn{min-width:84px}
.btn.danger{background:#8F2D2D;color:#fff;border-color:#8F2D2D}


/* QoL: search and filter controls */
.filter-panel{display:grid;gap:9px;margin:10px 0 14px}
.search-input{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);font:inherit}
.filter-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.filter-chips button{flex:0 0 auto;border:1px solid var(--line);background:#fff;color:var(--muted);padding:7px 10px;border-radius:999px;font-size:10px;font-weight:800}
.filter-chips button.active{background:var(--ink);border-color:var(--ink);color:#fff}
.archived{opacity:.68}

/* Home attention */
.attention-card{padding:0;overflow:hidden}
.attention-row{width:100%;border:0;background:#fff;display:grid;grid-template-columns:32px minmax(0,1fr) 18px;gap:10px;align-items:center;text-align:left;padding:12px 13px;border-bottom:1px solid var(--line)}
.attention-row:last-child{border-bottom:0}
.attention-row span:nth-child(2) b{display:block;font-size:12px;color:var(--ink)}
.attention-row span:nth-child(2) small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.attention-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#EEF5F5;color:#08796E;font-weight:900}
.attention-row strong{color:var(--muted)}

/* Job activity */
.activity-card{padding:15px;margin-top:10px}
.activity-list{display:grid;gap:0;margin-top:8px}
.activity-row{display:grid;grid-template-columns:30px 1fr;gap:9px;align-items:start;padding:8px 0;position:relative}
.activity-row:not(:last-child):before{content:"";position:absolute;left:14px;top:34px;bottom:-8px;width:1px;background:var(--line)}
.activity-dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#EEF5F5;color:#08796E;font-size:11px;font-weight:900;z-index:1}
.activity-row b{display:block;font-size:12px;color:var(--ink)}
.activity-row small{display:block;margin-top:2px;color:var(--muted);font-size:10px}

/* Property / client QoL */
.property-quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.property-quick-actions .action-card{min-height:86px}
.client-card{display:flex;align-items:center;justify-content:space-between;gap:12px}
.client-card-main{min-width:0;flex:1}
.client-card-main b,.client-card-main span,.client-card-main small{display:block}
.client-card-main span,.client-card-main small{color:var(--muted);font-size:11px;margin-top:3px}

/* Client reporting */
.client-issue-controls{margin-top:11px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#FAFCFC}
.client-issue-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-top:1px solid #EAF0F2;font-size:11px}
.client-issue-row:first-of-type{margin-top:6px}
.report-meta-row{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px;color:var(--muted);font-size:10px}
.report-meta-row b{color:var(--ink)}
.client-visible-toggle{display:flex;align-items:center;gap:8px;margin:10px 0;font-size:11px;font-weight:700;color:var(--ink)}

/* Cleaner sticky field controls */
.cleaner-job-page{padding-bottom:150px}
.cleaner-sticky-actions{position:fixed;left:50%;transform:translateX(-50%);bottom:72px;z-index:35;width:min(calc(100% - 22px),620px);display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:7px;border:1px solid rgba(15,39,48,.09);border-radius:16px;background:rgba(255,255,255,.94);box-shadow:0 12px 28px rgba(15,39,48,.18);backdrop-filter:blur(12px)}
.cleaner-sticky-actions button{border:0;background:#F1F5F6;border-radius:11px;padding:8px 4px;color:var(--ink);display:grid;gap:2px;place-items:center;font-size:9px;font-weight:800}
.cleaner-sticky-actions button b{font-size:15px}
.cleaner-sticky-actions button.finish{background:var(--teal);color:#062A27}

@media(max-width:520px){
  .property-quick-actions{grid-template-columns:repeat(2,1fr)}
  .client-card{align-items:flex-start}
  .cleaner-sticky-actions{bottom:69px}
}


/* PTOS Dark Mode */
html{color-scheme:light}
.topbar-actions{display:flex;align-items:center;gap:7px}
.theme-toggle{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--ink);display:grid;place-items:center;font-size:17px;font-weight:900}

html[data-theme="dark"]{
  color-scheme:dark;
  --ink:#F0F8FC;
  --ink-2:#B8D8E5;
  --teal:#00C4E6;
  --teal-soft:#123D4A;
  --bg:#061B29;
  --card:#0B2A3C;
  --line:#275064;
  --muted:#B0C6D2;
  --warn:#F5BC66;
  --danger:#F08282;
  --ok:#70D9B8;
  --shadow:0 9px 28px rgba(0,0,0,.34);
}
html[data-theme="dark"] body{background:var(--bg);color:var(--ink)}
html[data-theme="dark"] .topbar{background:rgba(7,18,24,.94);border-bottom-color:rgba(33,52,59,.9)}
html[data-theme="dark"] .brand-mark{background:#00C9B7;color:#052B28}
html[data-theme="dark"] .theme-toggle,
html[data-theme="dark"] .sync-chip,
html[data-theme="dark"] .mode-chip{background:#102028;border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .sync-chip{color:var(--muted)}
html[data-theme="dark"] .card{background:var(--card);border-color:var(--line)}
html[data-theme="dark"] .pill{background:#15282F;color:#DDEBEA}
html[data-theme="dark"] .pill.teal{background:#103734;color:#65E3D8}
html[data-theme="dark"] .pill.warn{background:#392B16;color:#F5C982}
html[data-theme="dark"] .pill.danger{background:#3A2021;color:#F39A97}
html[data-theme="dark"] .btn{background:#182A31;color:var(--ink)}
html[data-theme="dark"] .btn.primary{background:var(--teal);color:#052B28}
html[data-theme="dark"] .btn.teal{background:var(--teal);color:#052B28}
html[data-theme="dark"] .btn.ghost{background:transparent;border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .hero-card{background:linear-gradient(135deg,#102A34,#0B1F27);color:#F4FFFF;border:1px solid #1C3A44}
html[data-theme="dark"] .hero-card .muted{color:#9FB8BE}
html[data-theme="dark"] .count-badge{background:#162A31;color:#DDEBEA}
html[data-theme="dark"] .photo-input{background:#0A171D;border-color:#3B5962;color:var(--muted)}
html[data-theme="dark"] .progress-track{background:#16282F}
html[data-theme="dark"] .check-item{background:#0B181E;border-color:var(--line)}
html[data-theme="dark"] .bottom-nav{background:#0A171D;border-top-color:var(--line)}
html[data-theme="dark"] .bottom-nav button{color:#81989F}
html[data-theme="dark"] .bottom-nav button.active{color:#65E3D8}
html[data-theme="dark"] .sheet{background:#0D1B21;color:var(--ink);box-shadow:0 -14px 48px rgba(0,0,0,.46)}
html[data-theme="dark"] .sheet-handle{background:#30464E}
html[data-theme="dark"] .quick-action{background:#0B181E;border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .field input,
html[data-theme="dark"] .field textarea,
html[data-theme="dark"] .field select,
html[data-theme="dark"] .notes-input,
html[data-theme="dark"] .search-input{background:#09161C;border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .field input::placeholder,
html[data-theme="dark"] .field textarea::placeholder,
html[data-theme="dark"] .notes-input::placeholder,
html[data-theme="dark"] .search-input::placeholder{color:#667F87}
html[data-theme="dark"] select option{background:#0D1B21;color:var(--ink)}
html[data-theme="dark"] .metric-card,
html[data-theme="dark"] .action-card{background:#0D1B21;border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .action-card.accent{background:#103A39;border-color:#17615D;color:#7AF0E6}
html[data-theme="dark"] .option-row{background:#0A171D;border-color:var(--line)}
html[data-theme="dark"] .mode-launch{background:linear-gradient(135deg,#102A34,#0C2129);color:#F4FFFF;border:1px solid #1B3B45}
html[data-theme="dark"] .menu-list button{background:#0D1B21;border-bottom-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .scope-card{background:#0B181E;border-color:var(--line);box-shadow:none}
html[data-theme="dark"] .owner-checklist-module{background:#0A171D;border-color:var(--line)}
html[data-theme="dark"] .owner-checklist-task{border-bottom-color:#1A3037}
html[data-theme="dark"] .owner-checklist-task.done{color:#B9CDCB}
html[data-theme="dark"] .scope-rule-head{background:#0A171D;color:var(--muted)}
html[data-theme="dark"] .scope-rule-row{border-top-color:var(--line)}
html[data-theme="dark"] .profile-save-bar{background:linear-gradient(to bottom,rgba(7,18,24,0),#071218 30%)}
html[data-theme="dark"] .filter-chips button{background:#0D1B21;border-color:var(--line);color:var(--muted)}
html[data-theme="dark"] .filter-chips button.active{background:var(--teal);border-color:var(--teal);color:#052B28}
html[data-theme="dark"] .attention-row{background:#0D1B21;border-bottom-color:var(--line)}
html[data-theme="dark"] .attention-row span:nth-child(2) b,
html[data-theme="dark"] .activity-row b,
html[data-theme="dark"] .report-meta-row b,
html[data-theme="dark"] .client-visible-toggle{color:var(--ink)}
html[data-theme="dark"] .attention-icon,
html[data-theme="dark"] .activity-dot{background:#103734;color:#65E3D8}
html[data-theme="dark"] .activity-row:not(:last-child):before{background:var(--line)}
html[data-theme="dark"] .client-issue-controls{background:#0A171D;border-color:var(--line)}
html[data-theme="dark"] .client-issue-row{border-top-color:#1B3037}
html[data-theme="dark"] .cleaner-sticky-actions{background:rgba(9,22,28,.96);border-color:#21343B;box-shadow:0 14px 34px rgba(0,0,0,.42)}
html[data-theme="dark"] .cleaner-sticky-actions button{background:#14262D;color:var(--ink)}
html[data-theme="dark"] .cleaner-sticky-actions button.finish{background:var(--teal);color:#052B28}
html[data-theme="dark"] .photo-close{background:rgba(13,27,33,.94);color:#F4FFFF;border:1px solid #32474E}
html[data-theme="dark"] .photo-preview-actions{background:rgba(7,18,24,.84)}
html[data-theme="dark"] .back-btn{color:#9FB2B8}
html[data-theme="dark"] .empty{color:var(--muted)}
html[data-theme="dark"] .form-note,
html[data-theme="dark"] .field-help{color:var(--muted)}
html[data-theme="dark"] .property-card.archived,
html[data-theme="dark"] .client-card.archived{background:#0A151A}
html[data-theme="dark"] .quick-fab{box-shadow:0 12px 30px rgba(0,201,183,.18)}
html[data-theme="dark"] ::selection{background:#17615D;color:#F4FFFF}

/* Client-facing reports remain light and print-friendly in either app theme. */
html[data-theme="dark"] .client-report-page{background:#EAF0F2;color:#0F2730;color-scheme:light}
html[data-theme="dark"] .client-report-page .report-sheet{background:#fff;color:#0F2730}
html[data-theme="dark"] .client-report-page .photo-empty{color:#667B82}
html[data-theme="dark"] .client-report-page .photo-sync-badge{display:none}


/* PTOS icon system */
.ui-icon{width:20px;height:20px;display:block;flex:0 0 auto}
.brand-icon{width:24px;height:24px;stroke-width:1.9}
.brand-mark{display:grid;place-items:center}
.theme-toggle .ui-icon{width:18px;height:18px}
.quick-fab .ui-icon{width:27px;height:27px;stroke-width:2}
.nav-icon{height:23px;display:grid;place-items:center;margin-bottom:4px}
.nav-icon .ui-icon{width:21px;height:21px}
.bottom-nav button b.nav-icon{font-size:inherit;line-height:normal}
.action-card b{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#EEF5F5;color:#08796E;margin-bottom:10px}
.action-card b .ui-icon{width:20px;height:20px}
.action-card.accent b{background:rgba(255,255,255,.13);color:inherit}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.icon-btn .ui-icon{width:16px;height:16px}
.quick-action span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#EAF5F4;color:#08796E}
.quick-action span .ui-icon{width:22px;height:22px}
.attention-icon .ui-icon,.activity-dot .ui-icon{width:15px;height:15px}
.cleaner-sticky-actions button b{display:grid;place-items:center}
.cleaner-sticky-actions button b .ui-icon{width:19px;height:19px}
.menu-value-icon{display:inline-flex!important;align-items:center;gap:6px}
.menu-value-icon .ui-icon{width:16px;height:16px}
.photo-close{display:grid;place-items:center}
.photo-close .ui-icon{width:20px;height:20px}
html[data-theme="dark"] .action-card b{background:#103734;color:#65E3D8}
html[data-theme="dark"] .quick-action span{background:#103734;color:#65E3D8}
html[data-theme="dark"] .action-card.accent b{background:rgba(0,201,183,.12);color:#7AF0E6}
/* Client Report controls: high contrast on light report surfaces in either theme */
.client-report-card .client-report-actions .btn,
.client-report-page .client-report-toolbar .btn,
html[data-theme="dark"] .client-report-card .client-report-actions .btn,
html[data-theme="dark"] .client-report-page .client-report-toolbar .btn{
 display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;
 background:#fff;color:#0F2730;border:1px solid #8CA5AC;font-weight:800;opacity:1;text-shadow:none;
}
.client-report-card .client-report-actions .btn.primary,
.client-report-page .client-report-toolbar .btn.primary,
html[data-theme="dark"] .client-report-card .client-report-actions .btn.primary,
html[data-theme="dark"] .client-report-page .client-report-toolbar .btn.primary{
 background:#0F746D;color:#fff;border-color:#0F746D;
}
.client-report-card .client-report-actions .btn.teal,
.client-report-page .client-report-toolbar .btn.teal,
html[data-theme="dark"] .client-report-card .client-report-actions .btn.teal,
html[data-theme="dark"] .client-report-page .client-report-toolbar .btn.teal{
 background:#0F2730;color:#fff;border-color:#0F2730;
}
.client-report-card .client-report-actions .btn .ui-icon{color:inherit;stroke:currentColor}
.client-report-card .client-report-actions .btn:focus-visible,
.client-report-page .client-report-toolbar .btn:focus-visible{outline:3px solid #0A897D;outline-offset:3px}
.client-report-card .client-report-actions .btn:disabled,
.client-report-page .client-report-toolbar .btn:disabled{display:none}
@media(max-width:430px){.client-report-card .client-report-actions .btn{flex:1 1 140px}}


/* Turnover Craft approved visual system — shared by all PTOS roles.
   Primary brand colors: Midnight Navy #062B42, Turnover Teal #00C4E6, White #FFFFFF.
   Mint is semantic success UI, not an alternative logo/brand teal. */
html{accent-color:var(--brand-cyan)}
html:focus-within{scroll-behavior:smooth}
:where(button,input,textarea,select,a,[tabindex]):focus-visible{
  outline:3px solid var(--focus-ring);
  outline-offset:3px;
}
:where(button,.action-card,.metric-card,.mode-launch){transition:background-color .15s ease,border-color .15s ease,color .15s ease}
:where(button,.action-card,.metric-card,.mode-launch):not(:disabled):active{filter:brightness(.96)}
.topbar{background:rgba(243,246,248,.96)}
.brand-mark{background:var(--brand-navy);color:var(--brand-white)}
.section-label{color:#006B86}
.page-title h1,.job-unit{color:var(--ink)}
.btn.primary{background:var(--brand-navy);color:var(--brand-white)}
.btn.teal,.quick-fab{background:var(--brand-cyan);color:var(--text-on-cyan)}
.btn.ghost{color:var(--ink);border-color:#AFC4CE}
.pill.teal,.scope-status.complete{background:var(--teal-soft);color:#006D88}
.pill.success,.pill.complete,.completion-rule.ok{background:var(--accent-mint);color:#145E4C}
.progress-bar{background:var(--brand-cyan)}
.bottom-nav button.active{color:#006D88}
.bottom-nav button.active .nav-icon{color:#006D88}
.bottom-nav button.active::after{content:"";display:block;width:22px;height:3px;border-radius:99px;background:var(--brand-cyan);margin:4px auto 0}
.action-card.accent,.mode-launch{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff}
.action-card b,.quick-action span,.attention-icon,.activity-dot{
  background:#DFF7FC;color:#006D88;
}
.filter-chips button.active{background:var(--brand-navy);border-color:var(--brand-navy);color:white}
.cleaner-sticky-actions button.finish{background:var(--brand-cyan);color:var(--brand-navy)}
.check-item input,.option-row input{accent-color:#0085A1}
.auth-screen{background:linear-gradient(180deg,var(--brand-navy) 0 34%,var(--bg) 34% 100%)}
.hero-card{background:linear-gradient(135deg,var(--brand-navy),#11415A);color:white}
.hero-card h1,.hero-card .job-unit{color:white}
.auth-card,.card,.metric-card,.action-card,.check-item,.scope-card{border-color:var(--line)}
.client-report-page{color:var(--brand-navy)}
.client-report-card .client-report-actions .btn,
.client-report-page .client-report-toolbar .btn,
html[data-theme="dark"] .client-report-card .client-report-actions .btn,
html[data-theme="dark"] .client-report-page .client-report-toolbar .btn{
  color:var(--brand-navy);border-color:#8AA9B9;background:white;
}
.client-report-card .client-report-actions .btn.primary,
.client-report-page .client-report-toolbar .btn.primary,
html[data-theme="dark"] .client-report-card .client-report-actions .btn.primary,
html[data-theme="dark"] .client-report-page .client-report-toolbar .btn.primary{
  background:var(--brand-navy);border-color:var(--brand-navy);color:white;
}
.client-report-card .client-report-actions .btn.teal,
.client-report-page .client-report-toolbar .btn.teal,
html[data-theme="dark"] .client-report-card .client-report-actions .btn.teal,
html[data-theme="dark"] .client-report-page .client-report-toolbar .btn.teal{
  background:var(--brand-cyan);border-color:#0094B1;color:var(--brand-navy);
}
html[data-theme="dark"] .topbar{background:rgba(6,27,41,.95);border-color:var(--line)}
html[data-theme="dark"] .brand-mark{background:var(--brand-cyan);color:var(--brand-navy)}
html[data-theme="dark"] .btn.primary{background:var(--brand-navy);color:white;border:1px solid #467187}
html[data-theme="dark"] .btn.teal,
html[data-theme="dark"] .quick-fab{background:var(--brand-cyan);color:var(--brand-navy)}
html[data-theme="dark"] .pill.teal,
html[data-theme="dark"] .scope-status.complete{background:#123D4A;color:#86E9FA}
html[data-theme="dark"] .pill.success,
html[data-theme="dark"] .pill.complete,
html[data-theme="dark"] .completion-rule.ok{background:#17483E;color:#A8E6CF}
html[data-theme="dark"] .section-label{color:#83DBEC}
html[data-theme="dark"] .hero-card,
html[data-theme="dark"] .mode-launch{background:linear-gradient(135deg,#062B42,#11415A);border-color:#315E75;color:white}
html[data-theme="dark"] .hero-card h1,
html[data-theme="dark"] .hero-card .job-unit{color:white}
html[data-theme="dark"] .action-card b,
html[data-theme="dark"] .quick-action span,
html[data-theme="dark"] .attention-icon,
html[data-theme="dark"] .activity-dot{background:#123D4A;color:#86E9FA}
html[data-theme="dark"] .action-card.accent{background:var(--brand-navy);border-color:#467187;color:white}
html[data-theme="dark"] .filter-chips button.active{background:var(--brand-cyan);color:var(--brand-navy);border-color:var(--brand-cyan)}
html[data-theme="dark"] .bottom-nav button.active,
html[data-theme="dark"] .bottom-nav button.active .nav-icon{color:#83DBEC}
html[data-theme="dark"] .cleaner-sticky-actions button.finish{background:var(--brand-cyan);color:var(--brand-navy)}
html[data-theme="dark"] .page-title h1,
html[data-theme="dark"] .job-unit{color:var(--ink)}
html[data-theme="dark"] .client-report-page .job-unit{color:var(--brand-navy)}
@media(prefers-reduced-motion:reduce){
  :where(button,.action-card,.metric-card,.mode-launch){transition:none}
  html:focus-within{scroll-behavior:auto}
}
