:root{--ink:#30384d;--brand:#4d5874;--brand2:#66738f;--accent:#dd8e69;--bg:#f4f6fa;--card:#fff;--line:#dce2ea;--muted:#788195;--ok:#2e8b57;--danger:#b84b4b;--shadow:0 10px 30px rgba(39,49,73,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.auth-view{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#eef2f7,#f8f9fb)}.auth-card{width:min(420px,100%);background:#fff;padding:32px;border-radius:20px;box-shadow:var(--shadow);border:1px solid var(--line)}.auth-logo{width:220px;max-width:100%;display:block;margin:0 auto 20px}.auth-card h1{margin:0 0 6px}.stack{display:grid;gap:14px;margin-top:22px}label{display:grid;gap:6px;font-size:.86rem;font-weight:700}input,select,textarea{width:100%;border:1px solid #cfd6e0;border-radius:10px;padding:10px 11px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--brand2);box-shadow:0 0 0 3px rgba(77,88,116,.12)}.small,.muted{color:var(--muted)}.app-shell{min-height:100vh;display:grid;grid-template-columns:235px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{padding:22px}.brand img{width:100%;display:block}.sidebar nav{display:grid;padding:8px 12px;gap:5px}.nav,.link-btn{border:0;background:transparent;text-align:left;cursor:pointer;color:var(--ink)}.nav{padding:11px 12px;border-radius:10px}.nav.active,.nav:hover{background:#eef1f6;color:var(--brand);font-weight:800}.sidebar-footer{margin-top:auto;padding:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.link-btn{color:var(--accent);font-weight:700}.main{min-width:0}.topbar{height:82px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.topbar h1{font-size:1.2rem;margin:0}.topbar p{margin:3px 0 0;color:var(--muted);font-size:.82rem}.user-chip{display:grid;text-align:right}.user-chip small{color:var(--muted)}.view{padding:26px;max-width:1500px;margin:auto}.toolbar,.project-banner,.row-head,.dialog-actions,.upload-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.segmented{display:inline-flex;background:#fff;border:1px solid var(--line);padding:4px;border-radius:12px}.segmented button{border:0;background:transparent;padding:8px 12px;border-radius:8px;cursor:pointer}.segmented button.active{background:var(--brand);color:#fff}.btn,.small-btn{border:0;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:800}.btn.primary{background:var(--accent);color:#fff}.btn.ghost,.small-btn{background:#fff;color:var(--brand);border:1px solid var(--line)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;margin-top:20px}.project-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow);display:grid;gap:14px}.project-card h3{margin:0}.project-card p{margin:0;color:var(--muted)}.card-foot{display:flex;justify-content:space-between;align-items:center}.status-pill{padding:6px 9px;border-radius:999px;font-size:.75rem;font-weight:900;background:#e8f5ee;color:var(--ok)}.status-pill.inactive{background:#f2f3f5;color:#7a8190}.project-banner{margin-bottom:16px}.project-banner>div{display:grid;flex:1}.project-banner small{color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 5px 18px rgba(39,49,73,.05);margin-bottom:16px}.section-title{display:flex;align-items:center;gap:10px;margin-bottom:14px}.section-title span{width:30px;height:30px;border-radius:9px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:900}.section-title h2{font-size:1rem;margin:0}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.repeat-row{display:grid;grid-template-columns:1.4fr .7fr 1.6fr 36px;gap:8px;margin-bottom:8px}.repeat-row.sub{grid-template-columns:1.3fr .6fr .7fr 1.2fr 36px}.event-row{display:grid;grid-template-columns:1fr 36px;gap:8px;margin-bottom:8px}.equipment-row{display:grid;grid-template-columns:1.2fr 1fr 1.2fr .65fr 36px;gap:8px;margin-bottom:8px}.remove{border:0;border-radius:8px;background:#fff2f1;color:var(--danger);cursor:pointer}.dictation{position:relative}.dictation textarea{padding-right:52px}.mic-btn{position:absolute;right:10px;top:30px;width:38px;height:38px;border:0;border-radius:50%;background:var(--accent);color:#fff;cursor:pointer}.mic-btn.listening{animation:pulse 1.1s infinite}.mic-status{color:var(--muted);min-height:16px}.attachments{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:12px}.attachment{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fafbfc}.attachment img{width:100%;height:120px;object-fit:cover;border-radius:8px}.savebar{position:sticky;bottom:10px;display:flex;justify-content:flex-end;gap:10px;background:rgba(244,246,250,.92);backdrop-filter:blur(8px);padding:10px;border-radius:14px}.check{display:flex;grid-template-columns:auto 1fr;align-items:center}.check input{width:auto}.admin-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}.list{margin-top:18px;display:grid;gap:8px}.list-item{display:flex;justify-content:space-between;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px}.toast{position:fixed;right:18px;bottom:18px;z-index:1000;background:#30384d;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow)}dialog{border:0;border-radius:16px;padding:0;box-shadow:0 24px 70px rgba(0,0,0,.22)}dialog::backdrop{background:rgba(30,36,52,.35)}.dialog-card{width:min(460px,90vw);padding:22px;display:grid;gap:12px}.dialog-card h2{margin:0 0 6px}.dialog-actions{justify-content:flex-end}.admin-only[hidden]{display:none!important}@keyframes pulse{50%{transform:scale(1.08);box-shadow:0 0 0 10px rgba(221,142,105,.18)}}@media(max-width:980px){.grid4{grid-template-columns:1fr 1fr}.two-col,.admin-grid{grid-template-columns:1fr}.app-shell{grid-template-columns:80px 1fr}.brand{padding:12px}.sidebar .nav span,.sidebar-footer small{display:none}.sidebar-footer{display:grid;justify-items:center}.nav{text-align:center}.repeat-row,.repeat-row.sub,.equipment-row{grid-template-columns:1fr 1fr}.repeat-row>*:nth-last-child(2),.equipment-row>*:nth-last-child(2){grid-column:1/-1}}@media(max-width:640px){.app-shell{display:block}.sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;height:64px;z-index:50;border-top:1px solid var(--line);border-right:0;display:flex;flex-direction:row}.brand,.sidebar-footer small{display:none}.sidebar nav{display:flex;flex:1;padding:6px}.sidebar .nav span{display:inline}.nav{flex:1;text-align:center}.sidebar-footer{padding:8px}.main{padding-bottom:70px}.topbar{height:auto;padding:12px 14px}.topbar p{display:none}.view{padding:14px 10px}.toolbar{align-items:stretch;flex-direction:column}.segmented{display:grid;grid-template-columns:repeat(3,1fr)}.grid4,.grid2,.two-col,.repeat-row,.repeat-row.sub,.equipment-row{grid-template-columns:1fr}.project-banner{align-items:flex-start;flex-wrap:wrap}.savebar{display:grid;grid-template-columns:1fr 1fr}.user-chip{font-size:.78rem}.panel{padding:13px}.upload-row{align-items:stretch;flex-direction:column}}

[hidden]{display:none!important}button:disabled{opacity:.5;cursor:not-allowed}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.break-word{overflow-wrap:anywhere}.history-entry{margin-top:16px}.history-entry h2{font-size:1.05rem}.history-entry details{margin:12px 0}.history-entry summary{cursor:pointer;font-weight:700}.history-entry h3{font-size:.95rem}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{padding:8px;text-align:left;border-bottom:1px solid var(--line)}.download-list,.user-actions,.dict-add{display:flex;gap:8px;flex-wrap:wrap}.dict-add input{flex:1;min-width:120px}.list-item p{margin:4px 0}.list-item small{overflow-wrap:anywhere}.user-actions{align-items:center}.user-actions select{width:auto}.toolbar{margin-bottom:16px}.auth-card #loginError{color:var(--danger)}.history-entry details p{overflow-wrap:anywhere}@media(max-width:640px){.list-item{flex-direction:column}.sidebar .nav{padding:8px;font-size:.8rem}.sidebar nav{gap:0}.sidebar .nav span{font-size:.75rem}.user-actions{width:100%}}

.revision-card{border-top:1px solid var(--line);padding:16px 0}.revision-change h4{margin:14px 0 8px}.revision-values{display:grid;grid-template-columns:1fr 1fr;gap:12px}.revision-values>div{min-width:0;background:var(--bg,#f4f6f8);padding:10px;border-radius:8px}.revision-values p{margin:8px 0}.revision-values strong{font-size:.85rem}@media(max-width:640px){.revision-values{grid-template-columns:1fr}}
/* In-browser document scanner */
.scanner-dialog{width:min(1000px,96vw);max-width:96vw;max-height:94vh;padding:0;overflow:auto}.scanner-card{padding:20px;display:grid;gap:14px}.scanner-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.scanner-head h2,.scanner-head p{margin:0 0 5px}.scanner-controls{display:flex;align-items:end;flex-wrap:wrap;gap:10px}.scanner-controls label{min-width:150px}.scanner-video-frame{position:relative;width:100%;height:min(38vh,380px);min-height:220px;background:#202431;border-radius:12px;overflow:hidden}.scanner-video-frame.netum-rotated{height:min(60vh,640px)}.scanner-video{position:absolute;top:50%;left:50%;display:block;width:100%;height:100%;object-fit:contain;transform:translate(-50%,-50%)}.scanner-video-frame.netum-rotated .scanner-video{object-fit:fill;transform:translate(-50%,-50%) rotate(-90deg)}.scanner-workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:12px;min-height:120px;background:#eff2f6;border-radius:12px;padding:8px;overflow:hidden}.scanner-workspace canvas,.scanner-workspace img{display:block;max-width:100%;max-height:55vh;margin:auto;object-fit:contain;border-radius:8px}.scanner-workspace canvas{touch-action:none;cursor:crosshair}.scanner-workspace img{background:#fff;box-shadow:0 1px 5px #0002}.scanner-pages ol{list-style:none;padding:0;margin:8px 0;display:grid;gap:6px}.scanner-pages li{display:grid;grid-template-columns:62px 1fr auto auto;align-items:center;gap:10px;padding:7px;border:1px solid var(--line);border-radius:10px;background:#fff}.scanner-pages li img{width:60px;height:70px;object-fit:contain;background:#f1f3f7;border-radius:6px}.scanner-error{color:var(--danger)!important}.scanner-file{display:inline-flex;align-items:center;min-height:42px;padding:10px 14px}
.scanner-workspace [hidden]{display:none}
body.scanner-open{position:fixed;left:0;right:0;width:100%}
.scanner-dialog{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.scanner-controls #scannerTorch[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--card)}
@media(max-width:640px){.scanner-dialog{width:100%;max-width:100%;max-height:96vh;margin:auto 0 0;border-radius:18px 18px 0 0}.scanner-card{padding:14px}.scanner-controls{align-items:stretch}.scanner-controls>*{flex:1 1 42%}.scanner-workspace{grid-template-columns:1fr}.scanner-workspace canvas,.scanner-workspace img{max-height:36vh}.scanner-pages li{grid-template-columns:48px 1fr auto}.scanner-pages li img{width:46px;height:60px}.scanner-pages li>div{grid-column:2/-1}}

/* Field-ready visual system */
:root{color-scheme:light;--ink:#29364f;--brand:#34445f;--brand2:#68778f;--accent:#c64f12;--bg:#f2f3f6;--card:#fff;--line:#d7dce5;--muted:#5e697d;--ok:#23734d;--danger:#b34236;--shadow:0 12px 30px rgba(37,49,72,.08);--surface-soft:#f5f6f8;--sidebar-ink:#f3f5f8}
:root[data-theme="dark"]{color-scheme:dark;--ink:#e9edf3;--brand:#c5cedd;--brand2:#a5b1c4;--accent:#ff965f;--bg:#111722;--card:#1b2330;--line:#354052;--muted:#a5afbd;--ok:#84d2a3;--danger:#ff9387;--shadow:0 14px 34px rgba(0,0,0,.25);--surface-soft:#252e3c;--sidebar-ink:#f3f5f8}
html{background:var(--bg);scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);line-height:1.45;-webkit-tap-highlight-color:transparent}
button{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 68%,transparent);outline-offset:2px}
.app-shell{grid-template-columns:250px minmax(0,1fr);background:var(--bg)}
.sidebar{background:linear-gradient(180deg,rgba(39,52,77,.97),rgba(39,52,77,.92)),url('/assets/project-sidebar-backdrop.png') center bottom/cover no-repeat;color:var(--sidebar-ink);border:0;border-right:1px solid rgba(243,245,248,.16);box-shadow:none}
.brand{height:88px;flex:0 0 88px;display:flex;align-items:center;padding:0 24px;border-bottom:1px solid rgba(243,245,248,.16)}
.brand img{max-width:180px;border-radius:7px}
.sidebar nav{padding:22px 14px;gap:8px}
.sidebar .nav{min-height:48px;padding:12px 14px;color:rgba(243,245,248,.82);font-weight:700;transition:background .16s ease,color .16s ease,transform .16s ease}
.sidebar .nav:hover{background:rgba(255,255,255,.09);color:#fff}
.sidebar .nav.active{background:#eef1f5;color:#29364f;box-shadow:inset 3px 0 var(--accent)}
.sidebar .nav .nav-label-short{display:none}
.sidebar-footer{border-top:1px solid rgba(255,255,255,.16);padding:18px 20px;color:rgba(243,245,248,.72)}
.sidebar .link-btn{color:#ffb18a;min-height:42px;padding:8px}
.main{min-height:100vh;background:var(--bg)}
.topbar{position:sticky;top:0;z-index:20;height:88px;padding:0 clamp(18px,3vw,42px);background:color-mix(in srgb,var(--card) 94%,transparent);backdrop-filter:blur(14px);border-color:var(--line)}
.topbar h1{font-size:1.28rem;letter-spacing:-.025em;color:var(--ink)}
.topbar p{font-size:.84rem}
.topbar-actions{display:flex;align-items:center;gap:18px}
.user-chip{padding-left:18px;border-left:1px solid var(--line);gap:2px}
.user-chip strong{font-size:.92rem}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);color:var(--ink);font-size:.82rem;font-weight:750;cursor:pointer;transition:background .16s ease,border .16s ease,transform .16s ease}
.theme-toggle:hover{border-color:var(--brand2);transform:translateY(-1px)}
.theme-toggle>span:first-child{font-size:1.05rem;line-height:1;color:var(--accent)}
.view{width:100%;padding:26px clamp(16px,3vw,42px) 40px}
.toolbar{gap:16px}
.segmented{background:var(--card);border-color:var(--line);box-shadow:0 2px 8px rgba(23,54,43,.04)}
.segmented button{min-height:40px;color:var(--muted);font-weight:700}
.segmented button.active{background:var(--brand);color:#fff}
.btn,.small-btn{min-height:44px;transition:filter .16s ease,transform .16s ease,background .16s ease}
.btn:hover,.small-btn:hover{filter:brightness(.97);transform:translateY(-1px)}
.btn.primary{background:var(--accent);color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 22%,transparent)}
.btn.ghost,.small-btn{background:var(--card);color:var(--brand);border-color:var(--line)}
.project-grid{gap:18px}
.project-card{position:relative;min-height:206px;padding:22px;background:var(--card);border-color:var(--line);border-radius:18px;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.project-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand2) 38%,var(--line));box-shadow:0 16px 34px rgba(23,54,43,.11)}
.project-card h3{font-size:1.08rem;letter-spacing:-.02em}
.project-card>small{color:var(--muted)}
.project-location-status{margin:0 0 10px;color:var(--muted);font-size:.84rem}
.status-pill{background:color-mix(in srgb,var(--ok) 13%,var(--card));color:var(--ok);letter-spacing:.045em}
.project-card>.status-pill{display:flex;align-items:center;min-height:34px;padding:7px 12px;line-height:1}
.status-pill.inactive{background:var(--surface-soft);color:var(--muted)}
.project-banner{padding:16px 18px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 4px 12px rgba(23,54,43,.04)}
.project-banner>div{gap:3px}
.project-banner strong{font-size:1.02rem}
#entryForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;align-items:start}
#entryForm>.report-full-section,#entryForm>.savebar{grid-column:1/-1}
.report-basic-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);gap:14px;align-items:start}
.report-case-field{grid-column:3}
.report-backdate-field textarea{min-height:88px}
#entryForm>.report-weather-section,#entryForm>.report-description-section{align-self:stretch}
.panel{min-width:0;padding:20px;background:var(--card);border-color:var(--line);border-radius:16px;box-shadow:0 3px 12px rgba(23,54,43,.035);margin-bottom:16px}
.section-title{gap:12px;margin-bottom:18px}
.section-title span{width:34px;height:34px;border-radius:11px;background:var(--brand);color:#fff;font-size:.82rem;letter-spacing:.02em}
.section-title h2{font-size:1.02rem;letter-spacing:-.015em;color:var(--ink)}
.panel h3,.row-head h3{font-size:.94rem;color:var(--brand);margin:0}
label{color:var(--ink);font-size:.84rem;line-height:1.35;gap:7px}
input,select,textarea{min-height:44px;padding:10px 12px;border-color:var(--line);border-radius:10px;background:var(--card);color:var(--ink)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}
input[readonly]{background:var(--surface-soft);color:var(--muted)}
textarea{min-height:150px;resize:vertical;line-height:1.55}
.grid4,.grid2{gap:14px}
.two-col{gap:18px}
.row-head{margin:0 0 10px}
.repeat-row,.repeat-row.sub,.equipment-row{gap:9px;margin-bottom:10px}
.remove{min-width:40px;min-height:44px;background:color-mix(in srgb,var(--danger) 10%,var(--card));color:var(--danger)}
.event-row{margin-bottom:10px}
.dictation textarea{padding-right:60px}
.mic-btn{width:44px;height:44px;background:var(--brand2)}
.attachment{background:var(--surface-soft);border-color:var(--line)}
.savebar{position:sticky;bottom:14px;z-index:12;padding:12px;background:color-mix(in srgb,var(--card) 93%,transparent);border:1px solid var(--line);box-shadow:0 12px 28px rgba(15,41,32,.13);backdrop-filter:blur(16px);border-radius:15px}
.savebar .btn{min-width:150px;min-height:48px}
.check{gap:10px;line-height:1.5}
.check input{min-width:20px;min-height:20px;accent-color:var(--brand2)}
.history-entry,.revision-card{color:var(--ink)}
.history-entry details summary{padding:8px 0}
.table-scroll,table{color:var(--ink)}
th{background:var(--surface-soft);color:var(--brand)}
td{background:var(--card)}
.list-item{background:var(--card);border-color:var(--line);border-radius:12px}
.revision-values>div{background:var(--surface-soft)}
.toast{background:var(--brand);color:#fff}
.toast.is-error{background:#b34236;color:#fff}
:root[data-theme="dark"] .toast.is-error{background:#8e302b;color:#fff}
dialog{background:var(--card);color:var(--ink);border:1px solid var(--line)}
.dialog-card{background:var(--card)}
.auth-view{background:radial-gradient(ellipse at 15% 20%,color-mix(in srgb,var(--brand2) 12%,var(--bg)),var(--bg) 65%);color:var(--ink)}
.auth-card{background:var(--card);border-color:var(--line);border-radius:20px}
.scanner-card{background:var(--card);color:var(--ink)}
.scanner-pages li{background:var(--card);border-color:var(--line)}
.scanner-pages li img{background:var(--surface-soft)}
.scanner-workspace{background:var(--surface-soft)}
:root[data-theme="dark"] body,:root[data-theme="dark"] .app-shell,:root[data-theme="dark"] .main{background:var(--bg);color:var(--ink)}
:root[data-theme="dark"] .sidebar{background-image:linear-gradient(180deg,rgba(24,33,49,.98),rgba(29,39,57,.94)),url('/assets/project-sidebar-backdrop.png')}
:root[data-theme="dark"] .sidebar .nav.active{background:#dce2ec;color:#29364f}
:root[data-theme="dark"] .btn.primary{color:#252332}
:root[data-theme="dark"] .segmented button.active{color:#fff}
:root[data-theme="dark"] .scanner-video-frame{background:#080d0b}
:root[data-theme="dark"] .scanner-workspace img{background:#fff}
:root[data-theme="dark"] .revision-values>div{background:var(--surface-soft)}
:root[data-theme="dark"] .status-pill.inactive{background:var(--surface-soft);color:var(--muted)}
@media(max-width:1100px){
  .app-shell{grid-template-columns:76px minmax(0,1fr)}
  .brand{padding:0 10px}
  .brand img{border-radius:5px}
  .sidebar nav{padding:18px 9px}
  .sidebar .nav span,.sidebar-footer small{display:none}
  .sidebar .nav{text-align:center;padding:12px 8px}
  .sidebar-footer{display:grid;justify-items:center;padding:12px 8px}
  #entryForm{grid-template-columns:minmax(0,1fr)}
  #entryForm>section{grid-column:1}
  .report-basic-grid{grid-template-columns:minmax(0,1fr)}
  .report-case-field{grid-column:1}
}
@media(max-width:640px){
  :root{--mobile-nav-h:68px}
  .app-shell{display:block;min-height:100svh}
  .sidebar{position:fixed;left:0;right:0;top:auto;bottom:0;width:auto;height:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom));z-index:50;display:flex;flex-direction:row;border-top:1px solid var(--line);box-shadow:0 -8px 22px rgba(34,46,68,.16);padding-bottom:env(safe-area-inset-bottom);background:rgba(39,52,77,.98)}
  .brand,.sidebar-footer small{display:none}
  .sidebar nav{display:flex;flex:1;justify-content:stretch;gap:2px;padding:7px 4px}
  .sidebar .nav{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:52px;padding:5px 1px;border-radius:10px;font-size:1rem}
  .sidebar .nav span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:.7rem;line-height:1.2;white-space:nowrap}
  .sidebar .nav .nav-label-long{display:none}
  .sidebar .nav .nav-label-short{display:block}
  .sidebar .nav.active{box-shadow:inset 0 2px var(--accent)}
  .sidebar-footer{display:none}
  .main{padding:0 0 calc(var(--mobile-nav-h) + env(safe-area-inset-bottom) + 14px);min-height:100svh}
  .topbar{position:sticky;top:0;min-height:70px;padding:10px 14px;gap:8px}
  .topbar h1{font-size:1rem;line-height:1.22;max-width:52vw}
  .topbar p{display:none}
  .topbar-actions{gap:8px}
  .theme-toggle{min-width:44px;width:44px;min-height:44px;padding:0;border-radius:13px}
  .theme-toggle-label{display:none}
  .user-chip{padding-left:9px;max-width:110px;font-size:.72rem}
  .user-chip strong{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}
  .user-chip small{font-size:.69rem}
  .view{padding:14px 12px 24px}
  .toolbar{align-items:stretch;flex-direction:column;gap:12px}
  .toolbar>.btn,.toolbar>.upload-row,.toolbar .upload-row{width:100%}
  .upload-row{align-items:stretch;flex-direction:column}
  .upload-row>*{width:100%;justify-content:center}
  .segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;padding:3px}
  .segmented button{padding:8px 3px;min-height:42px;font-size:.76rem}
  .project-grid{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:14px}
  .project-card{min-height:0;padding:17px;border-radius:15px;gap:12px}
  .project-card .card-foot{gap:10px}
  .project-card .card-foot .btn{flex:1}
  .project-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px;border-radius:13px}
  .project-banner #backBtn{grid-column:1/-1;justify-self:start;min-height:42px}
  .project-banner>div{grid-column:1;grid-row:2;min-width:0}
  .project-banner strong{font-size:.92rem;overflow-wrap:anywhere}
  .project-banner small{font-size:.75rem;overflow-wrap:anywhere}
  .project-banner .status-pill{grid-column:2;grid-row:2;align-self:center}
  #entryForm{gap:0}
  .panel{padding:15px 14px;margin-bottom:12px;border-radius:14px}
  .section-title{margin-bottom:14px;gap:10px}
  .section-title span{width:32px;height:32px;border-radius:10px}
  .section-title h2{font-size:.96rem}
  .grid4,.grid2,.two-col,.repeat-row,.repeat-row.sub,.equipment-row{grid-template-columns:minmax(0,1fr);gap:10px}
  .row-head{align-items:center}
  .repeat-row,.repeat-row.sub,.equipment-row{position:relative;padding:0 48px 12px 0;border-bottom:1px solid var(--line)}
  .repeat-row .remove,.repeat-row.sub .remove,.equipment-row .remove{position:absolute;right:0;top:0;width:42px;min-width:42px}
  .repeat-row>*:nth-last-child(2),.equipment-row>*:nth-last-child(2){grid-column:auto}
  .event-row{grid-template-columns:minmax(0,1fr) 42px;gap:8px}
  .event-row .remove{min-width:42px}
  input,select,textarea{min-height:48px;font-size:16px}
  textarea{min-height:145px}
  .mic-btn{top:30px;width:42px;height:42px}
  .small-btn{min-height:44px}
  .attachments{grid-template-columns:repeat(2,minmax(0,1fr))}
  .attachment img{height:100px}
  .savebar{position:sticky;bottom:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom) + 8px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin:3px 0 14px;padding:8px;border-radius:14px}
  .savebar .btn{min-width:0;min-height:50px;padding:9px 6px;font-size:.83rem}
  .check{align-items:flex-start}
  .list-item{flex-direction:column}
  .user-actions{width:100%}
  .revision-values{grid-template-columns:minmax(0,1fr)}
  .scanner-dialog{width:100%;max-width:100%;max-height:calc(100svh - env(safe-area-inset-bottom));margin:auto 0 0;border-radius:18px 18px 0 0}
}

/* Contrast and small-screen finishing */
.equipment-row{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:12px 0;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}
.equipment-row-head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;min-height:42px}
.equipment-row-head strong{color:var(--brand);font-size:.88rem}
.equipment-field{display:grid;min-width:0;gap:6px;margin:0;color:var(--ink)}
.equipment-field>span{font-size:.78rem;font-weight:750}
.equipment-field select,.equipment-field input{min-width:0}
.equipment-row .remove{position:static;width:42px;min-width:42px;min-height:42px}
.history-pagination{display:flex;justify-content:center;margin:14px 0}
.history-footer{display:flex;justify-content:flex-end;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
@media(min-width:641px){.equipment-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}}
:root[data-theme="dark"] .section-title span,:root[data-theme="dark"] .segmented button.active{background:#3d4c66;color:#f4f6fa}
:root[data-theme="dark"] .mic-btn{background:#526785;color:#fff}
:root[data-theme="dark"] .remove{background:#482c29}
@media(max-width:640px){
  .app-shell.entry-editing .sidebar-footer{display:none}
  .app-shell.project-context .topbar p{display:block;max-width:48vw;margin-top:3px;font-size:.7rem;line-height:1.2;overflow-wrap:anywhere}
  .equipment-row{grid-template-columns:minmax(0,1fr);gap:12px;margin:10px 0;padding:12px}
  .equipment-row-head{min-height:42px}
  .history-footer{gap:8px;margin-top:18px;padding-top:12px}
  .history-footer-note{font-size:.66rem}
  .history-footer-note-wide{display:none}
  .history-footer-note-compact{display:inline}
  .savebar{bottom:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom) + 6px);padding:6px;gap:6px}
  .savebar .btn{min-height:46px;padding:7px 4px;font-size:.78rem}
}
.theme-toggle>span:first-child{display:grid;place-items:center}
.theme-toggle svg{display:block;width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:640px){
  .savebar{visibility:hidden;transform:translateY(10px);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s}
  :root.has-scrolled .savebar{visibility:visible;transform:translateY(0);opacity:1;pointer-events:auto;transition:opacity .18s ease,transform .18s ease,visibility 0s}
}

/* Connection status uses one responsive control in the application header. */
.connection-control{position:relative;z-index:30;display:flex;align-items:center}
.connection-indicator{display:grid;width:44px;height:44px;flex:0 0 44px;place-items:center;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);color:var(--accent);cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}
.connection-indicator:hover,.connection-indicator:focus-visible{transform:translateY(-1px);border-color:color-mix(in srgb,currentColor 36%,var(--line))}
.connection-indicator svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.connection-indicator .signal-offline{display:none}
.connection-indicator[data-state="online"]{color:#258052;border-color:color-mix(in srgb,#258052 22%,var(--line));background:color-mix(in srgb,#258052 7%,var(--card))}
.connection-indicator[data-state="offline"]{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 28%,var(--line));background:color-mix(in srgb,var(--danger) 8%,var(--card))}
.connection-indicator[data-state="offline"] .signal-online{display:none}
.connection-indicator[data-state="offline"] .signal-offline{display:block}
.connection-popover{position:absolute;top:calc(100% + 10px);right:0;display:none;width:min(360px,calc(100vw - 24px));padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);box-shadow:0 14px 34px rgba(10,35,27,.2);font-size:.82rem;line-height:1.45}
.connection-control.is-open .connection-popover{display:block}
.connection-popover h2{margin:0 0 8px;font-size:.98rem;line-height:1.3}
.connection-popover p{margin:0 0 10px;color:var(--muted)}
.connection-popover ul{display:grid;gap:6px;margin:0 0 12px;padding-left:20px}
.connection-popover li{padding-left:2px}
.connection-popover .connection-details-next{margin:0;color:var(--ink)}
.connection-popover .connection-details-warning{margin:10px 0 0;color:var(--danger);font-weight:700}
.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}
.topbar{height:88px}
.history-filters{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto;align-items:end;gap:12px;margin:12px 0 6px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.history-filters label{display:grid;gap:6px;color:var(--muted);font-size:.78rem;font-weight:650}
.history-filters input,.history-filters select{width:100%;min-width:0;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--ink);font:inherit;font-size:.9rem}
.history-filters .btn{min-height:44px;white-space:nowrap}
.history-filter-summary{min-height:1.4em;margin:7px 3px 12px;color:var(--muted);font-size:.78rem;line-height:1.45}
.offline-drafts{margin:12px 0;border-color:color-mix(in srgb,var(--accent) 32%,var(--line));background:color-mix(in srgb,var(--accent) 4%,var(--card))}
.offline-drafts-heading h2{margin:0 0 4px;font-size:1rem}
.offline-drafts-heading p{margin:0 0 12px;color:var(--muted);font-size:.82rem}
.offline-draft-list{display:grid;gap:8px}
.offline-draft-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--card)}
.offline-draft-row>div:first-child{display:grid;gap:4px;min-width:0}
.offline-draft-row strong{overflow-wrap:anywhere;font-size:.88rem}
.offline-draft-row small{color:var(--muted);font-size:.75rem}
.offline-draft-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.offline-draft-actions .btn{min-height:40px}
.history-pagination{display:flex;justify-content:center;margin:18px 0}
.history-footer{margin-top:22px}
.nav{display:flex;align-items:center;gap:12px}
.nav svg{display:block;width:20px;height:20px;flex:0 0 20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.dictionary-intro{margin:0 0 16px;color:var(--muted);font-size:.9rem;line-height:1.5}
.dictionary-list{align-items:start}
.dictionary-panel{margin:0}
.dictionary-panel h2{margin:0 0 14px;color:var(--ink);font-size:1rem}
.dictionary-panel .dict-add{margin-bottom:14px}
.dictionary-panel .dict-add input{min-width:0}
.dictionary-empty{margin:2px 0;color:var(--muted);font-size:.82rem}
.history-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:14px;border-top:1px solid var(--line)}
.history-footer-note{flex:1;min-width:0;margin:0;overflow:hidden;color:var(--muted);font-size:.8rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.history-footer-note-compact{display:none}
@media(max-width:640px){.sidebar .nav{flex-direction:column;gap:2px}.sidebar .nav svg{width:19px;height:19px;flex-basis:19px}.history-footer{margin-top:18px}.history-footer-note{font-size:.66rem}.history-footer-note-wide{display:none}.history-footer-note-compact{display:inline}}

/* Subcontractor directory: company list with a focused employee detail view. */
.subcontractors-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem}
.subcontractors-heading h2,.subcontractors-heading p{margin:0}
.subcontractors-heading p{margin-top:.3rem}
.subcontractors-heading .btn{flex:0 0 auto}
.subcontractors-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(13rem,.35fr);align-items:end;gap:1rem;padding:1rem;margin-bottom:1rem}
.subcontractors-filters label{display:grid;gap:.4rem;color:var(--muted);font-size:.8rem}
.subcontractors-filters input,.subcontractors-filters select{min-height:44px;background:var(--surface-soft);color:var(--ink)}
.subcontractor-workspace{display:grid;grid-template-columns:minmax(255px,.72fr) minmax(0,1.55fr);align-items:start;gap:1rem}
.subcontractor-company-list-panel,.subcontractor-company-details{min-width:0;margin:0;padding:1rem}
.subcontractor-company-list-panel{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto}
.subcontractor-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.8rem}
.subcontractor-panel-heading h3,.subcontractor-panel-heading h4,.subcontractor-panel-heading p{margin:0}
.subcontractor-panel-heading h4+p{margin-top:.25rem}
.subcontractor-company-list{display:grid;gap:.5rem}
.subcontractor-company-option{display:grid;gap:.4rem;width:100%;padding:.8rem .85rem;border:1px solid var(--line);border-radius:11px;background:var(--card);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease}
.subcontractor-company-option:hover,.subcontractor-company-option.is-selected{border-color:var(--brand2);background:var(--surface-soft)}
.subcontractor-company-option.is-selected{box-shadow:inset 3px 0 var(--accent)}
.subcontractor-company-option.is-inactive{opacity:.8}
.subcontractor-company-option-main{display:flex;align-items:center;justify-content:space-between;gap:.55rem;min-width:0}
.subcontractor-company-option-main strong{min-width:0;overflow-wrap:anywhere}
.subcontractor-company-option small{color:var(--muted);font-size:.77rem}
.subcontractor-status{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:.3rem .55rem;border-radius:999px;font-size:.68rem;font-weight:800;line-height:1.1;white-space:nowrap}
.subcontractor-status.is-active{background:color-mix(in srgb,var(--ok) 13%,var(--card));color:var(--ok)}
.subcontractor-status.is-inactive{background:var(--surface-soft);color:var(--muted)}
.subcontractor-detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.subcontractor-detail-heading h3{margin:0;font-size:1.25rem;overflow-wrap:anywhere}
.subcontractor-detail-heading p{margin:.45rem 0 0;color:var(--muted);font-size:.84rem}
.subcontractor-detail-title{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem}
.subcontractor-detail-actions,.subcontractor-person-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem}
.subcontractor-detail-actions .small-btn,.subcontractor-person-actions .small-btn{min-height:40px}
.subcontractor-account-notice{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.35rem 1rem;margin:1rem 0;padding:.85rem 1rem;border:1px solid color-mix(in srgb,var(--danger) 28%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--danger) 5%,var(--card));font-size:.84rem}
.subcontractor-account-notice strong,.subcontractor-account-notice span{grid-column:1}
.subcontractor-account-notice span{color:var(--muted)}
.subcontractor-account-notice a{grid-column:2;grid-row:1/3}
.subcontractor-people-section{padding-top:1.1rem}
.subcontractor-people-section .subcontractor-panel-heading{align-items:center}
.subcontractor-person-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(11rem,.35fr);gap:.75rem;margin:.85rem 0 .55rem}
.subcontractor-person-filters label{display:grid;gap:.35rem;color:var(--muted);font-size:.77rem}
.subcontractor-person-filters input,.subcontractor-person-filters select{min-height:42px;background:var(--surface-soft);color:var(--ink)}
#subcontractorPersonResult{margin:.4rem 0}
.subcontractor-person-list{display:grid;gap:.55rem}
.subcontractor-person-card{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.75rem .85rem;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}
.subcontractor-person-card>div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;min-width:0}
.subcontractor-person-card strong{overflow-wrap:anywhere}
.subcontractor-person-card.is-inactive{opacity:.72}
.subcontractor-account-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--line)}
.subcontractor-account-footer>div{display:grid;gap:.25rem}
.subcontractor-account-footer span{color:var(--muted);font-size:.8rem}
.subcontractor-empty-detail,.subcontractor-list-empty{display:grid;justify-items:center;gap:.5rem;padding:2.2rem 1rem;color:var(--muted);text-align:center}
.subcontractor-empty-detail>span{display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft);font-size:1.3rem;color:var(--brand)}
.subcontractor-empty-detail h3,.subcontractor-empty-detail p,.subcontractor-list-empty p{margin:0}
.subcontractor-empty-detail h3{color:var(--ink);font-size:1rem}
.subcontractor-empty-detail p,.subcontractor-list-empty p{max-width:34ch;font-size:.84rem}
.subcontractor-list-empty{justify-items:start;padding:1rem .5rem;text-align:left}
.subcontractor-list-empty strong{color:var(--ink)}
.subcontractor-load-error{display:grid;gap:.7rem;padding:1rem;border-radius:10px;background:color-mix(in srgb,var(--danger) 6%,var(--card));color:var(--danger)}
.subcontractors-heading .btn{min-height:44px}
@media(max-width:1100px) and (min-width:641px){.app-shell.admin-navigation .sidebar{overflow:hidden}.app-shell.admin-navigation .sidebar nav{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.app-shell.admin-navigation .sidebar .nav{flex:0 0 auto}}
@media(max-width:900px){.subcontractor-workspace{grid-template-columns:minmax(230px,.8fr) minmax(0,1.2fr)}.subcontractor-detail-heading{flex-direction:column}.subcontractor-detail-actions{width:100%}.subcontractor-detail-actions>*{flex:1}}
@media(max-width:640px){
  .app-shell.admin-navigation .sidebar nav{justify-content:flex-start;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scroll-snap-type:x proximity;padding-inline:6px}
  .app-shell.admin-navigation .sidebar .nav{flex:0 0 58px;scroll-snap-align:start}
  .subcontractors-heading{align-items:flex-start;flex-direction:column}
  .subcontractors-heading .btn{width:100%}
  .subcontractors-filters{grid-template-columns:minmax(0,1fr);gap:.7rem;padding:.8rem}
  .subcontractor-workspace{grid-template-columns:minmax(0,1fr)}
  .subcontractor-company-list-panel,.subcontractor-company-details{padding:.85rem}
  .subcontractor-workspace.has-selection .subcontractor-company-list-panel{display:none}
  #subcontractorsView.has-company-selection .subcontractors-heading,#subcontractorsView.has-company-selection .subcontractors-filters{display:none}
  .subcontractor-company-list-panel{position:static;max-height:none}
  .subcontractor-detail-heading{flex-direction:column;gap:.8rem}
  .subcontractor-detail-actions>*{min-width:0}
  .subcontractor-panel-heading{align-items:flex-start;flex-direction:column}
  .subcontractor-panel-heading .btn{width:100%}
  .subcontractor-person-filters{grid-template-columns:minmax(0,1fr) minmax(0,.7fr)}
  .subcontractor-person-card{align-items:flex-start;flex-direction:column}
  .subcontractor-person-actions{width:100%}
  .subcontractor-person-actions>*{flex:1}
  .subcontractor-account-notice{grid-template-columns:1fr}
  .subcontractor-account-notice strong,.subcontractor-account-notice span,.subcontractor-account-notice a{grid-column:1;grid-row:auto}
  .subcontractor-account-footer{align-items:stretch;flex-direction:column}
  .subcontractor-account-footer a{width:100%;text-align:center}
}
@media(max-width:900px){.history-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.history-filters .btn{grid-column:1/-1}}
@media(max-width:640px){
  .history-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:8px 0 4px;padding:11px}
  .history-filters label{font-size:.73rem}
  .history-filters input,.history-filters select{min-height:46px;padding:8px;font-size:16px}
  .history-filters .btn{grid-column:1/-1;width:100%;min-height:46px}
  .offline-draft-row{align-items:stretch;flex-direction:column;gap:10px;padding:11px}
  .offline-draft-actions{display:grid;grid-template-columns:minmax(0,1fr) auto}
  .offline-draft-actions .btn{width:100%;min-height:44px}
  .offline-draft-actions .small-btn{min-height:44px}
  .history-pagination .btn{width:100%;min-height:46px}
}
@media(min-width:641px){
  .savebar{position:static;bottom:auto;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}
}
@media(max-width:640px){
  .app-shell.entry-editing .main{padding-bottom:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom) + 80px)}
  .app-shell.entry-editing #entryForm>.savebar{position:fixed;left:12px;right:12px;bottom:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom) + 7px);z-index:49;width:auto;max-width:700px;margin:0 auto;background:color-mix(in srgb,var(--card) 96%,transparent);border:1px solid var(--line);box-shadow:0 -6px 22px rgba(10,38,29,.14);visibility:visible;opacity:1;pointer-events:auto;transform:none;transition:none}
}

