:root{
  --bg:#e7edf4;--panel:#fff;--ink:#09111f;--line:#8ea0b4;--dark:#101828;
  --blue:#174ea6;--blue-dark:#0b397d;--blue-soft:#d8e7ff;
  --green:#047857;--green-dark:#035b42;--green-soft:#d9f7e8;
  --yellow:#a15c00;--yellow-dark:#714000;--yellow-soft:#fff0c2;
  --red:#b42318;--red-soft:#ffe1df;--purple:#5b21b6;--purple-soft:#ece4ff;
}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:linear-gradient(180deg,#e7edf4,#d9e2ec);color:var(--ink)}
a{color:inherit;text-decoration:none}.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
aside{background:#101828;color:#fff;border-right:4px solid #2f80ed;position:sticky;top:0;height:100vh;overflow:auto}
.brand{padding:18px;border-bottom:1px solid #344054}.brand h1{margin:0}.brand p{color:#d0d5dd;font-size:13px}
nav{padding:12px;display:flex;flex-direction:column;gap:7px}nav a{border-radius:12px;padding:11px 12px;font-weight:800;color:#e5e7eb}nav a:hover{background:#1f2937}
.sidebar-note{margin:16px 12px;padding:12px;border:1px dashed #667085;border-radius:12px;color:#d0d5dd;font-size:12px;line-height:1.4}
.topbar{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-bottom:2px solid var(--line);padding:12px 18px;display:flex;justify-content:space-between;gap:14px}
.topbar h2{margin:0}.topbar span{color:#475467;font-size:13px}.top-actions,.actions,.filterbar,.toolbar{display:flex;flex-wrap:wrap;gap:8px}
.content{padding:18px;max-width:1580px;margin:0 auto}.panel{background:#fff;border:2px solid var(--line);border-radius:14px;box-shadow:0 10px 24px rgba(16,24,40,.16);padding:16px;margin-bottom:16px}
.panel.darkhead{padding:0;overflow:hidden}.panel-title{background:#182230;color:#fff;padding:13px 16px;font-weight:950;display:flex;justify-content:space-between}.panel-body{padding:16px}
.btn,button{display:inline-block;border:2px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;padding:10px 12px;font-weight:850;cursor:pointer}
.btn.primary,.primary{background:#111827;color:#fff;border-color:#111827}.btn.blue,.blue{background:var(--blue-soft);border-color:#6aa3ff;color:#083b83}.btn.green,.green{background:var(--green-soft);border-color:#52c894;color:#065f46}.btn.yellow,.yellow{background:var(--yellow-soft);border-color:#f2b84b;color:#7a4300}.btn.red,.red{background:var(--red-soft);border-color:#ff9b94;color:#8c1d13}.btn.purple,.purple{background:var(--purple-soft);border-color:#b9a0ff;color:#42158c}.mini{padding:6px 9px;border-radius:9px;font-size:12px}button:disabled{opacity:.55;cursor:not-allowed}
.note,.message{border:2px dashed var(--line);background:#fffdf7;border-radius:12px;padding:12px;color:#2d3748;line-height:1.45;font-size:14px}.messages{margin-bottom:12px}.message.success{background:#f0fff6}.message.error{background:#ffe1df}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.kpi{background:#fff;border:2px solid #8fa0b3;border-radius:14px;padding:14px}.kpi b{display:block;font-size:28px}.kpi span{color:#475467;font-weight:800;font-size:13px}
.search{display:flex;align-items:center;gap:8px;background:#fff;border:2px solid #7d8fa3;border-radius:12px;padding:10px 12px}.search input{border:0;outline:0;width:100%;font-size:14px}
.feed{display:flex;flex-direction:column;gap:12px}.split{display:grid;grid-template-columns:1fr 1.16fr;gap:16px}
.wo-card{display:grid;grid-template-columns:260px minmax(0,1fr) 315px;gap:12px;background:#fff;border:2px solid #8fa0b3;border-radius:14px;padding:12px;position:relative}.wo-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:10px;border-radius:12px 0 0 12px;background:#4b5563}.wo-card.available:before{background:var(--blue)}.wo-card.problem:before{background:#d97706}.wo-card.accepted:before,.wo-card.in_progress:before,.wo-card.returned:before{background:var(--green)}.wo-card.pending_review:before,.wo-card.review:before{background:var(--purple)}
.loc,.body{border-right:2px solid #d0d5dd;padding-right:10px}.title-row{display:flex;justify-content:space-between;gap:8px}.title-row h4{margin:0 0 6px}.loc-meta{font-size:12px;color:#475467}.small-label,.contact-label{display:block;color:#475467;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.wo-card p{margin:0 0 8px;color:#243247;font-size:14px;line-height:1.35}
.contact-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding-top:8px;border-top:2px dashed #d0d5dd}.contact{border:2px solid #a8b4c2;background:#f7f9fc;padding:6px 8px;border-radius:9px;font-size:13px;font-weight:850}.q{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#111827;color:#fff;font-size:12px}
.action-log{padding:8px;margin-top:8px;border-radius:10px;border:2px solid #a8b4c2;background:#f8fafc;font-size:13px}.action-log b{display:block;font-size:11px;text-transform:uppercase;color:#475467}
.status-seal{border-radius:12px;color:#fff;overflow:hidden;min-height:80px;display:flex;flex-direction:column;justify-content:space-between}.status-seal .status-top{padding:10px}.status-word{font-size:13px;font-weight:1000;text-transform:uppercase}.status-sub{display:block;font-size:10px;margin-top:4px}.status-foot{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;background:rgba(0,0,0,.18);font-size:10px;font-weight:850}.status-icon{display:grid;place-items:center;min-width:22px;height:22px;border-radius:50%;background:#fff;color:#111827}
.status-seal.available{background:linear-gradient(135deg,var(--blue),var(--blue-dark))}.status-seal.problem{background:linear-gradient(135deg,#d97706,var(--yellow-dark))}.status-seal.accepted,.status-seal.in_progress,.status-seal.returned{background:linear-gradient(135deg,var(--green),var(--green-dark))}.status-seal.pending_review,.status-seal.review{background:linear-gradient(135deg,var(--purple),#3c147d)}.status-seal.closed_done,.status-seal.closed_not_done,.status-seal.cancelled{background:linear-gradient(135deg,#475467,#263241)}
.kanban{display:grid;grid-template-columns:repeat(5,minmax(240px,1fr));gap:12px;overflow:auto}.column{min-width:240px;background:#f3f6fb;border:2px solid #8fa0b3;border-radius:14px;padding:10px}.colhead{background:#111827;color:#fff;border-radius:10px;padding:9px 10px;font-weight:950;margin-bottom:9px}.count{float:right;background:#fff;color:#111827;padding:2px 8px;border-radius:999px;font-size:12px}
.kcard{background:#fff;border:2px solid #9aa8b8;border-radius:12px;overflow:hidden;margin-bottom:9px}.kcard .status-seal{border-radius:0;min-height:0}.kcontent{padding:10px}.kcontent h4{margin:0 0 6px;font-size:15px}.kcontent p{font-size:13px;color:#344054}
.data-table{width:100%;border-collapse:separate;border-spacing:0;border:2px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.data-table th,.data-table td{border-bottom:1px solid #d0d5dd;border-right:1px solid #d0d5dd;padding:10px;text-align:left}.data-table th{background:#182230;color:#fff;font-size:12px;text-transform:uppercase}.data-table tr:last-child td{border-bottom:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{font-size:12px;font-weight:950;text-transform:uppercase;color:#475467}input,select,textarea{width:100%;border:2px solid #8fa0b3;border-radius:12px;padding:10px 12px;font:inherit;background:#fff}textarea{min-height:110px}.full{grid-column:1/-1}
.wizard-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:16px}.wstep{border:2px solid #8fa0b3;background:#fff;border-radius:12px;padding:10px;font-size:12px;font-weight:950;color:#475467}.wstep.active{background:#111827;color:#fff;border-color:#111827}.suggestion,.mini-work{border:2px solid #c5cfdb;background:#fff;border-radius:12px;padding:10px;margin-top:8px}.active-duplicate{border-color:#f2b84b;background:#fffaf0}.archive{background:#f8fafc}
.calendar-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.day{min-height:160px;border:2px solid var(--line);border-radius:14px;background:#fff;padding:10px}.event{font-size:12px;padding:7px;border-radius:10px;margin-bottom:6px;background:#f3f6ff;border:1px solid #c8d7ff}
@media(max-width:1100px){.app{grid-template-columns:1fr}aside{position:relative;height:auto}.split,.form-grid{grid-template-columns:1fr}.wo-card{display:flex;flex-direction:column}.action{order:-1}.loc,.body{border-right:0;border-bottom:2px solid #d0d5dd;padding-bottom:10px}.kpi-grid,.calendar-grid{grid-template-columns:1fr 1fr}.wizard-steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.topbar{flex-direction:column}.kpi-grid,.calendar-grid{grid-template-columns:1fr}}

details.mini-work summary{cursor:pointer}
.helptext{display:block;color:#667085;font-size:12px;margin-top:3px}
.errorlist{color:#b42318;font-weight:800}
.wizard-js-page{display:none}
.wizard-js-page.active{display:block}
.guarded-steps .wstep{cursor:default;text-align:center}
.suggestions{display:grid;gap:8px;margin-top:10px}
.suggestion{cursor:pointer}
.suggestion:hover{outline:3px solid rgba(47,128,237,.16)}
details.mini-work summary{cursor:pointer}
.helptext{display:block;color:#667085;font-size:12px;margin-top:3px}
.errorlist{color:#b42318;font-weight:800}

.sitebar{
  position:sticky;
  top:0;
  z-index:20;
  background:#fff;
  border-bottom:2px solid var(--line);
  padding:9px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.sitebar-left,.sitebar-user{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sitebar-muted{color:#667085;font-size:12px}
.user-badge{font-weight:950;color:#111827}
.role-badge{
  display:inline-flex;
  align-items:center;
  border:2px solid #8fa0b3;
  background:#f8fafc;
  border-radius:999px;
  padding:4px 9px;
  font-size:12px;
  font-weight:900;
  color:#344054;
}
.manager-action-btn{
  display:inline-block;
  border:2px solid #8fa0b3;
  background:#fff;
  color:#111827;
  border-radius:12px;
  padding:10px 12px;
  font-size:13px;
  font-weight:850;
  cursor:pointer;
}
.manager-action-btn.primary{background:#f5f8ff;border-color:#6aa3ff;color:#083b83}
.manager-action-btn.warn{background:#fff8ec;border-color:#f2b84b;color:#7a4300}
.manager-action-btn.ok{background:#f8fafc;border-color:#8fa0b3;color:#111827}
@media(max-width:720px){
  .sitebar{align-items:flex-start;flex-direction:column}
}

.login-body{
  min-height:100vh;
  display:grid;
  place-items:center;
  background:linear-gradient(180deg,#e7edf4,#d9e2ec);
}
.login-card{
  width:min(420px,92vw);
  background:#fff;
  border:2px solid var(--line);
  border-radius:18px;
  box-shadow:0 20px 48px rgba(16,24,40,.22);
  padding:22px;
}
.brand-login h1{margin:0;font-size:30px}
.brand-login p{color:#475467;line-height:1.4}
.login-form{display:grid;gap:10px;margin-top:14px}
.login-form button{width:100%;margin-top:8px}

.manager-work-actions{
  margin-top:12px;
  padding-top:10px;
  border-top:2px dashed #d0d5dd;
}
.work-description{
  background:#f8fafc;
  border:2px solid #d0d5dd;
  border-radius:12px;
  padding:10px;
}
.work-description p{margin:0}
a.contact{text-decoration:none;color:#111827}
.inline-check{
  display:flex;
  align-items:center;
  gap:8px;
  text-transform:none;
  letter-spacing:0;
  font-size:14px;
}
.inline-check input{width:auto}

.log-dialog{
  width:min(860px,96vw);
  border:2px solid #8fa0b3;
  border-radius:16px;
  padding:0;
  box-shadow:0 24px 48px rgba(16,24,40,.28);
}
.log-dialog::backdrop{background:rgba(15,23,42,.55)}
.dialog-head{background:#101828;color:#fff;font-weight:1000;padding:13px 16px}
.dialog-body{padding:16px}
.dialog-close{position:absolute;right:10px;top:8px;margin:0}
.log-feed{display:flex;flex-direction:column;gap:9px;margin-bottom:14px;max-height:420px;overflow:auto}
.log-entry{border:2px solid #cbd5e1;background:#f8fafc;border-radius:12px;padding:10px;font-size:13px;line-height:1.4}
.log-entry b{display:block;margin-bottom:4px;color:#182230}
.diff-mini{border-left:3px solid #8fa0b3;margin-top:6px;padding-left:8px;color:#344054}

.contact-button{
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.contact-dialog{
  width:min(520px,94vw);
  border:2px solid #8fa0b3;
  border-radius:16px;
  padding:0;
  box-shadow:0 22px 44px rgba(16,24,40,.26);
}
.contact-dialog::backdrop{background:rgba(15,23,42,.45)}
.compact-dialog{padding:14px}
.compact-form textarea{min-height:72px}
.data-table form{margin:0}

.content-updated-alert{
  display:inline-block;
  margin-top:3px;
  color:#b42318;
  font-weight:950;
  background:#ffe4e1;
  border:2px solid #ffb4ad;
  border-radius:9px;
  padding:3px 6px;
}
.return-alert{
  border:2px solid #f2b84b;
  background:#fff1cc;
  color:#7a4300;
  border-radius:12px;
  padding:8px;
  font-size:12px;
  line-height:1.35;
  margin-bottom:9px;
}

.deadline-box{
  border:2px solid #cbd5e1;
  background:#f8fafc;
  border-radius:12px;
  padding:8px;
  font-size:12px;
  line-height:1.35;
  margin-bottom:9px;
}
.deadline-box b{
  display:block;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:10px;
  color:#344054;
  margin-bottom:3px;
}
.deadline-box span{display:block;font-weight:950;color:#182230}
.deadline-box em{display:block;font-style:normal;color:#475467}
.deadline-box.soon{
  border-color:#f2b84b;
  background:#fff1cc;
}
.deadline-box.overdue{
  border-color:#ff9b94;
  background:#ffe4e1;
}
.deadline-box.overdue span,
.deadline-box.overdue em{
  color:#8c1d13;
}

.problem-alert{
  border:2px solid #f2b84b;
  background:#fff1cc;
  color:#7a4300;
  border-radius:12px;
  padding:8px;
  font-size:12px;
  line-height:1.35;
  margin-bottom:9px;
}
.problem-alert b{
  display:block;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:10px;
  margin-bottom:3px;
}
.kcard.problem{
  border-color:#f2b84b;
  background:#fffaf0;
}

/* v0.8-worker: calmer worker cabinet, because real workers have objects to visit, not dashboards to worship */
.worker-cabinet{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.worker-hero{
  display:grid;
  grid-template-columns:1fr minmax(360px, 560px);
  gap:16px;
  align-items:stretch;
  background:#fff;
  border:2px solid var(--line);
  border-radius:16px;
  box-shadow:0 10px 24px rgba(16,24,40,.14);
  padding:16px;
}
.worker-hero h3{
  margin:0 0 6px;
  font-size:24px;
}
.worker-hero p{
  margin:0;
  color:#475467;
  line-height:1.45;
}
.worker-quick-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}
.worker-quick-card{
  display:block;
  border:2px solid #8fa0b3;
  background:#f8fafc;
  border-radius:14px;
  padding:12px;
}
.worker-quick-card b{
  display:block;
  font-size:26px;
  line-height:1;
}
.worker-quick-card span{
  display:block;
  color:#475467;
  font-size:12px;
  font-weight:900;
  margin-top:5px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.worker-quick-card.ok{
  background:var(--green-soft);
  border-color:#52c894;
}
.worker-quick-card.warn{
  background:var(--yellow-soft);
  border-color:#f2b84b;
}
.worker-quick-card.purple{
  background:var(--purple-soft);
  border-color:#b9a0ff;
}
.worker-alert{
  border:2px solid #f2b84b;
  background:#fff1cc;
  color:#7a4300;
  border-radius:14px;
  padding:12px 14px;
  font-size:14px;
  line-height:1.4;
}
.worker-alert b{
  display:block;
  margin-bottom:3px;
}
.worker-section{
  background:#fff;
  border:2px solid var(--line);
  border-radius:16px;
  box-shadow:0 10px 24px rgba(16,24,40,.12);
  overflow:hidden;
}
.worker-section.primary-section{
  border-color:#6aa3ff;
}
.worker-section.problem-section{
  border-color:#f2b84b;
}
.worker-section.muted-section{
  opacity:.92;
}
.worker-section-head{
  display:grid;
  grid-template-columns:1fr minmax(260px,420px);
  gap:12px;
  align-items:center;
  background:#182230;
  color:#fff;
  padding:13px 16px;
}
.worker-section-head.compact{
  grid-template-columns:1fr;
  align-items:start;
}
.worker-section-head h3{
  margin:0 0 4px;
  font-size:18px;
}
.worker-section-head p{
  margin:0;
  color:#d0d5dd;
  font-size:13px;
  line-height:1.35;
}
.worker-search{
  display:flex;
  gap:8px;
  align-items:center;
}
.worker-search input{
  width:100%;
  border:2px solid #8fa0b3;
  border-radius:10px;
  padding:9px 10px;
  font:inherit;
}
.worker-feed{
  padding:14px;
}
.worker-two-cols{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.worker-section .compact-feed .wo-card{
  grid-template-columns:1fr;
}
.worker-section .compact-feed .wo-card .loc,
.worker-section .compact-feed .wo-card .body{
  border-right:0;
  border-bottom:2px solid #d0d5dd;
  padding:0 0 10px;
}
.worker-section .compact-feed .wo-card .action{
  padding-top:0;
}
.review-feed .wo-card{
  opacity:.82;
}

@media (max-width:1200px){
  .worker-hero{
    grid-template-columns:1fr;
  }
  .worker-two-cols{
    grid-template-columns:1fr;
  }
  .worker-section-head{
    grid-template-columns:1fr;
  }
}
@media (max-width:760px){
  .worker-quick-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .worker-search{
    flex-direction:column;
    align-items:stretch;
  }
  .worker-feed{
    padding:10px;
  }
}

/* v0.8.1-worker-columns: two-column worker cabinet */
.worker-mobile-switch{display:none;gap:8px;margin-bottom:12px}
.two-column-worker-board{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:16px;
  height:calc(100vh - 210px);
  min-height:560px;
}
.worker-board-column{
  min-width:0;
  display:flex;
  flex-direction:column;
  background:#fff;
  border:2px solid var(--line);
  border-radius:16px;
  box-shadow:0 10px 24px rgba(16,24,40,.14);
  overflow:hidden;
}
.worker-board-head{
  flex:0 0 auto;
  background:#182230;
  color:#fff;
  padding:13px 14px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.worker-board-head h3{margin:0;font-size:19px;line-height:1.15}
.worker-board-head h3 span{
  display:inline-grid;place-items:center;min-width:28px;height:28px;margin-left:5px;
  border-radius:999px;background:#fff;color:#111827;font-size:13px;
}
.worker-board-head p{margin:0;color:#d0d5dd;font-size:13px;line-height:1.35}
.worker-board-scroll{
  flex:1 1 auto;
  overflow:auto;
  padding:12px;
  display:flex;
  flex-direction:column;
  gap:12px;
  min-height:0;
}
.worker-board-scroll .wo-card{grid-template-columns:1fr}
.worker-board-scroll .wo-card .loc,
.worker-board-scroll .wo-card .body{
  border-right:0;
  border-bottom:2px solid #d0d5dd;
  padding:0 0 10px;
}
.worker-board-scroll .wo-card .action{padding-top:0}
.worker-board-scroll .status-seal{min-height:72px}
.worker-search{display:grid;grid-template-columns:1fr auto;gap:8px}
.worker-search input{width:100%;border:2px solid #8fa0b3;border-radius:10px;padding:9px 10px;font:inherit}
.worker-small-stats{display:flex;gap:8px;flex-wrap:wrap}
.worker-small-stats a{
  border:1px solid #8fa0b3;background:#f8fafc;color:#182230;
  border-radius:999px;padding:5px 9px;font-size:12px;font-weight:850;
}
.review-mini{
  border:1px dashed #98a2b3;border-radius:12px;padding:8px;background:rgba(255,255,255,.06);
}
.review-mini summary{cursor:pointer;font-weight:900}
.review-mini-list{
  max-height:320px;overflow:auto;margin-top:8px;display:flex;flex-direction:column;gap:8px;
}
.review-mini-list .wo-card{background:#fff;color:#09111f;grid-template-columns:1fr}
.review-mini-list .wo-card .loc,
.review-mini-list .wo-card .body{
  border-right:0;border-bottom:2px solid #d0d5dd;padding:0 0 10px;
}
@media (max-width:900px){
  .worker-mobile-switch{display:flex}
  .two-column-worker-board{display:block;height:calc(100vh - 230px);min-height:540px}
  .two-column-worker-board .worker-board-column{height:100%}
  .two-column-worker-board[data-mobile-tab="my"] .worker-all-column{display:none}
  .two-column-worker-board[data-mobile-tab="all"] .worker-my-column{display:none}
}

/* v0.8.2 desk: tool-first worker desk, not a scroll-powered pilgrimage */
.worker-dashboard{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.worker-dashboard-hero{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  background:#fff;
  border:2px solid var(--line);
  border-radius:14px;
  padding:16px;
  box-shadow:0 10px 24px rgba(16,24,40,.12);
}
.worker-dashboard-hero h3{margin:0 0 4px;font-size:24px}
.worker-dashboard-hero p{margin:0;color:#475467}
.worker-open-desk{font-size:16px;padding:13px 18px}
.worker-dashboard-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}
.worker-dash-card{
  background:#fff;
  border:2px solid var(--line);
  border-radius:14px;
  padding:14px;
  box-shadow:0 8px 18px rgba(16,24,40,.10);
}
.worker-dash-card b{display:block;font-size:30px;line-height:1}
.worker-dash-card span{
  display:block;
  margin-top:6px;
  color:#475467;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:12px;
}
.worker-dash-card.ok{background:var(--green-soft);border-color:#52c894}
.worker-dash-card.warn{background:var(--yellow-soft);border-color:#f2b84b}
.worker-dash-card.purple{background:var(--purple-soft);border-color:#b9a0ff}

.desk-page{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.desk-top-strip{
  position:sticky;
  top:61px;
  z-index:9;
  min-height:38px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  background:#182230;
  color:#fff;
  border:2px solid #8fa0b3;
  border-radius:12px;
  padding:6px 8px;
  box-shadow:0 8px 18px rgba(16,24,40,.16);
}
.desk-top-strip span{
  border-left:1px solid rgba(255,255,255,.25);
  padding-left:8px;
  font-size:13px;
}
.desk-mobile-switch{
  display:none;
  gap:8px;
}
.desk-columns{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px;
  height:calc(100vh - 125px);
  min-height:620px;
}
.desk-column{
  min-width:0;
  display:flex;
  flex-direction:column;
  border:2px solid var(--line);
  border-radius:14px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 10px 24px rgba(16,24,40,.12);
}
.desk-column-head{
  flex:0 0 auto;
  background:#fff;
  border-bottom:2px solid var(--line);
  padding:10px;
}
.desk-title-row{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}
.desk-title-row h3{
  margin:0 0 8px;
  font-size:23px;
  line-height:1.05;
}
.desk-search{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:6px;
  align-items:center;
}
.desk-search label{
  font-weight:850;
}
.desk-search input{
  width:100%;
  border:2px solid #8fa0b3;
  border-radius:6px;
  padding:7px 8px;
  font:inherit;
}
.desk-mode-pills{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  justify-content:flex-end;
}
.desk-mode-pills a{
  display:inline-block;
  border:1px solid #8fa0b3;
  background:#f8fafc;
  color:#182230;
  border-radius:999px;
  padding:4px 8px;
  font-size:12px;
  font-weight:850;
}
.desk-mode-pills a.active{
  background:#182230;
  color:#fff;
  border-color:#182230;
}
.desk-review{
  max-width:260px;
  border:1px dashed #98a2b3;
  border-radius:10px;
  padding:6px 8px;
  background:#f8fafc;
}
.desk-review summary{
  cursor:pointer;
  font-weight:900;
  font-size:13px;
}
.desk-review-list{
  max-height:280px;
  overflow:auto;
  margin-top:8px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.desk-scroll{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:8px;
}

/* Desk compact card: status on top, less air, because this is a tool, not a spa. */
.desk-page .wo-card{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:8px;
  border-radius:10px;
}
.desk-page .wo-card:before{
  width:6px;
}
.desk-page .wo-card .action{
  order:-1;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.desk-page .wo-card .loc,
.desk-page .wo-card .body{
  border-right:0;
  border-bottom:1px solid #d0d5dd;
  padding:0 0 6px 4px;
}
.desk-page .title-row h4{
  font-size:18px;
  margin:0 0 3px;
}
.desk-page .loc-meta,
.desk-page .wo-card p,
.desk-page .action-log{
  font-size:12px;
  line-height:1.25;
}
.desk-page .small-label,
.desk-page .contact-label{
  font-size:10px;
  margin-bottom:2px;
}
.desk-page .work-description{
  padding:6px;
  border-width:1px;
}
.desk-page .contact-row{
  margin-top:5px;
  padding-top:5px;
  gap:5px;
}
.desk-page .contact{
  padding:4px 6px;
  font-size:12px;
}
.desk-page .deadline-box,
.desk-page .action-log,
.desk-page .return-alert,
.desk-page .problem-alert{
  margin:0;
  padding:6px;
  border-width:1px;
}
.desk-page .status-seal{
  min-height:0;
  border-radius:8px;
}
.desk-page .status-seal .status-top{
  padding:7px 8px;
}
.desk-page .status-word{
  font-size:12px;
}
.desk-page .status-sub{
  margin-top:2px;
}
.desk-page .status-foot{
  padding:4px 8px;
}
.desk-page .actions{
  gap:5px;
}
.desk-page .mini{
  padding:4px 7px;
  font-size:11px;
}

@media (max-width:900px){
  .desk-mobile-switch{display:flex}
  .desk-columns{
    display:block;
    height:calc(100vh - 150px);
    min-height:560px;
  }
  .desk-column{height:100%}
  .desk-columns[data-mobile-tab="my"] .desk-right{display:none}
  .desk-columns[data-mobile-tab="right"] .desk-my{display:none}
  .desk-title-row{
    flex-direction:column;
  }
  .desk-review{
    max-width:100%;
  }
  .worker-dashboard-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

/* v0.8.3 desk cleanup: practical worker desk, less page chrome, more visible work */
body:has(.desk-page) main{
  height:100vh;
  overflow:hidden;
}
body:has(.desk-page) .sitebar,
body:has(.desk-page) .topbar{
  display:none;
}
body:has(.desk-page) .content{
  max-width:none;
  height:100vh;
  overflow:hidden;
  padding:6px;
}
body:has(.desk-page) .messages{
  margin:0 0 4px;
}

.desk-page{
  height:100%;
  display:flex;
  flex-direction:column;
  gap:6px;
  overflow:hidden;
}
.desk-top-strip{
  position:static;
  z-index:1;
  min-height:34px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  background:#182230;
  color:#fff;
  border:1px solid #8fa0b3;
  border-radius:8px;
  padding:4px 6px;
  box-shadow:none;
}
.desk-strip-title{
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.desk-top-strip span{
  border-left:1px solid rgba(255,255,255,.22);
  padding-left:7px;
  font-size:13px;
}
.desk-top-strip span:first-child{
  border-left:0;
  padding-left:0;
}
.desk-mobile-switch{
  flex:0 0 auto;
}
.desk-columns{
  flex:1 1 auto;
  height:auto;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
}
.desk-column{
  min-height:0;
  border-radius:10px;
}
.desk-column-head{
  padding:7px;
}
.desk-title-row{
  gap:6px;
  margin-bottom:5px;
}
.desk-title-row h3{
  margin:0;
  font-size:20px;
}
.desk-search{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto;
  gap:5px;
  align-items:center;
}
.desk-search label{
  font-size:13px;
}
.desk-search input{
  padding:5px 7px;
  border-radius:5px;
}
.desk-mode-pills{
  gap:4px;
}
.desk-mode-pills a{
  padding:3px 7px;
  font-size:11px;
}
.desk-review{
  padding:4px 6px;
}
.desk-scroll{
  padding:6px;
  gap:6px;
}

/* Desk card layout: status header first, action buttons last, no log/deadline blocks eating space. */
.desk-page .wo-card{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:6px 7px 6px 9px;
  border-radius:8px;
}
.desk-page .wo-card:before{
  width:4px;
}
.desk-page .wo-card .action{
  display:contents;
}
.desk-page .status-seal{
  order:-20;
  min-height:0;
  border-radius:6px;
}
.desk-page .status-seal .status-top{
  padding:5px 7px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:4px 8px;
  align-items:start;
}
.desk-page .status-word{
  font-size:11px;
}
.desk-page .status-sub{
  margin-top:0;
  font-size:10px;
  opacity:.95;
}
.status-deadline{
  grid-row:1 / span 2;
  grid-column:2;
  align-self:center;
  text-align:right;
  font-size:10px;
  font-weight:900;
  max-width:150px;
}
.desk-page .status-foot{
  display:none;
}
.desk-page .return-alert,
.desk-page .problem-alert{
  order:-10;
  margin:0;
  padding:5px 6px;
  border-width:1px;
  font-size:11px;
}
.desk-page .deadline-box,
.desk-page .action-log{
  display:none;
}
.desk-page .loc{
  order:1;
}
.desk-page .body{
  order:2;
}
.desk-page .actions{
  order:90;
  margin-top:2px;
  padding-top:5px;
  border-top:1px dashed #d0d5dd;
  gap:4px;
}
.desk-page .loc,
.desk-page .body{
  border-right:0;
  border-bottom:1px solid #d0d5dd;
  padding:0 0 5px 4px;
}
.desk-page .body{
  border-bottom:0;
}
.desk-page .title-row h4{
  font-size:17px;
  margin:0 0 2px;
  line-height:1.1;
}
.desk-page .loc-meta{
  font-size:11px;
  line-height:1.25;
}
.desk-page .small-label,
.desk-page .contact-label{
  font-size:9px;
  margin-bottom:1px;
  letter-spacing:.04em;
}
.desk-page .work-description{
  padding:5px;
  border-width:1px;
  border-radius:7px;
}
.desk-page .wo-card p{
  font-size:12px;
  line-height:1.22;
  margin:0;
}
.desk-page .contact-row{
  margin-top:4px;
  padding-top:4px;
  gap:4px;
}
.desk-page .contact{
  padding:3px 5px;
  font-size:11px;
  border-radius:6px;
}
.desk-page .mini{
  padding:3px 6px;
  font-size:11px;
  border-radius:6px;
}
.desk-page .manager-work-actions{
  display:none;
}

/* Mobile keeps the same idea: one panel at a time. */
@media (max-width:900px){
  body:has(.desk-page) .content{
    padding:5px;
  }
  .desk-mobile-switch{
    display:flex;
  }
  .desk-columns{
    display:block;
    height:auto;
    min-height:0;
  }
  .desk-column{
    height:calc(100vh - 92px);
  }
  .desk-columns[data-mobile-tab="my"] .desk-right{display:none}
  .desk-columns[data-mobile-tab="right"] .desk-my{display:none}
  .desk-title-row{
    flex-direction:column;
  }
  .desk-review{
    max-width:100%;
  }
}

body:has(.desk-page) .app{
  grid-template-columns:1fr;
}
body:has(.desk-page) aside{
  display:none;
}

/* v0.8.4: return sidebar on desks, keep the desk itself focused */
body:has(.desk-page) .app,
body:has(.manager-desk-page) .app{
  grid-template-columns:260px 1fr;
}
body:has(.desk-page) aside,
body:has(.manager-desk-page) aside{
  display:block;
}
body:has(.manager-desk-page) .sitebar,
body:has(.manager-desk-page) .topbar{
  display:none;
}
body:has(.manager-desk-page) main{
  min-height:100vh;
}
body:has(.manager-desk-page) .content{
  max-width:none;
  padding:8px;
}

/* Worker desk text a little larger and less cramped where it matters */
.desk-page .work-description p,
.desk-page .wo-card p{
  font-size:14px;
  line-height:1.28;
}
.desk-page .loc-meta{
  font-size:12px;
}

/* v0.8.4 manager desk */
.manager-desk-page{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.manager-strip{
  position:static;
}
.manager-desk-controls{
  background:#fff;
  border:2px solid var(--line);
  border-radius:10px;
  padding:7px;
}
.manager-search{
  max-width:760px;
}
.manager-desk-board{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:8px;
}
.manager-desk-column,
.manager-user-column{
  min-width:0;
  display:flex;
  flex-direction:column;
  height:75vh;
  min-height:460px;
  background:#fff;
  border:2px solid var(--line);
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 8px 18px rgba(16,24,40,.10);
}
.manager-desk-column.problem{border-color:#f2b84b}
.manager-desk-column.review{border-color:#b9a0ff}
.manager-desk-column.busy{border-color:#52c894}
.manager-desk-head{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  background:#182230;
  color:#fff;
  padding:8px 10px;
  font-weight:950;
}
.manager-desk-head span{
  display:inline-grid;
  place-items:center;
  min-width:24px;
  height:24px;
  border-radius:999px;
  background:#fff;
  color:#182230;
  font-size:12px;
}
.manager-desk-scroll{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:6px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.manager-desk-page .wo-card{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:6px 7px 6px 9px;
  border-radius:8px;
}
.manager-desk-page .wo-card:before{width:4px}
.manager-desk-page .wo-card .action{display:contents}
.manager-desk-page .status-seal{
  order:-20;
  min-height:0;
  border-radius:6px;
}
.manager-desk-page .status-seal .status-top{
  padding:5px 7px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:4px 8px;
}
.manager-desk-page .status-word{font-size:11px}
.manager-desk-page .status-sub{margin-top:0;font-size:10px}
.manager-desk-page .status-foot{display:none}
.manager-desk-page .status-deadline{
  grid-row:1 / span 2;
  grid-column:2;
  align-self:center;
  text-align:right;
  font-size:10px;
  font-weight:900;
  max-width:130px;
}
.manager-desk-page .deadline-box,
.manager-desk-page .action-log{
  display:none;
}
.manager-desk-page .return-alert,
.manager-desk-page .problem-alert{
  order:-10;
  margin:0;
  padding:5px 6px;
  border-width:1px;
  font-size:11px;
}
.manager-desk-page .loc,
.manager-desk-page .body{
  border-right:0;
  border-bottom:1px solid #d0d5dd;
  padding:0 0 5px 4px;
}
.manager-desk-page .body{border-bottom:0}
.manager-desk-page .title-row h4{
  font-size:16px;
  line-height:1.1;
  margin:0 0 2px;
}
.manager-desk-page .loc-meta,
.manager-desk-page .wo-card p{
  font-size:12px;
  line-height:1.22;
}
.manager-desk-page .work-description{
  padding:5px;
  border-width:1px;
}
.manager-desk-page .actions{
  order:90;
  margin-top:2px;
  padding-top:5px;
  border-top:1px dashed #d0d5dd;
  gap:4px;
}
.manager-desk-page .mini{
  padding:3px 6px;
  font-size:11px;
  border-radius:6px;
}
.manager-desk-page .manager-work-actions{
  display:none;
}
.manager-user-board{
  margin-top:10px;
}
.manager-user-board-title{
  font-weight:950;
  margin:0 0 8px;
}
.manager-user-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:8px;
}
@media (max-width:1280px){
  .manager-desk-board,
  .manager-user-grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}
@media (max-width:760px){
  .manager-desk-board,
  .manager-user-grid{
    grid-template-columns:1fr;
  }
  .manager-desk-column,
  .manager-user-column{
    height:70vh;
  }
}

/* v0.8.5 manager cabinet/dashboard and manager desk modes */
.manager-dashboard-clean{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.manager-dashboard-hero{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  background:#fff;
  border:2px solid var(--line);
  border-radius:14px;
  padding:16px;
  box-shadow:0 10px 24px rgba(16,24,40,.12);
}
.manager-dashboard-hero h3{
  margin:0 0 4px;
  font-size:24px;
}
.manager-dashboard-hero p{
  margin:0;
  color:#475467;
}
.manager-dashboard-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.manager-widget-grid{
  display:grid;
  grid-template-columns:repeat(6, minmax(0,1fr));
  gap:10px;
}
.manager-widget{
  background:#fff;
  border:2px solid var(--line);
  border-radius:14px;
  padding:13px;
  box-shadow:0 8px 18px rgba(16,24,40,.10);
}
.manager-widget b{
  display:block;
  font-size:28px;
  line-height:1;
}
.manager-widget span{
  display:block;
  margin-top:6px;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.manager-widget em{
  display:block;
  margin-top:4px;
  color:#667085;
  font-style:normal;
  font-size:12px;
}
.manager-widget.ok{background:var(--green-soft);border-color:#52c894}
.manager-widget.warn{background:var(--yellow-soft);border-color:#f2b84b}
.manager-widget.red{background:var(--red-soft);border-color:#ff9b94}
.manager-widget.purple{background:var(--purple-soft);border-color:#b9a0ff}

.manager-desk-modes{
  gap:8px;
}
.manager-mode-pills,
.manager-filter-pills{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.manager-mode-pills a,
.manager-filter-pills a{
  display:inline-block;
  border:1px solid #8fa0b3;
  background:#f8fafc;
  color:#182230;
  border-radius:999px;
  padding:5px 9px;
  font-size:12px;
  font-weight:900;
}
.manager-mode-pills a.active,
.manager-filter-pills a.active{
  background:#182230;
  color:#fff;
  border-color:#182230;
}
.manager-desk-controls{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
}
.manager-search{
  min-width:min(620px, 100%);
}
.manager-desk-gridline{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(250px, 25%);
  gap:8px;
  overflow-x:auto;
  padding-bottom:4px;
}
.manager-desk-gridline .manager-desk-column{
  height:75vh;
  min-height:460px;
}
.manager-common-column{
  border-color:#6aa3ff;
}
.manager-desk-head div{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.manager-desk-head strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.manager-desk-head small{
  color:#d0d5dd;
  font-size:11px;
  font-weight:750;
}
.manager-filter-pills{
  flex:0 0 auto;
  padding:6px;
  border-bottom:1px solid #d0d5dd;
  background:#f8fafc;
}
.worker-head small{
  color:#f2f4f7;
}

@media (max-width:1280px){
  .manager-widget-grid{
    grid-template-columns:repeat(3, minmax(0,1fr));
  }
  .manager-desk-gridline{
    grid-auto-columns:minmax(260px, 33%);
  }
}
@media (max-width:760px){
  .manager-dashboard-hero,
  .manager-desk-controls{
    flex-direction:column;
    align-items:stretch;
  }
  .manager-widget-grid{
    grid-template-columns:1fr 1fr;
  }
  .manager-desk-gridline{
    grid-auto-columns:minmax(270px, 88%);
  }
}

/* v0.8.6 manager desk layout correction */
.manager-layout-pills{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.manager-layout-pills a{
  display:inline-block;
  border:1px solid #8fa0b3;
  background:#f8fafc;
  color:#182230;
  border-radius:999px;
  padding:5px 9px;
  font-size:12px;
  font-weight:900;
}
.manager-layout-pills a.active{
  background:#174ea6;
  color:#fff;
  border-color:#174ea6;
}
.manager-classic-board{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:8px;
}
.manager-classic-board .manager-desk-column,
.manager-user-column{
  height:75vh;
  min-height:460px;
}
.manager-horizontal-gridline{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(300px, 30%);
  gap:8px;
  overflow-x:auto;
  padding-bottom:4px;
}
.manager-horizontal-gridline .manager-desk-column{
  height:75vh;
  min-height:460px;
}
.manager-review-only{
  display:block;
}
.manager-review-wide{
  height:calc(100vh - 145px);
  min-height:560px;
  max-width:1120px;
  margin:0 auto;
}
.manager-review-wide .manager-desk-scroll{
  padding:8px;
}
.manager-review-wide .wo-card{
  display:grid;
  grid-template-columns:260px 1fr 245px;
}
.manager-review-wide .wo-card .action{
  display:flex;
  flex-direction:column;
}
.manager-review-wide .deadline-box,
.manager-review-wide .action-log{
  display:block;
}
.manager-review-wide .status-foot{
  display:flex;
}
@media (max-width:1280px){
  .manager-classic-board{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
  .manager-horizontal-gridline{
    grid-auto-columns:minmax(320px, 40%);
  }
}
@media (max-width:760px){
  .manager-classic-board{
    grid-template-columns:1fr;
  }
  .manager-horizontal-gridline{
    grid-auto-columns:minmax(280px, 88%);
  }
  .manager-review-wide{
    height:70vh;
  }
}

/* v0.8.7 manager classic: one common column + user columns, no fake three-column split */
.manager-classic-gridline{
  display:grid;
  grid-template-columns:repeat(4, minmax(250px,1fr));
  gap:8px;
}
.manager-classic-gridline .manager-desk-column{
  height:75vh;
  min-height:460px;
}
.manager-common-search{
  flex:0 0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:5px;
  padding:6px;
  border-bottom:1px solid #d0d5dd;
  background:#fff;
}
.manager-common-search input{
  width:100%;
  border:2px solid #8fa0b3;
  border-radius:6px;
  padding:5px 7px;
  font:inherit;
}
.manager-common-column{
  border-color:#6aa3ff;
}
@media (max-width:1280px){
  .manager-classic-gridline{
    grid-template-columns:repeat(2, minmax(260px,1fr));
  }
}
@media (max-width:760px){
  .manager-classic-gridline{
    grid-template-columns:1fr;
  }
}

/* v0.8.8: compact manager filters/searches and per-user busy filter */
.manager-desk-controls{
  padding:6px;
}
.manager-mode-pills,
.manager-layout-pills,
.manager-filter-pills{
  align-items:center;
  gap:4px;
}
.manager-mode-pills a,
.manager-layout-pills a,
.manager-filter-pills a{
  min-height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:4px 8px;
  line-height:1;
}
.manager-search{
  align-items:center;
}
.manager-search input,
.manager-common-search input{
  min-height:30px;
  padding:4px 7px;
}
.manager-common-search{
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:4px;
  padding:5px;
}
.manager-user-filter-strip{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:4px;
  padding:5px;
  border-bottom:1px solid #d0d5dd;
  background:#fffdf7;
}
.manager-user-filter-strip > span{
  color:#475467;
  font-size:11px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-right:2px;
}
.user-filter-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:26px;
  border:1px solid #8fa0b3;
  border-radius:999px;
  background:#f8fafc;
  color:#182230;
  padding:3px 7px;
  font-size:11px;
  font-weight:850;
  text-transform:none;
  letter-spacing:0;
  cursor:pointer;
}
.user-filter-chip input{
  width:auto;
  margin:0;
}
.user-filter-chip.active{
  background:#d9f7e8;
  border-color:#52c894;
  color:#065f46;
}

/* v0.8.8 action popups and compact filters */
.action-dialog{
  width:min(560px, 94vw);
  border:2px solid #8fa0b3;
  border-radius:14px;
  padding:0;
  box-shadow:0 22px 44px rgba(16,24,40,.26);
}
.action-dialog::backdrop{
  background:rgba(15,23,42,.45);
}
.action-dialog .dialog-body{
  padding:12px;
}
.action-dialog textarea{
  min-height:76px;
}
.action-dialog .form-grid{
  gap:9px;
}
.modal-user-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:6px;
  max-height:180px;
  overflow:auto;
  border:1px solid #d0d5dd;
  border-radius:10px;
  padding:8px;
  background:#f8fafc;
}
.modal-user-grid label{
  display:flex;
  align-items:center;
  gap:6px;
  text-transform:none;
  letter-spacing:0;
  font-size:12px;
  color:#182230;
}
.modal-user-grid input{
  width:auto;
}
.manager-desk-page .btn,
.manager-desk-page button,
.work-list-page .btn,
.work-list-page button{
  align-items:center;
  vertical-align:middle;
}

/* v0.8.8: compact global filter row too, because buttons are not church towers */
.filterbar{
  align-items:center;
}
.filterbar .btn,
.toolbar .btn,
.compact-search .btn{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  line-height:1;
}
.toolbar{
  align-items:center;
}
.compact-search{
  min-height:38px;
  padding:6px 8px;
  align-items:center;
}
.compact-search input{
  min-height:30px;
}

/* v0.8.9: user filter moved to global list, scroll memory for desks */
.list-user-filter-strip{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:4px;
  margin-top:8px;
  padding:6px;
  border:1px solid #d0d5dd;
  border-radius:10px;
  background:#fffdf7;
}
.list-user-filter-strip > span{
  color:#475467;
  font-size:11px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-right:2px;
}

/* v0.8.10: AJAX popup form errors */
.ajax-form-error{
  border:2px solid #ff9b94;
  background:#ffe4e1;
  color:#8c1d13;
  border-radius:10px;
  padding:8px 10px;
  font-size:13px;
  font-weight:850;
  line-height:1.3;
  margin-bottom:8px;
}

/* v0.8.11: work order attachments + list sorting */
.sort-select{
  border:1px solid #8fa0b3;
  border-radius:8px;
  padding:5px 8px;
  min-height:30px;
  font:inherit;
  background:#fff;
}

.file-btn{
  background:#eef4ff;
  border-color:#93b7ff;
  color:#174ea6;
}

.files-dialog{
  width:min(760px, 96vw);
  border:2px solid #8fa0b3;
  border-radius:14px;
  padding:0;
  box-shadow:0 22px 44px rgba(16,24,40,.26);
}
.files-dialog::backdrop,
.image-dialog::backdrop{
  background:rgba(15,23,42,.45);
}
.attachments-box{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:12px;
}
.attachment-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:start;
  border:1px solid #d0d5dd;
  border-radius:10px;
  padding:8px;
  background:#f8fafc;
}
.attachment-title b{
  display:block;
  font-size:14px;
}
.attachment-title span{
  display:block;
  color:#667085;
  font-size:12px;
  margin-top:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.attachment-actions{
  display:flex;
  justify-content:flex-end;
  gap:5px;
}
.attachment-edit-form{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:6px;
}
.attachment-edit-form input{
  width:100%;
  border:1px solid #8fa0b3;
  border-radius:8px;
  padding:6px 8px;
}
.attachment-delete-form{
  grid-column:1 / -1;
  display:flex;
  justify-content:flex-end;
}
.attachment-upload-form{
  border-top:2px dashed #d0d5dd;
  padding-top:10px;
}
.image-dialog{
  width:min(980px, 96vw);
  border:2px solid #8fa0b3;
  border-radius:14px;
  padding:0;
  box-shadow:0 22px 44px rgba(16,24,40,.30);
}
.image-preview-wrap{
  padding:12px;
  background:#0f172a;
}
.image-preview-wrap img{
  display:block;
  max-width:100%;
  max-height:78vh;
  margin:0 auto;
  border-radius:8px;
  background:#fff;
}
.desk-page .files-dialog,
.manager-desk-page .files-dialog{
  color:#09111f;
}
.desk-page .file-btn,
.manager-desk-page .file-btn{
  padding:3px 6px;
}

/* v0.8.12: sort no longer squats inside search, files move into work body */
.sortbar{
  display:flex;
  align-items:center;
  gap:8px;
  background:#f8fafc;
  border:1px solid #d0d5dd;
  border-radius:10px;
  padding:6px 8px;
  min-height:38px;
}
.sortbar b{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#475467;
}
.sortbar .sort-select{
  width:auto;
  min-width:130px;
}
.compact-search{
  flex:1 1 420px;
  min-width:320px;
}
.compact-search input{
  min-width:180px;
}
.work-files{
  background:#f8fbff;
}
.file-contact{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.empty-files{
  color:#667085;
  background:#fff;
}
.wizard-js-page input[type="file"],
.attachment-upload-form input[type="file"]{
  border:1px solid #8fa0b3;
  border-radius:8px;
  padding:8px;
  background:#fff;
}
@media (max-width:760px){
  .compact-search{
    min-width:100%;
  }
  .sortbar{
    width:100%;
  }
}

/* v0.8.13: language selector, because apparently software should speak human languages */
.language-mini-form{
  display:inline-flex;
  align-items:center;
  margin:0;
}
.language-mini-form select{
  border:1px solid #8fa0b3;
  border-radius:8px;
  padding:5px 7px;
  font-weight:850;
  background:#fff;
  color:#09111f;
}
.login-language-form{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:0 0 14px;
}
.language-choice-row{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}


/* v0.8.16: edit task popup + file cleanup in edit, because file piles are apparently a lifestyle */
.edit-dialog{
  width:min(880px, 96vw);
}
.edit-dialog .dialog-body{
  max-height:82vh;
  overflow:auto;
}
.edit-dialog textarea[name="description"]{
  min-height:190px;
}
.edit-files-box{
  margin-top:14px;
  border-top:2px solid #d0d5dd;
  padding-top:12px;
}
.edit-files-box h4{
  margin:0 0 10px;
  font-size:14px;
  color:#101828;
}
.edit-files-box .attachments-box{
  margin-bottom:12px;
}

/* v0.8.17: settings cleanup, user dropdown, slimmer header/search. Tiny mercy before production. */
.topbar{
  padding:8px 16px;
  align-items:center;
}
.top-actions{
  align-items:center;
  gap:6px;
}
.top-actions .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:6px 10px;
  border-radius:10px;
  line-height:1;
  font-size:13px;
}
.search{
  min-height:36px;
  padding:6px 9px;
  border-radius:10px;
}
.search input{
  min-height:24px;
  font-size:13px;
}
.toolbar .search{
  flex:1 1 320px;
}
.sitebar-user{
  position:relative;
}
.user-menu{
  position:relative;
}
.user-menu summary{
  list-style:none;
  display:flex;
  align-items:center;
  gap:7px;
  cursor:pointer;
  border:2px solid #8fa0b3;
  border-radius:999px;
  background:#fff;
  padding:4px 6px 4px 10px;
}
.user-menu summary::-webkit-details-marker{display:none}
.menu-caret{font-size:11px;color:#667085;font-weight:900}
.user-dropdown{
  position:absolute;
  right:0;
  top:calc(100% + 8px);
  z-index:90;
  min-width:230px;
  background:#fff;
  border:2px solid #8fa0b3;
  border-radius:14px;
  box-shadow:0 18px 42px rgba(16,24,40,.24);
  padding:8px;
  display:grid;
  gap:5px;
}
.user-dropdown a,
.dropdown-language-form{
  display:block;
  border-radius:10px;
  padding:8px 9px;
  color:#101828;
  font-weight:850;
}
.user-dropdown a:hover{background:#f3f6fb}
.dropdown-logout{color:#8c1d13!important;background:#fff5f4}
.dropdown-language-form{
  border-top:1px dashed #d0d5dd;
  border-bottom:1px dashed #d0d5dd;
}
.dropdown-language-form label{
  display:block;
  margin-bottom:4px;
}
.dropdown-language-form select{
  min-height:32px;
  padding:5px 8px;
}
.settings-home-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:16px;
}
.profile-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border:2px solid #d0d5dd;
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}
.profile-table th,
.profile-table td{
  padding:10px 12px;
  border-bottom:1px solid #d0d5dd;
  text-align:left;
  vertical-align:top;
}
.profile-table tr:last-child th,
.profile-table tr:last-child td{border-bottom:0}
.profile-table th{
  width:190px;
  background:#f8fafc;
  color:#475467;
  font-size:12px;
  text-transform:uppercase;
}
.settings-actions-row,
.settings-tabs,
.worker-dashboard-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.settings-quick-actions{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-self:start;
  border:1px solid #d0d5dd;
  border-radius:12px;
  background:#fff;
  padding:12px;
  box-shadow:0 4px 12px rgba(16,24,40,.06);
}
.quick-actions-title{
  color:#475467;
  font-size:12px;
  font-weight:900;
  letter-spacing:0;
  text-transform:uppercase;
}
.settings-quick-action{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:40px;
  max-height:48px;
  border:1px solid #98a2b3;
  border-radius:8px;
  background:#f8fafc;
  padding:8px 10px;
  color:#344054;
  font-weight:800;
  text-align:center;
  text-decoration:none;
  box-shadow:none;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.settings-quick-action:hover{
  border-color:#667085;
  background:#eef4ff;
  color:#1d2939;
}
.settings-quick-action span{
  display:block;
  color:inherit;
  font-size:14px;
  line-height:1.2;
}
.settings-quick-action span + span,
.settings-quick-action small{
  display:block;
  margin-top:2px;
  color:#667085;
  font-size:11px;
  font-weight:700;
  line-height:1.2;
}
.settings-quick-action.admin{background:#f9f5ff;border-color:#b692f6;color:#53389e}
.settings-quick-action.admin:hover{background:#f4ebff;border-color:#9e77ed}
.settings-dialog{
  width:min(760px,96vw);
  border:2px solid #8fa0b3;
  border-radius:16px;
  padding:0;
  box-shadow:0 24px 48px rgba(16,24,40,.28);
}
.settings-dialog::backdrop{background:rgba(15,23,42,.50)}
.user-edit-dialog{width:min(840px,96vw)}
.users-table-clean td{vertical-align:middle}
.inline-action-form{display:inline-block;margin-left:4px}
.subtle-danger{opacity:.74}
.subtle-danger:hover{opacity:1}
.pill{
  display:inline-flex;
  align-items:center;
  border:1px solid #8fa0b3;
  border-radius:999px;
  padding:2px 7px;
  background:#f8fafc;
  font-size:11px;
  font-weight:900;
  margin:1px;
}
.muted,.muted-row{color:#667085}
.user-flags-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  border:1px dashed #d0d5dd;
  border-radius:10px;
  padding:9px;
}
.user-flags-row label{
  display:flex;
  align-items:center;
  gap:6px;
  text-transform:none;
  letter-spacing:0;
  font-size:13px;
}
.user-flags-row input{width:auto}
.user-dialog-actions{
  display:flex;
  justify-content:flex-end;
}
.settings-widget{background:#f8fafc}
@media(max-width:900px){
  .settings-home-grid{grid-template-columns:1fr}
  .user-dropdown{right:auto;left:0}
}


/* v0.8.18 object/service cleanup */
.object-info-button{
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  margin-left:6px;
  border-radius:999px;
  padding:0;
  font-size:12px;
  line-height:1;
  background:#eef4ff;
  border:2px solid #6aa3ff;
  color:#083b83;
  vertical-align:middle;
}
.object-info-dialog{
  width:min(640px, 94vw);
  border:2px solid #8fa0b3;
  border-radius:14px;
  padding:0;
  box-shadow:0 22px 44px rgba(16,24,40,.26);
}
.object-info-dialog::backdrop{
  background:rgba(15,23,42,.45);
}
.object-info-table th{
  width:150px;
}
.table-actions{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  align-items:center;
}
.inline-action-form{
  display:inline-flex;
  margin:0;
}
.green-pill{
  background:#d9f7e8;
  border-color:#52c894;
  color:#065f46;
}
.muted-row{
  opacity:.68;
}
.muted{
  color:#667085;
}
.objects-toolbar .search,
.toolbar .search{
  min-height:34px;
  padding:6px 9px;
}
.objects-table-clean td,
.contacts-table-clean td{
  vertical-align:top;
}
.object-dialog,
.service-dialog,
.contact-edit-dialog{
  width:min(720px, 96vw);
}

/* One-row file management inside the work-order files popup. Now it resembles a list, not sediment layers. */
.files-dialog .attachment-row{
  grid-template-columns:minmax(180px,1fr) auto minmax(260px,1.2fr) auto;
  align-items:center;
}
.files-dialog .attachment-edit-form{
  grid-column:auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:6px;
  align-items:center;
}
.files-dialog .attachment-delete-form{
  grid-column:auto;
  justify-content:flex-end;
}
.files-dialog .attachment-title span{
  white-space:normal;
}
@media (max-width:1100px){
  .wo-card{
    grid-template-columns:1fr;
  }
  .loc,.body{
    border-right:0;
    padding-right:0;
    border-bottom:2px solid #d0d5dd;
    padding-bottom:10px;
  }
  .files-dialog .attachment-row{
    grid-template-columns:1fr;
  }
  .files-dialog .attachment-edit-form,
  .files-dialog .attachment-delete-form{
    grid-column:1 / -1;
  }
}


/* v0.8.19 log files and mobile base */
.log-attachment-list,
.log-file-mini-list,
.object-file-list,
.object-log-file-list{
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-top:8px;
}
.log-file-mini-list a{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  border:1px solid #a8b4c2;
  background:#eef4ff;
  border-radius:8px;
  padding:4px 6px;
  font-size:12px;
  font-weight:850;
}
.log-attachment-row,
.object-file-row,
.object-log-file-row{
  border:1px solid #d0d5dd;
  background:#f8fafc;
  border-radius:10px;
  padding:8px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
}
.log-attachment-row span,
.object-file-row span,
.object-log-file-row span{
  display:block;
  color:#667085;
  font-size:12px;
  margin-top:2px;
}
.object-log-file-row p{
  margin:5px 0 0;
  color:#344054;
  font-size:12px;
}
.object-file-section{
  margin-top:14px;
  padding-top:12px;
  border-top:2px dashed #d0d5dd;
}
.object-file-section h4{
  margin:0 0 8px;
  font-size:14px;
}
.object-attachment-box .attachment-row{
  grid-template-columns:minmax(180px,1fr) auto minmax(240px,1.2fr) auto;
  align-items:center;
}

/* First real mobile pass. Not a separate app yet, just stop punishing thumbs. */
@media (max-width:760px){
  body{
    background:#eef3f8;
  }
  .app{
    display:block;
    min-height:100vh;
  }
  aside{
    position:relative;
    height:auto;
    border-right:0;
    border-bottom:4px solid #2f80ed;
  }
  .brand{
    padding:12px 14px;
  }
  .brand h1{
    font-size:20px;
  }
  .brand p,
  .sidebar-note{
    display:none;
  }
  nav{
    display:flex;
    flex-direction:row;
    overflow-x:auto;
    gap:6px;
    padding:8px;
  }
  nav a{
    flex:0 0 auto;
    padding:8px 10px;
    font-size:13px;
    border:1px solid rgba(255,255,255,.18);
  }
  .sitebar{
    position:sticky;
    top:0;
    z-index:30;
    padding:8px 10px;
    align-items:flex-start;
  }
  .sitebar-left .sitebar-muted{
    display:none;
  }
  .user-menu summary{
    max-width:100%;
  }
  .user-dropdown{
    right:0;
    left:auto;
    min-width:220px;
  }
  .topbar{
    position:relative;
    padding:10px;
    gap:8px;
  }
  .topbar h2{
    font-size:20px;
  }
  .top-actions{
    width:100%;
  }
  .top-actions .btn{
    flex:1 1 auto;
    text-align:center;
    justify-content:center;
  }
  .content{
    padding:10px;
    max-width:none;
  }
  .panel{
    border-radius:12px;
    margin-bottom:10px;
  }
  .panel-body{
    padding:10px;
  }
  .wo-card{
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:10px;
    border-radius:12px;
  }
  .wo-card:before{
    width:6px;
  }
  .action{
    order:-1;
  }
  .loc,.body{
    border-right:0;
    padding-right:0;
    border-bottom:2px solid #d0d5dd;
    padding-bottom:8px;
  }
  .actions{
    gap:6px;
  }
  .actions .btn,
  .manager-work-actions .btn{
    min-height:36px;
    padding:7px 9px;
  }
  .status-seal{
    min-height:64px;
  }
  .search{
    width:100%;
  }
  .toolbar{
    flex-direction:column;
    align-items:stretch;
  }
  .toolbar .btn,
  .toolbar button{
    width:100%;
    justify-content:center;
    text-align:center;
  }
  .data-table{
    display:block;
    overflow-x:auto;
    white-space:nowrap;
  }
  dialog{
    max-width:96vw;
  }
  .action-dialog,
  .files-dialog,
  .object-info-dialog,
  .contact-dialog,
  .log-dialog,
  .settings-dialog{
    width:96vw !important;
  }
  .dialog-body{
    max-height:78vh;
    overflow:auto;
  }
  .form-grid,
  .compact-form{
    grid-template-columns:1fr !important;
  }
  .files-dialog .attachment-row,
  .object-attachment-box .attachment-row,
  .log-attachment-row,
  .object-file-row,
  .object-log-file-row{
    grid-template-columns:1fr;
  }
  .attachment-edit-form,
  .attachment-delete-form{
    grid-column:1 / -1 !important;
  }
  input, textarea, select{
    font-size:16px;
  }
}


/* v0.8.20 dedicated mobile worker desk */
.mobile-worker-page{
  max-width:760px;
  margin:0 auto;
}
.mobile-tabs{
  position:sticky;
  top:62px;
  z-index:20;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:10px;
}
.mobile-tabs a{
  border:2px solid #8fa0b3;
  background:#fff;
  border-radius:14px;
  padding:10px;
  font-weight:950;
  text-align:center;
  box-shadow:0 6px 16px rgba(16,24,40,.10);
}
.mobile-tabs a.active{
  background:#111827;
  color:#fff;
  border-color:#111827;
}
.mobile-tabs span{
  display:inline-flex;
  min-width:22px;
  justify-content:center;
  margin-left:4px;
  padding:2px 6px;
  border-radius:999px;
  background:#eef4ff;
  color:#083b83;
}
.mobile-tabs a.active span{
  background:#fff;
  color:#111827;
}
.mobile-filter-bar{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  background:#fff;
  border:2px solid #8fa0b3;
  border-radius:14px;
  padding:10px;
  margin-bottom:10px;
}
.mobile-filter-bar input,
.mobile-filter-bar select{
  width:100%;
  border:2px solid #8fa0b3;
  border-radius:12px;
  padding:10px;
  font-size:16px;
}
.mobile-work-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.mobile-work-card{
  border:2px solid #8fa0b3;
  border-left-width:8px;
  border-radius:16px;
  background:#fff;
  padding:12px;
  box-shadow:0 8px 20px rgba(16,24,40,.12);
}
.mobile-work-card.available{border-left-color:#174ea6}
.mobile-work-card.problem{border-left-color:#d97706}
.mobile-work-card.accepted,
.mobile-work-card.in_progress,
.mobile-work-card.returned{border-left-color:#047857}
.mobile-work-card.pending_review{border-left-color:#5b21b6}
.mobile-work-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.mobile-work-head h3{
  margin:0 0 4px;
  font-size:17px;
  line-height:1.18;
}
.mobile-work-head p{
  margin:0;
  color:#475467;
  font-size:13px;
  font-weight:850;
}
.mobile-status-dot{
  width:16px;
  height:16px;
  border-radius:50%;
  background:#4b5563;
  flex:0 0 auto;
  margin-top:2px;
}
.mobile-status-dot.available{background:#174ea6}
.mobile-status-dot.problem{background:#d97706}
.mobile-status-dot.accepted,
.mobile-status-dot.in_progress,
.mobile-status-dot.returned{background:#047857}
.mobile-status-dot.pending_review{background:#5b21b6}
.mobile-deadline{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin:8px 0;
  padding:5px 8px;
  border-radius:999px;
  background:#fff0c2;
  border:1px solid #f2b84b;
  color:#7a4300;
  font-size:12px;
  font-weight:900;
}
.mobile-description{
  border-top:1px dashed #d0d5dd;
  border-bottom:1px dashed #d0d5dd;
  padding:8px 0;
  margin:8px 0;
  color:#243247;
  line-height:1.35;
}
.mobile-action-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
}
.mobile-action-strip form{
  display:block;
}
.mobile-action-strip .btn,
.mobile-action-strip button{
  width:100%;
  min-height:38px;
  padding:7px 6px;
  justify-content:center;
  text-align:center;
}
.mobile-action-strip .btn.red,
.mobile-action-strip button.red{
  background:#fff7f6;
  border-color:#ffb4ae;
  color:#9f2218;
  box-shadow:none;
}
.mobile-contact-preview,
.mobile-latest-log{
  margin-top:8px;
  background:#f8fafc;
  border:1px solid #d0d5dd;
  border-radius:12px;
  padding:8px;
}
.mobile-contact-preview b,
.mobile-latest-log b{
  display:block;
  font-size:11px;
  color:#475467;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:3px;
}
.mobile-contact-preview span,
.mobile-latest-log span{
  display:block;
  font-size:13px;
}
.mobile-contact-preview em{
  display:block;
  color:#667085;
  margin-top:4px;
  font-size:12px;
}
.mobile-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:6px;
}
.mobile-file-chip,
.mobile-file-list a{
  display:inline-flex;
  align-items:center;
  gap:4px;
  border:1px solid #93b7ff;
  background:#eef4ff;
  color:#083b83;
  border-radius:999px;
  padding:5px 8px;
  font-size:12px;
  font-weight:850;
}
.mobile-dialog{
  width:min(680px,96vw);
  border:2px solid #8fa0b3;
  border-radius:16px;
  padding:0;
  box-shadow:0 22px 44px rgba(16,24,40,.28);
}
.mobile-dialog::backdrop{
  background:rgba(15,23,42,.55);
}
.mobile-dialog .dialog-body{
  padding:12px;
  max-height:80vh;
  overflow:auto;
}
.mobile-dialog h4{
  margin:14px 0 8px;
}
.mobile-action-form{
  display:flex;
  flex-direction:column;
  gap:9px;
}
.mobile-action-form label{
  font-size:12px;
  font-weight:950;
  color:#475467;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.mobile-action-form textarea,
.mobile-action-form input,
.mobile-action-form select{
  width:100%;
  border:2px solid #8fa0b3;
  border-radius:12px;
  padding:10px;
  font-size:16px;
}
.mobile-wide{
  width:100%;
  min-height:42px;
}
.mobile-photo-buttons{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.mobile-photo-buttons .btn{
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.mobile-hidden-file{
  position:absolute;
  left:-9999px;
  width:1px !important;
  height:1px;
  opacity:0;
}
.mobile-recipient-list{
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
  max-height:180px;
  overflow:auto;
  border:1px solid #d0d5dd;
  border-radius:12px;
  padding:8px;
  background:#f8fafc;
}
.mobile-recipient-list label{
  text-transform:none;
  letter-spacing:0;
  color:#182230;
  display:flex;
  align-items:center;
  gap:8px;
}
.mobile-recipient-list input{
  width:auto;
}
.mobile-log-feed{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:12px;
}
.mobile-log-entry,
.mobile-log-file-card{
  border:1px solid #d0d5dd;
  background:#f8fafc;
  border-radius:12px;
  padding:8px;
}
.mobile-log-entry b{
  display:block;
  font-size:12px;
  color:#475467;
}
.mobile-log-entry p,
.mobile-log-file-card p{
  margin:5px 0;
}
.mobile-log-file-card small{
  display:block;
  color:#667085;
  margin:4px 0;
}
.mobile-file-list,
.mobile-log-file-list{
  display:flex;
  flex-direction:column;
  gap:7px;
}
@media (min-width:761px){
  .mobile-filter-bar{
    grid-template-columns:minmax(0,1fr) 190px auto auto;
    align-items:center;
  }
}
@media (max-width:760px){
  .mobile-worker-page{
    max-width:none;
  }
  .mobile-tabs{
    top:52px;
  }
  .mobile-action-strip{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .mobile-action-strip .btn,
  .mobile-action-strip button{
    font-size:12px;
  }
}


/* v0.8.21 mobile contact/decline cleanup */
.mobile-title-wrap{
  min-width:0;
  flex:1 1 auto;
}
.mobile-title-wrap h3{
  display:flex;
  align-items:flex-start;
  gap:7px;
}
.mobile-info-dot{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:34px;
  height:34px;
  min-width:34px;
  min-height:34px;
  margin-top:-6px;
  border-radius:999px;
  padding:0;
  background:#eef4ff;
  border:2px solid #6aa3ff;
  color:#083b83;
  font-size:15px;
  font-weight:1000;
  line-height:1;
}
.mobile-contact-clickable{
  width:100%;
  text-align:left;
  cursor:pointer;
}
.mobile-contact-clickable.empty{
  background:#fffdf7;
  border-style:dashed;
}
.mobile-contact-clickable.empty span{
  color:#7a4300;
  font-weight:950;
}
.mobile-problem-check{
  background:#fff0c2;
  border:1px solid #f2b84b;
  border-radius:12px;
  padding:9px;
}
