:root{
  --ink:#1A1A2E;
  --ink-soft:#4A5568;
  --paper:#D8DFE8;
  --paper-raised:#FFFFFF;
  --line:#D5DDE8;
  --amber:#0072CE;
  --amber-bg:#E6F2FC;
  --green:#1A7A4A;
  --green-bg:#E3F4EB;
  --brick:#C0392B;
  --brick-bg:#FDECEA;
  --focus:#0072CE;
  --nav-bg:#FFFFFF;
  --cdc-blue:#0072CE;
  --cdc-orange:#F47920;
  /* View More expand band — slightly deeper pastel blue than entry cards */
  --expand-band:#D6E7F5;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Archivo',sans-serif;margin:0;color:var(--ink);}
.mono{font-family:'IBM Plex Mono',monospace;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;}

.topbar{
  background:var(--nav-bg);
  color:var(--ink);
  position:sticky;top:0;z-index:50;
  border-bottom:3px solid var(--cdc-blue);
  box-shadow:0 2px 8px rgba(0,0,0,0.08);
}
.topbar-inner{max-width:90%;margin:0 auto;padding:6px 14px 5px;box-sizing:border-box;}
.topbar-brand-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding-bottom:4px;
}
.topbar-brand-left{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;flex:1;
}
.system-title{
  font-family:'Archivo',sans-serif;
  font-size:12px;font-weight:600;letter-spacing:0.01em;
  color:var(--ink-soft);line-height:1.25;min-width:0;
}
.topbar-nav-row{
  display:flex;align-items:center;gap:8px;
  padding-top:4px;border-top:1px solid #E8EDF3;
}
.topbar-nav{
  display:flex;flex-wrap:nowrap;align-items:center;gap:4px;
  overflow:visible;flex:1;min-width:0;
}
.topbar-user-row{
  display:flex;align-items:center;justify-content:flex-end;gap:8px;
  flex-wrap:nowrap;flex-shrink:0;
}
.topbar-signout-form{margin:0;display:inline-flex;flex:none;}
.topbar-menu{position:relative;display:inline-flex;align-items:center;}
.topbar-burger{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:36px;padding:6px 8px!important;
}
.topbar-burger-icon{
  display:flex;flex-direction:column;justify-content:center;gap:3px;width:16px;height:14px;
}
.topbar-burger-icon span{
  display:block;height:2px;width:100%;background:currentColor;border-radius:1px;
}
.topbar-menu-dropdown{
  position:absolute;top:calc(100% + 4px);left:0;z-index:60;
  min-width:160px;padding:6px;border-radius:8px;
  background:#fff;border:1.5px solid #93BCE0;
  box-shadow:0 8px 20px rgba(0,40,80,0.12);
  display:flex;flex-direction:column;gap:2px;
}
.topbar-menu-dropdown[hidden]{display:none!important;}
.topbar-menu-item{
  display:block;padding:8px 12px;border-radius:5px;
  font-size:13px;font-weight:700;color:var(--ink-soft);text-decoration:none;white-space:nowrap;
}
.topbar-menu-item:hover{background:#EEF5FC;color:var(--cdc-blue);}
.topbar-menu-item.active{background:#EEF5FC;color:var(--cdc-blue);}
.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.navlink-sub{
  font-size:11px;padding:2px 6px;color:var(--ink-soft);font-weight:600;white-space:nowrap;
}
.navlink-sub:hover{color:var(--cdc-blue);}
.role-dim{opacity:0.6;}
.brand{
  font-family:'Archivo',sans-serif;font-weight:800;font-size:15px;
  letter-spacing:0.02em;white-space:nowrap;
  display:flex;align-items:center;gap:7px;flex-shrink:0;
  color:var(--cdc-blue);
}
.brand .mark{
  width:22px;height:22px;border:2px solid var(--cdc-blue);
  display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:800;color:var(--cdc-blue);
  transform:rotate(45deg);flex:none;
}
.brand .mark span{transform:rotate(-45deg);}
.navlinks{display:flex;flex-wrap:wrap;gap:2px;align-items:center;}
.navlink{
  padding:5px 10px;font-size:13px;font-weight:600;
  border-radius:3px;color:var(--ink-soft);position:relative;white-space:nowrap;
  border:none;background:transparent;
}
.navlink:hover{background:#EEF5FC;color:var(--cdc-blue);}
.navlink.active{color:var(--cdc-blue);background:#EEF5FC;}
.navlink.active::after{
  content:"";position:absolute;left:8px;right:8px;bottom:2px;height:2px;background:var(--cdc-blue);
}
.navlink-signout{
  border:1.5px solid var(--cdc-blue)!important;border-radius:3px;
  background:transparent;color:var(--cdc-blue);
  font-size:11px;font-weight:700;line-height:1.2;
  padding:3px 8px;white-space:nowrap;width:auto;min-width:0;
}
.navlink-signout:hover{background:#EEF5FC;}
.role-pill{
  font-size:11px;font-family:'IBM Plex Mono',monospace;
  background:#EEF5FC;border:1px solid #B8D6F0;
  padding:3px 8px;border-radius:20px;color:var(--cdc-blue);white-space:nowrap;font-weight:600;
}
.role-pill-link{text-decoration:none;display:inline-flex;align-items:center;gap:2px;}
.role-pill-link:hover{background:#DCEAF8;border-color:var(--cdc-blue);}

.form-progress-overlay{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  background:rgba(15,35,60,0.45);padding:20px;
}
.form-progress-overlay[hidden]{display:none!important;}
.form-progress-card{
  width:min(360px,100%);background:#fff;border-radius:10px;
  border:1px solid #93BCE0;box-shadow:0 10px 30px rgba(0,0,0,0.18);
  padding:18px 18px 16px;text-align:center;
}
.form-progress-title{font-size:16px;font-weight:800;color:var(--ink);margin-bottom:12px;}
.form-progress-track{
  height:12px;border-radius:999px;background:#E8EDF3;overflow:hidden;border:1px solid #D0D8E2;
}
.form-progress-bar{
  height:100%;width:0%;border-radius:999px;background:var(--cdc-orange);
  transition:width 0.15s ease-out;
}
.form-progress-bar.is-indeterminate{
  width:40%!important;
  animation:form-progress-pulse 1.1s ease-in-out infinite;
}
@keyframes form-progress-pulse{
  0%{transform:translateX(-120%);}
  100%{transform:translateX(280%);}
}
.form-progress-pct{margin-top:8px;font-size:14px;font-weight:800;color:var(--cdc-blue);}
.form-progress-hint{margin-top:6px;font-size:12px;color:var(--ink-soft);font-weight:600;}
body.form-progress-open{overflow:hidden;}

.page{max-width:90%;margin:0 auto;padding:10px 14px 60px;box-sizing:border-box;min-width:0;}
.breadcrumb{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;
  color:var(--ink-soft);margin-bottom:6px;
}
.breadcrumb a{color:var(--ink-soft);}
.breadcrumb a:hover{color:var(--focus);text-decoration:underline;}
.breadcrumb .sep{color:var(--line);}
.breadcrumb .current{color:var(--ink);font-weight:600;}

.page-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap;position:relative;}
.page-head:not(:has(h1)){justify-content:flex-end;}
.page-head h1{font-size:18px;font-weight:800;}
.page-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}

.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 13px;border-radius:4px;font-weight:600;font-size:13px;
  border:1.5px solid var(--cdc-blue);background:var(--cdc-blue);color:#fff;
}
.btn:hover{background:#005aab;border-color:#005aab;}
.btn.outline{background:transparent;color:var(--cdc-blue);}
.btn.outline:hover{background:#EEF5FC;}
.btn.amber{background:var(--cdc-orange);border-color:var(--cdc-orange);color:#fff;}
.btn.amber:hover{background:#d9650a;}
.btn.small{padding:5px 10px;font-size:12px;}
.btn.disabled{opacity:0.5;pointer-events:none;}

.icon-btn{
  background:transparent;border:1px solid var(--line);border-radius:4px;
  padding:5px 9px;font-size:11.5px;font-weight:600;color:var(--ink-soft);display:inline-flex;align-items:center;gap:5px;
}
.icon-btn:hover{border-color:var(--ink);color:var(--ink);background:var(--paper);}
.icon-btn.add,.icon-btn.pending-active{color:var(--cdc-orange);border-color:var(--cdc-orange);}
.icon-btn-danger{color:#B42318;border-color:#F5B5B0;}
.icon-btn-danger:hover{background:#FEF3F2;border-color:#B42318;color:#912018;}
.si-delete-form{margin:0;display:inline;}
.module-access-groups{display:flex;flex-direction:column;gap:12px;margin-top:6px;}
.module-access-group{border:1px solid var(--line);border-radius:6px;padding:10px 12px;background:var(--paper-raised);}
.module-access-group-title{font-size:12px;font-weight:700;color:var(--cdc-blue);margin-bottom:8px;}
.module-checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:6px;cursor:pointer;}
.module-checkbox{width:16px;height:16px;}
.module-matrix-col{font-size:9px;writing-mode:vertical-rl;text-align:left;padding:4px 2px!important;}
.module-matrix-cell{text-align:center;font-size:12px;}
.module-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px;}
.module-legend-group{min-width:180px;font-size:12px;}
.module-legend-group ul{margin:4px 0 0;padding-left:16px;color:var(--ink-soft);}

.field{margin-bottom:12px;display:flex;flex-direction:column;gap:4px;}
.field label{font-size:12px;font-weight:600;color:var(--ink-soft);}
.help{font-size:11.5px;color:var(--ink-soft);}
.errorlist{list-style:none;margin:4px 0 0;padding:0;font-size:11.5px;color:var(--brick);}

.sched-input{
  padding:6px 8px;border:1.5px solid var(--line);border-radius:4px;
  font-family:inherit;font-size:12.5px;background:#fff;color:var(--ink);min-width:140px;
}
.sched-input:focus{border-color:var(--focus);}
.sched-input.readonly{background:#EEF5FC;color:var(--cdc-blue);font-weight:600;cursor:not-allowed;}

.tag{font-size:11px;font-family:'IBM Plex Mono',monospace;padding:2px 8px;border-radius:20px;display:inline-block;}
.tag-green{background:var(--green-bg);color:var(--green);}
.tag-amber{background:#FFF3E0;color:#8a5d00;}
.tag-red{background:var(--brick-bg);color:var(--brick);}
.si-entry-tag-form{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap;}
.si-tag-select{
  appearance:none;-webkit-appearance:none;
  border-radius:999px;border:1.5px solid transparent;
  padding:3px 24px 3px 10px;font-size:11px;font-weight:700;line-height:1.3;
  cursor:pointer;font-family:inherit;
  background-repeat:no-repeat;
  background-position:right 8px center;
  background-size:8px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath fill='%23666' d='M0 0l4 5 4-5z'/%3E%3C/svg%3E");
}
.si-tag-select.tag-green{background-color:var(--green-bg);color:var(--green);}
.si-tag-select.tag-amber{background-color:#FFF3E0;color:#8a5d00;}
.si-tag-select.tag-red{background-color:var(--brick-bg);color:var(--brick);}
.si-table-tag-form{display:block;margin:0;}
.si-tag-select--table{
  max-width:100%;
  padding:2px 18px 2px 6px;
  font-size:10px;
  background-position:right 5px center;
}
.toilet-section-log{
  margin:4px 0 6px 0;padding:6px 8px;
  background:#F0F5FB;border-radius:4px;border-left:2px solid var(--cdc-blue);
  min-width:0;max-width:100%;overflow-wrap:anywhere;
}
.toilet-section-log .si-log-entry{font-size:calc(11.5px * var(--entry-font-scale, 1));}
.tag-role-admin{background:#EEF5FC;color:var(--cdc-blue);}
.tag-role-supervisor{background:var(--green-bg);color:var(--green);}
.tag-role-staff{background:#F3EEFF;color:#6B4FA0;}

.si-form-card{background:#D4E4F5;border:1px solid #93BCE0;border-radius:6px;padding:12px;}
.toilet-item-list{margin:0;padding:0;list-style:none;}
.toilet-item-row{margin:4px 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.toilet-item-select{margin:0;flex:none;}
.si-form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px 10px;}
.si-form-grid .field{margin-bottom:0;}
.si-form-grid .field label{font-size:11px;font-weight:600;color:var(--ink-soft);margin-bottom:2px;}
.si-form-grid .field input,
.si-form-grid .field select,
.si-form-grid .field textarea{padding:5px 7px;font-size:12.5px;border:1px solid var(--line);border-radius:3px;width:100%;font-family:inherit;background:#fff;color:var(--ink);}
.si-form-grid .field textarea{resize:vertical;min-height:52px;}
.si-form-full{grid-column:1/-1;}
.si-photo-row{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;}
/* Shared photo galleries: wrap side-by-side (~3+ thumbs on phone). */
.si-photo-thumbs,
.fire-existing-thumbs,
.fa-existing-thumbs,
.wsh-existing-thumbs,
.wsh-existing-photos,
.defect-list-photos,
.fire-summary-photos{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(72px,72px));
  gap:8px;
  justify-content:start;
  align-items:start;
  width:100%;
  margin-top:8px;
  box-sizing:border-box;
}
.si-photo-thumbs[hidden]{display:none!important;}
.si-photo-thumb-item,
.fire-existing-photo,
.fa-existing-photo,
.wsh-photo-chip{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  width:72px;
  max-width:72px;
  box-sizing:border-box;
}
.si-photo-thumb-remove{
  position:absolute;top:-5px;right:-5px;width:18px;height:18px;border-radius:50%;
  border:1px solid var(--line);background:#fff;color:var(--brick);font-size:13px;line-height:1;
  font-weight:700;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;
  box-shadow:0 1px 3px rgba(0,0,0,0.12);
}
.si-photo-hint{display:block;font-size:11px;margin-top:6px;line-height:1.4;}
.si-photo-browse-input,
.si-photo-master-input,
.si-photo-django-field input[type="file"]{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.si-photo-django-field{position:absolute;overflow:hidden;clip:rect(0,0,0,0);}
.si-photo-widget{position:relative;}
.field-optional{font-weight:400;color:var(--ink-soft);}
.si-other-wrap{margin-top:4px;}
.si-form-meta{margin-top:8px;font-size:11px;}
.si-form-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;align-items:center;}
.si-checkbox-label{display:flex;align-items:center;gap:8px;font-weight:600;cursor:pointer;}
.si-form-stacked .field{margin-bottom:2px;}
.si-form-stacked .field label{margin-bottom:3px;}
.si-photo-add{
  width:46px;height:46px;border:1.5px dashed var(--line);border-radius:4px;background:var(--paper);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  font-weight:700;font-size:16px;color:var(--ink-soft);cursor:pointer;
}
.si-photo-add:hover{border-color:var(--ink);color:var(--ink);}
.si-thumb{width:46px;height:46px;border-radius:4px;object-fit:cover;border:1.5px solid var(--line);flex:none;}
.si-thumb-lightbox,.si-thumb-lg{cursor:pointer;touch-action:manipulation;}
.si-thumb-lg{width:90px;height:68px;border-radius:4px;object-fit:cover;border:1.5px solid var(--line);flex:none;transition:opacity .15s;}
.si-thumb-lg:hover,.si-thumb-lightbox:hover{opacity:0.85;}
.si-photo-lightbox-overlay{
  position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,0.92);
  display:flex;align-items:center;justify-content:center;padding:16px;
}
.si-photo-lightbox-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;}
.si-photo-lightbox-close{
  position:absolute;top:12px;right:12px;width:40px;height:40px;border:none;border-radius:50%;
  background:rgba(255,255,255,0.15);color:#fff;font-size:28px;line-height:1;cursor:pointer;
}
.si-entry{
  background:var(--paper-raised);border:1px solid var(--line);border-radius:6px;
  padding:10px 14px;display:flex;flex-direction:column;gap:5px;
  font-size:calc(13px * var(--entry-font-scale, 1));
  min-width:0;max-width:100%;overflow-x:hidden;
}
/* Table-style cards: scroll sideways when the 9-col row is wider than the page */
.si-entry.si-entry--ld-grid{
  overflow-x:auto;overflow-y:visible;
  -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
  contain:inline-size;
  padding-bottom:10px;
  scrollbar-width:thin;
  scrollbar-color:#8FA3B5 #E8EDF3;
}
.si-entry.si-entry--ld-grid::-webkit-scrollbar{height:12px;}
.si-entry.si-entry--ld-grid::-webkit-scrollbar-track{background:#E8EDF3;border-radius:6px;}
.si-entry.si-entry--ld-grid::-webkit-scrollbar-thumb{background:#8FA3B5;border-radius:6px;}
.si-entry.si-entry--ld-grid::-webkit-scrollbar-thumb:hover{background:#6B7C8C;}
.si-entry--sev-low{background:#F2FAF5;border-color:#B8DCC8;}
.si-entry--sev-medium{background:#FFFAF2;border-color:#E8D4A8;}
.si-entry--sev-high{background:#FFF6F4;border-color:#E8C4BC;}
.si-entry--sev-critical{background:#FFF0EE;border-color:#DFA8A0;}
.si-entry.pending-highlight,
.si-entry--pending{border-left:3px solid var(--cdc-orange);}
.si-entry-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;}
.si-entry-id{font-family:inherit;font-size:13px;font-weight:500;color:var(--ink-soft);}
a.si-entry-id-link{color:var(--cdc-blue);font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
a.si-entry-id-link:hover{color:var(--cdc-orange);}
.si-entry-loc{font-size:13px;min-width:0;overflow-wrap:anywhere;}
.si-entry-sub{font-size:13px;font-weight:500;color:var(--ink-soft);}
.si-entry-inspector{font-size:11.5px;color:var(--ink-soft);margin-left:auto;}
.si-entry-actions{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;}
.si-log-btn-fixed{
  min-width:7.75rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;
  box-sizing:border-box;white-space:nowrap;
}
.si-entry-type{font-size:calc(12px * var(--entry-font-scale, 1));font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:0.03em;}
.si-entry-type .fire-overall-pct{text-transform:none;letter-spacing:0;margin-left:8px;font-size:calc(12px * var(--entry-font-scale, 1));}
.si-entry-desc{font-size:calc(12.5px * var(--entry-font-scale, 1));color:var(--ink-soft);line-height:1.45;overflow-wrap:anywhere;}
.si-sort-controls{display:inline-flex;gap:2px;vertical-align:middle;}
.si-sort-btn{min-width:28px;padding:2px 6px!important;line-height:1.2;}
.si-col-sn{width:36px;text-align:center;}

.si-log{background:#F0F5FB;border-top:1px solid var(--line);padding:10px 12px;display:flex;flex-direction:column;gap:8px;min-width:0;max-width:100%;}
.si-log-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:var(--cdc-blue);margin-bottom:2px;}
.si-log-entry-block{display:flex;flex-direction:column;gap:4px;padding-bottom:6px;border-bottom:1px solid #D5DDE8;min-width:0;}
.si-log-entry-block:last-of-type{border-bottom:none;padding-bottom:0;}
.si-log-entry{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:calc(12px * var(--entry-font-scale, 1));min-width:0;}
.si-log-ts{color:var(--ink-soft);white-space:nowrap;font-size:11px;}
.si-log-user{font-weight:700;white-space:nowrap;}
.si-log-note{color:var(--ink-soft);min-width:0;flex:1 1 8rem;overflow-wrap:anywhere;word-break:break-word;}
.si-log-entry-photos{display:flex;flex-wrap:wrap;gap:5px;padding-left:0;}
.si-log-add{display:flex;gap:6px;align-items:center;margin-top:4px;flex-wrap:wrap;min-width:0;}
.si-log-input{padding:5px 8px;font-size:12.5px;flex:1 1 140px;min-width:0;max-width:100%;}
.si-log-photo-widget{flex:1 1 100%;min-width:0;}
.si-log-add > .btn{flex:0 0 auto;}

.si-notify-row{display:flex;flex-wrap:wrap;gap:10px;}
.si-notify-opt{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;cursor:pointer;background:#B8D4EE;border:1.5px solid #7AAED8;border-radius:5px;padding:6px 10px;}
.si-notify-icon{font-size:16px;}
.si-notify-input{width:170px;min-width:0;font-size:12px;padding:4px 7px;margin-left:4px;}

.si-table{table-layout:fixed;width:100%;border-collapse:collapse;background:var(--paper-raised);border:1px solid var(--line);font-size:calc(13px * var(--entry-font-scale, 1));}
.si-table-compact{font-size:calc(11px * var(--entry-font-scale, 1));}
/*
  Full content width (same as cards). Rem column mins keep Flag/Delete usable;
  wrap scrolls sideways when the window is narrower than min-width.
*/
.si-table.si-table-compact{
  width:100%;min-width:64rem;max-width:none;
}
.si-table-compact th{
  font-size:9px;padding:6px 5px;letter-spacing:0.02em;
  vertical-align:bottom;white-space:nowrap;
}
.si-table-compact td{padding:6px 5px;line-height:1.35;vertical-align:middle;}
.si-table-wrap{
  display:block;width:100%;max-width:100%;min-width:0;
  overflow-x:auto;overflow-y:visible;
  -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
  contain:inline-size;
  padding-bottom:6px;
  /* Always-visible thin scrollbar (Windows overlay scrollbars hide otherwise) */
  scrollbar-width:thin;
  scrollbar-color:#8FA3B5 #E8EDF3;
}
.si-table-wrap::-webkit-scrollbar{height:12px;}
.si-table-wrap::-webkit-scrollbar-track{background:#E8EDF3;border-radius:6px;}
.si-table-wrap::-webkit-scrollbar-thumb{background:#8FA3B5;border-radius:6px;}
.si-table-wrap::-webkit-scrollbar-thumb:hover{background:#6B7C8C;}
/* Fixed rem widths — sum ≈ 76rem */
.si-table-compact .si-col-sn{width:2.5rem;white-space:nowrap;text-align:center;}
.si-table-compact .si-col-id{width:5.5rem;white-space:nowrap;max-width:none;}
.si-table-compact .si-col-date{width:5.75rem;white-space:nowrap;max-width:none;}
.si-table-compact .si-col-loc{width:10rem;}
.si-table-compact .si-col-type{width:9rem;}
.si-table-compact .si-col-sev{width:4.5rem;white-space:nowrap;}
.si-table-compact .si-col-by{width:4rem;white-space:nowrap;max-width:none;}
.si-table-compact .si-col-stat{width:4.5rem;white-space:nowrap;}
.si-table-compact .si-col-desc{width:12rem;}
.si-table-compact .si-col-expand{width:11.5rem;}
.si-table-compact .si-col-pending{width:8.75rem;}
.si-table-compact .si-col-actions{width:4rem;white-space:nowrap;}
.si-table-compact .si-col-pending .si-flag-select{
  min-width:7.5rem;max-width:100%;width:100%;
}
.si-table-clip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:0;}
.si-table-compact .si-table-clip{
  white-space:normal;word-break:normal;overflow-wrap:break-word;hyphens:manual;max-width:none;
}
/* Never letter-wrap ID / Date / By — they use nowrap + fixed width above */
.si-table-compact td.si-col-id,
.si-table-compact td.si-col-date,
.si-table-compact td.si-col-by,
.si-table-compact th.si-col-id,
.si-table-compact th.si-col-date,
.si-table-compact th.si-col-by,
.si-table-compact th.si-col-sev,
.si-table-compact th.si-col-stat,
.si-table-compact th.si-col-sn,
.si-table-compact th.si-col-desc,
.si-table-compact th.si-col-expand{
  white-space:nowrap;word-break:normal;overflow-wrap:normal;max-width:none;
}
.si-table-compact .si-col-id,
.si-table-compact .si-col-date,
.si-table-compact .si-col-by{font-family:inherit;font-weight:inherit;}
.si-table-sub{font-size:9px;color:var(--ink-soft);}
.si-col-date .si-table-sub,
.ld-entry-cell-value .si-table-sub{font-size:inherit;font-weight:inherit;color:inherit;}
.si-table-log-cell{text-align:center;white-space:normal;vertical-align:middle;}
.si-table-compact .si-col-expand .si-log-btn-fixed,
.si-table-compact .si-col-expand .icon-btn-compact{
  min-width:0;width:100%;max-width:100%;box-sizing:border-box;justify-content:center;
  margin:1px 0;
}
.si-table-log-row td{
  padding:10px 10px 12px;max-width:0;overflow-wrap:anywhere;
  border-bottom:1px solid var(--line);
  background:var(--expand-band);
}
/* No double line between entry row and expanded details */
.si-table tbody tr:has(+ .si-table-log-row) > td{border-bottom:none;}
.si-table-log-row .toilet-check-summary,
.si-table-log-row .si-log,
.si-table-log-row .fire-check-summary{max-width:100%;}
.si-inline-form{margin:0;display:inline;}
.si-pending-flags{display:inline-flex;gap:4px;flex-wrap:wrap;}
.si-pending-flags-compact{flex-direction:column;gap:2px;align-items:stretch;}
.icon-btn-compact{font-size:10px!important;padding:2px 4px!important;min-width:0;line-height:1.2;}
.tag-compact{font-size:9px;padding:1px 4px;}
.list-toolbar{
  display:flex;align-items:flex-end;justify-content:space-between;
  flex-wrap:wrap;gap:8px 14px;margin-top:0;margin-bottom:8px;
}
.list-toolbar-title{margin:0;flex:0 1 auto;}
.list-toolbar-actions{margin-left:auto;align-self:flex-end;}
.list-filter-bar{margin-bottom:12px;margin-top:0;}
.list-filter-bar-action{margin-left:auto;}
.entry-card-list{display:flex;flex-direction:column;gap:8px;min-width:0;max-width:100%;}

/* LD List / All Entries: table-like layout inside cards */
.ld-entry-grid{
  display:grid;
  grid-template-columns:minmax(58px,0.5fr) minmax(80px,0.7fr) minmax(105px,1.4fr) minmax(85px,1fr) max-content minmax(55px,0.6fr) minmax(130px,2.4fr) max-content max-content;
  gap:8px 10px;
  align-items:start;
  /* Fill the card width; scroll sideways only when the window is narrower */
  width:100%;min-width:64rem;box-sizing:border-box;
}
.ld-entry-cell{display:flex;flex-direction:column;gap:3px;min-width:0;}
.ld-entry-cell-label{
  font-family:'IBM Plex Mono',monospace;
  font-size:calc(10px * var(--entry-font-scale, 1));
  font-weight:700;text-transform:uppercase;letter-spacing:0.05em;
  color:var(--cdc-blue);white-space:nowrap;
}
.ld-entry-cell-value{
  font-size:calc(13px * var(--entry-font-scale, 1));
  line-height:1.45;min-width:0;overflow-wrap:anywhere;
}
.ld-entry-tags .si-entry-tag-form{display:flex;flex-direction:row;flex-wrap:nowrap;gap:4px;align-items:center;}
.ld-entry-tags .tag{display:inline-block;margin:0 4px 4px 0;}
.ld-entry-actions{
  display:grid;grid-template-columns:repeat(2,minmax(0,auto));
  gap:4px;justify-content:start;align-items:center;
}
.ld-entry-actions--stack{grid-template-columns:minmax(0,auto);justify-items:stretch;}
.ld-entry-actions .si-pending-flags{display:flex;}
.ld-entry-actions--stack .si-pending-flags{flex-direction:column;gap:4px;align-items:stretch;}
.ld-entry-actions--stack .si-pending-flags .icon-btn{width:100%;box-sizing:border-box;}
.si-flag-select-form{display:block;}
.si-flag-select{
  width:100%;min-width:118px;max-width:138px;
  box-sizing:border-box;
}
/* Compact buttons: match the Low/Closed tag height, two per line */
.si-entry.si-entry--ld-grid .icon-btn,
.si-entry.si-entry--ld-grid .icon-btn-compact,
.si-entry.si-entry--ld-grid .si-log-toggle{
  font-size:calc(11px * var(--entry-font-scale, 1)) !important;
  padding:calc(3px * var(--entry-font-scale, 1)) calc(8px * var(--entry-font-scale, 1)) !important;
  min-height:calc(24px * var(--entry-font-scale, 1));
  justify-content:center;
}
.si-entry--ld-grid .si-log-btn-fixed{min-width:0;}
/* Break earlier than 980/640: .page is only ~90% of viewport, so 9-col overflowed first */
@media (max-width:1200px){
  .ld-entry-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    width:100%;min-width:0;
  }
  .ld-entry-cell--loc{grid-column:span 2;}
  .ld-entry-cell--desc{grid-column:1 / -1;}
}
@media (max-width:720px){
  .ld-entry-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;
    width:100%;min-width:0;
  }
  .ld-entry-cell--loc{grid-column:1 / -1;}
}
.export-dropdown{position:relative;}
.export-dropdown-toggle{min-width:88px;}
.export-dropdown-menu{
  position:absolute;top:calc(100% + 4px);right:0;z-index:60;min-width:260px;
  background:#fff;border:1px solid var(--line);border-radius:4px;
  box-shadow:0 4px 12px rgba(0,0,0,0.12);padding:4px 0;
}
.export-dropdown-item{
  display:block;width:100%;padding:7px 12px;font-size:12.5px;font-weight:600;color:var(--ink);
  border:0;background:transparent;text-align:left;cursor:pointer;
}
.export-dropdown-item:hover{background:#EEF5FC;color:var(--cdc-blue);}
.export-dropdown-sep{margin:4px 0;border:0;border-top:1px solid var(--line);}
.si-col-check{width:2rem;text-align:center;vertical-align:middle;}
.si-table-compact .si-col-check{width:2rem;white-space:nowrap;text-align:center;}
.si-col-check input[type="checkbox"],
.si-export-check-label input[type="checkbox"]{width:16px;height:16px;accent-color:var(--cdc-blue);cursor:pointer;}
.si-export-check-label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;}
.si-table th{background:#EEF5FC;color:var(--cdc-blue);font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:0.04em;padding:8px 10px;text-align:left;border-bottom:2px solid #B8D6F0;white-space:nowrap;}
.si-table td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top;}
.si-table tr:last-child td{border-bottom:none;}
.si-table tr:hover td{background:#F7FAFD;}

.section-title{
  font-family:'Archivo',sans-serif;
  font-size:16px;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;
  color:var(--ink);margin:14px 0 8px;
}
.empty-state{border:1.5px dashed var(--line);border-radius:6px;padding:36px 20px;text-align:center;color:var(--ink-soft);background:var(--paper-raised);}
/* In-table empty cells: keep the message on-screen when the table is wider than the phone. */
.si-table td.empty-state{
  position:sticky;left:0;text-align:left;max-width:100vw;box-sizing:border-box;
}

.login-wrap{display:flex;justify-content:center;padding:60px 20px;}
.login-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:6px;padding:36px;width:100%;max-width:380px;}
.login-mark{width:46px;height:46px;border:3px solid var(--amber);transform:rotate(45deg);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;}
.login-mark span{transform:rotate(-45deg);font-weight:800;color:var(--amber);font-family:'Archivo',sans-serif;}
.login-error{background:var(--brick-bg);color:var(--brick);border-radius:4px;padding:7px 10px;font-size:12.5px;margin-bottom:10px;}

.view-toggle{display:flex;gap:4px;background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:3px;flex:0 0 auto;}
.view-toggle-btn{
  display:flex;align-items:center;justify-content:center;gap:5px;padding:4px 10px;border-radius:3px;border:none;
  font-size:12px;font-weight:600;color:var(--ink-soft);background:transparent;cursor:pointer;text-decoration:none;
}
.view-toggle-btn:hover{background:#fff;color:var(--ink);}
.view-toggle-btn.active{background:#fff;color:var(--cdc-blue);box-shadow:0 1px 3px rgba(0,0,0,0.1);}

.si-controls{display:flex;gap:8px 10px;align-items:flex-end;flex-wrap:wrap;flex:1 1 20rem;min-width:0;}
.si-control-label{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:600;color:var(--ink-soft);min-width:0;}
.si-control-label .sched-input[type="date"]{min-width:9.5rem;width:100%;box-sizing:border-box;}
.si-control-label select{min-width:7.5rem;width:100%;box-sizing:border-box;}
.si-controls-form{display:contents;}
.si-controls > .btn{flex:0 0 auto;align-self:flex-end;}

.home-nav{display:flex;flex-direction:column;gap:6px;max-width:560px;}
.home-nav-btn{
  display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;
  background:var(--paper-raised);border:1.5px solid var(--line);border-radius:5px;
  padding:9px 12px;font-family:'Archivo',sans-serif;font-weight:700;font-size:13.5px;color:var(--ink);
  transition:border-color .15s, background .15s;
}
.home-nav-btn .arrow{font-family:'Inter',sans-serif;font-weight:600;color:var(--ink-soft);font-size:14px;flex:none;}
.home-nav-btn:hover{border-color:var(--cdc-blue);background:#EEF5FC;}
.home-nav-btn:hover .arrow{color:var(--cdc-blue);}

.messages{margin:0 0 10px;padding:0;list-style:none;}
.messages li{padding:8px 12px;border-radius:4px;font-size:13px;margin-bottom:6px;}
.messages .success{background:var(--green-bg);color:var(--green);}
.messages .error{background:var(--brick-bg);color:var(--brick);}

.si-preset-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:2px;}
/* Home category cards: always 2 sub-buttons side by side (GC | Toilet pattern). */
.home-section-card .si-preset-row{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
}
.home-section-card .si-preset-btn--rich{
  min-width:0;max-width:none;width:100%;height:100%;
}
.home-section-card .si-preset-btn-desc{
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.si-preset-btn{
  display:inline-flex;align-items:center;padding:7px 12px;
  border:1.5px solid var(--cdc-blue);border-radius:6px;background:#fff;
  font-family:'Inter',sans-serif;font-size:12.5px;font-weight:600;color:var(--cdc-blue);
  transition:border-color .15s,background .15s;
}
.si-preset-btn--rich{
  flex-direction:column;align-items:flex-start;gap:3px;
  min-width:160px;max-width:240px;padding:10px 12px;
}
.si-preset-btn-label{font-size:12.5px;font-weight:700;line-height:1.25;}
.si-preset-btn-desc{
  font-size:11px;font-weight:500;line-height:1.35;color:var(--ink-soft);
}
.si-preset-btn--supervisory .si-preset-btn-desc{color:#4A7A9E;}
.si-preset-btn--pending .si-preset-btn-desc{color:#A66A3A;}
.si-preset-btn--ld .si-preset-btn-desc{color:#6B5A9E;}
.si-preset-btn:hover{background:#EEF5FC;border-color:var(--cdc-blue);}
.si-preset-btn.incident{border-color:var(--cdc-orange);color:var(--cdc-orange);}
.si-preset-btn.incident:hover{background:#FFF4EC;}
.si-preset-btn.outline{border-style:dashed;color:var(--ink-soft);border-color:var(--line);}
.si-preset-btn.outline:hover{color:var(--cdc-blue);border-color:var(--cdc-blue);}
.home-section-card{
  border-radius:8px;padding:14px 14px 12px;
  max-width:720px;margin-bottom:12px;
}
.home-section-card--supervisory{
  background:#D4E4F5;border:1px solid #93BCE0;
}
.home-section-card--pending{
  background:#FFF0E6;border:1px solid #F0C9A8;
}
.home-section-card--ld{
  background:#EDE8F5;border:1px solid #C4B5E0;
}
.home-section-card--monthly{
  background:#F5E8E8;border:1px solid #D4A5A5;
}
.home-section-card--workshop{
  background:#E8F2E4;border:1px solid #A8C99E;
}
.home-section-card--facility{
  background:#F3EEFC;border:1px solid #C4B5E0;
}
.home-section-card--ops{
  background:linear-gradient(135deg,#E8F2E4 0%,#F3EEFC 100%);
  border:1px solid #B5C5B8;
}
.home-section-card-title{
  font-family:'Archivo',sans-serif;font-size:15px;font-weight:800;
  text-transform:uppercase;letter-spacing:0.04em;margin-bottom:10px;
}
.home-section-card--supervisory .home-section-card-title{color:#005A9E;}
.home-section-card--pending .home-section-card-title{color:#C45A10;}
.home-section-card--ld .home-section-card-title{color:#5B3FA0;}
.home-section-card--monthly .home-section-card-title{color:#9E3A3A;}
.home-section-card--workshop .home-section-card-title{color:#3D6B2E;}
.home-section-card--facility .home-section-card-title{color:#5B3FA0;}
.home-section-card--ops .home-section-card-title{color:#3D5A4A;}
.home-section-card-footer{margin-top:10px;}
.home-section-card-footer-row{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:10px;}
.si-preset-btn--supervisory{border-color:var(--cdc-blue);color:#005A9E;}
.si-preset-btn--pending{border-color:#E07A2F;color:#C45A10;}
.si-preset-btn--pending:hover{background:#FFF4EC;}
.si-preset-btn--ld{border-color:#7B5FC7;color:#5B3FA0;}
.si-preset-btn--ld:hover{background:#F3EEFC;}
.si-preset-btn--monthly{border-color:#C45A5A;color:#9E3A3A;}
.si-preset-btn--monthly:hover{background:#FDF0F0;}
.si-preset-btn--facility{border-color:#7B5FC7;color:#5B3FA0;}
.si-preset-btn--facility:hover{background:#F3EEFC;}
.defect-form-card{max-width:560px;}
.defect-action-pill{
  display:inline-block;margin-left:8px;padding:2px 8px;border-radius:4px;
  background:#EEF5FC;color:var(--cdc-blue);font-size:11px;font-weight:700;
  text-transform:none;letter-spacing:0;
}
.defect-list-photos .si-thumb{width:72px;height:72px;}
.defect-resolution{margin-top:6px;}
.defect-edit-summary{padding-bottom:10px;border-bottom:1px solid var(--line);}
.si-preset-btn--monthly .si-preset-btn-desc{color:#A66A6A;}
.si-preset-btn--workshop{border-color:#6B9E5A;color:#3D6B2E;}
.si-preset-btn--workshop:hover{background:#F0F8EC;}
.si-preset-btn--workshop .si-preset-btn-desc{color:#5A7A4A;}
.si-preset-btn--facility .si-preset-btn-desc{color:#6B5590;}

.petrol-form-card{max-width:720px;}
.petrol-datetime-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;}
.petrol-label-lg{display:block;font-size:17px;font-weight:800;color:var(--ink);margin-bottom:6px;}
.petrol-input-lg{
  width:100%;box-sizing:border-box;min-width:0;min-height:48px;
  font-size:18px;font-weight:600;padding:10px 12px;border-radius:999px;
}
.petrol-field-stack{margin-bottom:14px;}
.petrol-field-stack:last-child{margin-bottom:0;}
.petrol-tanks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:18px;}
.petrol-tank-panel{border:2px solid var(--line);border-radius:10px;padding:16px;background:#FAFCF8;}
.petrol-tank-head{text-align:center;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line);}
.petrol-tank-head strong{display:block;font-size:18px;font-weight:800;}
.petrol-tank-cap{font-size:14px;color:var(--ink-soft);font-weight:600;}
.petrol-save-btn{font-size:16px;padding:12px 20px;min-height:48px;}
.petrol-list-controls{align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:14px;}
.petrol-control-label{font-size:15px;font-weight:700;}
.petrol-filter-btn{font-size:14px;padding:10px 14px;min-height:44px;border-radius:999px;}
.petrol-export-links{display:flex;flex-wrap:wrap;gap:8px;width:100%;}
.petrol-record-cards{display:flex;flex-direction:column;gap:12px;}
.petrol-record-card{
  background:#EEF5FC;border:1.5px solid #93BCE0;border-radius:10px;padding:14px 16px;
}
.petrol-record-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;}
.petrol-record-when{font-size:18px;font-weight:800;color:var(--ink);line-height:1.3;}
.petrol-record-by{font-size:14px;font-weight:600;color:var(--ink-soft);margin-top:4px;}
.petrol-edit-btn{font-size:14px;padding:8px 12px;white-space:nowrap;flex-shrink:0;}
.petrol-record-tank{
  background:#fff;border:1.5px solid var(--line);border-radius:8px;padding:12px 14px;margin-top:10px;
}
.petrol-record-tank-title{font-size:17px;font-weight:800;color:var(--cdc-blue);margin-bottom:10px;}
.petrol-record-tank-cap{font-size:14px;font-weight:600;color:var(--ink-soft);}
.petrol-record-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.petrol-metric{display:flex;flex-direction:column;gap:4px;}
.petrol-metric-label{font-size:14px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:0.03em;}
.petrol-metric-value{font-size:20px;font-weight:800;color:var(--ink);line-height:1.2;word-break:break-word;}
.petrol-empty-msg{font-size:15px;margin-top:12px;}
.fire-inspection-card{max-width:100%;}
.fire-report-header{
  border:1.5px solid #8FA3B5;border-radius:10px;padding:0;margin-bottom:14px;background:#FAFBFC;overflow:hidden;
}
.fire-report-header-toggle{
  display:flex;align-items:center;gap:8px;width:100%;margin:0;padding:12px 14px;
  border:0;background:#E8EEF4;cursor:pointer;text-align:left;font:inherit;color:inherit;
}
.fire-report-header-toggle:hover{background:#DCE5EE;}
.fire-report-header:not(.is-collapsed) .fire-report-header-toggle{border-bottom:1.5px solid #8FA3B5;}
.fire-report-header-title{font-weight:800;font-size:15px;flex:none;}
.fire-report-header-summary{margin:0;flex:1;min-width:0;}
.fire-report-header-body{padding:14px;}
.fire-report-title{margin:10px 0 12px;font-size:14px;line-height:1.4;}
.fire-signature-field{margin-top:12px;}
.fire-signature-box{
  position:relative;
  width:min(100%, 220px);
  height:110px;
  border:2px dashed #8FA3B5;
  border-radius:8px;
  background:#FAFCFF;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  overflow:hidden;
}
.fire-signature-box:hover{border-color:var(--cdc-blue);background:#EEF5FC;}
.fire-signature-box.has-image{border-style:solid;background:#fff;}
.fire-signature-input{
  position:absolute;
  inset:0;
  opacity:0;
  width:100%;
  height:100%;
  cursor:pointer;
  z-index:2;
}
.fire-signature-placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  color:#5A6B7D;
  font-size:13px;
  font-weight:700;
  pointer-events:none;
  z-index:1;
}
.fire-signature-plus{
  font-size:22px;
  line-height:1;
  color:var(--cdc-blue);
  font-weight:800;
}
.fire-signature-preview{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  pointer-events:none;
  z-index:1;
}
.fire-signature-clear{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:8px;
  font-size:13px;
  font-weight:600;
  color:#5A6B7D;
  cursor:pointer;
}
.fire-floor-pulse{
  border:1.5px solid #8FA3B5;border-radius:10px;padding:12px 14px;margin-bottom:14px;background:#F4F8FC;
}
.fire-floor-pulse-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin-bottom:8px;}
.fire-floor-pulse-head .help{margin:0;}
.fire-floor-pulse-text{
  margin:0;font-size:14px;font-weight:600;line-height:1.45;color:var(--ink);
}
.fire-floor-pulse-text .fire-floor-item{white-space:nowrap;}
.fire-floor-pulse-text .fire-floor-sep{color:var(--ink-soft);font-weight:500;margin:0 0.35em;}
.fire-floor-pulse-text .fire-floor-pct{font-weight:800;}
.si-category-dropdown{position:relative;display:inline-block;vertical-align:top;}
.si-category-dropdown-toggle{
  display:inline-flex;align-items:center;gap:6px;min-width:11rem;justify-content:space-between;
}
.si-category-dropdown-menu{
  position:absolute;z-index:40;top:calc(100% + 4px);left:0;min-width:16rem;max-width:min(92vw,20rem);
  max-height:16rem;overflow:auto;padding:8px;border:1.5px solid #8FA3B5;border-radius:8px;
  background:#fff;box-shadow:0 8px 24px rgba(0,40,80,0.12);
}
.si-category-dropdown-item{
  display:flex;align-items:center;gap:8px;margin:0;padding:6px 4px;font-size:13px;font-weight:600;
  cursor:pointer;user-select:none;
}
.si-category-dropdown-item input{width:15px;height:15px;margin:0;flex:none;accent-color:var(--cdc-blue);}
.si-category-dropdown-actions{display:flex;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);}
.fire-sections{display:flex;flex-direction:column;gap:14px;margin-top:0;}
.fire-section-card{border:1.5px solid #7A93A8;border-radius:10px;padding:0;overflow:hidden;}
.fire-section-card--odd{background:#F7FAFD;border-color:#5E7A94;}
.fire-section-card--odd .fire-section-head{background:#EAF3FB;}
.fire-section-card--odd .fire-section-head:hover{background:#DCEAF8;}
.fire-section-card--even{background:#FBF7F2;border-color:#9A7E5C;}
.fire-section-card--even .fire-section-head{background:#F5EDE3;}
.fire-section-card--even .fire-section-head:hover{background:#EFE4D6;}
.fire-section-head{
  display:flex;align-items:center;gap:8px;width:100%;margin:0;padding:12px 14px;
  border:0;cursor:pointer;text-align:left;font:inherit;color:inherit;
}
.fire-section-card:not(.is-collapsed) .fire-section-head{border-bottom:1.5px solid #7A93A8;}
.fire-section-card--even:not(.is-collapsed) .fire-section-head{border-bottom-color:#9A7E5C;}
.fire-collapse-chevron{
  display:inline-flex;align-items:center;justify-content:center;width:18px;flex:none;
  font-size:14px;font-weight:800;color:var(--cdc-blue);
}
.fire-section-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--amber);color:#fff;font-size:12px;font-weight:800;flex:none;}
.fire-section-title{font-weight:800;font-size:15px;flex:1;font-family:inherit;}
.fire-section-pct{margin-left:auto;font-size:12px;font-weight:700;white-space:nowrap;}
.fire-section-pct-badge{margin-left:8px;font-size:11px;font-weight:700;}
.fire-overall-pct{margin-left:10px;font-size:14px;font-weight:700;white-space:nowrap;vertical-align:middle;}
.fire-pct{font-family:inherit;}
.fire-pct--low{color:#C62828;}
.fire-pct--mid{color:#E65100;}
.fire-pct--high{color:#2E7D32;}
.fire-section-body{padding:12px 14px 14px;}
.fire-level-group{border:1.5px solid #6B7C8C;border-radius:8px;margin-bottom:10px;overflow:hidden;background:rgba(255,255,255,0.7);}
.fire-level-group:last-child{margin-bottom:0;}
.fire-level-head{
  display:flex;align-items:center;gap:8px;width:100%;margin:0;padding:10px 12px;
  border:0;background:rgba(255,255,255,0.45);cursor:pointer;text-align:left;font:inherit;color:inherit;
}
.fire-level-head:hover{background:rgba(255,255,255,0.7);}
.fire-level-group:not(.is-collapsed) .fire-level-head{border-bottom:1.5px solid #6B7C8C;}
.fire-level-title{font-weight:800;font-size:14px;flex:1;color:#005A9E;font-family:inherit;}
.fire-level-total{font-weight:600;color:#5A6B7A;white-space:nowrap;}
.fire-level-pct{font-size:12px;font-weight:700;white-space:nowrap;}
.fire-level-body{padding:8px 10px 10px;}
.fire-summary-section{border-radius:8px;padding:8px 10px;margin-bottom:8px;}
.fire-summary-section--odd{background:#EAF3FB;border:1.5px solid #5E7A94;}
.fire-summary-section--even{background:#F5EDE3;border:1.5px solid #9A7E5C;}
.fire-table-wrap{display:flex;flex-direction:column;gap:10px;}
.fire-table-head,.fire-table-row{
  display:grid;
  grid-template-columns:minmax(160px,1.4fr) minmax(52px,0.7fr) minmax(140px,1.2fr) minmax(120px,1fr);
  gap:8px;
  align-items:start;
}
.fire-table-head .fire-col-qty{font-size:9px;line-height:1.2;}
.fire-table-head{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--ink-soft);letter-spacing:.04em;padding:0 2px 4px;border-bottom:1.5px solid #8FA3B5;}
.fire-table-row{padding:10px 8px;border:1.5px solid #9AA8B5;border-radius:8px;background:#fff;margin:0;}
.fire-table-row--incomplete{background:#FFEBEE !important;border-color:#EF9A9A !important;}
.fire-table-row--excluded{opacity:.72;border-style:dashed;}
.fire-exclude-export{display:inline-flex;margin-top:6px;}
.fire-row-spot-label{font-weight:700;font-size:13px;line-height:1.35;}
.fire-row-category{display:none;}
.fire-row-qty{text-align:center;font-weight:700;padding-top:6px;}
.fire-row-remarks .sched-input{width:100%;font-size:12px;}
.fire-remark-custom-wrap{margin-top:6px;}
.fire-row-photos .si-photo-actions{display:flex;flex-wrap:wrap;gap:4px;align-items:stretch;}
.fire-row-photos .btn.small{padding:4px 8px;font-size:11px;}
.fire-row-photos .si-photo-stamp-toggle{align-self:flex-start;}
.fire-existing-photo .si-thumb,
.fa-existing-photo .si-thumb,
.wsh-photo-chip img,
.si-photo-thumb-item > .si-thumb{
  display:block;width:72px;height:72px;object-fit:cover;border-radius:4px;flex:none;
}
.fire-photo-remove,
.fa-photo-remove{
  display:inline-flex;align-items:center;gap:4px;margin:0;padding:0;
  max-width:100%;
  font-size:11px;font-weight:600;color:var(--brick);cursor:pointer;user-select:none;
  line-height:1.2;white-space:nowrap;
}
.fire-photo-remove input,
.fa-photo-remove input{width:14px;height:14px;margin:0;flex:none;accent-color:var(--brick);cursor:pointer;}
.fire-existing-hint{margin:6px 0 0;font-size:11px;line-height:1.35;}
.fire-section-draft-actions{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;
  margin-top:12px;padding-top:10px;border-top:1.5px solid #8FA3B5;
}
.fire-section-draft-hint{margin:0;flex:1 1 12rem;min-width:0;}
.fire-form-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.fire-check-summary{background:#FDF8F8;border-color:#C99A9A;}
.fire-summary-photos .si-thumb{width:72px;height:72px;}
.fire-summary-row{margin-bottom:4px;font-size:12.5px;}
@media (max-width:640px){
  .fire-inspection-card{max-width:100%;}
  .fire-floor-pulse-text .fire-floor-item{display:inline;}
  .fire-table-head{display:none;}
  .fire-table-wrap{gap:12px;}
  .fire-table-row{
    grid-template-columns:1fr;
    grid-template-areas:
      "spot"
      "qty"
      "remarks"
      "photos";
    gap:8px;
    padding:10px;
    border:1.5px solid #6B7C8C;
    border-radius:8px;
    background:#FAFBFC;
  }
  .fire-row-spot{grid-area:spot;min-width:0;}
  .fire-row-spot-label{overflow-wrap:anywhere;word-break:break-word;}
  .fire-row-category{
    display:block;font-size:11px;font-weight:800;color:var(--ink-soft);
    text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;line-height:1.3;
  }
  .fire-row-qty{
    grid-area:qty;text-align:left;padding-top:0;font-size:12px;
    align-self:start;
  }
  .fire-row-qty::before{content:"Min equip: ";font-weight:600;font-size:10px;color:var(--ink-soft);}
  .fire-row-remarks{grid-area:remarks;min-width:0;}
  .fire-row-remarks .sched-input{width:100%;box-sizing:border-box;}
  .fire-row-photos{grid-area:photos;min-width:0;}
  .fire-row-photos .fire-existing-thumbs{margin-top:0;}
  .fire-row-photos .fire-existing-hint{margin:4px 0 8px;}
  .fire-row-photos .si-photo-actions{
    flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px;
  }
  .fire-row-photos .si-photo-actions .btn{
    flex:1 1 calc(50% - 4px);width:auto;text-align:center;
  }
  .fire-row-photos .si-photo-stamp-toggle{
    flex:1 1 100%;align-self:flex-start;justify-content:flex-start;margin:0;padding:2px 0;
  }
  .fire-section-pct{font-size:11px;}
}
.si-entry--highlight{outline:2px solid var(--cdc-orange);outline-offset:2px;}
.toilet-inspection-card{max-width:520px;}
.toilet-categories{margin-top:16px;display:flex;flex-direction:column;gap:12px;}
.toilet-cat-card{
  border:1px solid var(--line);border-radius:10px;background:#fff;
  padding:12px 14px;
}
.toilet-cat-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.toilet-cat-title-wrap{display:flex;align-items:baseline;gap:8px;flex:1;min-width:0;}
.toilet-cat-num{font-size:22px;font-weight:800;color:var(--ink-soft);line-height:1;}
.toilet-cat-title{font-size:15px;font-weight:700;line-height:1.3;}
.toilet-passfail{display:flex;gap:6px;flex-shrink:0;align-items:center;}
.toilet-pf-radio{position:absolute;opacity:0;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.toilet-pf-btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:72px;padding:8px 16px;border-radius:999px;border:1.5px solid var(--line);
  background:#fff;font-family:'Inter',sans-serif;font-size:13px;font-weight:700;
  color:var(--ink-soft);cursor:pointer;transition:background .15s,border-color .15s,color .15s;
  user-select:none;
}
.toilet-pf-radio-pass:checked + .toilet-pf-btn{
  border-color:var(--cdc-blue);color:var(--cdc-blue);background:#EEF5FC;
}
.toilet-pf-radio-fail:checked + .toilet-pf-btn.toilet-pf-btn--fail{
  border-color:var(--brick);background:var(--brick);color:#fff;
}
.toilet-fail-panel{display:none;margin-top:12px;padding-top:12px;border-top:1px solid #EEF1F4;}
.toilet-cat-card:has(.toilet-pf-radio-fail:checked) .toilet-fail-panel{display:block;}
.toilet-fail-label{
  display:block;font-size:10px;font-weight:700;letter-spacing:0.06em;
  text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;
}
.toilet-fail-panel .si-photo-widget{margin-top:4px;}
.toilet-draft-wrap .toilet-draft-log:not(:has(.toilet-draft-entry)){display:none;}
.toilet-draft-wrap .toilet-draft-entries:empty{display:none;}
.toilet-draft-wrap .toilet-draft-composer{align-items:flex-start;}
.toilet-draft-wrap .toilet-draft-composer textarea{flex:1;min-width:0;resize:vertical;}
.toilet-draft-entry-actions{margin-top:4px;}
.toilet-overall-note .si-log{margin-top:8px;}
.toilet-check-section{border-top:1px solid var(--line);padding-top:4px;}
.toilet-check-item{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;
  padding:8px 0;border-bottom:1px solid #EEF1F4;
}
.toilet-check-item-label{flex:1;min-width:0;font-size:13px;font-weight:600;}
.toilet-check-item-radios ul{list-style:none;margin:0;padding:0;display:flex;gap:10px;}
.toilet-check-item-radios li{display:inline;}
.toilet-check-summary{
  margin-top:8px;padding:10px 12px;border-radius:6px;
  background:#F7FAFC;border:1px solid #D8E2EA;font-size:12.5px;
  min-width:0;max-width:100%;overflow-x:hidden;
}
/* View More expand: flush with parent entry, pastel blue band for contrast */
.si-entry .toilet-check-summary,
.si-table-log-row .toilet-check-summary,
.si-entry .fire-check-summary,
.si-table-log-row .fire-check-summary{
  margin:8px 0 0;
  padding:10px 12px 8px;
  border:none;
  border-radius:0;
  background:var(--expand-band);
  overflow-x:visible;
}
.si-entry .si-log,
.si-table-log-row .si-log{
  margin:0;
  padding:8px 12px 10px;
  border-top:none;
  background:var(--expand-band);
}
/* Checklist + action log read as one continuous band */
.si-entry .toilet-check-summary + .si-log,
.si-table-log-row .toilet-check-summary + .si-log,
.si-entry .fire-check-summary + .si-log,
.si-table-log-row .fire-check-summary + .si-log{
  margin-top:0;
  padding-top:4px;
}
/* Table row already has the band — keep inners transparent */
.si-table-log-row .toilet-check-summary,
.si-table-log-row .fire-check-summary,
.si-table-log-row .si-log{
  background:transparent;
  padding-left:0;
  padding-right:0;
}
.si-entry .toilet-cat-log-panel,
.si-table-log-row .toilet-cat-log-panel{
  margin-top:4px;
  padding:4px 0 0;
  border:none;
  border-radius:0;
  background:transparent;
}
.toilet-check-summary-head{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  min-width:0;overflow-wrap:anywhere;
}
.toilet-check-summary-section{margin-top:8px;min-width:0;max-width:100%;}
.toilet-check-summary-section-head{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px;min-width:0;
}
.toilet-check-summary-section-title{font-weight:700;margin:0;flex:1;min-width:0;overflow-wrap:anywhere;}
.toilet-check-summary-section-head--flag{align-items:flex-start;}
.toilet-check-summary-section-title-wrap{flex:1;min-width:0;}
.toilet-section-flag-wrap{flex-shrink:0;min-width:9rem;}
.toilet-cat-log-details{display:block;width:100%;min-width:0;max-width:100%;}
.toilet-cat-log-summary{
  list-style:none;cursor:pointer;width:100%;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px;min-width:0;
}
.toilet-cat-log-summary::-webkit-details-marker{display:none;}
.toilet-cat-log-details > summary{list-style:none;}
.toilet-cat-log-details > summary::marker{content:"";}
.toilet-cat-log-toggle{
  list-style:none;white-space:nowrap;min-width:5.75rem;text-align:center;
  display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
  flex-shrink:0;pointer-events:none;
}
.toilet-cat-log-details:not([open]) .toilet-cat-log-open{display:none;}
.toilet-cat-log-details[open] .toilet-cat-log-closed{display:none;}
.toilet-cat-log-panel{
  margin-top:6px;padding:8px 10px;border-radius:6px;
  background:#F0F5FB;border:1px solid #D0DCE8;
  width:100%;max-width:100%;min-width:0;box-sizing:border-box;
  overflow-wrap:anywhere;
}
.toilet-cat-log-item{min-width:0;}
.toilet-cat-log-item + .toilet-cat-log-item{margin-top:8px;padding-top:8px;border-top:1px solid #D8E2EA;}
.toilet-check-comment{
  margin:4px 0 2px;font-size:calc(12px * var(--entry-font-scale, 1));color:var(--ink-soft);line-height:1.4;
  overflow-wrap:anywhere;
}
.toilet-check-summary-list{margin:0;padding-left:0;list-style:none;}
.toilet-check-summary-list li{padding:2px 0;}
.toilet-check-pass{color:var(--green);}
.toilet-check-fail{color:var(--brick);font-weight:600;overflow-wrap:anywhere;}
.toilet-inline-fullform{margin-left:auto;}
.toilet-inline-form{margin-top:8px;}
.toilet-inline-section-title{font-weight:700;margin:0 0 6px;min-width:0;overflow-wrap:anywhere;}
.toilet-inline-controls{
  display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin:4px 0 8px;
}
.toilet-inline-marks{
  display:flex;align-items:center;min-width:5.5rem;padding-bottom:6px;font-weight:700;
}
.toilet-inline-section[data-result="pass"] .toilet-inline-mark-fail{display:none;}
.toilet-inline-section[data-result="fail"] .toilet-inline-mark-pass{display:none;}
.toilet-inline-label{display:flex;flex-direction:column;gap:2px;min-width:7rem;}
.toilet-inline-comment{flex:1;min-width:12rem;}
.toilet-inline-fail-fields{
  display:none;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;flex:1;
}
.toilet-inline-section[data-result="fail"] .toilet-inline-fail-fields{display:flex;}
.toilet-inline-actions{margin-top:10px;}
.toilet-inline-actions .btn{min-width:8rem;}
.fire-check-summary,.fire-summary-section,.fire-summary-row{min-width:0;max-width:100%;overflow-wrap:anywhere;}
.fire-summary-photos{max-width:100%;}
.icon-btn.pending-flag{font-size:11px;padding:3px 7px;white-space:nowrap;}
.icon-btn.pending-flag.active{color:var(--cdc-orange);border-color:var(--cdc-orange);background:#FFF4EC;}
.icon-btn.pending-flag.inactive{color:var(--ink-soft);border-color:var(--line);background:#F4F6F8;}
.icon-btn.pending-flag.inactive:hover{color:var(--ink);border-color:#C5CDD6;}
.si-photo-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.si-photo-actions .btn.small{padding:6px 10px;font-size:12px;}
.si-photo-stamp-toggle{
  display:inline-flex;align-items:center;gap:5px;margin:0;padding:4px 2px;
  font-size:12px;font-weight:600;color:var(--ink-soft);cursor:pointer;user-select:none;
  white-space:nowrap;
}
.si-photo-stamp-toggle input{width:14px;height:14px;margin:0;accent-color:var(--cdc-blue);cursor:pointer;}
.si-log-add .si-photo-widget{margin:6px 0;width:100%;}
.si-log-add .si-photo-actions .btn{margin-bottom:0;}
.fire-row-photos .si-photo-stamp-toggle{font-size:11px;padding:2px 0;}
.si-preset-badge{
  display:inline-block;margin-bottom:10px;padding:4px 10px;border-radius:4px;
  background:#fff;border:1px solid #93BCE0;font-size:12px;font-weight:700;color:var(--cdc-blue);
}
.si-photo-add-lg{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:10px 16px;width:100%;max-width:280px;
  border:2px dashed var(--cdc-blue);border-radius:6px;background:#fff;
  font-size:14px;font-weight:600;color:var(--cdc-blue);cursor:pointer;
}
.si-photo-add-lg:hover{background:#EEF5FC;}
.si-optional-block summary{
  cursor:pointer;font-size:12px;font-weight:700;color:var(--ink-soft);
  padding:6px 0;list-style:none;
}
.si-optional-block summary::-webkit-details-marker{display:none;}

@media(max-width:700px){.si-form-grid{grid-template-columns:1fr 1fr;}.si-form-full{grid-column:1/-1;}}
@media(max-width:700px){
  /* Full-bleed page: cards use entire phone width */
  .page,.topbar-inner{max-width:100%;}
  .page{
    padding:10px 0 60px;
  }
  .breadcrumb,
  .page-head,
  .list-toolbar,
  .fire-floor-pulse,
  .coverage-hero,
  .coverage-intro,
  .home-nav,
  .fa-summary,
  .form-progress-pct,
  .form-progress-hint,
  .si-form-actions,
  .form-actions,
  .page > .help,
  .page > p.help{
    padding-left:12px;
    padding-right:12px;
    box-sizing:border-box;
  }
  .si-form-card,
  .fire-inspection-card,
  .wsh-inspection-card,
  .toilet-inspection-card,
  .defect-form-card,
  .petrol-form-card,
  .cleaning-report-card,
  .si-form-card--create,
  .fire-tpl-add-card,
  .fire-tpl-sections,
  .task-expand-panel,
  .home-section-card,
  .entry-card-list,
  .settings-mobile-list,
  .fa-room-grid,
  .cleaning-duty-list{
    width:100%;
    max-width:none;
    box-sizing:border-box;
  }
  .si-form-card,
  .fire-inspection-card,
  .wsh-inspection-card,
  .toilet-inspection-card,
  .defect-form-card,
  .petrol-form-card,
  .cleaning-report-card,
  .si-form-card--create{
    border-radius:0;
    border-left:none;
    border-right:none;
    padding-left:12px;
    padding-right:12px;
  }
  .fire-section-card,
  .wsh-inspection-card details.wsh-section,
  .wsh-entry-card,
  .cleaning-duty-card,
  .fa-room-section.fire-section-card,
  .si-entry,
  .home-section-card,
  .settings-mobile-card,
  .fa-item-card,
  .fa-room-card{
    width:100%;
    max-width:none;
    box-sizing:border-box;
  }
  .wsh-hirarc-list,
  .wsh-monitoring-list{
    padding-left:6px;
    padding-right:6px;
  }
  .si-table-wrap{
    margin-left:0;margin-right:0;padding:0 12px 6px;
    width:100%;box-sizing:border-box;
  }
  .empty-state{margin-left:12px;margin-right:12px;}
}
@media(max-width:600px){
  .page,.topbar-inner{max-width:100%;}
  .page{padding:12px 0 60px;}
  .page-head{align-items:stretch;}
  .export-dropdown{align-self:flex-start;}
  .export-dropdown-menu{left:0;right:auto;min-width:min(100%,260px);}
  .si-form-grid{grid-template-columns:1fr;}
  .si-form-full{grid-column:1;}
  .list-toolbar{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;}
  .list-toolbar-actions,
  .task-report-actions{margin-left:0;align-self:flex-start;}
  /* .si-controls has flex:1 1 20rem for desktop row width; in column direction that
     flex-basis becomes a forced 320px HEIGHT instead, creating a huge empty gap. */
  .si-controls{width:100%;flex:0 1 auto;align-content:flex-start;}
  .si-control-label{flex:1 1 calc(50% - 8px);}
  .si-control-label .sched-input,
  .si-control-label select,
  .si-control-label .si-category-dropdown-toggle{width:100%;min-width:0;box-sizing:border-box;}
  .si-controls .si-control-label .sched-input:not(textarea),
  .si-controls .si-control-label select,
  .si-controls .si-control-label .si-category-dropdown-toggle{border-radius:999px;}
  .si-controls > .btn{flex:1 1 calc(50% - 8px);text-align:center;}
  /* Date/Trade/Frequency already auto-submit; keep this fallback button small, not a lone full-width pill. */
  .task-date-form > .btn{flex:0 0 auto;align-self:flex-start;}
  .view-toggle{width:100%;}
  .view-toggle-btn{flex:1;justify-content:center;}
  .login-wrap{padding:36px 14px;}
  .system-title{font-size:11px;line-height:1.3;}
  .brand{font-size:14px;}
  .topbar-user-row .role-pill{font-size:10px;padding:3px 6px;}
  .navlink-signout{font-size:10px;padding:2px 6px;}
  .si-thumb{width:56px;height:56px;}
  .si-entry{padding:10px 12px;}
  .si-log{padding:10px;}
  .si-log-add > .btn.amber{width:100%;}
  .si-log-add .si-photo-actions .btn{flex:1 1 calc(50% - 4px);text-align:center;}
  .toilet-check-summary{padding:8px 10px;}
  .toilet-cat-log-panel{padding:8px;}
  .petrol-tanks-grid{grid-template-columns:1fr;}
  .petrol-export-links .petrol-filter-btn{flex:1 1 calc(50% - 4px);text-align:center;}
  .petrol-record-metrics{grid-template-columns:1fr;}
  .petrol-metric-value{font-size:22px;}
}

/* Settings lists — mobile-friendly cards */
.settings-mobile-list{display:flex;flex-direction:column;gap:10px;}
.settings-mobile-card{
  display:flex;flex-direction:column;gap:10px;
  padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;
}
.settings-mobile-card-main{display:flex;gap:10px;align-items:flex-start;min-width:0;}
.settings-mobile-sn{font-weight:800;color:var(--ink-soft);flex:none;min-width:1.5em;}
.settings-mobile-body{min-width:0;flex:1;}
.settings-mobile-kicker{font-size:11px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px;}
.settings-mobile-title{font-size:15px;font-weight:800;line-height:1.3;word-break:break-word;}
.settings-mobile-meta{font-size:12px;color:var(--ink-soft);margin-top:4px;}
.settings-mobile-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.si-position-form{display:inline-flex;align-items:center;gap:4px;flex-wrap:nowrap;}
.si-position-label{display:inline-flex;align-items:center;gap:2px;margin:0;}
.si-position-prefix{font-size:12px;font-weight:700;color:var(--ink-soft);}
.si-position-select{
  width:auto;min-width:3.25rem;max-width:4.5rem;padding:4px 6px;font-size:13px;font-weight:700;
  text-align:center;
}
.si-position-go{padding:4px 8px!important;font-size:11px!important;line-height:1.2;}
.si-position-solo{font-size:12px;font-weight:700;color:var(--ink-soft);padding:0 4px;}

/* Fire template editor (Settings) */
.fire-tpl-add-card{margin-bottom:14px;max-width:920px;}
.fire-tpl-add-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;}
.fire-tpl-sections{max-width:920px;}
.fire-tpl-card{margin:0;}
.fire-tpl-summary{
  list-style:none;cursor:pointer;
}
.fire-tpl-summary::-webkit-details-marker{display:none;}
.fire-tpl-card > summary{list-style:none;}
.fire-tpl-card > summary::marker{content:"";}
.fire-tpl-meta{margin-left:auto;white-space:nowrap;font-size:11px;}
.fire-tpl-body{padding-top:4px;}
.fire-tpl-section-fields{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;}
.fire-tpl-active{margin:0 0 4px;white-space:nowrap;}
.fire-tpl-reorder{margin-left:auto;}
.fire-tpl-level-head{cursor:default;}
.fire-tpl-table .fire-table-head{
  grid-template-columns:36px minmax(120px,1.3fr) 72px 96px 56px minmax(100px,0.85fr);
}
.fire-tpl-row{
  grid-template-columns:36px minmax(120px,1.3fr) 72px 96px 56px minmax(100px,0.85fr);
  align-items:center;
}
.fire-tpl-select-cell{display:flex;align-items:center;justify-content:center;}
.fire-tpl-select-label{margin:0;}
.fire-tpl-col-select{font-size:9px;}
.fire-tpl-spot{display:flex;align-items:center;gap:4px;min-width:0;}
.fire-tpl-spot .fire-loc-label-input{flex:1;min-width:0;}
.fire-tpl-row .fire-row-qty{
  display:flex;flex-direction:row;align-items:center;justify-content:center;gap:4px;
  padding-top:0;text-align:center;
}
.fire-tpl-row .fire-row-qty::before{content:none;}
.fire-tpl-row .fire-row-unit{
  display:flex;flex-direction:row;align-items:center;gap:4px;min-width:0;
}
.fire-tpl-row .fire-qty-label{
  font-size:10px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;
  margin:0;flex:none;
}
.fire-tpl-row .fire-item-count-input,
.fire-tpl-row input.fire-item-count-input.sched-input{
  width:52px;min-width:52px;max-width:52px;padding:6px 4px;text-align:center;
  font-weight:700;font-size:14px;
}
.fire-tpl-row .fire-count-unit-input,
.fire-tpl-row input.fire-count-unit-input.sched-input{
  width:100%;min-width:0;max-width:88px;padding:6px 4px;font-size:12px;
}
.fire-tpl-active-cell{
  display:flex;align-items:center;justify-content:center;padding-top:0;
}
.fire-tpl-active-cell .si-checkbox-label{margin:0;gap:4px;font-size:12px;}
.fire-tpl-row-actions{display:flex;flex-wrap:wrap;gap:4px;align-items:center;justify-content:flex-end;}
.fire-tpl-add-loc{padding:10px 12px;}
@media (max-width:640px){
  .fire-tpl-meta{width:100%;margin-left:0;margin-top:2px;}
  .fire-tpl-table .fire-table-head{display:none;}
  .fire-tpl-row{
    grid-template-columns:auto 1fr auto;
    grid-template-areas:
      "sel spot qty"
      "unit unit unit"
      "active active actions";
    gap:8px 10px;
  }
  .fire-tpl-select-cell{grid-area:sel;}
  .fire-tpl-spot{grid-area:spot;}
  .fire-tpl-row .fire-row-qty{grid-area:qty;justify-content:flex-end;}
  .fire-tpl-row .fire-row-unit{grid-area:unit;}
  .fire-tpl-row .fire-count-unit-input,
  .fire-tpl-row input.fire-count-unit-input.sched-input{max-width:none;flex:1;}
  .fire-tpl-active-cell{grid-area:active;justify-content:flex-start;}
  .fire-tpl-row-actions{grid-area:actions;justify-content:flex-end;}
  .fire-tpl-add-row .btn{width:100%;}
}

/* —— Coverage calendar (Overview) —— */
.coverage-hero{max-width:none;margin-bottom:10px;padding:10px 12px;}
.coverage-hero-top{
  display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;
}
.coverage-title{margin-bottom:0;}
.coverage-month-nav{display:flex;gap:5px;flex-wrap:wrap;}
.coverage-intro{margin:6px 0 8px;font-size:12.5px;color:#3A5F80;font-weight:500;max-width:52rem;line-height:1.35;}
.coverage-month-summary{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px;}
.coverage-summary-chip{
  background:#fff;border:1.5px solid #93BCE0;border-radius:6px;
  padding:6px 10px;min-width:140px;flex:1 1 140px;max-width:280px;
}
.coverage-summary-label{display:block;font-size:11px;font-weight:700;color:#005A9E;text-transform:uppercase;letter-spacing:0.03em;}
.coverage-summary-value{display:block;margin-top:1px;font-size:14px;font-weight:800;color:var(--ink);}
.coverage-summary-hint{display:block;margin-top:2px;font-size:11px;font-weight:600;color:#5A6B7D;line-height:1.3;}

/* Done tones — same red / orange / green as Fire fire-pct */
.coverage-tone-low{border-color:#C62828;}
.coverage-tone-low.coverage-badge,
.coverage-tone-low .coverage-summary-value{color:#C62828;}
.coverage-tone-mid{border-color:#E65100;}
.coverage-tone-mid.coverage-badge,
.coverage-tone-mid .coverage-summary-value{color:#E65100;}
.coverage-tone-high{border-color:#2E7D32;}
.coverage-tone-high.coverage-badge,
.coverage-tone-high .coverage-summary-value{color:#2E7D32;}
.coverage-summary-chip.coverage-tone-low{border-color:#C62828;background:#FFEBEE;}
.coverage-summary-chip.coverage-tone-mid{border-color:#E65100;background:#FFF3E0;}
.coverage-summary-chip.coverage-tone-high{border-color:#2E7D32;background:#E8F5E9;}
.coverage-day-cell.coverage-tone-low{border-color:#C62828;}
.coverage-day-cell.coverage-tone-mid{border-color:#E65100;}
.coverage-day-cell.coverage-tone-high{border-color:#2E7D32;}

.coverage-month-details,
.coverage-targets-details{margin-top:6px;}
.coverage-month-summary-toggle,
.coverage-targets-summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  font-size:12.5px;font-weight:700;color:#005A9E;user-select:none;
}
.coverage-month-summary-toggle::-webkit-details-marker,
.coverage-targets-summary::-webkit-details-marker{display:none;}
.coverage-targets-chevron::before{content:"▸";font-size:11px;}
.coverage-month-details[open] .coverage-targets-chevron::before,
.coverage-targets-details[open] .coverage-targets-chevron::before{content:"▾";}
.coverage-targets-preview{font-weight:600;color:#5A6B7D;font-size:12px;}
.coverage-targets{
  display:flex;flex-direction:column;align-items:stretch;gap:8px;
  padding-top:8px;
}
.coverage-targets-cards{display:flex;flex-wrap:wrap;gap:8px;}
.coverage-target-card{
  background:#fff;border:1.5px solid var(--cdc-blue);border-radius:6px;
  padding:8px 10px;min-width:160px;flex:1 1 200px;
}
.coverage-targets-actions{display:flex;justify-content:flex-start;}
.coverage-target-title{font-size:12px;font-weight:700;color:#005A9E;margin-bottom:4px;}
.coverage-target-field{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:600;color:var(--ink-soft);margin-bottom:6px;}
.coverage-target-field .sched-input{width:5rem;}
.coverage-mini-schedule{margin-top:2px;}
.coverage-mini-schedule-label{font-size:10.5px;font-weight:700;color:#5A6B7D;margin-bottom:4px;text-transform:uppercase;letter-spacing:0.03em;}
.coverage-mini-schedule-days{display:flex;flex-wrap:wrap;gap:4px;}
.coverage-day-chip{
  display:inline-flex;align-items:center;gap:3px;cursor:pointer;
  background:#F4F7FA;border:1px solid #B7C9D9;border-radius:4px;
  padding:2px 6px;font-size:11px;font-weight:700;color:#003F73;user-select:none;
}
.coverage-day-chip:has(input:checked){background:#E3F0FA;border-color:#5A9CCE;color:#005A9E;}
.coverage-day-chip input{margin:0;accent-color:#005A9E;}

.coverage-week-panel{
  background:#B7D4EF;
  border:2px solid #5A9CCE;
  border-radius:8px;
  padding:8px 8px 6px;
  margin-bottom:8px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.35);
}
.coverage-week-head{
  display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;
  margin-bottom:6px;
}
.coverage-week-title{
  font-family:'Archivo',sans-serif;font-size:13px;font-weight:800;
  text-transform:uppercase;letter-spacing:0.04em;color:#003F73;margin:0;
}
.coverage-week-badges{display:flex;flex-wrap:wrap;gap:5px;align-items:center;}

.coverage-badge{
  display:inline-flex;align-items:center;
  background:#fff;border:1.5px solid #7EB0D9;border-radius:4px;
  padding:2px 7px;font-size:11.5px;font-weight:700;font-family:'IBM Plex Mono',monospace;
  color:#003F73;line-height:1.3;white-space:nowrap;
}

.coverage-dow-head{
  display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;
  margin-bottom:4px;
}
.coverage-dow-head span{
  text-align:center;font-size:10px;font-weight:800;color:#003F73;
  text-transform:uppercase;letter-spacing:0.04em;
}

.coverage-day-grid{
  display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;
}
.coverage-day-cell{
  background:#fff;border:1.5px solid #B7C9D9;border-radius:5px;padding:5px 5px 4px;min-height:52px;
  display:flex;flex-direction:column;gap:3px;
}
.coverage-day-cell.is-empty{
  background:transparent;border-color:transparent;min-height:52px;padding:0;pointer-events:none;
}
.coverage-day-cell.is-weekend{
  background:#E8EAED;border-color:#C5C9CE;
}
.coverage-day-cell.has-work:not(.is-weekend){border-color:#7EB0D9;}
.coverage-day-cell.is-today{outline:2px solid var(--cdc-orange);outline-offset:0;}
.coverage-day-cell.is-future{opacity:0.65;}
.coverage-day-label{font-size:10.5px;font-weight:700;color:#5A6B7D;}
.coverage-day-cell.is-weekend .coverage-day-label{color:#6B7280;}

.coverage-day-bars{display:flex;flex-direction:column;gap:2px;margin-top:auto;}
.coverage-bar{
  display:block;width:100%;text-align:center;
  border-radius:3px;padding:1px 0;font-size:9.5px;font-weight:800;
  font-family:'IBM Plex Mono',monospace;letter-spacing:0.04em;line-height:1.15;
  color:#fff;
}
.coverage-bar--gc{background:#005A9E;}
.coverage-bar--ti{background:#3D6B2E;}

@media (max-width:560px){
  .coverage-hero{padding:8px 10px;}
  .coverage-day-grid,.coverage-dow-head{gap:3px;}
  .coverage-day-cell{min-height:42px;padding:4px 3px;}
  .coverage-day-cell.is-empty{min-height:42px;}
  .coverage-bar{font-size:9px;padding:1px 0;}
  .coverage-week-head{align-items:flex-start;}
  .coverage-month-nav .btn{padding:4px 8px;font-size:12px;}
  .coverage-summary-chip{max-width:none;}
  .coverage-dow-head span{font-size:9px;}
}

/* WSH Safety Inspection */
.wsh-inspection-card details.wsh-section{margin:12px 0;border:1.5px solid #7A93A8;border-radius:10px;background:#F7FAFD;overflow:hidden;}
.wsh-section-summary{cursor:pointer;padding:10px 12px;font-weight:700;color:#005A9E;list-style:none;background:#EAF3FB;display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.wsh-section-summary-label{min-width:0;width:100%;}
.wsh-section-summary-stats{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;margin-left:0;font-size:12px;font-weight:700;width:100%;}
.wsh-section-incomplete{color:#5A6B7A;font-weight:600;}
.wsh-section-summary::-webkit-details-marker{display:none;}
.wsh-section[open]>.wsh-section-summary{border-bottom:1.5px solid #7A93A8;}
.wsh-hirarc-list,.wsh-monitoring-list{display:flex;flex-direction:column;gap:10px;padding:10px 12px 12px;}
.wsh-entry-card{border:1.5px solid #8496A8;border-radius:8px;background:#fff;margin:0;overflow:hidden;}
.wsh-entry-card:not(.is-collapsed) .wsh-entry-head{border-bottom:1.5px solid #8496A8;}
.wsh-entry-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;padding:8px 10px;background:#F7FAFD;margin:0;}
.wsh-entry-toggle{flex:1 1 100%;display:flex;align-items:flex-start;gap:8px;border:none;background:transparent;cursor:pointer;font-weight:700;text-align:left;padding:0;font-family:inherit;color:#003F73;font-size:14px;min-width:0;}
.wsh-entry-title{min-width:0;flex:1;overflow-wrap:anywhere;line-height:1.35;}
.wsh-entry-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:1 1 100%;width:100%;padding-left:22px;box-sizing:border-box;}
.wsh-row-pct{margin-left:0;font-size:12px;font-weight:700;white-space:nowrap;flex:none;}
.wsh-exclude-export{display:inline-flex;align-items:center;gap:5px;margin-left:0;font-size:11px;font-weight:600;color:#5A6B7A;white-space:nowrap;cursor:pointer;flex:none;user-select:none;}
.wsh-exclude-export input{margin:0;accent-color:#0072CE;flex:none;}
.wsh-exclude-label-full{display:none;}
.wsh-exclude-label-short{display:inline;}
.wsh-monitoring-row--excluded{opacity:.72;}
.wsh-monitoring-row--excluded > .wsh-entry-head{background:#F3F5F7;}
.wsh-monitoring-list > .wsh-entry-card.wsh-monitoring-row.wsh-monitoring-row--excluded{
  border-color:#9AA8B5;
  border-style:dashed;
}
.wsh-entry-toggle:hover{color:#005A9E;}
.wsh-entry-preview{font-weight:400;color:#5A6B7A;}
.wsh-entry-body{padding:12px;}
.wsh-existing-thumbs{margin-bottom:6px;}
.wsh-existing-thumbs + .help{margin-top:0;margin-bottom:8px;}
.wsh-hirarc-row-meta{display:flex;flex-wrap:wrap;gap:10px 14px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed #C5D3DE;}
.wsh-rpn-strip{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;grid-column:1/-1;padding:8px 10px;background:#F4F8FC;border:1px solid #C5D9EC;border-radius:6px;}
.wsh-rpn-strip-label{width:100%;font-size:11px;font-weight:800;color:#005A9E;text-transform:uppercase;letter-spacing:.03em;}
.wsh-rpn-field{min-width:4.5rem;margin:0;}
.wsh-rpn-field label{font-size:11px;font-weight:700;color:#005A9E;}
.wsh-pair-row{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;grid-column:1/-1;}
@media(max-width:700px){.wsh-pair-row{grid-template-columns:1fr;}}
@media(min-width:701px){
  .wsh-section-summary{flex-direction:row;align-items:center;gap:8px;}
  .wsh-section-summary-label{flex:1;width:auto;}
  .wsh-section-summary-stats{margin-left:auto;width:auto;}
  .wsh-entry-head{flex-wrap:nowrap;align-items:center;}
  .wsh-entry-toggle{flex:1 1 auto;align-items:center;}
  .wsh-entry-meta{flex:none;width:auto;padding-left:0;margin-left:auto;justify-content:flex-end;}
  .wsh-exclude-label-full{display:inline;}
  .wsh-exclude-label-short{display:none;}
}
.wsh-hirarc-row,.wsh-monitoring-row{padding:0;background:transparent;}
/* One accent border for all monitoring subcategories; stronger when expanded. */
.wsh-monitoring-list > .wsh-entry-card.wsh-monitoring-row{
  border:2px solid #0072CE;
}
.wsh-monitoring-list > .wsh-entry-card.wsh-monitoring-row > .wsh-entry-head{
  background:#EEF5FC;
}
.wsh-monitoring-list > .wsh-entry-card.wsh-monitoring-row:not(.is-collapsed){
  border-width:2.5px;
  box-shadow:0 0 0 2px rgba(0,114,206,.2);
}
.wsh-entry-card.wsh-monitoring-row--incomplete{
  border-color:#EF9A9A !important;
  background:#FFEBEE !important;
  box-shadow:none !important;
}
.wsh-entry-card.wsh-monitoring-row--incomplete > .wsh-entry-head{background:#FFEBEE !important;}
.wsh-inline-check{display:inline-flex;align-items:center;gap:6px;font-size:12px;}
.wsh-rpn{display:inline-block;min-width:2.5em;font-weight:700;font-size:14px;}
.wsh-existing-photos{margin-bottom:6px;}
.wsh-photo-chip{font-size:11px;}
.wsh-photo-chip img{border:1px solid #ccc;}

/* Cleaning Duty→Level */
.cleaning-report-card{max-width:920px;}
.cleaning-overall{display:flex;justify-content:flex-end;margin-bottom:8px;}
.cleaning-duty-list{display:flex;flex-direction:column;gap:10px;margin-top:12px;}
.cleaning-duty-card{border:2px solid #0072CE;}
.cleaning-duty-card > .wsh-entry-head{background:#EEF5FC;}
.cleaning-duty-card:not(.is-collapsed){border-width:2.5px;box-shadow:0 0 0 2px rgba(0,114,206,.15);}
.cleaning-level-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:10px;
}
.cleaning-level-cell{
  border:1px solid #C5D3DE;
  border-radius:8px;
  padding:8px;
  background:#fff;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.cleaning-level-label{font-weight:800;font-size:13px;color:#003F73;}

/* First Aid check */
.fa-item-cards{display:flex;flex-direction:column;gap:10px;margin-top:10px;}
.fa-item-card{border:1.5px solid #8496A8;border-radius:8px;background:#fff;padding:10px 12px;}
.fa-item-card.fa-row-short{border-color:#EF9A9A;background:#FFEBEE;}
.fa-item-card.fa-row-expired{border-color:#E57373;background:#FFCDD2;}
.fa-item-card.fa-row-soon{border-color:#FFB74D;background:#FFF3E0;}
.fa-item-card-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap;}
.fa-line-row--excluded{opacity:.72;border-style:dashed;}
.fa-exclude-export{margin-left:auto;}
.fa-item-card-num{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:50%;background:var(--amber);color:#fff;font-size:12px;font-weight:800;flex:none;}
.fa-item-card-title{margin:0;font-size:14px;font-weight:800;color:#003F73;flex:1;}
.fa-item-card-title-input{flex:1;min-width:0;font-weight:700;}
.fa-item-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px 10px;}
.fa-item-field{display:flex;flex-direction:column;gap:3px;}
.fa-item-field--full{grid-column:1/-1;}
.fa-item-field-label{font-size:11px;font-weight:700;color:#005A9E;text-transform:uppercase;letter-spacing:.02em;}
.fa-item-field .sched-input,.fa-item-field .fa-min{font-size:13px;}
.fa-item-field .fa-qty{max-width:5rem;}
.fa-item-field .fa-remarks{min-height:3rem;}
.fa-qty-short{border-color:#C62828 !important;background:#FFEBEE;}
.fa-room-actions{margin:10px 0 4px;}
.fa-room-footer{margin-top:12px;padding-top:12px;border-top:1.5px dashed #8496A8;display:flex;flex-direction:column;gap:8px;}
.fa-existing-thumbs{margin:6px 0;}
.fa-existing-photo{font-size:11px;}
.fa-photo-remove{color:#555;}
.fa-table-wrap{overflow-x:auto;margin-top:10px;border:1.5px solid #93BCE0;border-radius:8px;background:#fff;}
.fa-balance-table{width:100%;border-collapse:collapse;font-size:12px;min-width:720px;}
.fa-balance-table th,.fa-balance-table td{border:1px solid #D5DEE8;padding:4px 5px;vertical-align:middle;}
.fa-balance-table th{background:#D6EAF8;color:#003F73;font-size:11px;white-space:nowrap;}
.fa-balance-table .sched-input{width:100%;min-width:3.5rem;font-size:12px;}
.fa-balance-table .fa-item-select{min-width:10rem;}
.fa-balance-table .fa-qty{width:4rem;min-width:3.5rem;text-align:center;}
.fa-row-short{background:#FFEBEE;}
.fa-row-expired{background:#FFCDD2;}
.fa-row-soon{background:#FFF3E0;}
.fa-qty-short{border-color:#C62828 !important;background:#FFEBEE;}
.fa-summary{margin-top:10px;padding:10px;background:#F4F8FC;border-radius:8px;border:1px solid #C5D9EC;}
.fa-summary-heading{font-size:13px;font-weight:800;color:#005A9E;margin:10px 0 6px;}
.fa-room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;}
.fa-room-card{background:#fff;border:1px solid #B7C9D9;border-radius:6px;padding:8px;}
.fa-room-card-title{font-weight:800;color:#003F73;font-size:12px;margin-bottom:4px;}
.fa-room-list{margin:0;padding-left:16px;font-size:11.5px;}
.fa-room-list .fa-short{color:#C62828;font-weight:700;}
.fa-room-list .fa-expired{color:#C62828;}
.fa-room-list .fa-soon{color:#E65100;}
.fa-buy-list{margin:0;padding-left:18px;font-size:12.5px;}
.fa-photos-block{margin-top:10px;padding:10px;background:#fff;border:1px solid #D5DEE8;border-radius:8px;}

/* Items done — cleaning checklist */
.task-checklist-head{align-items:flex-start;flex-wrap:wrap;gap:12px;}
.task-date-form{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-end;}
.task-freq-section{margin-bottom:18px;}
.task-items-table{
  min-width:56rem;
  width:max(100%,56rem);
}
.task-items-table .task-col-task{width:14rem;}
.task-items-table .task-col-ticks{width:26rem;}
.task-items-table .task-col-progress{width:4.5rem;white-space:nowrap;text-align:center;}
.task-items-table .task-col-more{width:6.5rem;}
.task-title-cell{font-weight:600;line-height:1.3;}
.task-row--overdue{background:#FFF5F5;}
.task-row--done{background:#F4FBF4;}
.task-status-tag--done{background:#E8F5E9;color:#2E7D32;}
.task-status-tag--overdue{background:#FFEBEE;color:#C62828;}
.task-status-tag--open{background:#ECEFF1;color:#546E7A;}
.task-tick-groups{display:flex;flex-direction:column;gap:6px;}
.task-tick-group{display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
.task-tick-group-label{
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;
  color:var(--ink-soft);min-width:4.5rem;
}
.task-tick-chips{display:flex;flex-wrap:wrap;gap:4px;align-items:center;}
.task-tick-form{margin:0;display:inline;}
.task-tick{
  display:inline-flex;align-items:center;gap:4px;cursor:pointer;
  border:1px solid #D5DEE8;border-radius:999px;padding:3px 8px 3px 6px;
  background:#fff;font-size:11px;line-height:1.2;user-select:none;
}
.task-tick input{width:14px;height:14px;margin:0;accent-color:var(--cdc-blue);cursor:pointer;}
.task-tick.is-done{border-color:#81C784;background:#F1F8F2;color:#2E7D32;}
.task-tick.is-overdue{border-color:#E57373;background:#FFF5F5;color:#C62828;}
.task-tick--matrix{
  display:flex;border:0;border-radius:0;padding:0;background:transparent;justify-content:center;
  width:100%;min-height:1.75rem;align-items:center;
}
.task-tick--matrix input{width:16px;height:16px;}
.task-timing-wrap{overflow-x:auto;max-width:100%;width:100%;}
.task-timing-matrix{
  border-collapse:collapse;width:100%;min-width:100%;
  font-size:11px;line-height:1.2;background:#fff;table-layout:fixed;
}
.task-timing-matrix th,
.task-timing-matrix td{
  border:1px solid #C5D0DC;padding:0;text-align:center;vertical-align:middle;
  white-space:nowrap;height:2rem;
}
.task-timing-matrix thead th{
  font-size:10px;font-weight:700;color:var(--ink);
  background:#EEF3F8;padding:6px 4px;
}
.task-timing-matrix tbody th{
  text-align:left;font-weight:700;background:#F4F7FA;padding:4px 8px;
  width:5.5rem;min-width:5.5rem;
}
.task-timing-matrix .task-timing-corner{background:#EEF3F8;width:5.5rem;}
.task-timing-matrix td{background:#fff;}
.task-timing-cell--done{background:#F1F8F2;}
.task-timing-cell--overdue{background:#FFF5F5;}
.task-timing-cell--open{background:#fff;}
.task-timing-empty{color:#B0BEC5;}
.task-timing-status{
  display:block;font-size:10px;font-weight:700;text-transform:uppercase;
  letter-spacing:.02em;padding:4px 2px;
}
.task-timing-status--done{color:#2E7D32;background:#F1F8F2;}
.task-timing-status--overdue{color:#C62828;background:#FFF5F5;}
.task-timing-status--open{color:#546E7A;background:#F7F9FB;}
.task-status-chip{
  display:inline-flex;align-items:center;gap:5px;
  border:1px solid #D5DEE8;border-radius:999px;padding:3px 8px;
  background:#fff;font-size:11px;line-height:1.2;
}
.task-status-chip-state{font-weight:700;font-size:10px;text-transform:uppercase;}
.task-status-chip--done{border-color:#81C784;background:#F1F8F2;color:#2E7D32;}
.task-status-chip--overdue{border-color:#E57373;background:#FFF5F5;color:#C62828;}
.task-status-chip--open{border-color:#CFD8DC;background:#F7F9FB;color:#546E7A;}
.task-report-comment{margin:4px 0 8px;font-size:13px;line-height:1.4;}
.task-level{
  border-top:1px solid #E6EDF3;background:#fff;
}
.task-level:first-child{border-top:0;}
.task-level-summary{
  display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;
  cursor:pointer;list-style:none;padding:6px 12px;font-weight:700;background:#F0F4F8;
  line-height:1.25;
}
.task-level-summary::-webkit-details-marker{display:none;}
.task-level-summary::before{
  content:"";width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;
  border-left:6px solid var(--ink-soft);margin-right:2px;transition:transform .15s ease;
}
.task-level[open] > .task-level-summary::before{transform:rotate(90deg);}
.task-level-title{flex:1 1 auto;min-width:6rem;font-size:12px;}
.task-level-body{border-top:1px solid #E6EDF3;}
.task-level-body .si-table{border:none;border-radius:0;}
.task-level--done > .task-level-summary{background:#F4FBF4;}
.task-level--overdue > .task-level-summary{background:#FFF5F5;}
.task-col-ticks{min-width:18rem;}
.task-bundle{
  margin:0 0 10px;border:1px solid #D5DEE8;border-radius:10px;background:#fff;overflow:hidden;
}
.task-bundle--done{border-color:#A5D6A7;}
.task-bundle--overdue{border-color:#E57373;}
.task-bundle-summary{
  display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;
  cursor:pointer;list-style:none;padding:4px 10px;font-weight:700;background:#F7FAFC;
  min-height:0;line-height:1.25;
}
.task-bundle-summary::-webkit-details-marker{display:none;}
.task-bundle-summary::before{
  content:"";width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;
  border-left:6px solid var(--cdc-blue);margin-right:2px;transition:transform .15s ease;
}
.task-bundle[open] > .task-bundle-summary::before{transform:rotate(90deg);}
.task-bundle-title{flex:1 1 auto;min-width:10rem;font-size:13px;}
.task-bundle-count{font-weight:400;}
.task-bundle-body{border-top:1px solid #E6EDF3;}
.task-bundle-body .si-table{border:none;border-radius:0;}
.task-report-toolbar{
  align-items:center;gap:8px 12px;margin-top:4px;margin-bottom:10px;
}
.task-report-toolbar .task-date-form{align-items:center;gap:6px 8px;}
.task-report-toolbar .sep{color:var(--ink-soft);margin:0 2px;}
.task-report-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-left:auto;}
.task-expand-panel{display:flex;flex-direction:column;gap:12px;max-width:640px;}
.task-expand-title{font-weight:700;font-size:13px;margin-bottom:2px;}
.task-expand-slot{
  border:1px solid #D5DEE8;border-radius:8px;padding:10px;background:#fff;
}
.task-expand-slot--overdue{border-color:#E57373;background:#FFF8F8;}
.task-expand-slot--done{border-color:#A5D6A7;background:#F7FBF7;}
.task-expand-slot-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px;}
.task-expand-done{display:inline-flex;align-items:center;gap:6px;font-weight:600;margin-bottom:8px;}
.task-slot-form .field{margin-bottom:8px;}
.task-slot-actions{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap;}
.task-existing-thumbs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;}
.task-existing-thumbs img{object-fit:cover;border-radius:4px;border:1px solid #D5DEE8;}

/* Items done — mobile card layout (replaces the wide Wash/Supplies/Check table below 640px) */
.task-cards-mobile{display:none;}
@media(max-width:640px){
  .task-table-desktop{display:none;}
  .task-cards-mobile{
    display:flex;flex-direction:column;gap:8px;padding:8px;
  }
  .task-mobile-card{
    border:1px solid #D5DEE8;border-radius:10px;background:#fff;padding:10px 12px;
  }
  .task-mobile-card--done{border-color:#A5D6A7;background:#F7FBF7;}
  .task-mobile-card--overdue{border-color:#E57373;background:#FFF8F8;}
  .task-mobile-card-summary{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    cursor:pointer;list-style:none;font-weight:700;font-size:13px;line-height:1.3;
  }
  .task-mobile-card-summary::-webkit-details-marker{display:none;}
  .task-mobile-card-summary::before{
    content:"";width:0;height:0;flex:none;
    border-top:4px solid transparent;border-bottom:4px solid transparent;
    border-left:6px solid var(--cdc-blue);margin-right:6px;transition:transform .15s ease;
  }
  .task-mobile-card[open] > .task-mobile-card-summary::before{transform:rotate(90deg);}
  .task-mobile-card-title{flex:1 1 auto;min-width:0;}
  .task-mobile-card-remarks{margin:4px 0 0;}
  .task-mobile-card > .task-tick-groups{margin-top:10px;}
  .task-mobile-card-more{margin-top:10px;}
  .task-mobile-card .task-expand-panel{margin-top:10px;padding-top:10px;border-top:1px dashed #D5DEE8;max-width:none;}
  /* Bigger tap targets for chip ticks on touch screens */
  .task-mobile-card .task-tick,
  .task-mobile-card .task-status-chip{
    padding:6px 12px 6px 8px;font-size:12.5px;
  }
  .task-mobile-card .task-tick input{width:18px;height:18px;}
}

/* Items done — vacuuming location log */
.task-vacuum-remarks{padding:6px 12px 0;font-size:12px;color:var(--ink-soft);}
.task-vacuum-table{min-width:48rem;width:max(100%,48rem);}
.task-vacuum-table .task-vacuum-col-location-h,
.task-vacuum-table .task-vacuum-col-location{width:11rem;}
.task-vacuum-table .task-vacuum-col-date-h,
.task-vacuum-table .task-vacuum-col-date{width:7.5rem;}
.task-vacuum-table .task-vacuum-col-time-h,
.task-vacuum-table .task-vacuum-col-time{width:6.5rem;white-space:nowrap;}
.task-vacuum-table .task-vacuum-col-photos-h,
.task-vacuum-table .task-vacuum-col-photos{min-width:10rem;}
.task-vacuum-table .task-vacuum-col-done-h,
.task-vacuum-table .task-vacuum-col-done{width:5rem;text-align:center;}
.task-vacuum-table .task-vacuum-col-fields-h{min-width:28rem;}
.task-vacuum-location{font-weight:600;line-height:1.3;}
.task-vacuum-form{margin:0;}
.task-vacuum-inline{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;
}
.task-vacuum-date,
.task-vacuum-time{
  width:auto;min-width:7rem;padding:4px 6px;font-size:12px;
}
.task-vacuum-photos-inline{
  display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;min-width:8rem;flex:1 1 10rem;
}
.task-vacuum-photos-inline .si-photo-widget{min-width:8rem;}
.task-vacuum-photos-inline .si-photo-actions{display:flex;flex-wrap:wrap;gap:4px;}
.task-vacuum-photos-inline .si-photo-btn-camera,
.task-vacuum-photos-inline .si-photo-btn-gallery{
  font-size:10px;padding:3px 6px;
}
.task-vacuum-photos-inline .si-photo-thumbs{
  grid-template-columns:repeat(auto-fill,minmax(48px,48px)) !important;
  gap:4px;margin-top:0;
}
.task-vacuum-photos-inline .si-photo-thumb-item{width:48px;}
.task-vacuum-photos-inline .si-photo-thumb-item img{width:48px;height:48px;object-fit:cover;}
.task-vacuum-existing-thumbs{
  display:flex;flex-wrap:wrap;gap:4px;margin:0;
}
.task-vacuum-existing-thumbs img{
  width:48px;height:48px;object-fit:cover;border-radius:4px;border:1px solid #D5DEE8;
}
.task-vacuum-done{
  display:inline-flex;align-items:center;gap:4px;font-weight:600;font-size:12px;white-space:nowrap;
}
.task-vacuum-done input{width:16px;height:16px;accent-color:var(--cdc-blue);}
.task-vacuum-add-row td{padding:8px 12px;background:#F7FAFC;}
.task-vacuum-add-form{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
}
.task-vacuum-add-input{min-width:14rem;max-width:20rem;}
.task-vacuum-mobile-card{
  border:1px solid #D5DEE8;border-radius:10px;background:#fff;padding:10px 12px;
}
.task-vacuum-mobile-card--done{border-color:#A5D6A7;background:#F7FBF7;}
.task-vacuum-mobile-card--overdue{border-color:#E57373;background:#FFF8F8;}
.task-vacuum-mobile-head{
  display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;
}
.task-vacuum-fields{
  display:flex;flex-wrap:wrap;gap:8px 12px;margin-bottom:8px;
}
.task-vacuum-field{display:flex;flex-direction:column;gap:2px;font-size:11px;font-weight:600;color:var(--ink-soft);}
.task-vacuum-field .sched-input{min-width:9rem;}
.task-vacuum-photos{margin-bottom:8px;}
.task-vacuum-photos .si-photo-thumbs{
  grid-template-columns:repeat(auto-fill,minmax(48px,48px)) !important;
}
.task-vacuum-actions{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
}
.task-vacuum-mobile-add{padding:0 8px 8px;}
.task-vacuum-report-dl{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px;
  margin:0 0 8px;font-size:12px;
}
.task-vacuum-report-dl dt{font-weight:600;color:var(--ink-soft);font-size:10px;text-transform:uppercase;}
.task-vacuum-report-dl dd{margin:0;}