/* Search and manage large project, user, and dictionary collections. */
.dashboard-toolbar{display:grid;grid-template-columns:auto minmax(240px,1fr) auto;align-items:start;gap:14px;margin-bottom:18px}
.dashboard-toolbar .segmented{align-self:start}
.project-search,.admin-user-tools label,.dictionary-search{display:grid;min-width:0;gap:6px;color:var(--ink);font-size:.8rem;font-weight:750}
.project-search input,.admin-user-tools input,.admin-user-tools select,.dictionary-search input{min-width:0;min-height:46px;background:var(--card)}
.project-search small{color:var(--muted);font-size:.75rem;font-weight:500;line-height:1.35}
.project-search small[hidden]{display:none}
.project-search-empty{display:grid;justify-items:start;gap:12px;grid-column:1/-1;color:var(--muted)}
.admin-users-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:7px}
.admin-users-heading h2{margin:0;color:var(--ink);font-size:1.15rem}
.admin-users-heading .btn{min-height:42px}
.admin-users-heading .btn[aria-pressed="true"]{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--card));color:var(--danger)}
.admin-users-panel>p:not(.user-result-summary){max-width:760px;margin:0 0 18px;color:var(--muted);font-size:.88rem;line-height:1.5}
.admin-users-panel>p.user-removal-hint{max-width:none;padding:11px 13px;border-radius:10px;background:var(--surface-soft);color:var(--ink)}
.admin-user-tools{display:grid;grid-template-columns:minmax(0,2fr) minmax(190px,1fr) minmax(190px,1fr);gap:12px;align-items:end}
.user-result-summary{min-height:1.2em;margin:14px 2px 9px;color:var(--muted);font-size:.78rem}
.admin-users-panel .user-removed-filter{display:flex;align-items:center;gap:10px;min-height:44px;margin:12px 0 0;font-size:.88rem;cursor:pointer}
.user-removed-filter input[type=checkbox]{flex:0 0 20px;width:20px;min-height:20px;margin:0;accent-color:var(--accent)}
.user-list-item{align-items:center;padding:13px 14px}
.user-summary{min-width:0;flex:1}
.user-name-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.user-name-line strong{overflow-wrap:anywhere}
.user-summary p{overflow-wrap:anywhere}
.user-status{display:inline-flex;align-items:center;min-height:25px;padding:4px 9px;border-radius:999px;font-size:.69rem;font-weight:800;line-height:1}
.user-status.active{background:color-mix(in srgb,var(--ok) 13%,var(--card));color:var(--ok)}
.user-status.disabled{background:var(--surface-soft);color:var(--muted)}
.user-status.removed{background:color-mix(in srgb,var(--danger) 9%,var(--card));color:var(--danger)}
.user-list-item.is-removed{background:var(--surface-soft)}
.user-actions label{display:grid;gap:4px;color:var(--muted);font-size:.7rem}
.user-actions select{min-height:42px;padding:7px 10px;background:var(--surface-soft);color:var(--ink)}
.user-actions .user-remove-button{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));color:var(--danger)}
.user-actions .user-remove-button:hover{background:color-mix(in srgb,var(--danger) 8%,var(--card));border-color:var(--danger)}
.user-actions .small-btn{min-height:42px}
.dictionary-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.dictionary-panel-heading h2{margin:0}
.dict-count{flex:0 0 auto;padding:4px 8px;border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:.72rem;font-weight:750}
.dictionary-search{margin-bottom:12px;color:var(--muted);font-size:.76rem}
.dictionary-panel .dict-add{margin-bottom:12px}
.dictionary-panel .dict-items{max-height:min(46vh,360px);margin-top:0;padding:2px 4px 2px 0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.dictionary-item{align-items:center;min-width:0;padding:9px 10px}
.dictionary-item>span{flex:1;min-width:0;overflow-wrap:anywhere;word-break:normal;line-height:1.4}
.dictionary-item .small-btn{flex:0 0 auto;min-height:38px;padding:7px 10px;font-size:.76rem}
.dictionary-no-results{margin:4px 0;padding:10px;color:var(--muted);font-size:.82rem}
.dictionary-item[hidden]{display:none}
.dictionary-panel{padding:22px;border-radius:20px;box-shadow:none}
.dictionary-panel-heading{margin-bottom:14px}
.dictionary-panel-heading h2{margin:0;font-size:1.25rem;font-weight:700;letter-spacing:-.02em}
.dictionary-panel .dict-add{display:grid;gap:9px;margin:0;padding:15px;border-radius:16px;background:var(--surface-soft)}
.dict-add-title{display:block;color:var(--ink);font-size:.9rem;font-weight:650}
.dict-add-row{display:flex;align-items:center;gap:10px;min-width:0}
.dict-add-row input{min-width:0;min-height:46px;padding:10px 18px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:.92rem;font-weight:450}
.dict-add-row .dict-name-input{flex:1}
.dict-add-row .dict-name-input{min-width:145px}
.dict-add-row .dict-role-input{flex:0 1 160px}
.dict-add-row:has(.dict-role-input){display:grid;grid-template-columns:minmax(0,1fr) auto}
.dict-add-row:has(.dict-role-input) .dict-name-input{grid-column:1/-1}
.dict-add-row:has(.dict-role-input) .dict-role-input{grid-column:1;width:100%}
.dict-add-row:has(.dict-role-input) .dict-add-button{grid-column:2}
.dict-add-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:0 0 auto;min-height:46px;padding:10px 20px;border:0;border-radius:999px;background:#202124;color:#fff;font-weight:650;cursor:pointer}
.dict-add-button:hover{background:#383a3d}
.dictionary-divider{height:1px;margin:20px 0;border:0;background:var(--line)}
.dictionary-items-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.dictionary-items-heading h3{margin:0;font-size:.95rem;font-weight:650}
.dictionary-items-heading>span{color:var(--muted);font-size:.8rem;white-space:nowrap}
.dictionary-search-wrap{display:flex;align-items:center;gap:10px;min-height:52px;margin-bottom:14px;padding:4px 14px;border:1px solid var(--line);border-radius:999px;background:var(--card)}
.dictionary-search-wrap:focus-within{border-color:var(--brand2);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand2) 16%,transparent)}
.dictionary-search-wrap svg{width:19px;height:19px;flex:0 0 auto;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round}
.dictionary-search-input{min-width:0;min-height:42px;padding:8px 4px!important;border:0!important;border-radius:0!important;background:transparent!important;font-size:16px!important;font-weight:450!important;box-shadow:none!important}
.dictionary-search-input:focus{outline:0!important;border-color:transparent!important;box-shadow:none!important}
.dictionary-panel .dict-items{display:grid;gap:10px;max-height:none;margin-top:0;padding:0;overflow:visible;scrollbar-gutter:auto}
.dictionary-item{display:flex;align-items:center;min-height:66px;padding:10px 14px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.dictionary-item-display{display:flex;align-items:center;gap:12px;width:100%;min-width:0}
.dictionary-item-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.dictionary-edit-form{display:grid;gap:10px;width:100%;min-width:0}
.dictionary-edit-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,190px);gap:10px}
.dictionary-edit-fields label{display:grid;gap:6px;min-width:0;font-size:.82rem;font-weight:650}
.dictionary-edit-fields label:only-child{grid-column:1/-1}
.dictionary-edit-fields input{min-width:0;min-height:44px}
.dictionary-edit-note{margin:0;color:var(--muted);font-size:.78rem;line-height:1.4}
.dictionary-edit-feedback{margin:0;color:var(--danger);font-size:.83rem;font-weight:700}
.dictionary-edit-actions{display:flex;flex-wrap:wrap;gap:8px}
.dictionary-edit-actions .btn{min-height:42px}
.dictionary-item-name{display:flex;align-items:baseline;flex:1;flex-wrap:wrap;gap:4px 8px;min-width:0;overflow-wrap:anywhere;color:var(--ink);font-size:.9rem;font-weight:450}
.dictionary-item-name small{color:var(--muted);font-size:.78rem}
.dictionary-item-name em{color:var(--muted);font-size:.72rem;font-style:normal}
.dictionary-item .small-btn{min-height:38px;padding:7px 14px;border-radius:999px;background:var(--card);color:var(--muted);font-size:.78rem;font-weight:500}
.dictionary-item .small-btn:hover{border-color:var(--brand2);color:var(--ink)}
:root[data-theme="dark"] .dictionary-item .small-btn{background:var(--surface-soft);border-color:#465368;color:var(--ink)}
.dictionary-empty{padding:4px 0}
@media(max-width:900px){
  .dashboard-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:center}
  .project-search{grid-column:1/-1;grid-row:2}
  .admin-user-tools{grid-template-columns:minmax(0,1fr) minmax(170px,.75fr)}
}
@media(max-width:640px){
  .dashboard-toolbar{grid-template-columns:minmax(0,1fr);gap:10px;margin-bottom:14px}
  .dashboard-toolbar .segmented,.dashboard-toolbar>.btn{width:100%}
  .dashboard-toolbar .project-search{grid-column:1;grid-row:auto}
  .project-search input,.dictionary-search input{min-height:48px;font-size:16px}
  .admin-user-tools{grid-template-columns:minmax(0,1fr);gap:10px}
  .user-list-item{align-items:stretch}
  .user-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px}
  .user-actions label{min-width:0}
  .user-actions select{width:100%;min-width:0;min-height:46px;font-size:16px}
  .user-actions .small-btn{min-height:46px}
  .user-actions:has(.user-remove-button){grid-template-columns:repeat(2,minmax(0,1fr))}
  .user-actions:has(.user-remove-button) label{grid-column:1/-1}
  .user-actions:has(.user-remove-button) .small-btn{width:100%}
  .user-actions:has([data-user-restore]){grid-template-columns:minmax(0,1fr)}
  .user-actions [data-user-restore]{width:100%}
  .dictionary-item{flex-direction:row!important;align-items:center}
  .dictionary-item .small-btn{width:auto}
  .dictionary-item-display{align-items:flex-start;flex-direction:column}
  .dictionary-item-actions{width:100%;justify-content:flex-start}
  .dictionary-item-actions .small-btn{min-height:44px}
  .dictionary-edit-fields{grid-template-columns:minmax(0,1fr)}
  .dictionary-edit-actions .btn{flex:1 1 130px;min-height:44px}
  .dictionary-panel{padding:16px;border-radius:18px}
  .dict-add-row{display:grid;grid-template-columns:minmax(0,1fr) auto}
  .dict-add-row .dict-name-input{grid-column:1/-1}
  .dict-add-row .dict-role-input{grid-column:1/-1}
  .dict-add-button{grid-column:1/-1;width:100%}
  .dict-add-row:has(.dict-role-input) .dict-role-input,.dict-add-row:has(.dict-role-input) .dict-add-button{grid-column:1/-1}
  .dictionary-divider{margin:16px 0}
  .dictionary-search-wrap{min-height:54px}
}
.mobile-logout{display:none}
@media(max-width:640px){
  .topbar{gap:7px;padding-inline:12px}
  .topbar-title{flex:1;min-width:0}
  .topbar h1{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .topbar-actions{flex:0 0 auto;gap:5px}
  .user-chip{display:none}
  .mobile-logout{display:flex;width:44px;height:44px;flex:0 0 44px;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:2px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);color:var(--brand);cursor:pointer}
  .mobile-logout:hover,.mobile-logout:focus-visible{border-color:color-mix(in srgb,var(--danger) 34%,var(--line));background:color-mix(in srgb,var(--danger) 7%,var(--card));color:var(--danger)}
  .mobile-logout svg{display:block;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .mobile-logout span{display:none}
  .connection-popover{right:-49px;width:min(360px,calc(100vw - 24px));padding:14px}
}
@media(prefers-reduced-motion:reduce){
  .mic-btn.listening{animation:none;background:var(--danger);outline:2px solid var(--danger);outline-offset:3px}
  :root[data-theme="dark"] .mic-btn.listening{background:var(--danger);color:#111722}
}

/* Full-bleed construction photo with the sign-in card above it */
.login-view{position:relative;isolation:isolate;display:grid;place-items:center;min-height:100svh;padding:132px 20px 42px;overflow:hidden;background:var(--bg)}
.login-background{position:absolute;inset:0;z-index:0;overflow:hidden;background:#cdd3dd}
.login-background-image{width:100%;height:100%;object-fit:cover;object-position:66% center}
.login-background::after{position:absolute;inset:0;background:linear-gradient(90deg,rgba(244,246,249,.96) 0%,rgba(244,246,249,.84) 40%,rgba(244,246,249,.28) 100%),linear-gradient(0deg,rgba(244,246,249,.3),transparent 35%);content:""}
.login-brandbar{position:absolute;inset:0 0 auto;z-index:2;display:flex;align-items:center;height:100px;padding:0 clamp(22px,5.4vw,84px);overflow:hidden;border-bottom:1px solid rgba(41,54,79,.12);background:rgba(247,248,250,.84);backdrop-filter:blur(12px)}
.login-brandbar::after{position:absolute;top:0;right:clamp(28px,7vw,110px);width:150px;height:100%;background:linear-gradient(124deg,transparent 0 35%,#34445f 35% 57%,#d8dee7 57% 61%,#c64f12 61% 78%,transparent 78%);content:""}
.login-brandbar img{position:relative;z-index:1;width:250px;max-width:56vw;border-radius:2px}
.login-theme-toggle{position:absolute;top:25px;right:clamp(18px,3vw,40px);z-index:4;min-height:46px;background:var(--card);box-shadow:0 4px 14px rgba(9,32,25,.1)}
.login-card{position:relative;z-index:1;justify-self:center;align-self:center;width:min(646px,100%);padding:40px 50px 38px;background:color-mix(in srgb,var(--card) 94%,transparent);border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:17px;box-shadow:0 18px 50px rgba(41,54,79,.15);backdrop-filter:blur(13px)}
.login-card .auth-logo{width:290px;margin:0 0 36px}
.login-card-title{margin:0 0 14px;color:var(--brand);font-size:clamp(2rem,4vw,3.55rem);font-weight:800;line-height:1.06;letter-spacing:-.035em}
.login-card-subtitle{margin:0;color:var(--muted);font-size:clamp(1rem,1.8vw,1.35rem);line-height:1.45}
.login-card-accent{display:block;width:60px;height:4px;margin:20px 0 34px;background:var(--accent)}
.login-card .stack{margin-top:0;gap:16px}
.login-card label{gap:9px;color:var(--ink);font-size:.92rem}
.login-card select{min-height:52px;border-color:var(--line);background:color-mix(in srgb,var(--card) 84%,var(--surface-soft));color:var(--ink);font-size:1rem}
.login-card .btn.primary{min-height:56px;font-size:1rem}
.login-note{position:relative;margin:26px 0 0;padding-left:48px;font-size:.92rem;line-height:1.55}
.login-note::before{position:absolute;top:0;left:2px;display:grid;width:29px;height:29px;place-items:center;border:2px solid var(--brand2);border-radius:50%;color:var(--brand2);content:"i";font-size:1.06rem;font-weight:800;line-height:1}
.login-card #loginError{margin:8px 0 0;color:var(--danger)}
:root[data-theme="dark"] .login-background::after{background:linear-gradient(90deg,rgba(17,23,34,.94) 0%,rgba(17,23,34,.84) 42%,rgba(17,23,34,.38) 100%),linear-gradient(0deg,rgba(17,23,34,.24),transparent 35%)}
:root[data-theme="dark"] .login-brandbar{background:rgba(24,33,49,.84);border-color:rgba(255,255,255,.12)}
:root[data-theme="dark"] .login-card{box-shadow:0 20px 54px rgba(0,0,0,.32)}
:root[data-theme="dark"] .login-theme-toggle{box-shadow:0 4px 14px rgba(0,0,0,.2)}
@media(max-width:860px){
  .login-view{min-height:100svh;padding:96px 12px calc(22px + env(safe-area-inset-bottom))}
  .login-background-image{object-position:70% center}
  .login-background::after{background:linear-gradient(180deg,rgba(244,246,249,.76) 0%,rgba(244,246,249,.58) 34%,rgba(244,246,249,.78) 100%),linear-gradient(90deg,rgba(244,246,249,.4),rgba(244,246,249,.12))}
  .login-brandbar{height:68px;padding:0 18px}
  .login-brandbar::after{right:78px;width:92px;opacity:.82}
  .login-brandbar img{width:178px;max-width:52vw}
  .login-theme-toggle{top:max(11px,env(safe-area-inset-top));right:12px;width:46px;height:46px;min-height:46px;padding:0;border-color:rgba(255,255,255,.6);background:rgba(41,54,79,.82);color:#fff;box-shadow:none;backdrop-filter:blur(8px)}
  .login-theme-toggle .theme-toggle-label{display:none}
  .login-theme-toggle>span:first-child{color:#ffb181}
  .login-card{width:min(560px,100%);padding:28px 25px 25px;border-radius:16px;box-shadow:0 16px 40px rgba(41,54,79,.18)}
  .login-card .auth-logo{width:220px;margin-bottom:26px}
  .login-card-title{font-size:clamp(2rem,9vw,2.75rem)}
  .login-card-subtitle{font-size:1.02rem}
  .login-card-accent{margin:16px 0 25px}
  .login-card .stack{gap:14px}
  .login-card select{min-height:50px;font-size:16px}
  .login-card .btn.primary{min-height:52px;font-size:.94rem}
  .login-note{margin-top:20px;padding-left:40px;font-size:.82rem;line-height:1.5}
  .login-note::before{width:26px;height:26px}
  :root[data-theme="dark"] .login-background::after{background:linear-gradient(180deg,rgba(17,23,34,.68) 0%,rgba(17,23,34,.77) 48%,rgba(17,23,34,.86) 100%)}
  :root[data-theme="dark"] .login-card{box-shadow:0 16px 40px rgba(0,0,0,.36)}
}

/* Project controls stay aligned and compact across desktop and mobile. */
.dashboard-toolbar{align-items:center}
.dashboard-toolbar .segmented{align-self:center}
.dashboard-toolbar .project-search{align-self:stretch;align-content:center;gap:0}
.dashboard-toolbar .project-search input{min-height:48px}
.dashboard-toolbar>.btn{align-self:center;min-height:48px;white-space:nowrap}
.user-actions{align-items:flex-end}
.topbar-title{flex:1;min-width:0}
.topbar h1,.topbar p{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-shell.project-context .topbar p{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal}
.history-toolbar{display:flex;flex-direction:row;align-items:center;gap:10px}
.history-toolbar .upload-row{width:auto;align-items:center;flex-direction:row}
.history-toolbar #editProjectBtn{margin-left:auto;white-space:nowrap}
.project-danger-zone{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid color-mix(in srgb,var(--danger) 30%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--danger) 4%,var(--card))}
.project-danger-zone h3{margin:0 0 4px;font-size:.92rem;color:var(--danger)}
.project-danger-zone p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.4}
.btn.danger{background:var(--danger);color:#fff;white-space:nowrap}
.project-status-control{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}
.project-status-control>div{display:grid;gap:4px}
.project-status-control span{color:var(--muted);font-size:.75rem;font-weight:700}
.project-status-control strong{font-size:.9rem}
.project-dialog-card{max-height:min(90dvh,760px);overflow-y:auto;overscroll-behavior:contain}
#projectDialog,#editProjectDialog{width:min(720px,calc(100vw - 24px));max-width:calc(100vw - 24px);overflow:hidden}
#projectDialog .project-dialog-card,#editProjectDialog .project-dialog-card{width:100%;min-width:0;overflow-x:hidden}
.project-location-picker{display:grid;gap:10px;min-width:0;padding:16px;background:var(--surface-soft);border:1px solid var(--line);border-radius:14px}
.project-location-heading{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.project-location-heading strong{font-size:.93rem}
.project-location-heading span{font-size:.78rem;color:var(--muted)}
.project-location-hint{margin:0;color:var(--muted);font-size:.8rem;line-height:1.4}
.project-map-details{min-width:0;border-top:1px solid var(--line);padding-top:10px}
.project-map-details>summary{cursor:pointer;color:var(--brand);font-size:.85rem;font-weight:700}
.project-map-content{display:grid;gap:10px;min-width:0;margin-top:12px}
.project-url-options{font-size:.83rem}
.project-url-options summary{cursor:pointer;color:var(--muted);font-weight:700}
.project-url-options label{margin-top:10px}
.project-url-options small{display:block;margin-top:6px;color:var(--muted)}
.project-map-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.project-map-search .btn{min-height:44px}
.project-map{height:260px;min-height:220px;width:100%;border-radius:10px;overflow:hidden;background:var(--card);border:1px solid var(--line)}
.project-map .leaflet-control-attribution{font-size:10px}
.project-map-results{list-style:none;margin:0;padding:4px;display:grid;gap:3px;max-height:180px;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:10px}
.project-map-results li{margin:0;padding:0}
.project-map-results button{width:100%;padding:9px 11px;background:transparent;border:0;border-radius:7px;text-align:left;color:var(--ink);cursor:pointer;line-height:1.35}
.project-map-results button:hover,.project-map-results button:focus-visible{background:var(--surface-soft)}
.project-map-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.project-map-footer p{margin:0;font-size:.8rem;color:var(--muted);overflow-wrap:anywhere}
.project-map-footer p.is-error{color:var(--danger);font-weight:700}
.project-map-actions{display:flex;gap:8px;flex-wrap:wrap}
.project-map-actions .small-btn{font-size:.78rem;padding:8px 10px}
.project-map-manual{font-size:.82rem}
.project-map-manual summary{cursor:pointer;font-weight:700;color:var(--brand)}
.project-map-manual .grid2{margin-top:10px}
.project-location-picker button:focus-visible,.project-location-picker summary:focus-visible{outline:3px solid var(--brand2);outline-offset:2px}
#editProjectDialog{width:min(720px,calc(100vw - 24px));max-width:calc(100vw - 24px);overflow:hidden}
#editProjectDialog .project-dialog-card{width:100%;min-width:0;grid-template-columns:minmax(0,1fr);overflow-x:hidden}
.status-pill.pending{background:#fff2dc;color:#885b0a}
.status-pill.archived{background:var(--surface-soft);color:var(--muted)}
#logoutDialog{width:min(520px,calc(100vw - 24px));max-width:calc(100vw - 24px);padding:0;overflow:hidden;border-radius:16px}
.logout-dialog-card{width:100%;display:grid;gap:14px}
.logout-dialog-card h2,.logout-dialog-card p{margin:0}
.logout-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.logout-dialog-actions #logoutCancel{grid-column:1/-1;justify-self:start}
.logout-dialog-actions .btn{min-height:48px;white-space:normal;text-align:center}
@media(max-width:900px){
  .dashboard-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:center}
  .dashboard-toolbar>.segmented{grid-column:1/-1;grid-row:1}
  .dashboard-toolbar .project-search{grid-column:1;grid-row:2}
  .dashboard-toolbar>.btn{grid-column:2;grid-row:2}
}
@media(max-width:640px){
  .segmented:has([data-filter="ARCHIVED"]:not([hidden])){grid-template-columns:repeat(4,minmax(0,1fr))}
  .segmented:has([data-filter="ARCHIVED"]:not([hidden])) button{padding-inline:3px;font-size:.7rem}
  .logout-dialog-card{padding:20px}
  .logout-dialog-actions{grid-template-columns:1fr}
  .logout-dialog-actions #logoutCancel{grid-column:1;justify-self:stretch}
  .dashboard-toolbar{grid-template-columns:minmax(0,1fr) auto;gap:10px}
  .dashboard-toolbar .segmented{grid-column:1/-1;grid-row:1;width:100%}
  .dashboard-toolbar .project-search{grid-column:1;grid-row:2;min-width:0}
  .dashboard-toolbar>.btn{grid-column:2;grid-row:2;width:auto;padding-inline:12px}
  .history-toolbar{align-items:center!important;flex-direction:row!important;gap:8px}
  .history-toolbar .upload-row{width:auto!important;min-width:0;flex:1 1 0}
  .history-toolbar .upload-row>*{width:100%;min-width:0;padding-inline:8px;white-space:nowrap;font-size:.84rem}
  .history-toolbar #editProjectBtn{width:auto;min-width:0;padding-inline:10px;font-size:.82rem}
  .app-shell.project-context .topbar p{max-width:100%;font-size:.64rem;line-height:1.15}
  .project-danger-zone{grid-template-columns:minmax(0,1fr);gap:10px}
  .project-danger-zone .btn{width:100%}
  .project-dialog-card{max-height:calc(100svh - 32px);padding:18px}
  .project-location-picker{padding:12px}
  .project-map{height:220px}
  .project-map-search{grid-template-columns:minmax(0,1fr)}
  .project-map-search .btn{width:100%}
  .project-map-actions{width:100%}
  .project-map-actions .small-btn{flex:1 1 130px;min-height:40px}
}
@media(max-width:380px){
  .dashboard-toolbar{grid-template-columns:minmax(0,1fr)}
  .dashboard-toolbar .project-search,.dashboard-toolbar>.btn{grid-column:1;grid-row:auto}
  .dashboard-toolbar>.btn{width:100%}
}
.history-admin-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.history-admin-actions .btn{min-height:46px}
.history-toolbar #editProjectBtn{margin-left:0}
.project-access-content{display:grid;gap:10px}
.project-access-content>label{display:grid;gap:6px;min-width:0;font-size:.86rem;font-weight:700}
.project-access-content input[type=search]{width:100%;min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font:inherit}
.project-access-content input[type=search]:focus-visible{outline:3px solid var(--brand2);outline-offset:2px}
.project-access-content #projectAccessSummary{margin:0;color:var(--muted);font-size:.8rem}
.project-access-users{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.project-access-user{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 13px;border-bottom:1px solid var(--line)}
.project-access-user:last-child{border-bottom:0}
.project-access-person{display:grid;min-width:0;gap:4px}
.project-access-person-heading{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.project-access-person-heading strong,.project-access-person small{overflow-wrap:anywhere}
.project-access-person small{color:color-mix(in srgb,var(--muted) 88%,var(--ink));font-size:.78rem}
.project-access-assigned{padding:3px 7px;border-radius:6px;background:var(--surface-soft);color:var(--ink);font-size:.72rem;font-weight:700}
.project-access-user .small-btn{min-height:44px;white-space:nowrap}
.project-access-unavailable{color:var(--muted);font-size:.78rem}
.project-access-empty{margin:0;padding:16px;color:var(--muted);font-size:.88rem}
.project-access-feedback{margin:0;color:var(--muted);font-size:.84rem}
.project-access-feedback:empty{display:none}
.project-access-feedback.is-error{color:var(--danger);font-weight:700}
@media(max-width:640px){
  .history-toolbar{flex-wrap:wrap}
  .history-toolbar .upload-row{flex:1 1 120px}
  .history-admin-actions{flex:0 0 auto}
  .history-admin-actions{gap:6px}
  .history-admin-actions .btn{min-height:44px;padding-inline:9px;font-size:.79rem}
  .project-access-user{grid-template-columns:minmax(0,1fr)}
  .project-access-user .small-btn{justify-self:start}
}

/* Scanner controls remain the same size in both rows on compact phones. */
@media(max-width:640px){
  .scanner-dialog .scanner-camera-controls,.scanner-dialog .scanner-edit-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(62px,auto);align-items:stretch;gap:8px}
  .scanner-dialog .scanner-controls>*{min-width:0;flex:none}
  .scanner-dialog .scanner-picker{position:relative;display:block;min-width:0}
  .scanner-dialog .scanner-picker span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .scanner-dialog .scanner-picker select{display:block;width:100%;height:100%;min-height:62px;padding:8px 26px 8px 10px;text-overflow:ellipsis;font-size:.9rem;font-weight:750}
  .scanner-dialog .scanner-controls .btn,.scanner-dialog .scanner-controls .scanner-file{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:62px;padding:8px;text-align:center;font-size:.9rem;line-height:1.2}
  .scanner-dialog .scanner-pdf-controls{display:block;margin-top:12px}
  .scanner-dialog .scanner-pdf-controls .btn{min-height:54px}
}

#entryForm .grid4>label{min-width:0}
#entryForm input[type="date"]{display:block;min-width:0;width:100%;max-width:100%;box-sizing:border-box}
.scanner-camera-controls{margin-top:12px}
.scanner-frozen-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#202431}
.scanner-frozen-frame[hidden]{display:none}

.history-filters,.history-filters>label,#entryForm .panel,#entryForm label{min-width:0}
.history-filters input,.history-filters select,#entryForm input,#entryForm select,#entryForm textarea{box-sizing:border-box;min-width:0;max-width:100%}
.history-filters input[type="date"]{display:block;width:100%;max-width:100%;min-width:0}
.history-filters select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#entryForm label,.history-filters>label{grid-template-columns:minmax(0,1fr)}
.scanner-workspace #scannerLiveResult{background:#fff;box-shadow:0 1px 5px #0002;touch-action:auto;cursor:default}
@media(max-width:640px){.history-filters>label:nth-child(-n+2){grid-column:1/-1}}
/* Project workspace and quick journal */
.hub-head{display:grid;grid-template-columns:minmax(190px,260px) 1fr;gap:22px;align-items:center}.hub-cover,.project-card-cover{overflow:hidden;background:var(--surface-soft);color:var(--muted);display:grid;place-items:center}.hub-cover{height:180px;border-radius:12px}.hub-cover img,.project-card-cover img{width:100%;height:100%;object-fit:cover}.hub-heading h2{margin:12px 0 4px;font-size:1.45rem;letter-spacing:-.025em}.hub-heading p{margin:0 0 16px;color:var(--muted)}.hub-dates{display:flex;flex-wrap:wrap;gap:18px;font-size:.86rem}.hub-dates span{display:grid;gap:2px;color:var(--muted)}.hub-dates strong{color:var(--ink)}.hub-actions,.feature-heading,.feature-file-actions,.inline-form{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.hub-actions{margin:16px 0 20px;justify-content:flex-start}.hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}.hub-tile,.method-list button{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:14px;min-height:112px;padding:18px;text-align:left;cursor:pointer;display:grid;align-content:center;gap:7px;box-shadow:0 5px 16px rgba(37,49,72,.05)}.hub-tile:hover,.method-list button:hover{border-color:var(--brand2);transform:translateY(-2px)}.hub-tile strong,.method-list strong{font-size:1.02rem}.hub-tile span,.method-list span{color:var(--muted);font-size:.87rem}.hub-latest-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer}.hub-latest-row span{color:var(--muted);font-size:.85rem}.project-card-cover{height:110px;margin:-22px -22px 14px;border-radius:17px 17px 0 0}.project-card-dates{font-size:.78rem;color:var(--muted);margin:12px 0 4px}.feature-heading{margin:6px 0 18px}.feature-heading h2{margin:0;font-size:1.3rem;letter-spacing:-.02em}.feature-filters{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1fr);gap:12px;margin-bottom:16px}.method-list{display:grid;gap:14px;max-width:700px}.method-list button{min-height:96px}.feature-note{background:var(--surface-soft);padding:12px 14px;border-radius:10px;color:var(--muted);font-size:.86rem}.feature-form{display:grid;gap:16px;max-width:760px}.feature-form textarea{min-height:100px}.feature-form button[type=submit],.feature-form>.btn.primary{justify-self:start;min-width:180px}.feature-files{display:flex;flex-wrap:wrap;gap:8px}.feature-files span{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;padding:7px 10px;font-size:.82rem}.entry-detail dl{display:grid;grid-template-columns:minmax(120px,180px) 1fr;margin:16px 0 24px}.entry-detail dt,.entry-detail dd{margin:0;border-bottom:1px solid var(--line);padding:8px 0}.entry-detail dt{color:var(--muted)}.entry-detail h3{margin-top:22px}.people-list,.time-list,.task-list{display:grid;gap:12px}.person-row,.time-row{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin:0}.person-row>div:first-child,.time-row>div:first-child{display:grid;gap:4px}.person-row small,.time-row small{color:var(--muted)}.person-controls,.time-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.person-controls input:not([type=checkbox]),.person-controls select{max-width:190px}.person-controls label{display:flex;align-items:center;white-space:nowrap}.person-controls input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--accent)}.report-summary{display:flex;gap:20px;margin-bottom:20px}.report-summary>div{display:grid;gap:3px;padding:15px;background:var(--surface-soft);border-radius:12px}.report-summary strong{font-size:1.35rem}.report-summary span{font-size:.83rem;color:var(--muted)}#legacyCorrectionPanel{grid-column:1/-1}#journalRows tr[data-entry]{cursor:pointer}#journalRows tr[data-entry]:hover td{background:var(--surface-soft)}
@media(max-width:900px){.hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.person-row,.time-row{flex-direction:column}.person-controls,.time-actions{justify-content:flex-start;width:100%}}
@media(max-width:640px){.hub-head{grid-template-columns:1fr}.hub-cover{height:150px}.hub-grid{grid-template-columns:1fr 1fr;gap:9px}.hub-tile{min-height:100px;padding:13px}.hub-tile strong{font-size:.9rem}.hub-tile span{font-size:.76rem}.hub-actions>*{width:100%}.feature-filters{grid-template-columns:1fr}.hub-latest-row{display:grid}.feature-heading{align-items:stretch}.feature-heading .btn{width:100%}.entry-detail dl{grid-template-columns:110px 1fr;font-size:.83rem}.report-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px}.person-controls input:not([type=checkbox]),.person-controls select{max-width:100%;width:100%}.person-controls .small-btn{flex:1}.feature-file-actions>.btn{flex:1}}
.entry-photo{display:grid;gap:8px;width:130px;min-height:115px;justify-items:center;white-space:normal;overflow-wrap:anywhere}.entry-photo img{width:100%;height:82px;object-fit:cover;border-radius:7px}.person-check{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;margin:4px 6px 4px 0;border:1px solid var(--line);border-radius:8px}.person-check input{width:18px;min-height:18px}.task-list details{margin-top:12px}.task-list details .small-btn{margin-top:8px}
@media(max-width:640px){.app-shell.feature-context .sidebar{display:none}.app-shell.feature-context .main{padding-bottom:calc(env(safe-area-inset-bottom) + 14px)}}
.media-preview-dialog{width:min(960px,96vw);height:min(850px,92vh);max-width:96vw;max-height:92vh;background:var(--card);color:var(--ink);padding:12px;overflow:hidden}.media-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.media-preview-head strong{overflow-wrap:anywhere}#mediaPreviewBody{height:calc(100% - 58px);display:grid;place-items:center}#mediaPreviewBody iframe,#mediaPreviewBody img{width:100%;height:100%;border:0;object-fit:contain}
.media-preview-dialog.image-preview{height:auto;max-height:92vh}.media-preview-dialog.image-preview #mediaPreviewBody{height:auto;max-height:calc(92vh - 68px)}.media-preview-dialog.image-preview img{width:auto;height:auto;max-width:100%;max-height:calc(92vh - 68px)}
.rate-dialog{width:min(560px,96vw);max-height:90vh;overflow:auto}.rate-dialog .dialog-card{width:100%}.rate-dialog .row-head h2{margin:0}
.people-helper{margin:0 0 16px;color:var(--muted);font-size:.88rem;line-height:1.45}
.person-controls .person-field{display:grid;gap:5px;min-width:175px;color:var(--muted);font-size:.78rem;font-weight:600;white-space:normal}
.person-controls .person-field input,.person-controls .person-field select{width:100%;max-width:none;color:var(--ink);font-size:.9rem;font-weight:400}
.person-controls .person-availability{align-self:end;min-height:44px}
@media(max-width:640px){.person-controls .person-field{width:100%}.person-controls .person-availability{align-self:auto}}
.feature-worker-list{display:grid;gap:8px;margin:0;padding:14px;border:1px solid var(--line);border-radius:12px;max-height:220px;overflow:auto}.feature-worker-list legend{padding:0 5px;font-weight:700}.feature-worker-list label{display:flex;align-items:center;gap:9px;font-weight:400}.feature-worker-list input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--accent)}
.time-overview{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:14px;margin-bottom:16px}.time-overview>label{display:grid;gap:5px;font-weight:700}.time-overview-counts{display:flex;flex-wrap:wrap;gap:9px}.time-overview-counts span{display:grid;min-width:105px;padding:9px 12px;background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:.8rem}.time-overview-counts strong{font-size:1.25rem;color:var(--ink)}

/* Photo selection before upload */
.photo-crop-dialog{width:min(850px,96vw);max-width:96vw;max-height:94vh;padding:0;background:var(--card);color:var(--ink);overflow:auto}
.photo-crop-card{padding:22px;display:grid;gap:14px}
.photo-crop-card h2{margin:0 0 5px;font-size:1.3rem}
.photo-crop-card header p{margin:0;color:var(--muted);font-size:.9rem}
.photo-crop-workspace{min-height:180px;display:grid;place-items:center;padding:12px;border-radius:12px;background:var(--surface-soft)}
.photo-crop-workspace canvas{max-width:100%;max-height:56vh;touch-action:none;cursor:move;box-shadow:0 8px 24px rgba(20,28,43,.2)}
.photo-crop-workspace canvas:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.photo-crop-card #photoCropSize{margin:0}
.photo-crop-actions,.photo-crop-actions>div{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.photo-crop-actions{justify-content:space-between}
.photo-crop-actions>div{justify-content:flex-end}
.photo-crop-actions .btn:disabled{opacity:.55;cursor:wait}
.project-card-cover,.hub-cover{position:relative}
.project-card-cover img.default-cover,.hub-cover img.default-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#fff}
.project-card-cover{height:150px}
.project-card-cover img.default-cover{object-position:center 43%}
.hub-cover img.default-cover{object-position:center}
.hub-head.no-cover{grid-template-columns:1fr}
@media (max-width:900px), (hover:none) and (pointer:coarse){.project-card-cover,.hub-cover{display:none!important}}
@media(max-width:640px){.photo-crop-card{padding:16px}.photo-crop-actions,.photo-crop-actions>div{width:100%}.photo-crop-actions .btn{flex:1}.photo-crop-actions>div #photoCropSave{flex-basis:100%}}

/* High-resolution TECHMEKO banner */
.auth-logo{width:min(340px,100%);height:auto}
.login-card .auth-logo{width:min(450px,100%);margin-bottom:30px}
.login-brandbar img{width:min(455px,62vw);max-width:none;height:auto}
.brand img{max-width:205px;height:auto;border-radius:3px}

/* One predictable mobile back action across project screens. */
.mobile-back{display:none}
@media(max-width:640px){
  .topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;row-gap:4px}
  .topbar-title{grid-column:1;grid-row:1;min-width:0}
  .topbar-actions{grid-column:2;grid-row:1;display:flex;align-items:center;min-width:0;gap:5px}
  .topbar .theme-toggle{width:44px;min-width:44px;height:44px;min-height:44px;flex:0 0 44px;padding:0}
  .topbar .connection-indicator{width:44px;height:44px;flex:0 0 44px}
  .mobile-back:not([hidden]){grid-column:1;grid-row:1;display:inline-flex;align-items:center;justify-self:start;min-height:44px;padding:7px 10px;border:0;border-radius:9px;background:var(--surface-soft);color:var(--brand);font-size:.86rem;font-weight:800;cursor:pointer}
  .app-shell.has-mobile-back .topbar-title{display:block;grid-column:1/-1;grid-row:2}
  .app-shell.has-mobile-back .topbar-title h1{font-size:1rem;line-height:1.25;overflow-wrap:anywhere}
  .app-shell.has-mobile-back .topbar-title p{display:block;margin-top:2px;font-size:.72rem;line-height:1.35;overflow-wrap:anywhere}
  .app-shell.has-mobile-back .topbar{align-items:start}
  .app-shell.has-mobile-back .topbar-actions{grid-row:1;grid-column:2}
  .app-shell.has-mobile-back .mobile-back:not([hidden]){grid-column:1;grid-row:1}
  #featureBack,#entryListBack,#correctionBack,#backBtn{display:none}
  .project-banner>div,.project-banner .status-pill{grid-row:1}
  .login-brandbar img{width:min(255px,64vw)}
  .login-card .auth-logo{width:min(330px,100%);margin-bottom:24px}
}

/* Show the first missing report field without hiding Save. */
#entryForm [aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 16%,transparent)}
#entryForm .entry-field-error{display:block;color:var(--danger);font-size:.8rem;font-weight:700;line-height:1.35}

/* One return action per project/report view; project settings close within their dialog. */
.view-return{margin-bottom:16px}
.view-return .btn{min-height:44px}
.view-return .btn:focus-visible,.dialog-close:focus-visible{outline:3px solid var(--brand2);outline-offset:2px}
#editProjectDialog .project-dialog-card{position:relative}
#editProjectDialog #editProjectTitle{padding-right:52px}
.dialog-close{position:absolute;top:15px;right:15px;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);color:var(--ink);cursor:pointer}
.dialog-close:hover{background:var(--line)}
.dialog-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
@media(max-width:640px){
  .topbar{height:auto;min-height:0;padding-block:8px 10px}
  .view-return{display:none}
  .app-shell.report-context .main{padding-bottom:env(safe-area-inset-bottom)}
  .app-shell.entry-editing .main{padding-bottom:calc(env(safe-area-inset-bottom) + 90px)}
  .app-shell.entry-editing #entryForm>.savebar{bottom:calc(env(safe-area-inset-bottom) + 8px)}
}
#entryForm label.check{flex-wrap:wrap}
#entryForm label.check .entry-field-error{flex-basis:100%;padding-left:28px}
#entryForm label{scroll-margin-top:130px;scroll-margin-bottom:160px}
.employee-admin-panel { display: grid; gap: 1rem; }
.employee-create-form, .employee-admin-filters { display: grid; grid-template-columns: minmax(12rem, 2fr) minmax(10rem, 1fr) auto; align-items: end; gap: .8rem; }
.employee-admin-filters { grid-template-columns: minmax(14rem, 2fr) minmax(13rem, 1fr) minmax(11rem, .8fr); }
.employee-create-form label, .employee-admin-filters label, .employee-admin-row label { display: grid; gap: .35rem; }
.employee-admin-list { display: grid; gap: .65rem; }
.employee-admin-row { display: grid; grid-template-columns: minmax(12rem, 1.1fr) minmax(13rem, 1.3fr) auto; align-items: center; gap: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: 12px; background: var(--card); }
.employee-admin-identity { display: grid; gap: .3rem; }
.employee-admin-identity span { color: var(--muted); font-size: .85rem; }
.employee-admin-identity em { color: var(--danger); font-size: .8rem; font-style: normal; }
.employee-admin-identity em.conflict { color: #9a5a00; }
.employee-admin-actions .danger { color: var(--danger); }
.employee-admin-actions { display: flex; flex-wrap: wrap; gap: .35rem; }
.employee-history { grid-column: 1 / -1; padding: .6rem 1rem; border-radius: 8px; background: var(--bg); }
.project-manager-settings { display: grid; gap: .6rem; padding: 1rem 0; border-top: 1px solid var(--line); }
.project-manager-settings h3, .project-manager-settings p { margin: 0; }
.project-designer-options{margin:0;padding:12px;border:1px solid var(--line);border-radius:10px;display:grid;gap:10px;min-width:0}
.project-designer-options legend{font-size:.86rem;font-weight:700;padding-inline:4px}
.project-designer-options label{min-height:32px;overflow-wrap:anywhere}
#projectGroupsDialog{width:min(720px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100svh - 24px);padding:0;overflow:auto;overscroll-behavior:contain}
.project-groups-card{width:100%;min-width:0;max-height:calc(100svh - 24px);overflow-y:auto;overscroll-behavior:contain}
.project-groups-card h2,.project-groups-card h3,.project-groups-card p{margin-top:0}
.project-groups-card .row-head{align-items:flex-start}
.project-groups-list{display:grid;gap:.6rem;min-width:0}
.project-group-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-width:0;padding:.8rem .9rem;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft)}
.project-group-summary{display:grid;gap:.25rem;min-width:0;overflow-wrap:anywhere}
.project-group-summary span,.project-group-member-row small{color:var(--muted);font-size:.82rem}
.project-group-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.45rem;flex:0 0 auto}
.project-group-delete{color:var(--danger)}
.project-group-editor{display:grid;gap:.75rem;min-width:0;padding-top:.6rem}
.project-group-editor h3{margin:0}
.project-group-editor>label{display:grid;gap:.4rem}
.project-group-candidates{max-height:min(36dvh,300px);overflow:auto;overscroll-behavior:contain}
.project-group-member-row{display:flex;align-items:flex-start;gap:.6rem;min-width:0;padding:.45rem .25rem;border-bottom:1px solid var(--line);cursor:pointer}
.project-group-member-row:last-child{border-bottom:0}
.project-group-member-row input{flex:0 0 auto;margin-top:.18rem}
.project-group-member-row>span{display:grid;gap:.15rem;min-width:0;overflow-wrap:anywhere}
.project-group-member-row small{line-height:1.4;font-weight:500}
.project-group-member-row.unavailable{opacity:.88}
.project-group-editor button:focus-visible,#projectGroupsDialog button:focus-visible,#projectGroupsDialog input:focus-visible{outline:3px solid var(--brand2);outline-offset:2px}
.project-group-editor [role=alert],#projectGroupsFeedback.is-error,#projectGroupEditorFeedback.is-error{color:var(--danger)}
.attendance-candidate-results { display: grid; gap: .45rem; }
.attendance-candidate { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .7rem .8rem; border: 1px solid var(--line); border-radius: 9px; }
.attendance-candidate > div { display: grid; gap: .25rem; }
.attendance-candidate small { color: var(--muted); }
@media (max-width: 780px) {
  .employee-create-form, .employee-admin-filters { grid-template-columns: 1fr; }
  .employee-admin-row { grid-template-columns: 1fr; gap: .8rem; }
  .employee-admin-actions .danger { color: var(--danger); }
.employee-admin-actions { justify-content: flex-start; }
  .employee-history { grid-column: auto; overflow-wrap: anywhere; }
  .attendance-candidate { align-items: flex-start; flex-direction: column; }
}
@media(max-width:560px){#projectGroupsDialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100svh - 16px)}.project-groups-card{max-height:calc(100svh - 16px);padding:16px}.project-group-row{align-items:stretch;flex-direction:column;gap:.65rem}.project-group-actions{justify-content:flex-start}.project-group-actions .small-btn{min-height:42px}.project-group-editor .dialog-actions{display:grid;grid-template-columns:1fr 1fr}.project-group-editor .dialog-actions button{min-height:44px}}
.timeline-filters{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;align-items:end;gap:12px;margin-bottom:12px;padding:14px}.timeline-filters label{display:grid;gap:6px;color:var(--muted);font-size:.8rem;font-weight:650}.timeline-filters input,.timeline-filters select{width:100%;min-width:0;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--ink);font:inherit}.timeline-table{table-layout:fixed}.timeline-table th:first-child{width:120px}.timeline-table th:nth-child(2){width:270px}.timeline-table tbody>tr>th{vertical-align:top;white-space:nowrap}.timeline-weather,.timeline-events{vertical-align:top}.timeline-weather{display:grid;gap:5px}.timeline-weather span,.timeline-weather small{display:block;color:var(--muted);font-size:.8rem;line-height:1.45}.timeline-event{display:grid;width:100%;gap:6px;margin:0 0 8px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);color:var(--ink);text-align:left;cursor:pointer}.timeline-event:hover{border-color:var(--brand2)}.timeline-event-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}.timeline-event small{color:var(--muted);font-size:.78rem}.timeline-event>span:last-child{overflow-wrap:anywhere}.timeline-event:last-child{margin-bottom:0}
@media(max-width:760px){.timeline-filters{grid-template-columns:1fr 1fr}.timeline-filters label:nth-child(3),.timeline-filters button{grid-column:1/-1}.timeline-table thead{display:none}.timeline-table,.timeline-table tbody,.timeline-table tr,.timeline-table th,.timeline-table td{display:block;width:100%}.timeline-table tbody>tr{padding:13px 0;border-bottom:1px solid var(--line)}.timeline-table tbody>tr>th{padding:5px 8px;font-size:1rem}.timeline-table tbody>tr>td{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;padding:8px}.timeline-table tbody>tr>td::before{content:attr(data-label);color:var(--muted);font-size:.76rem;font-weight:700}.timeline-event-head{display:grid;gap:3px}.timeline-event{padding:10px}.timeline-table th:first-child,.timeline-table th:nth-child(2){width:auto}}

