.housekeeping-toolbar,.housekeeping-assignment-toolbar,.housekeeping-assignment-summary,.housekeeping-sticky-actions,.housekeeper-main,.housekeeper-actions,.housekeeper-portal-header,.housekeeper-portal-title{display:flex;align-items:center;gap:12px}.housekeeping-toolbar,.housekeeping-assignment-summary,.housekeeping-sticky-actions,.housekeeper-portal-title{justify-content:space-between}.housekeeping-toolbar{margin-bottom:18px}.housekeeping-toolbar-actions,.housekeeping-selection-actions{display:flex;gap:8px;flex-wrap:wrap}.housekeeper-list{display:grid;gap:12px}.housekeeper-card{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:16px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface,#fff)}.housekeeper-main h3,.housekeeper-main p,.housekeeping-access-gate h3,.housekeeping-access-gate p,.housekeeper-object-list h3,.housekeeper-object-list p{margin:0}.housekeeper-main p,.housekeeper-object-list p{margin-top:4px;color:var(--muted)}.housekeeper-avatar,.housekeeper-object-icon{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:12px;background:#e8f0ff;color:#235fb4;font-weight:800}.housekeeper-actions{justify-content:flex-end;flex-wrap:wrap}.housekeeper-actions button{min-height:38px}.housekeeping-assignment-toolbar{align-items:end;display:grid;grid-template-columns:minmax(220px,.8fr) minmax(260px,1fr) auto;margin-bottom:12px}.housekeeping-assignment-toolbar label,.housekeeping-modal-body label{display:grid;gap:6px}.housekeeping-assignment-toolbar label>span,.housekeeping-modal-body label>span{font-size:13px;color:var(--muted)}.housekeeping-assignment-summary{padding:10px 2px;color:var(--muted)}.housekeeping-property-list{max-height:min(56vh,620px);overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.housekeeping-property-row{margin:0;padding:10px 14px;border-bottom:1px solid var(--line);border-radius:0}.housekeeping-property-row:last-child{border-bottom:0}.housekeeping-property-row>span{display:grid;gap:3px;min-width:0}.housekeeping-property-row small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.housekeeping-sticky-actions{position:sticky;bottom:-1px;margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 -8px 24px rgba(23,32,51,.08)}.housekeeping-sticky-actions span{color:var(--muted)}.housekeeping-access-gate{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px;border:1px solid #f3c47b;border-radius:12px;background:#fff7e8}.housekeeping-access-gate p{margin-top:6px;color:#7c5418}.housekeeping-modal{width:min(620px,100%)}.housekeeping-modal-header p{margin:4px 0 0;color:var(--muted);font-size:13px}.housekeeping-modal-body{display:grid;gap:14px;padding:18px}.housekeeping-modal-body textarea{resize:vertical}.housekeeper-auth-card{width:min(430px,calc(100vw - 28px))}body.housekeeper-portal-active .auth-screen{display:block;width:100%;height:var(--app-viewport-height,100dvh);min-height:0;padding:0;overflow-y:auto;overscroll-behavior-y:contain}.housekeeper-portal{width:100%;min-height:100%;padding:20px 20px 90px;background:#f5f7fb;color:#172033}.housekeeper-portal-header,.housekeeper-portal-content{width:min(720px,100%);margin:0 auto}.housekeeper-portal-header{justify-content:space-between;padding-bottom:20px}.housekeeper-portal-header span{color:var(--muted);font-size:13px}.housekeeper-portal-header h1{margin:4px 0 0;font-size:28px}.housekeeper-portal-content{display:grid;gap:14px}.housekeeper-portal-title h2{margin:0;font-size:20px}.housekeeper-portal-title span{display:grid;place-items:center;min-width:32px;height:32px;border-radius:999px;background:#e8f0ff;color:#235fb4;font-weight:700}.housekeeper-object-list{display:grid;gap:10px}.housekeeper-object-list article{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #dbe2ec;border-radius:14px;background:#fff}.housekeeper-bottom-nav{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom));z-index:5;display:flex;gap:6px;width:min(420px,calc(100vw - 24px));padding:6px;border:1px solid #dbe2ec;border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 14px 34px rgba(23,32,51,.18);transform:translateX(-50%)}.housekeeper-bottom-nav button{display:grid;place-items:center;gap:2px;flex:1;min-height:52px;border:0;border-radius:13px;background:transparent;color:var(--muted)}.housekeeper-bottom-nav button.active{background:#e8f0ff;color:#235fb4}.housekeeper-bottom-nav button span{font-size:21px}.housekeeper-portal-loading{display:grid;place-items:center;min-height:70vh;color:var(--muted)}
@media(max-width:900px){.housekeeper-card{grid-template-columns:1fr auto}.housekeeper-actions{grid-column:1/-1;justify-content:flex-start}.housekeeping-assignment-toolbar{grid-template-columns:1fr}.housekeeping-selection-actions button{flex:1}.housekeeping-access-gate{align-items:flex-start;flex-direction:column}.housekeeping-access-gate button{width:100%}}
@media(max-width:560px){.housekeeping-toolbar{align-items:flex-start;flex-direction:column}.housekeeping-toolbar-actions{width:100%}.housekeeping-toolbar-actions button{flex:1}.housekeeper-card{grid-template-columns:1fr}.housekeeper-card>.integration-status{justify-self:start}.housekeeper-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.housekeeper-actions button{width:100%}.housekeeping-sticky-actions{align-items:stretch;flex-direction:column}.housekeeping-sticky-actions button{width:100%}.housekeeper-portal{padding:16px 14px 88px}.housekeeper-portal-header h1{font-size:24px}}

.housekeeping-jobs-actions,.housekeeping-jobs-controls,.housekeeping-period-nav{display:flex;align-items:center;gap:10px}.housekeeping-jobs-actions{margin-bottom:14px;flex-wrap:wrap}.housekeeping-jobs-controls{justify-content:space-between;gap:16px;margin-bottom:18px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.housekeeping-period-nav strong{min-width:230px;text-align:center}.segmented-control{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:10px;background:#fff}.segmented-control button{min-height:36px;padding:6px 12px;border:0;border-radius:7px;background:transparent;color:var(--muted)}.segmented-control button.active{background:#e7f0ff;color:#1559a6;box-shadow:inset 0 0 0 1px #bfd3f3}.housekeeping-jobs-table{width:100%;border-collapse:collapse}.housekeeping-jobs-table th,.housekeeping-jobs-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.housekeeping-jobs-table tbody tr{cursor:pointer}.housekeeping-jobs-table tbody tr:hover,.housekeeping-jobs-table tbody tr:focus{background:#f5f8fd;outline:none}.housekeeping-jobs-table td strong,.housekeeping-jobs-table td small{display:block}.housekeeping-jobs-table td small{margin-top:3px;color:var(--muted)}.job-status,.job-source{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;font-size:13px;font-weight:700}.job-status{background:#eef2f7;color:#364152}.status-overdue{background:#fee9e7;color:#9c2c1d}.status-configuration_required,.status-assignee_required{background:#fff1d6;color:#7c4d00}.status-inactive,.job-source.is-inactive{border:1px dashed #aab3c1;background:#f3f4f6!important;color:#737b87!important;opacity:.78}.job-source.source-rule,.calendar-job.source-rule{background:#e7f0ff;color:#1559a6}.job-source.source-manual,.calendar-job.source-manual{background:#1768c5;color:#fff}.job-source.source-ai,.calendar-job.source-ai{background:#eee6ff;color:#6136a5}.housekeeping-calendar-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px}.housekeeping-calendar{display:grid;grid-template-columns:minmax(240px,280px) repeat(var(--calendar-days),minmax(118px,1fr));min-width:max-content;background:#fff}.calendar-corner,.calendar-day,.calendar-property,.calendar-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-corner,.calendar-day{position:sticky;top:0;z-index:3;min-height:68px;padding:12px;background:#f3f6fa;color:#39465a}.calendar-corner{left:0;z-index:4;display:flex;align-items:center;font-weight:800}.calendar-day{display:grid;place-items:center}.calendar-day b{font-size:20px}.calendar-day span{color:#5f6d80}.calendar-day.today{background:#e7f0ff;color:#1559a6;box-shadow:inset 0 -3px #2f75c8}.calendar-property{position:sticky;left:0;z-index:2;display:flex;min-height:86px;padding:12px;background:#fff;flex-direction:column;justify-content:center}.calendar-property small{margin-top:4px;color:var(--muted)}.calendar-cell{display:grid;align-content:start;gap:6px;min-height:86px;padding:7px}.calendar-job{position:relative;display:grid;gap:2px;width:100%;min-height:54px;padding:8px;border:1px solid transparent;border-radius:9px;text-align:left}.calendar-job:focus{outline:3px solid rgba(47,117,200,.28);outline-offset:1px}.calendar-job span{font-size:12px}.housekeeping-job-tooltip{position:absolute;left:0;top:calc(100% + 7px);z-index:20;display:none;width:310px;padding:14px;border-radius:11px;background:#263142;color:#fff;box-shadow:0 12px 32px rgba(20,28,40,.3);font-weight:400}.calendar-job:hover .housekeeping-job-tooltip,.calendar-job:focus .housekeeping-job-tooltip{display:grid;gap:10px}.housekeeping-job-tooltip>strong{font-size:16px}.housekeeping-job-tooltip>span{display:grid;grid-template-columns:105px 1fr;gap:8px;font-size:13px;line-height:1.35}.housekeeping-job-tooltip b{color:#b9c9df}.job-detail dl{display:grid;gap:8px;margin:0}.job-detail dl div{display:grid;grid-template-columns:150px 1fr;gap:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}.job-detail dt{color:var(--muted)}.job-detail dd{margin:0;font-weight:700}.danger-button{background:#b83a2d;color:#fff}
@media(max-width:900px){.housekeeping-jobs-controls{align-items:stretch;flex-direction:column}.housekeeping-period-nav{justify-content:space-between}.housekeeping-period-nav strong{min-width:0}.segmented-control{align-self:flex-start}.housekeeping-calendar{grid-template-columns:minmax(190px,220px) repeat(var(--calendar-days),110px)}}
@media(max-width:560px){.housekeeping-jobs-actions button{flex:1}.housekeeping-jobs-controls{padding:10px}.housekeeping-period-nav strong{font-size:13px}.segmented-control{width:100%}.segmented-control button{flex:1}.job-detail dl div{grid-template-columns:1fr;gap:3px}.housekeeping-job-tooltip{position:fixed;left:12px;right:12px;top:auto;bottom:82px;width:auto}}
.housekeeping-jobs-table tbody tr.job-row-inactive{background:#f5f6f8;color:#737b87;opacity:.76}

#housekeeping-modal .modal-backdrop { grid-template-columns: minmax(0, 1fr); }
#housekeeping-modal .housekeeping-modal {
  width: min(680px, 100%);
  min-width: 0;
  justify-self: center;
  max-height: min(820px, calc(100dvh - 32px));
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .28);
}
#housekeeping-modal .modal-header {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--line);
  background: #fff;
}
#housekeeping-modal .modal-header h3 { margin: 0; }
#housekeeping-modal .modal-header p { margin: 5px 0 0; color: var(--muted); font-size: 14px; }
.housekeeping-batch-picker { display: grid; gap: 10px; min-width: 0; }
.housekeeping-batch-picker input[type="search"] { width: 100%; }
.housekeeping-batch-toolbar { display: flex; align-items: center; gap: 8px 12px; flex-wrap: wrap; color: var(--muted); font-size: 13px; }
.housekeeping-batch-toolbar strong { margin-right: auto; color: var(--text, #172033); }
.housekeeping-batch-toolbar button { min-height: 36px; }
.housekeeping-batch-list {
  min-height: 90px;
  max-height: min(34vh, 300px);
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}
.housekeeping-modal-body .housekeeping-batch-property {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-height: 52px;
  margin: 0;
  padding: 11px 13px;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  cursor: pointer;
}
.housekeeping-modal-body .housekeeping-batch-property:last-child { border-bottom: 0; }
.housekeeping-modal-body .housekeeping-batch-property input[type="checkbox"] {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  margin: 1px 0 0;
}
.housekeeping-modal-body .housekeeping-batch-property > span {
  display: grid;
  gap: 3px;
  min-width: 0;
  color: var(--text, #172033);
  font-size: 14px;
}
.housekeeping-batch-property small { color: var(--muted); overflow-wrap: anywhere; }
.housekeeping-batch-empty { margin: 0; padding: 20px; color: var(--muted); }
@media (max-width: 560px) {
  #housekeeping-modal .modal-backdrop { padding: 8px; }
  #housekeeping-modal .housekeeping-modal { max-height: calc(100dvh - 16px); }
  #housekeeping-modal .modal-header { padding: 15px; }
  .housekeeping-batch-list { max-height: min(34vh, 260px); }
}

.housekeeper-list-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%}
.housekeeper-list-heading h2{margin:0;font-size:22px;color:#172033}
.housekeeper-list-heading span{flex:0 0 auto;color:#5f6d82;font-size:14px}
.housekeeper-task-list{display:grid;gap:12px}
.housekeeper-day-heading{margin:18px 0 2px;font-size:16px;color:#43536b}
.housekeeper-task-card{display:grid;gap:10px;padding:18px;border:1px solid #dbe2ec;border-radius:16px;background:#fff;box-shadow:0 3px 12px rgba(23,32,51,.04)}
.housekeeper-task-state{justify-self:start;padding:5px 9px;border-radius:999px;background:#eaf1ff;color:#215da9;font-size:12px;font-weight:700}
.housekeeper-task-card h4{margin:0;color:#172033;font-size:21px;line-height:1.2}
.housekeeper-task-address{margin:-5px 0 2px;color:#637087;font-size:14px}
.housekeeper-task-time{margin:2px 0;color:#2b3f5e;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.housekeeper-task-type{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:2px;color:#172033}
.housekeeper-task-type strong{min-width:0;font-size:16px;font-weight:700}
.housekeeper-task-type span{flex:0 0 auto;color:#215da9;font-weight:700}
.housekeeper-task-open,.housekeeper-more{min-height:44px;border:0;border-radius:11px;background:#2c66b3;color:#fff;font:inherit;font-weight:700;cursor:pointer}
.housekeeper-task-open:hover,.housekeeper-more:hover{background:#215598}
.housekeeper-more{width:100%;margin-top:8px}
.housekeeper-detail-heading{display:flex;align-items:center;gap:8px;min-width:0}
.housekeeper-detail-heading button{border:0;background:transparent;color:#172033;cursor:pointer}
.housekeeper-detail-heading button:first-child{flex:0 0 40px;min-height:44px;font-size:25px}
.housekeeper-detail-heading button:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-size:21px;font-weight:700}
.housekeeper-task-detail h2{margin:0;font-size:20px}
.housekeeper-detail-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-top:1px solid #e5eaf2;padding-top:10px;font-size:14px}
.housekeeper-detail-row span{color:#637087}
.housekeeper-detail-row strong{text-align:right}
.housekeeper-info-dialog{width:min(420px,calc(100vw - 28px));border:1px solid #dbe2ec;border-radius:16px;padding:22px;color:#172033;background:#fff}
.housekeeper-info-dialog::backdrop{background:rgba(16,29,48,.52)}
.housekeeper-info-dialog h2{margin:0 0 8px}
.housekeeper-info-dialog p{color:#637087}
.housekeeper-info-dialog button{min-height:42px;padding:0 18px;border:0;border-radius:10px;background:#2c66b3;color:#fff}
@media(max-width:560px){.housekeeper-task-card{padding:16px}.housekeeper-task-card h4{font-size:19px}.housekeeper-task-type strong{font-size:15px}.housekeeper-task-type span{font-size:14px}}


/* Кабинет горничной: мобильная навигация и карточка задания. */
body.housekeeper-portal-active { display: block; width: 100%; min-width: 0; overflow-x: hidden; }
body.housekeeper-portal-active .auth-screen { width: 100%; min-width: 0; }
.housekeeper-portal {
  padding-top: 24px;
  padding-bottom: calc(102px + env(safe-area-inset-bottom));
}
.housekeeper-portal-content { gap: 16px; }
.housekeeper-list-heading {
  align-items: center;
  min-height: 44px;
  margin-bottom: 2px;
}
.housekeeper-list-heading h1 {
  margin: 0;
  color: #172033;
  font-size: clamp(21px, 4vw, 26px);
  line-height: 1.15;
}
.housekeeper-list-heading span { font-size: 13px; text-align: right; }
.housekeeper-bottom-nav {
  bottom: max(8px, env(safe-area-inset-bottom));
  width: min(540px, calc(100vw - 16px));
  border-radius: 18px;
}
.housekeeper-bottom-nav button {
  min-width: 0;
  min-height: 58px;
  padding: 5px 2px;
  cursor: pointer;
}
.housekeeper-bottom-nav button svg { width: 21px; height: 21px; }
.housekeeper-bottom-nav button small {
  overflow: hidden;
  max-width: 100%;
  font-size: 11px;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.housekeeper-bottom-nav button:disabled {
  color: #9aa5b6;
  cursor: not-allowed;
  opacity: .65;
}
.housekeeper-bottom-nav button:focus-visible,
.housekeeper-detail-heading button:focus-visible,
.housekeeper-task-open:focus-visible,
.housekeeper-profile-card button:focus-visible {
  outline: 3px solid #8bb7f2;
  outline-offset: 2px;
}
.housekeeper-task-badges { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.housekeeper-task-state { justify-self: auto; }
.housekeeper-occupancy {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #ecf8f0;
  color: #1c6840;
  font-size: 12px;
  font-weight: 700;
}
.housekeeper-occupancy.is-unknown { background: #eef1f5; color: #69778a; }
.housekeeper-task-card h3 { margin: 0; font-size: 21px; line-height: 1.2; color: #172033; }
.housekeeper-object-list article h2 { margin: 0; font-size: 17px; }
.housekeeper-object-icon svg { width: 22px; height: 22px; }
.housekeeper-empty { margin-top: 12px; }
.housekeeper-profile-card {
  display: grid;
  gap: 10px;
  padding: 22px;
  border: 1px solid #dbe2ec;
  border-radius: 16px;
  background: #fff;
}
.housekeeper-profile-card span { color: #637087; font-size: 14px; }
.housekeeper-profile-card strong { font-size: 21px; }
.housekeeper-profile-card button {
  justify-self: start;
  min-height: 44px;
  margin-top: 16px;
  padding: 0 16px;
  border: 1px solid #cbd6e5;
  border-radius: 10px;
  background: #fff;
  color: #29476f;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.housekeeper-job-content { gap: 12px; }
.housekeeper-detail-heading { min-height: 48px; }
.housekeeper-detail-heading button:first-child {
  flex: 0 0 42px;
  min-width: 42px;
  padding: 0;
  text-align: left;
}
.housekeeper-detail-heading button:last-child { font-size: 20px; }
.housekeeper-detail-heading button:last-child span { margin-left: 5px; color: #3469ac; }
.housekeeper-admin-note {
  position: relative;
  padding: 14px 44px 14px 16px;
  border: 1px solid #efcc8f;
  border-radius: 13px;
  background: #fff3db;
  color: #67451f;
}
.housekeeper-admin-note strong { display: block; font-size: 14px; }
.housekeeper-admin-note p { margin: 5px 0 0; line-height: 1.45; }
.housekeeper-admin-note button {
  position: absolute;
  top: 7px;
  right: 8px;
  width: 32px;
  height: 32px;
  border: 0;
  background: transparent;
  color: #67451f;
  font-size: 23px;
  cursor: pointer;
}
.housekeeper-job-strip {
  display: grid;
  gap: 4px;
  padding: 0 2px 4px;
}
.housekeeper-job-strip > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.housekeeper-job-strip strong { font-size: 17px; }
.housekeeper-job-strip span { white-space: nowrap; color: #215da9; font-weight: 700; }
.housekeeper-job-strip p { margin: 0; color: #344b68; font-size: 14px; }
.housekeeper-job-strip small { color: #68788c; font-size: 13px; }
.housekeeper-primary-action {
  min-height: 46px;
  width: 100%;
  border: 0;
  border-radius: 11px;
  background: #2c66b3;
  color: #fff;
  font: inherit;
  font-weight: 700;
}
.housekeeper-primary-action:disabled { background: #d8e3f1; color: #6982a1; cursor: not-allowed; }
.housekeeper-work-section {
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 1px solid #dbe2ec;
  border-radius: 15px;
  background: #fff;
}
.housekeeper-work-section h2 { margin: 0; font-size: 18px; }
.housekeeper-work-hint { margin: 0; color: #718097; font-size: 13px; line-height: 1.4; }
.housekeeper-work-preview {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #8190a3;
  font-size: 14px;
}
.housekeeper-work-preview > span:nth-child(2),
.housekeeper-work-preview > span:first-child:not(.housekeeper-work-check) { flex: 1; }
.housekeeper-work-check {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border: 1px solid #c4cfdd;
  border-radius: 6px;
  color: transparent;
}
.housekeeper-work-preview button,
.housekeeper-work-title button {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid #d7e0eb;
  border-radius: 10px;
  background: #f6f8fb;
  color: #a8b3c2;
  font: inherit;
  font-size: 19px;
}
.housekeeper-work-preview button:disabled,
.housekeeper-work-title button:disabled { cursor: not-allowed; }
.housekeeper-outline-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid #d7e0eb;
  border-radius: 10px;
  background: #f6f8fb;
  color: #8898aa;
  font: inherit;
}
.housekeeper-work-section textarea {
  width: 100%;
  min-height: 74px;
  resize: none;
}
.housekeeper-work-section textarea:disabled { background: #f6f8fb; color: #8898aa; }
.housekeeper-work-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.housekeeper-info-dialog { width: min(480px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); overflow: auto; }
.housekeeper-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.housekeeper-dialog-heading button {
  width: 36px;
  height: 36px;
  min-height: 36px;
  padding: 0;
  border-radius: 9px;
  background: #edf2f8;
  color: #304664;
  font-size: 23px;
}
.housekeeper-info-dialog dl { display: grid; gap: 12px; margin: 18px 0 0; }
.housekeeper-info-dialog dl div { display: grid; gap: 3px; }
.housekeeper-info-dialog dt { color: #718097; font-size: 12px; }
.housekeeper-info-dialog dd { margin: 0; overflow-wrap: anywhere; font-weight: 600; }
@media (max-width: 560px) {
  .housekeeper-portal { padding: 14px 12px calc(100px + env(safe-area-inset-bottom)); }
  .housekeeper-list-heading h1 { font-size: 21px; }
  .housekeeper-list-heading span { font-size: 12px; }
  .housekeeper-task-card h3 { font-size: 19px; }
  .housekeeper-task-time { font-size: 13px; }
  .housekeeper-bottom-nav button small { font-size: 10px; }
}
.housekeeping-setup-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px;border-bottom:1px solid var(--border,#d9e2ee)}
.housekeeping-setup-tabs button{border:0;border-radius:10px 10px 0 0;background:transparent;color:var(--muted,#65758b);padding:12px 16px;cursor:pointer}
.housekeeping-setup-tabs button.active{background:#eaf2ff;color:#1764b8;font-weight:700;box-shadow:inset 0 -3px #2c77ce}
.housekeeping-setup-form{display:grid;gap:18px;max-width:980px}
.housekeeping-setup-form>label,.housekeeping-setup-form fieldset>label,.housekeeping-setup-inline>label,.housekeeping-setup-item>label{display:grid;gap:7px;min-width:0}
.housekeeping-setup-form input:not([type=checkbox]),.housekeeping-setup-form textarea,.housekeeping-setup-form select,.housekeeping-setup-inline input,.housekeeping-setup-inline select{width:100%;max-width:100%;box-sizing:border-box}
.housekeeping-setup-form textarea{min-height:84px;resize:vertical}
.housekeeping-setup-form fieldset{border:1px solid #d9e2ee;border-radius:14px;padding:18px;display:grid;gap:16px;min-width:0}
.housekeeping-setup-form legend{font-weight:700;padding:0 8px}
.housekeeping-setup-inline{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.housekeeping-setup-inline>label{flex:1 1 210px}
.housekeeping-setup-inline>button{flex:0 0 auto}
.housekeeping-setup-list{display:grid;gap:10px;margin-top:18px}
.housekeeping-setup-row{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid #dce4ee;border-radius:14px;padding:14px;background:#fff}
.housekeeping-setup-card{border:0;background:transparent;display:grid;gap:5px;text-align:left;flex:1;min-width:0;color:inherit;cursor:pointer;padding:3px}
.housekeeping-setup-card strong{font-size:1.08rem}
.housekeeping-setup-card small{color:#64748b}
.housekeeping-setup-card span{font-size:.85rem;color:#64748b}
.housekeeping-setup-breadcrumb{display:flex;gap:8px;align-items:center;margin-bottom:18px}
.housekeeping-setup-breadcrumb button{border:0;background:transparent;color:#1764b8;padding:8px;cursor:pointer}
.housekeeping-setup-item{border-top:1px solid #e2e8f0;padding-top:16px;display:grid;gap:12px}
#housekeeping-checklist-assignment-content .housekeeping-property-list{max-height:370px;overflow:auto}
#housekeeping-assignment-overview{display:grid;gap:12px}
@media(max-width:640px){.housekeeping-setup-row{flex-wrap:wrap}.housekeeping-setup-tabs{flex-wrap:nowrap;overflow-x:auto}.housekeeping-setup-tabs button{white-space:nowrap}.housekeeping-setup-form fieldset{padding:12px}}
#housekeeping-assignment-overview[hidden],#housekeeping-assignments-content[hidden],#housekeeping-checklist-assignment-content[hidden]{display:none!important}
.housekeeper-started{border:1px solid #b7dcc7;border-radius:11px;background:#eaf7ef;color:#215d39;padding:12px 16px;font-weight:700}
.housekeeper-checklist-section{display:grid;gap:9px;padding-top:12px;border-top:1px solid #e5ebf3}
.housekeeper-checklist-section:first-of-type{border-top:0;padding-top:0}
.housekeeper-checklist-section h3{margin:0;font-size:16px}
.housekeeper-checklist-section>p{margin:0;color:#718097;font-size:13px}
.housekeeper-checklist-item{padding:10px 0;border-top:1px solid #edf1f6}
.housekeeper-checklist-item>span:nth-child(2){display:grid;gap:3px}
.housekeeper-checklist-item strong{color:#26364d;font-size:14px}
.housekeeper-checklist-item small{font-size:11px;color:#718097}
.housekeeper-checklist-item button{position:relative}
.housekeeper-checklist-item button:not(:disabled){color:#2c66b3;cursor:pointer}
.housekeeper-checklist-item button:last-child{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:44px;height:48px;line-height:1}
.housekeeper-checklist-item button small{position:static;font-size:10px;line-height:1;color:#61728d}
.housekeeper-item-dialog{width:min(480px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;border:1px solid #dbe2ec;border-radius:15px;padding:22px}
.housekeeper-item-dialog p{color:#43546e;line-height:1.45}
.housekeeper-item-dialog h3{font-size:15px}

.housekeeping-type-create{grid-template-columns:minmax(220px,1fr) minmax(250px,1.3fr) auto;align-items:end;max-width:1100px}
.housekeeping-type-card{flex-wrap:wrap}
.housekeeping-type-card>div{display:grid;gap:6px;min-width:200px}
.housekeeping-type-card form{flex:1 1 420px}
.housekeeping-setup-help{color:var(--muted,#65758b);line-height:1.45;margin:0 0 12px}
.housekeeping-linked-checklist{display:grid;gap:6px;flex:1 1 240px;padding:10px 14px;border:1px solid #d9e2ee;border-radius:10px;background:#f7faff}
.housekeeping-linked-checklist span{font-size:.85rem;color:var(--muted,#65758b)}
.housekeeping-template-form{max-width:1200px}
.housekeeping-template-workspace{display:grid;grid-template-columns:minmax(190px,260px) minmax(0,1fr);gap:20px;align-items:start}
.housekeeping-editor-nav{position:sticky;top:16px;display:grid;gap:12px;max-height:min(72vh,850px);overflow:auto;border:1px solid #d9e2ee;border-radius:14px;padding:16px;background:#f7faff}
.housekeeping-editor-nav-section{display:grid;gap:5px;border-top:1px solid #d9e2ee;padding-top:10px}
.housekeeping-editor-nav-section>strong{font-size:.9rem}
.housekeeping-editor-nav button{display:block;text-align:left;width:100%;border:0;border-radius:8px;padding:10px;background:transparent;color:#26384e;cursor:pointer}
.housekeeping-editor-nav button.active{background:#e5f0ff;color:#175cb0;font-weight:700}
.housekeeping-editor-nav button:focus-visible{outline:2px solid #1764b8;outline-offset:2px}
.housekeeping-template-main{display:grid;gap:14px;min-width:0}
.housekeeping-template-main [hidden]{display:none!important}
@media(max-width:800px){.housekeeping-type-create{grid-template-columns:1fr}.housekeeping-template-workspace{grid-template-columns:1fr}.housekeeping-editor-nav{position:static;max-height:180px}.housekeeping-type-card form{flex-basis:100%}}

/* Checklist editor: sections stay visible while points open in a focused dialog. */
.hce-editor{display:grid;gap:18px;max-width:1240px;color:#24354b}
.hce-editor-head,.hce-column-title,.hce-criteria-head,.hce-modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.hce-editor-head h2{margin:0;font-size:1.35rem}
.hce-editor-head>span{padding:5px 10px;border-radius:999px;background:#eaf1fa;color:#24558f;font-size:.8rem;font-weight:700}
.hce-top-fields{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:14px;align-items:start}
.hce-top-fields>label:nth-child(1),.hce-top-fields>label:nth-child(2){grid-column:1}
.hce-top-fields>label:nth-child(3){grid-column:2;grid-row:1}
.hce-top-fields>label,.hce-modal label:not(.checkbox-row){display:grid;gap:7px;min-width:0;font-weight:650}
.hce-top-fields input,.hce-top-fields textarea,.hce-modal input:not([type=checkbox]):not([type=file]),.hce-modal textarea{box-sizing:border-box;width:100%;padding:10px 12px;border:1px solid #cdd8e5;border-radius:9px;background:#fff;color:#24354b;font:inherit;font-weight:400}
.hce-top-fields textarea{min-height:72px;resize:vertical}
.hce-single-tab{border-bottom:1px solid #d8e2ee}
.hce-single-tab span{display:inline-block;padding:9px 15px;border-bottom:3px solid #2875c7;font-weight:700;color:#175ca7}
.hce-workspace{display:grid;grid-template-columns:minmax(230px,30%) minmax(0,1fr);gap:16px;align-items:start}
.hce-section-column,.hce-points-column{display:grid;gap:13px;border:1px solid #d9e2ee;border-radius:13px;padding:17px;min-width:0;background:#fff}
.hce-section-column{background:#f8fbff}
.hce-column-title strong{display:block;font-size:1.05rem}
.hce-column-title small{display:block;margin-top:4px;color:#66778b;font-weight:400}
.hce-column-title button,.hce-criteria-head button{padding:7px 10px;border:1px solid #bad2ed;border-radius:8px;background:#fff;color:#1764b8;font-weight:650;cursor:pointer;white-space:nowrap}
.hce-section-list,.hce-point-list{display:grid;gap:8px;max-height:min(63vh,780px);overflow:auto}
.hce-section-row,.hce-point-card{display:flex;align-items:center;gap:11px;text-align:left;width:100%;padding:12px;border:1px solid #d7e2ef;border-radius:10px;background:#fff;color:#26384e;cursor:pointer}
.hce-section-row.active{border-color:#76a8e1;background:#eaf3ff}
.hce-section-row>span:nth-child(2),.hce-point-summary{display:grid;gap:4px;min-width:0}
.hce-section-row small,.hce-point-summary small{color:#61738a;font-size:.82rem}
.hce-section-number,.hce-point-index{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:8px;background:#e8f0fa;color:#2361a4;font-size:.82rem;font-weight:700}
.hce-point-card{align-items:flex-start}
.hce-point-card>span:last-child{margin-left:auto;color:#6684a4;font-size:1.4rem}
.hce-point-card em{font-style:normal;padding:2px 6px;border-radius:5px;background:#fff2de;color:#9c6305;font-size:.7rem}
.hce-point-card.hce-needs-photo{border-color:#f4c886;background:#fffaf2}
.hce-photo-state{font-size:.82rem;color:#287453;font-weight:650}
.hce-needs-photo .hce-photo-state,.hce-warning{color:#a45f07;font-size:.82rem;font-weight:650}
.hce-section-actions{display:flex;gap:7px}
.hce-section-actions button:last-child{color:#b13f3f}
.hce-backdrop{position:fixed;inset:0;z-index:1010;display:grid;place-items:center;padding:18px;background:rgba(19,33,52,.54)}
.hce-modal{box-sizing:border-box;display:grid;gap:14px;width:min(100%,530px);max-height:calc(100dvh - 36px);overflow:auto;padding:20px;border-radius:15px;background:#fff;box-shadow:0 25px 60px rgba(17,37,62,.22)}
.hce-point-modal{width:min(100%,760px);grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}
.hce-modal-head{align-items:flex-start}
.hce-modal-head h3{margin:0;font-size:1.25rem}
.hce-modal-head small{color:#61738a}
.hce-modal-head button{border:0;background:transparent;font-size:1.6rem;line-height:1;cursor:pointer;color:#5c7088;min-width:36px;min-height:36px}
.hce-modal-scroll{display:grid;gap:15px;min-height:0;overflow:auto;padding:1px 4px 4px 1px}
.hce-modal-message{margin:0;padding:9px 11px;border:1px solid #efc483;border-radius:8px;background:#fff8ed;color:#875307;font-weight:650}
.hce-modal-scroll textarea{min-height:65px;resize:vertical}
.hce-modal-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid #dbe4ee;padding-top:14px}
.hce-modal-actions>div{display:flex;gap:8px;margin-left:auto}
.hce-modal-actions button{min-height:38px}
.hce-reference,.hce-criteria{display:grid;gap:9px;padding:14px;border:1px solid #dce5f0;border-radius:11px;background:#f8fbff}
.hce-reference>span{color:#65768a;font-size:.85rem}
.hce-reference img{display:block;max-width:min(100%,310px);max-height:230px;object-fit:contain;border-radius:8px;border:1px solid #d9e2ed}
.hce-file-label{width:max-content;max-width:100%;padding:8px 11px;border:1px solid #b8d1ed;border-radius:8px;background:#fff;color:#1764b8;cursor:pointer}
.hce-file-label input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.hce-file-label:focus-within{outline:2px solid #2776c8;outline-offset:2px}
.hce-criteria-head strong{display:block}
.hce-criteria-head small{display:block;margin-top:3px;color:#64788f;font-weight:400}
.hce-criterion{display:grid;grid-template-columns:22px minmax(0,1fr) 34px;align-items:start;gap:8px;padding:9px;border:1px solid #dce5ef;border-radius:9px;background:#fff}
.hce-criterion>span{padding-top:8px;color:#63788e;font-weight:700}
.hce-criterion textarea{min-height:58px}
.hce-criterion button{border:0;background:transparent;color:#b34343;font-size:1.25rem;cursor:pointer}
.hce-criterion-result{grid-column:2/-1;margin:0;font-size:.83rem}
.hce-ai-pass{border-color:#99d7ba;background:#f2fbf6}.hce-ai-question{border-color:#f2ca86;background:#fffaf0}.hce-ai-fail{border-color:#eda2a2;background:#fff4f4}
.hce-trial-action{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hce-trial-action small{color:#718097}
.hce-trial-quote{display:grid;gap:8px;padding:14px;border:1px solid #b7c9e7;border-radius:12px;background:#f4f8ff}
.hce-trial-quote p{margin:0}
.hce-trial-quote>div{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.hce-count{max-width:210px}
.hce-editor button:focus-visible,.hce-modal button:focus-visible,.hce-modal input:focus-visible,.hce-modal textarea:focus-visible{outline:2px solid #2776c8;outline-offset:2px}
@media(max-width:900px){.hce-workspace{grid-template-columns:minmax(205px,35%) minmax(0,1fr)}}
@media(max-width:650px){.hce-top-fields,.hce-workspace{grid-template-columns:1fr}.hce-top-fields>label:nth-child(1),.hce-top-fields>label:nth-child(2),.hce-top-fields>label:nth-child(3){grid-column:auto;grid-row:auto}.hce-section-list{max-height:180px}.hce-point-list{max-height:none}.hce-backdrop{padding:6px}.hce-modal{max-height:calc(100dvh - 12px);padding:14px}.hce-modal-actions{flex-wrap:wrap}.hce-modal-actions>div{width:100%;margin-left:0}.hce-modal-actions>div button{flex:1}.hce-criteria-head{align-items:flex-start;flex-wrap:wrap}}
.housekeeping-calendar-scroll{max-height:min(70vh,760px)}
.calendar-property.is-inactive{background:#f8fafc;color:#64748b}
.calendar-property-status{align-self:flex-start;margin-top:5px;padding:2px 7px;border:1px dashed #aab3c1;border-radius:999px;color:#5f6d80;font-size:11px;font-weight:700}
.housekeeping-job-tooltip{box-sizing:border-box;position:fixed;top:0;right:auto;bottom:auto;left:0;z-index:50;width:310px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);overflow-y:auto;visibility:hidden;pointer-events:none}
.job-detail dl{grid-template-columns:minmax(0,1fr)}
.job-detail dd{min-width:0;overflow-wrap:anywhere}

.hce-save-trial-backdrop{z-index:1020}
.hce-save-trial-modal{width:min(100%,450px);gap:10px}
.hce-save-trial-modal h3{margin:0}
.hce-save-trial-modal p{margin:2px 0 10px}
.hce-save-trial-modal button{min-height:44px;white-space:normal;text-align:center}