.user-company-field { min-width: 13rem; }
.user-company-field[hidden] { display: none; }
.subcontractor-report-row { border: 1px solid var(--line); border-radius: .75rem; padding: 1rem; background: var(--surface); }
.subcontractor-person-list { display: grid; gap: .5rem; margin-top: .75rem; }
.subcontractor-report-row { display: grid; gap: .85rem; margin-bottom: .75rem; }
.subcontractor-report-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.subcontractor-roster-error { color: var(--danger); }
#subcontractorRosterStatus .small-btn { margin-inline-start: .5rem; }
.subcontractor-person-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: .5rem 1rem; min-width: 0; margin: 0; padding: .75rem; border: 1px solid var(--line); border-radius: .5rem; }
.subcontractor-person-check { display: flex; align-items: center; gap: .5rem; min-width: 0; }
.subcontractor-person-check > span { flex: 1; overflow-wrap: anywhere; }
.subcontractor-person-check > input[type="checkbox"] { flex: 0 0 20px; width: 20px; min-width: 20px; height: 20px; min-height: 20px; margin: 0; }
.report-weather { display: grid; gap: .65rem; }
.report-weather-period { display: grid; gap: .2rem; }
.report-weather small { color: var(--muted); line-height: 1.5; }
.legacy-subcontractors { margin-top: .75rem; padding: .85rem; border-radius: .6rem; background: var(--bg); }
.legacy-subcontractors h4 { margin: 0 0 .4rem; }
@media (max-width: 680px) {
  .subcontractor-person-options { grid-template-columns: minmax(0, 1fr); }
}

/* Equipment cards and site register. */
.equipment-admin-panel,.equipment-assignment-panel,.equipment-register-section{display:grid;gap:1rem}
.equipment-admin-panel .row-head p{margin:.35rem 0 0}
.equipment-card-form,.equipment-assignment-panel form{display:grid;gap:.85rem;padding:1rem;background:var(--surface-soft);border-radius:12px}
.equipment-card-fields,.equipment-assignment-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}
.equipment-card-fields .equipment-notes,.equipment-assignment-reason{grid-column:span 2}
.equipment-card-fields textarea{min-height:76px}
.equipment-form-actions,.equipment-card-actions,.equipment-register-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.equipment-form-actions>span{color:var(--muted);font-size:.85rem}
.equipment-list-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-bottom:1px solid var(--line);padding-bottom:.55rem}
.equipment-list-head h3{margin:0;color:var(--ink)}
.equipment-list-head span{color:var(--muted);font-size:.83rem}
.equipment-admin-list,.equipment-register-list{display:grid;gap:.6rem}
.equipment-card-item,.equipment-register-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem 1rem;padding:.8rem .95rem;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.equipment-card-item.is-inactive{opacity:.72}
.equipment-card-item>div:first-child,.equipment-register-main{display:grid;gap:.18rem;min-width:0}
.equipment-card-item small,.equipment-register-main span,.equipment-register-main small{color:var(--muted);font-size:.82rem;overflow-wrap:anywhere}
.equipment-card-item p{margin:.25rem 0 0;font-size:.84rem;overflow-wrap:anywhere}
.equipment-card-history,.equipment-assignment-history{grid-column:1/-1;padding:.6rem .8rem;border-radius:10px;background:var(--surface-soft)}
.equipment-audit-row{display:grid;gap:.18rem;padding:.55rem 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.equipment-audit-row:last-child{border-bottom:0}
.equipment-audit-row span,.equipment-audit-row small{font-size:.78rem;color:var(--muted)}
.equipment-audit-row p{margin:.15rem 0;font-size:.84rem}
.equipment-register-toolbar{display:flex;align-items:end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.equipment-register-toolbar label{min-width:12rem}
.equipment-register-toolbar>span{font-weight:700;color:var(--brand)}
@media(max-width:1050px){.equipment-card-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.equipment-assignment-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.equipment-card-fields,.equipment-assignment-fields{grid-template-columns:1fr}.equipment-card-fields .equipment-notes,.equipment-assignment-reason{grid-column:auto}.equipment-card-item,.equipment-register-row{grid-template-columns:1fr}.equipment-card-actions,.equipment-register-actions{justify-content:flex-start}.equipment-form-actions .btn{flex:1 1 100%}.equipment-register-toolbar label{width:100%}}

/* Numbered equipment and quantity based materials. */
.inventory-panel{display:grid;gap:1.15rem;min-width:0}
.inventory-panel .row-head{align-items:start;gap:1rem}
.inventory-panel .row-head p{margin:.35rem 0 0;max-width:62ch}
.inventory-count{white-space:nowrap;color:var(--muted);font-size:.85rem}
.inventory-card-details summary{display:inline-flex;align-items:center;min-height:2.5rem;padding:.5rem .85rem;border:1px solid var(--line);border-radius:10px;cursor:pointer;color:var(--brand);font-weight:700}
.inventory-card-details[open] summary{margin-bottom:.7rem}
.inventory-card-form{display:grid;gap:1rem;padding:1rem;background:var(--surface-soft);border:1px solid var(--line);border-radius:12px}
.inventory-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
.inventory-fields label{min-width:0}
.inventory-fields .inventory-wide{grid-column:span 2}
.inventory-fields textarea{min-height:76px}
.inventory-form-actions,.inventory-row-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.inventory-form-actions [role=status]{font-size:.82rem;color:var(--muted)}
.inventory-scroll-hint{margin:0;color:var(--muted);font-size:.78rem}
.inventory-table-scroll{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:12px}
.inventory-table{border-collapse:collapse;min-width:1550px;width:100%;font-size:.84rem;background:var(--card)}
.inventory-table th,.inventory-table td{text-align:left;vertical-align:top;padding:.7rem .65rem;border-bottom:1px solid var(--line);border-right:1px solid var(--line);overflow-wrap:normal}
.inventory-table th:first-child{min-width:8rem}.inventory-table th:nth-child(2){min-width:13rem}.inventory-table th:nth-child(6){min-width:11rem}.inventory-table th:last-child{min-width:13rem}
.inventory-table th:last-child,.inventory-table td:last-child{border-right:0}
.inventory-table thead{background:var(--surface-soft)}
.inventory-table thead th{font-weight:700;color:var(--ink);white-space:normal}
.inventory-table tbody tr:last-child td{border-bottom:0}
.inventory-table tbody tr:hover{background:var(--surface-soft)}
.inventory-table td:first-child{font-weight:700;color:var(--brand)}
.inventory-table td small{display:block;color:var(--muted);margin-top:.18rem}
.inventory-table td:nth-last-child(2){min-width:8rem}
.inventory-inactive{opacity:.65}
.inventory-action{margin-top:.6rem;min-width:11rem}
.inventory-action summary{cursor:pointer;color:var(--brand);font-weight:700}
.inventory-action form{display:grid;gap:.7rem;margin-top:.7rem;padding:.8rem;background:var(--surface-soft);border-radius:10px;min-width:20rem}
.inventory-action .inventory-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.inventory-action .inventory-fields .inventory-wide{grid-column:1/-1}
.inventory-history{margin-top:.6rem;padding:.65rem;background:var(--surface-soft);border-radius:10px;min-width:16rem}
@media(max-width:950px){.inventory-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
  .inventory-scroll-hint{display:none}
  .inventory-panel .row-head{display:block}.inventory-count{display:block;margin-top:.35rem}
  .inventory-fields,.inventory-action .inventory-fields{grid-template-columns:1fr}
  .inventory-fields .inventory-wide,.inventory-action .inventory-fields .inventory-wide{grid-column:1}
  .inventory-table-scroll{overflow:visible;border:0}
  .inventory-table{display:block;min-width:0;background:transparent}
  .inventory-table thead{display:none}
  .inventory-table tbody{display:grid;gap:.75rem}
  .inventory-table tr{display:grid;border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden}
  .inventory-table td{display:grid;grid-template-columns:minmax(8rem,38%) minmax(0,1fr);gap:.6rem;padding:.52rem .75rem;border-right:0}
  .inventory-table td:last-child{border-bottom:0}
  .inventory-table td::before{content:attr(data-label);color:var(--muted);font-size:.76rem;font-weight:600}
  .inventory-table td:first-child{background:var(--surface-soft)}
  .inventory-table td:last-child{display:block}
  .inventory-table td:last-child::before{display:block;margin-bottom:.5rem}
  .inventory-action,.inventory-action form,.inventory-history{min-width:0}
  .inventory-form-actions .btn{flex:1 1 auto}
}
.topbar-actions{position:relative}.journal-actions{display:flex;flex-wrap:wrap;gap:10px}.journal-drafts h3,.hub-attendance h2{margin:0}.journal-drafts .row-head{margin-bottom:10px}.journal-draft-row{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;padding:12px 2px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer}.journal-draft-row>span:first-child{display:grid;gap:4px;min-width:0}.journal-draft-row small{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.journal-draft-row>span:last-child{flex:none;color:var(--brand2);font-weight:750}.journal-local-drafts{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.journal-local-drafts h4{margin:0 0 6px}.hub-primary-actions{display:flex;gap:10px;margin:12px 0}.hub-primary-actions>*{flex:1;min-height:48px}.hub-attendance{display:grid;gap:12px}.hub-attendance-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.hub-attendance-head p{margin:4px 0 0;color:var(--muted);font-size:.84rem}.hub-attendance-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.hub-attendance-counts span{display:grid;gap:2px;padding:10px 8px;background:var(--surface-soft);border-radius:9px;text-align:center;font-size:.76rem;color:var(--muted)}.hub-attendance-counts strong{color:var(--ink);font-size:1.25rem;font-variant-numeric:tabular-nums}.hub-secondary-journal{margin-top:14px}.hub-secondary-journal h2{margin:0}.hub-secondary-journal p{margin:5px 0 0}
@media(max-width:760px){.timeline-filters{grid-template-columns:1fr 1fr}.timeline-filters label:nth-child(3),.timeline-filters label:nth-child(4),.timeline-filters button{grid-column:1/-1}.journal-actions{width:100%}.journal-actions>*{flex:1}.journal-draft-row{align-items:flex-start}.journal-draft-row small{white-space:normal}}
.timeline-table .timeline-weather{display:table-cell}
.timeline-table tbody>tr+tr>*{border-top:2px solid color-mix(in srgb,var(--brand2) 45%,var(--line));padding-top:14px}
.timeline-event-grid{columns:24rem 2;column-gap:9px;min-width:0}
.timeline-report-group:not(:last-child){margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.timeline-event-grid .timeline-event{min-width:0;break-inside:avoid-column;margin:0 0 9px}
.timeline-event[data-kind="report"]{background:color-mix(in srgb,var(--accent) 11%,var(--surface-soft));border-color:color-mix(in srgb,var(--accent) 62%,var(--line))}
.timeline-event[data-kind="report"]:hover{border-color:var(--accent)}
.timeline-event[data-kind="report"] .timeline-event-head{padding-bottom:6px;border-bottom:1px solid color-mix(in srgb,var(--accent) 35%,var(--line))}
.timeline-event[data-kind="report"] .timeline-event-head strong{color:var(--accent)}
.timeline-event-head small{text-align:right}
.timeline-event-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden;white-space:pre-line;overflow-wrap:anywhere;line-height:1.5}
.timeline-event-photos{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
.timeline-event-thumb{width:64px;height:64px;display:grid;place-items:center;flex:none;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--muted);font-size:.66rem;line-height:1.15;text-align:center}
.timeline-event-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.timeline-event-photos>small{font-size:.72rem}
.timeline-event-files{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
@media(max-width:760px){.timeline-event-head small{text-align:left}.timeline-event-grid{columns:1}.timeline-table tbody>tr>td.timeline-weather{display:grid}.timeline-table tbody>tr+tr>*{border-top:0;padding-top:8px}.timeline-table tbody>tr+tr{border-top:2px solid color-mix(in srgb,var(--brand2) 45%,var(--line))}.timeline-table tbody>tr>td.timeline-events{display:block}.timeline-events::before{display:block;margin-bottom:8px}}
@media (pointer:coarse) and (max-width:1024px){.hub-head.no-cover{padding:14px}.hub-heading h2{margin:5px 0 3px}.hub-heading p{margin-bottom:0}.hub-dates{display:none}.hub-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.hub-tile{min-height:82px;padding:12px}.hub-primary-actions>*{min-width:0}.hub-secondary-journal{display:flex;align-items:center;justify-content:space-between;gap:12px}.hub-secondary-journal p{display:none}}
@media (pointer:coarse) and (max-width:1024px) and (max-height:500px){.topbar{min-height:56px;padding-block:6px}.view{padding-block:8px}.hub-head{margin-bottom:8px}.hub-head.no-cover{padding:8px 12px}.hub-heading h2{font-size:1.05rem;margin:2px 0}.hub-heading p{font-size:.75rem}.hub-primary-actions{margin:6px 0}.hub-primary-actions>*{min-height:42px}.hub-attendance{gap:6px;padding:9px 12px;margin-bottom:8px}.hub-attendance-counts span{padding:5px}.hub-attendance-counts strong{font-size:1rem}.hub-attendance-head h2{font-size:1rem}.hub-secondary-journal{margin-top:8px;padding:8px 12px}}
.journal-inline-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
@media(max-width:760px){.journal-inline-actions>*{flex:1}}
.journal-draft-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.journal-drafts[hidden]{display:none!important}
.project-settings-access{display:block;min-width:0;margin-top:14px;padding:0;border:0}
.project-settings-access>summary{display:flex;min-width:0;min-height:52px;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);color:var(--ink);cursor:pointer;font-weight:800;overflow-wrap:anywhere;list-style:none;transition:border-color .16s ease,background .16s ease}
.project-settings-access>summary::-webkit-details-marker{display:none}
.project-settings-access>summary::after{content:"";flex:0 0 9px;width:9px;height:9px;margin:-4px 3px 0 auto;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:rotate(45deg);transition:transform .16s ease,margin .16s ease}
.project-settings-access>summary:hover{border-color:var(--brand2);background:color-mix(in srgb,var(--brand2) 10%,var(--card))}
.project-settings-access>summary:focus-visible,.project-settings-access button:focus-visible{outline:3px solid var(--brand2);outline-offset:3px}
.project-settings-access[open]>summary{margin-bottom:16px;border-color:var(--brand2)}
.project-settings-access[open]>summary::after{margin:4px 3px 0 auto;transform:rotate(225deg)}
.journal-actions #journalProjectSettings{white-space:nowrap}
.hub-primary-actions #hubProjectSettings{min-width:0}
.hub-attendance-open{width:100%;min-height:48px}
.hub-heading-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.hub-project-settings-icon{display:grid;flex:0 0 42px;width:42px;height:42px;place-items:center;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);color:var(--ink);cursor:pointer}
.hub-project-settings-icon:hover{border-color:var(--brand2);background:var(--card)}
.hub-project-settings-icon:focus-visible{outline:3px solid var(--brand2);outline-offset:2px}
.hub-project-settings-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.attendance-session{display:grid;gap:5px;margin-top:8px;padding:10px 0;border-top:1px solid var(--line)}
.attendance-report-person+.attendance-report-person{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.attendance-report-total{margin:4px 0 0!important;font-size:.88rem;font-weight:650}
.attendance-report-corrections{color:var(--muted);font-size:.78rem}
.attendance-report-corrections ul{margin:5px 0 0;padding-left:18px}
.time-row [data-live-total]{font-variant-numeric:tabular-nums;font-weight:750}
.hub-attendance-counts{grid-template-columns:repeat(2,minmax(0,1fr))}
.hub-attendance-counts span{min-height:68px;align-content:center}
.hub-attendance-counts span:nth-child(2) strong{font-size:1rem}
.attendance-advanced{display:grid;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}
.attendance-advanced summary{cursor:pointer;color:var(--muted);font-size:.9rem;font-weight:700}
.attendance-advanced[open] summary{margin-bottom:2px;color:var(--ink)}
.attendance-people-list{gap:0}
.attendance-person-row{display:flex;align-items:flex-start;gap:15px;margin:0;padding:14px 2px;border-top:1px solid var(--line)}
.attendance-person-row>div:first-child{display:grid;gap:4px;width:100%;min-width:0}
.attendance-person-row>div>small{color:var(--muted)}
.attendance-person-heading{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;min-width:0}
.attendance-person-role{padding:2px 7px;border-radius:6px;background:var(--surface-soft);color:var(--muted);font-size:.78rem;font-weight:650}

@media (max-width:760px), (pointer:coarse) and (max-width:1024px){
  #newProjectBtn{display:none!important}
  #dashboardView .dashboard-toolbar>.segmented{display:none}
  #projectGrid .project-card>.status-pill,#projectHubContent .hub-heading-top>.status-pill{display:none}
  #projectHubContent .hub-heading:has(.hub-project-settings-icon){display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:center;column-gap:10px}
  #projectHubContent .hub-heading:has(.hub-project-settings-icon)>.hub-heading-top{display:contents}
  #projectHubContent .hub-heading:has(.hub-project-settings-icon)>.hub-heading-top>.hub-project-settings-icon{grid-column:2;grid-row:1}
  #projectHubContent .hub-heading:has(.hub-project-settings-icon)>h2{grid-column:1;grid-row:1;min-width:0;overflow-wrap:anywhere;margin:5px 0 3px}
  #projectHubContent .hub-heading:has(.hub-project-settings-icon)>p{grid-column:1/-1;grid-row:2}
}
.attendance-person-temporary{color:var(--muted);font-size:.75rem}
.attendance-person-heading .small-btn{margin-left:auto}
.attendance-person-row [data-live-total]{font-variant-numeric:tabular-nums;font-weight:750}
.attendance-person-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;margin:0;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--card);box-shadow:0 3px 10px rgba(0,0,0,.035)}
.attendance-person-main{display:grid!important;gap:4px!important;width:auto!important;min-width:0}
.attendance-person-row-compact{display:flex;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}
.attendance-person-row-compact .attendance-person-main{display:block!important;width:auto!important;min-width:0}
.attendance-person-row-compact .attendance-person-main{flex:1 1 auto;min-width:0}
.attendance-person-row-compact .attendance-person-heading{align-items:center}
.attendance-person-row-compact .attendance-person-heading>strong{font-size:.92rem}
.attendance-person-row-compact .attendance-person-heading>strong{overflow-wrap:normal;word-break:normal}
.attendance-person-row-compact>button{flex:0 0 auto;white-space:nowrap}
.attendance-person-main .attendance-person-heading{gap:4px 7px}
.attendance-person-heading>strong{min-width:0;overflow-wrap:anywhere}
.attendance-person-role{padding:1px 6px;font-size:.72rem}
.attendance-state-group{margin:14px 0 0}
.attendance-state-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 6px;padding:0 2px}
.attendance-state-group h3{display:flex;align-items:center;gap:7px;margin:0;color:var(--ink);font-size:.9rem;font-weight:800}
.attendance-state-group h3 span{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:.73rem;font-variant-numeric:tabular-nums}
.attendance-people-list{gap:6px}
.attendance-start-disclosure{padding:0;overflow:hidden}
.attendance-start-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px 15px;cursor:pointer;font-weight:800}
.attendance-start-disclosure>summary small{color:var(--muted);font-size:.75rem;font-weight:600}
.attendance-start-disclosure[open]>summary{border-bottom:1px solid var(--line)}
.attendance-start-disclosure .feature-form{padding:13px;margin:0;box-shadow:none;border:0;border-radius:0}
.attendance-empty{margin:16px 0}
.attendance-start-people{display:grid;gap:0}
.attendance-start-people legend{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}
.attendance-start-people .person-check{display:flex;align-items:center;gap:10px;margin:0;padding:10px 2px;border:0;border-bottom:1px solid var(--line);border-radius:0}
.attendance-start-people .person-check input{flex:none;width:20px;min-height:20px;accent-color:var(--accent)}
.attendance-add-person{display:inline-flex;align-items:center;justify-content:center;min-width:78px;height:32px;padding:0 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--ink);font-size:.78rem;font-weight:750;white-space:nowrap;cursor:pointer}
.attendance-add-person:hover{border-color:var(--brand2);background:color-mix(in srgb,var(--brand2) 10%,var(--card))}
.attendance-add-person:focus-visible{outline:3px solid var(--brand2);outline-offset:2px}
.attendance-candidate-dialog{width:min(460px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100svh - 24px);overflow:auto;padding:0;background:var(--card);color:var(--ink)}
.attendance-candidate-dialog::backdrop{background:rgba(9,15,25,.68)}
.attendance-candidate-dialog-card{position:relative;display:grid;gap:12px;padding:22px}
.attendance-candidate-dialog-card header{display:flex;align-items:center;justify-content:space-between;gap:48px}
.attendance-candidate-dialog-card header h2,.attendance-candidate-dialog-card>p{margin:0}
.attendance-candidate-dialog-card header h2{font-size:1.1rem}
.attendance-candidate-dialog-card header .dialog-close{top:14px;right:14px}
.attendance-candidate-dialog-card>p{font-size:.85rem}
.attendance-candidate-dialog-card>.btn{justify-self:end}
.attendance-candidate-dialog button:focus-visible{outline:3px solid var(--brand2);outline-offset:2px}
.attendance-bulk-stop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);font-weight:700}
.attendance-bulk-stop .btn{min-height:44px}
.attendance-bulk-stop-info{display:grid;gap:4px;min-width:0}
.attendance-bulk-stop-info details{font-size:.78rem;font-weight:600}
.attendance-bulk-stop-info summary{width:max-content;max-width:100%;cursor:pointer;color:var(--muted)}
.attendance-bulk-stop-info ul{display:flex;flex-wrap:wrap;gap:3px 14px;margin:5px 0 0;padding-left:18px;color:var(--muted);font-weight:500}
.attendance-bulk-stop .btn.primary{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:7px 16px;background:var(--accent);color:#fff;font-weight:850;box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 22%,transparent)}
.attendance-bulk-stop .btn.primary>span:last-child{display:grid;gap:1px;text-align:left}
.attendance-bulk-stop .btn.primary strong{font-size:.9rem}
.attendance-bulk-stop .btn.primary small{font-size:.7rem;font-weight:600;opacity:.9}
.attendance-end-icon{display:grid;place-items:center;width:24px;height:24px;border:2px solid currentColor;border-radius:4px;font-size:.88rem;line-height:1}
:root[data-theme="dark"] .attendance-bulk-stop .btn.primary{color:#201913}
.attendance-stop-trigger{width:max-content;min-height:38px;margin:0;padding:7px 10px;font-size:.78rem}
.attendance-stop-dialog{width:min(440px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100svh - 24px);overflow:auto;padding:22px;background:var(--card);color:var(--ink)}
.attendance-stop-dialog::backdrop{background:rgba(9,15,25,.68)}
.attendance-stop-dialog form{display:grid;gap:14px}
.attendance-stop-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-right:48px}
.attendance-stop-dialog header h2,.attendance-stop-dialog header p{margin:0}
.attendance-stop-dialog header p{margin-top:4px;color:var(--muted);font-size:.88rem}
.attendance-stop-dialog .dialog-close{top:16px;right:16px}
.attendance-stop-dialog textarea{min-height:82px}
.attendance-stop-dialog .attendance-stop-advanced{padding-top:10px;border-top:1px solid var(--line)}
.attendance-stop-dialog .attendance-stop-advanced>summary{cursor:pointer;color:var(--muted);font-size:.84rem;font-weight:700}
.attendance-stop-dialog .attendance-stop-advanced[open]{display:grid;gap:12px}
.attendance-stop-dialog .attendance-stop-advanced .check{align-items:center}
.attendance-stop-dialog .attendance-stop-advanced .check input{width:auto;min-height:0}
.attendance-stop-dialog-note{margin:0;color:var(--muted);font-size:.78rem;line-height:1.4}
.attendance-stop-dialog .dialog-actions{justify-content:flex-end;flex-wrap:wrap}
.attendance-stop-dialog button:focus-visible{outline:3px solid var(--brand2);outline-offset:2px}
@media(max-width:640px){.attendance-stop-dialog{padding:18px}.attendance-stop-dialog .dialog-actions>*{flex:1}}
@media(max-width:640px){.attendance-candidate-dialog-card{padding:18px}.attendance-candidate-dialog-card>.btn{width:100%}}
@media(max-width:640px){
  .attendance-person-row:not(.attendance-person-row-compact){grid-template-columns:36px minmax(0,1fr) auto;gap:8px;padding:10px}
  .attendance-person-row.attendance-person-row-compact{display:flex;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px}
  .attendance-person-heading{gap:3px 6px}
  .attendance-person-heading>strong{font-size:.9rem}
  .attendance-bulk-stop{position:sticky;z-index:20;bottom:calc(70px + env(safe-area-inset-bottom,0px));align-items:stretch;flex-direction:column;gap:8px;margin:12px -2px 4px;padding:10px;border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(12px);box-shadow:0 8px 24px rgba(0,0,0,.18)}
  .attendance-bulk-stop .btn{width:100%}
}
.admin-record-dialog{width:min(680px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100svh - 24px);padding:0;overflow:hidden;border-radius:16px}
.admin-record-card{position:relative;width:100%;max-height:calc(100svh - 24px);overflow-y:auto;overscroll-behavior:contain;padding:24px}
.admin-record-heading{display:flex;align-items:center;justify-content:space-between;min-height:42px;margin:0 0 18px}
.admin-record-heading h2{margin:0;font-size:1.2rem}
.admin-record-heading .dialog-close{position:static;flex:0 0 auto}
.quick-entry-dialog{width:min(560px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100svh - 24px);padding:0;overflow:auto;border-radius:16px}
.quick-entry-card{position:relative;width:100%;padding:24px;gap:14px}
.quick-entry-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.quick-entry-heading h2,.quick-entry-heading p{margin:0}
.quick-entry-heading p{margin-top:5px;color:var(--muted);font-size:.9rem}
.quick-entry-heading .dialog-close{position:static;flex:0 0 auto}
.quick-entry-dialog .method-list{max-width:none;gap:10px}
.quick-entry-dialog .method-list button{min-height:78px;padding:14px 16px}
.quick-entry-actions{display:flex;justify-content:flex-end;padding-top:4px}
.journal-entry-dialog{width:min(760px,calc(100vw - 28px));max-width:calc(100vw - 28px);max-height:calc(100svh - 28px);padding:0;overflow:hidden;border-radius:16px}
.journal-entry-dialog[open]{display:flex;flex-direction:column}
.journal-entry-dialog::backdrop{background:rgba(9,15,25,.66)}
.journal-entry-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:0 0 auto;padding:16px 22px;border-bottom:1px solid var(--line)}
.journal-entry-dialog-head h2{margin:0;font-size:1.2rem}
.journal-entry-dialog-head .dialog-close{position:static;flex:0 0 auto}
.journal-entry-dialog-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 22px 22px}
.journal-entry-dialog-body .entry-detail dl{margin:14px 0 18px}
.journal-entry-dialog-body .entry-detail h3,.journal-entry-history h3{margin:18px 0 6px;font-size:.95rem}
.journal-entry-dialog-body .entry-detail p{margin:0}
.journal-entry-history{margin:22px 0 18px;padding-top:16px;border-top:1px solid var(--line)}
.journal-entry-history details{margin-top:10px}
.journal-entry-history summary{cursor:pointer}
.daily-report-dialog-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-bottom:16px}
.daily-report-dialog-meta p{margin:0}
.daily-report-dialog-body h3{margin:18px 0 6px;font-size:.95rem}
.daily-report-dialog-body>p{margin:0}
.daily-report-dialog-body ul{margin-top:6px}
.entry-form-heading{justify-content:flex-start}
.entry-form-heading .btn{flex:0 0 auto}
.admin-record-form{display:grid;gap:14px}
.admin-record-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.admin-record-fields label{display:grid;align-content:start;gap:6px;min-width:0;font-weight:650}
.admin-record-fields input,.admin-record-fields select,.admin-record-fields textarea{width:100%;min-width:0}
.admin-record-fields textarea{min-height:82px}
.admin-record-fields .inventory-wide{grid-column:1/-1}
.admin-record-status{min-height:1.2rem;margin:0;color:var(--muted);font-size:.84rem}
.admin-record-status:not(:empty){padding:8px 10px;border-radius:8px;background:var(--surface-soft)}
.admin-record-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:8px;border-top:1px solid var(--line)}
.inventory-heading-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.admin-record-dialog:has(.inventory-bulk-form){width:min(840px,calc(100vw - 24px))}
.inventory-bulk-form{min-width:0}
.inventory-bulk-search{display:grid;gap:6px;max-width:520px;font-weight:650}
.inventory-bulk-list{max-height:min(42svh,480px);overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--card);overscroll-behavior:contain}
.inventory-bulk-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line)}
.inventory-bulk-item:last-child{border-bottom:0}
.inventory-bulk-choice{display:flex;align-items:center;gap:10px;min-width:0;min-height:42px;cursor:pointer}
.inventory-bulk-choice input{width:20px;height:20px;flex:0 0 auto;accent-color:var(--brand2)}
.inventory-bulk-choice span{min-width:0;overflow-wrap:anywhere}
.inventory-bulk-choice small{display:block;margin-top:2px;color:var(--muted)}
.inventory-bulk-quantity{display:grid;grid-template-columns:auto 88px;align-items:center;gap:8px;color:var(--muted);font-size:.82rem}
.inventory-bulk-stock{color:var(--muted);font-size:.82rem;white-space:nowrap}
.inventory-bulk-empty{margin:0;padding:20px;color:var(--muted)}
.inventory-bulk-count{margin:0;color:var(--muted);font-size:.88rem}
.employee-admin-panel>.row-head{align-items:center}
@media(max-width:950px){
  .inventory-panel .row-head{display:flex;flex-wrap:wrap}
  .inventory-panel .row-head>div:first-child{flex:1 1 100%}
  .inventory-heading-actions{align-items:center;flex-direction:row;flex-wrap:wrap;justify-content:flex-end}
}
@media(max-width:640px){
  .admin-record-card{padding:20px 16px}
  .admin-record-heading{margin-bottom:14px}
  .quick-entry-dialog{width:100%;max-width:100%;max-height:calc(100svh - env(safe-area-inset-bottom));margin:auto 0 0;border-radius:18px 18px 0 0}
  .quick-entry-card{padding:18px 14px calc(16px + env(safe-area-inset-bottom))}
  .quick-entry-dialog .method-list button{min-height:68px;padding:12px}
  .journal-entry-dialog{position:fixed;inset:auto 0 0;width:100%;max-width:100%;max-height:calc(100svh - 12px);margin:0;border-radius:18px 18px 0 0}
  .journal-entry-dialog-head{padding:14px 16px}
  .journal-entry-dialog-body{padding:16px 16px calc(20px + env(safe-area-inset-bottom))}
  .daily-report-dialog-body .journal-inline-actions{display:grid;grid-template-columns:1fr}
  .entry-form-heading{align-items:center}
  .entry-form-heading .btn{width:auto}
  .admin-record-fields{grid-template-columns:1fr}
  .admin-record-fields .inventory-wide{grid-column:auto}
  .admin-record-actions{position:sticky;bottom:-16px;padding:12px 0 0;background:var(--card)}
  .admin-record-actions .btn{flex:1;min-height:46px}
  .inventory-heading-actions{align-items:flex-end;flex-direction:column;gap:6px}
  .inventory-bulk-item{grid-template-columns:minmax(0,1fr);gap:6px;padding:10px 12px}
  .inventory-bulk-quantity{grid-template-columns:1fr 96px;justify-content:space-between;padding-left:30px}
  .inventory-bulk-stock{padding-left:30px}
  .inventory-bulk-form .admin-record-actions{position:sticky;bottom:-16px;padding:12px 0 0;background:var(--card)}
  .inventory-bulk-form .admin-record-actions .btn{flex:1;min-height:46px}
}

/* Shared treatment for the central registers. */
.management-view{max-width:1480px}
.management-view>.panel,.management-view .inventory-panel,.management-view .dictionary-panel,.management-view .subcontractor-workspace>.panel{border:1px solid var(--line);border-radius:14px;box-shadow:none}
.management-view .btn,.management-view .small-btn{font-weight:700;box-shadow:none}
.management-view .btn:hover,.management-view .small-btn:hover{transform:none}
.management-view .btn:disabled,.management-view .small-btn:disabled{opacity:.5;cursor:not-allowed;filter:none}
.management-view .btn.primary:hover{background:color-mix(in srgb,var(--accent) 86%,var(--ink));filter:none}
.management-view .btn.ghost:hover,.management-view .small-btn:hover{background:var(--surface-soft);filter:none}
.management-view input,.management-view select,.management-view textarea{border-radius:9px}
.management-view label{font-weight:650}
.management-guidance{max-width:90ch!important;margin:0 0 18px!important;font-size:.85rem!important;line-height:1.55!important}
.management-view .employee-admin-filters,.management-view .admin-user-tools,.management-view .subcontractors-filters{padding:16px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft)}
.management-view .employee-admin-filters label,.management-view .admin-user-tools label,.management-view .subcontractors-filters label{color:var(--ink);font-size:.78rem;font-weight:700}
.management-view .employee-admin-filters input,.management-view .employee-admin-filters select,.management-view .admin-user-tools input,.management-view .admin-user-tools select,.management-view .subcontractors-filters input,.management-view .subcontractors-filters select{min-height:44px;background:var(--card)}
.management-view .employee-admin-panel,.management-view .admin-users-panel{gap:0;padding:20px}
.management-view .employee-admin-list,.management-view #userList{gap:0;margin:0}
.management-view .employee-admin-row,.management-view .user-list-item{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:16px 4px}
.management-view .employee-admin-row:last-child,.management-view .user-list-item:last-child{border-bottom:1px solid var(--line)}
.management-view .employee-admin-row:hover,.management-view .user-list-item:hover{background:color-mix(in srgb,var(--surface-soft) 62%,var(--card))}
.management-view .employee-admin-identity strong,.management-view .user-name-line strong{color:var(--ink);font-size:.95rem;font-weight:750}
.management-view .employee-admin-actions .small-btn,.management-view .user-actions .small-btn{min-height:38px;padding:7px 11px;font-size:.78rem}
.management-view .employee-history{border:1px solid var(--line);border-radius:9px;background:var(--surface-soft)}
.management-view .user-result-summary,.management-view #employeeAdminStatus{margin:16px 2px 8px;color:var(--muted);font-size:.8rem;font-weight:650;font-variant-numeric:tabular-nums}
.management-view .user-summary p{margin:4px 0;color:var(--muted);font-size:.83rem}
.management-view .user-summary small{color:var(--muted);font-size:.74rem}
.management-view .subcontractors-filters{margin-bottom:16px;box-shadow:none}
.management-view .subcontractor-company-list-panel{top:108px;max-height:calc(100vh - 128px)}
.management-view .subcontractor-company-option{padding:12px 13px;border-radius:9px}
.management-view .subcontractor-company-option.is-selected{border-color:var(--brand2);box-shadow:inset 2px 0 var(--accent)}
.management-view .subcontractor-person-filters{padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}
.management-view .subcontractor-person-filters input,.management-view .subcontractor-person-filters select{background:var(--card)}
.management-view .subcontractor-person-card{border-radius:9px;background:var(--card)}
.management-view .dictionary-list{display:grid;grid-template-columns:minmax(0,1fr)}
.management-view .dictionary-panel{max-width:none;margin:0;padding:20px}
.management-view .dictionary-panel-heading{padding-bottom:15px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.management-view .dictionary-panel-heading h2{font-size:1.08rem;letter-spacing:-.01em}
.management-view .dict-count,.management-view .inventory-count{color:var(--muted);font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums}
.management-view .dictionary-panel .dict-add{padding:16px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft)}
.management-view .dict-add-row input{min-height:44px;padding:10px 12px;border-radius:9px}
.management-view .dict-add-button{min-height:44px;border-radius:9px;background:var(--accent);color:#fff;font-weight:700}
.management-view .dict-add-button:hover{background:color-mix(in srgb,var(--accent) 86%,var(--ink))}
.management-view .dictionary-divider{margin:20px 0 17px}
.management-view .dictionary-search-wrap{max-width:420px;min-height:46px;padding:2px 12px;border-radius:9px}
.management-view .dictionary-search-input{min-height:40px!important}
.management-view .dictionary-panel .dict-items{gap:0}
.management-view .dictionary-item{min-height:58px;padding:12px 2px;border:0;border-top:1px solid var(--line);border-radius:0}
.management-view .dictionary-item:last-of-type{border-bottom:1px solid var(--line)}
.management-view .dictionary-item .small-btn{min-height:38px;padding:7px 12px;border-radius:9px;color:var(--brand);font-weight:650}
.management-view .dictionary-item-name{font-weight:650}
.management-view .inventory-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.management-view .inventory-list-heading h3{margin:0;color:var(--ink);font-size:1.03rem}
.management-view .inventory-list-heading span{color:var(--muted);font-size:.8rem;font-weight:650;font-variant-numeric:tabular-nums}
.management-view .inventory-heading-actions{gap:8px}
.management-view .inventory-count{margin-right:8px}
.management-view .inventory-panel{gap:0;padding:20px}
.management-view .inventory-scroll-hint{margin:0 0 8px}
.management-view .inventory-table-scroll{border-radius:10px}
.management-view .inventory-table{min-width:1280px;font-size:.81rem}
.management-view .inventory-table th,.management-view .inventory-table td{padding:11px 10px;border-right:0}
.management-view .inventory-table thead th{color:var(--muted);font-size:.72rem;font-weight:750;letter-spacing:.015em}
.management-view .inventory-table td:first-child{color:var(--ink)}
.management-view .inventory-table th:last-child,.management-view .inventory-table td:last-child:not([colspan]){position:sticky;right:0;z-index:1;min-width:150px;background:var(--card);box-shadow:-1px 0 var(--line)}
.management-view .inventory-table th:last-child{z-index:2;background:var(--surface-soft)}
.management-view .inventory-table tbody tr:hover td{background:var(--surface-soft)}
.management-view .inventory-table tbody tr:hover td:last-child{background:var(--surface-soft)}
.management-view .inventory-row-actions{gap:6px}
@media(max-width:760px){
  .btn,.small-btn,.dialog-close,.mic-btn{min-height:44px}
  .mic-btn{width:44px;height:44px}
  .management-view .employee-admin-panel,.management-view .admin-users-panel,.management-view .inventory-panel,.management-view .dictionary-panel{padding:15px}
  .management-view .employee-admin-filters,.management-view .admin-user-tools,.management-view .subcontractors-filters{padding:12px}
  .management-view .employee-admin-row,.management-view .user-list-item{padding:14px 1px}
  .management-view .employee-admin-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .management-view .employee-admin-actions .small-btn{min-width:0;padding-inline:4px}
  .management-view .subcontractor-company-list-panel{top:auto;max-height:none}
  .management-view .inventory-heading-actions{align-items:stretch;flex-direction:row;flex-wrap:wrap;width:100%}
  .management-view .inventory-heading-actions .inventory-count{width:100%;margin:0}
  .management-view .inventory-heading-actions .btn{flex:1 1 140px;width:auto}
  .management-view .inventory-table{min-width:0}
  .management-view .inventory-table th:last-child,.management-view .inventory-table td:last-child:not([colspan]){position:static;min-width:0;box-shadow:none}
}

/* Mobile navigation, compact disclosures, and accessible touch targets. */
.nav svg{display:block;width:21px;height:21px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-label-short{display:none}
.sidebar-footer .link-btn svg{display:none}
.nav-more-group,.nav-more-panel{display:contents}
#navMore{display:none}
.subcontractor-company-option-item{min-width:0}
.timeline-guidance{margin-bottom:10px}
.subcontractor-company-option{min-height:44px}
.inventory-mobile-summary,.inventory-mobile-more{display:none!important}
.mobile-filter-disclosure{min-width:0}
.mobile-filter-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:10px 13px;border:1px solid var(--line);border-radius:11px;background:var(--card);color:var(--ink);cursor:pointer;font-weight:800;list-style:none}
.mobile-filter-disclosure>summary::-webkit-details-marker{display:none}
.mobile-filter-disclosure>summary::after{content:"▾";margin-left:auto;color:var(--muted);font-size:.8rem}
.mobile-filter-disclosure[open]>summary::after{content:"▴"}
.mobile-filter-disclosure>summary small{color:var(--muted);font-size:.76rem;font-weight:600}
.mobile-filter-disclosure[open]>:not(summary){margin-top:10px}
.mobile-filter-disclosure.management-help>summary{justify-content:flex-start;min-height:40px;padding:0;border:0;background:transparent;color:var(--brand);font-size:.84rem}
.mobile-filter-disclosure.management-help>summary::after{margin-left:0}
.mobile-filter-disclosure.management-help .management-guidance{margin:8px 0 14px!important}
.editor-mobile-heading{display:none}
.attendance-add-person{min-height:44px;height:44px;padding-inline:12px}
.attendance-stop-trigger{min-height:44px}
@media(min-width:761px) and (pointer:fine){.mobile-filter-disclosure>summary{display:none}.mobile-filter-disclosure.management-help>summary{display:none}}
@media(min-width:761px) and (max-width:980px){.sidebar-footer .link-btn{display:grid;width:44px;min-height:44px;padding:0;place-items:center}.sidebar-footer .link-btn svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sidebar-footer .link-btn span{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}
@media(pointer:coarse) and (min-width:761px) and (max-width:1024px){#projectGrid .project-card>.status-pill:not(.inactive):not(.pending),#projectHubContent .hub-heading-top>.status-pill:not(.inactive):not(.pending){display:none}}
@media(max-width:760px),(pointer:coarse) and (min-width:761px) and (max-width:1024px){.timeline-guidance{display:none}}
@media(max-width:760px){
  #projectGrid .project-card>.status-pill:not(.inactive):not(.pending),#projectHubContent .hub-heading-top>.status-pill:not(.inactive):not(.pending){display:none}
  .mobile-filter-disclosure{margin:0 0 12px}
  .mobile-filter-disclosure[open]>summary{border-color:var(--line);border-radius:11px 11px 0 0}
  .mobile-filter-disclosure[open]>:not(summary){margin-top:0}
  .mobile-filter-disclosure .history-filters,.mobile-filter-disclosure .timeline-filters,.mobile-filter-disclosure .feature-filters,.mobile-filter-disclosure .employee-admin-filters,.mobile-filter-disclosure .admin-user-tools,.mobile-filter-disclosure .subcontractors-filters,.mobile-filter-disclosure .subcontractor-person-filters{padding:12px;border:1px solid var(--line);border-top:0;border-radius:0 0 11px 11px;background:var(--surface-soft)}
  .mobile-filter-disclosure .history-filters,.mobile-filter-disclosure .timeline-filters{margin-bottom:0}
  .management-help{margin-bottom:10px}
  .management-view .management-guidance{font-size:.82rem!important;line-height:1.45!important}
  .editor-mobile-heading{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--card)}
  .editor-mobile-heading h2{margin:0;font-size:1rem}
  .editor-mobile-heading span{color:var(--muted);font-size:.76rem}
  .editor-mobile-heading progress{width:70px;height:7px;accent-color:var(--accent)}
  .app-shell.feature-context .attendance-bulk-stop{bottom:env(safe-area-inset-bottom,0px)}
  .attendance-stop-trigger{width:auto;min-width:112px}
  .sidebar nav{align-items:stretch;justify-content:space-between;gap:3px;min-width:0;padding-inline:5px}
  .sidebar{height:calc(64px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px)}
  .main{padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}
  .sidebar nav>.nav,.nav-more-group{flex:1 1 0;min-width:0}
  .sidebar .nav,#navMore{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:48px;padding:3px 2px;border-radius:9px;font-size:.67rem;line-height:1.1;text-align:center;white-space:normal}
  .sidebar .nav svg{width:20px;height:20px}
  .sidebar .nav span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #navMore{display:flex}
  .nav-more-group{position:static;display:flex}
  .nav-more-panel{display:none}
  .nav-more-group.is-open .nav-more-panel{position:fixed;right:10px;bottom:calc(70px + env(safe-area-inset-bottom,0px));z-index:70;display:grid;grid-template-columns:1fr;gap:3px;width:min(260px,calc(100vw - 20px));max-height:min(65vh,480px);overflow:auto;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:0 12px 38px rgba(20,28,42,.24)}
  .nav-more-panel .nav{flex-direction:row;justify-content:flex-start;gap:12px;min-height:46px;padding:8px 10px;color:var(--ink);font-size:.86rem;text-align:left}
  .nav-more-panel .nav:hover,.nav-more-panel .nav.active{background:var(--surface-soft);color:var(--brand)}
  .nav-more-panel .nav svg{width:21px;height:21px}
  .nav-more-panel .nav span{display:inline;max-width:none;white-space:normal}
  .nav-more-panel .nav .nav-label-long{display:inline!important}
  .nav-more-panel .nav-label-short{display:none!important}
  #navMore:focus-visible,.nav-more-panel .nav:focus-visible{outline:3px solid var(--brand2);outline-offset:2px}
}
@media(max-width:900px){
  .inventory-table tbody tr{grid-template-columns:minmax(0,1fr);gap:0;padding:0}
  .inventory-table td{display:none!important}
  .inventory-table td.inventory-mobile-summary,.inventory-table td:last-child{display:block!important;min-width:0;padding:12px;border:0}
  .inventory-table .inventory-mobile-more{display:block!important}
  .inventory-table td.inventory-mobile-summary{background:var(--card)!important;color:var(--ink)}
  .inventory-table td.inventory-mobile-summary::before,.inventory-table td:last-child::before{display:none!important}
  .inventory-mobile-summary>div{display:grid;gap:4px;min-width:0}
  .inventory-mobile-summary strong{overflow-wrap:anywhere}
  .inventory-mobile-summary span{color:var(--muted);font-size:.8rem;overflow-wrap:anywhere}
  .inventory-table td:last-child{padding-top:0}
  .inventory-row-actions{gap:6px}
  .inventory-row-actions .small-btn,.inventory-mobile-more>summary{min-height:44px}
  .inventory-mobile-more{margin:8px 0}
  .inventory-mobile-more>summary{display:inline-flex;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--brand);cursor:pointer;font-weight:700;list-style:none}
  .inventory-mobile-more>summary::-webkit-details-marker{display:none}
  .inventory-mobile-more dl{display:grid;grid-template-columns:minmax(7.5rem,.8fr) minmax(0,1.2fr);gap:6px 10px;margin:8px 0;padding:10px;border-radius:9px;background:var(--surface-soft);font-size:.8rem}
  .inventory-mobile-more dt{color:var(--muted)}
  .inventory-mobile-more dd{margin:0;overflow-wrap:anywhere}
}
@media(max-width:900px){.subcontractor-report-heading .remove{min-width:44px;min-height:44px}}
@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.feature-files .quick-entry-file{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:8px;max-width:260px;padding:8px}.quick-entry-file img{width:96px;height:72px;grid-column:1/-1;object-fit:cover;border-radius:6px;background:var(--surface)}.quick-entry-file>span{padding:0;border:0;background:none;overflow-wrap:anywhere}.quick-entry-file .small-btn{justify-self:start}

/* Password changes use the existing identity provider. */
.sidebar-footer{flex-wrap:wrap;gap:8px}
.sidebar-footer small{width:100%}
.sidebar-footer .link-btn{min-height:44px}
#changePasswordDialog{width:min(460px,90vw);max-height:calc(100svh - 24px);overflow-y:auto}
.password-change-card{width:100%;min-width:0}
.password-change-card p{margin:0}
.password-change-card ol{margin:0;padding-left:22px;display:grid;gap:10px;line-height:1.5}
.password-change-error{color:var(--danger);overflow-wrap:anywhere}
.password-change-error:empty{display:none}
@media(max-width:640px){.password-change-card .dialog-actions{flex-wrap:wrap}.password-change-card .dialog-actions .btn{flex:1 1 auto;min-height:44px}}
.account-settings{max-width:680px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.account-settings h3{margin:0;font-size:1rem}
.account-settings p{margin:6px 0 0;color:var(--muted);line-height:1.5}
.account-settings>.btn{flex-shrink:0;min-height:44px}
.account-phone-form{max-width:680px;display:grid;gap:14px;margin:0 0 14px}
.account-phone-form h3{margin:0;font-size:1rem}
.account-phone-form>div:first-child p{margin:6px 0 0;line-height:1.5}
.account-phone-form>label{display:grid;gap:6px;font-weight:650}
.account-phone-form input{width:100%;min-width:0;min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--ink);font:inherit}
.account-phone-status{min-height:1.4em;margin:0;color:var(--muted);line-height:1.5;overflow-wrap:anywhere}
.account-phone-actions{display:flex;flex-wrap:wrap;gap:8px}
.account-phone-actions .btn{min-height:44px}
.user-phone-value{display:block;margin-top:4px;color:var(--muted)}
@media(max-width:760px){
  .app-shell.projects-navigation #navSettings{display:flex}
  .app-shell.projects-navigation .sidebar nav>.nav,.app-shell.projects-navigation .nav-more-group,.app-shell.projects-navigation #navMore{flex:1 1 0}
  #navSettings span{font-size:clamp(.6875rem,2.9vw,.75rem)}
  .nav-more-group:has(#navMore[hidden]){display:none}
  .account-settings{flex-direction:column;align-items:stretch;gap:18px}
  .account-phone-actions .btn{flex:1 1 130px}
}
/* Hostowane środowisko developerskie, wstrzykiwane podczas budowania. */
.management-actions-row{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:0 0 14px}
.management-actions-row .btn{min-height:44px}
.management-view .inventory-list-heading .inventory-heading-actions{display:flex;align-items:center;gap:10px}
.inventory-project-actions{justify-content:flex-end}
.feature-heading.feature-actions:empty,.feature-heading:has(> div.journal-actions:empty){display:none}
.hub-heading h2,.hub-heading>p{display:none}
@media(max-width:640px){.management-actions-row{justify-content:stretch}.management-actions-row .btn{width:100%}.management-view .inventory-list-heading{align-items:flex-start;flex-wrap:wrap}.management-view .inventory-list-heading .inventory-heading-actions{width:100%;flex-wrap:wrap}.management-view .inventory-list-heading .inventory-heading-actions .btn{flex:1}.inventory-project-actions .inventory-heading-actions{width:100%}}

.admin-notifications-panel{margin-top:18px}.admin-notifications-panel .row-head{align-items:center}.admin-notifications-list{max-height:65vh}.admin-notifications-list td{vertical-align:top}.admin-notifications-list td:first-child{min-width:190px;overflow-wrap:anywhere}.admin-notifications-list td:nth-child(2){min-width:160px;overflow-wrap:anywhere}.admin-notifications-list td:last-child{min-width:190px;overflow-wrap:anywhere}@media(max-width:640px){.admin-notifications-panel .row-head{align-items:flex-start;flex-wrap:wrap}.admin-notifications-list{max-height:55vh}.admin-notifications-list table{min-width:760px}}
