/* ===== Cloud build additions: Today, Schedule, reminders ===== */
.muted{color:var(--muted);font-size:.9rem}
.today-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.today-tools{display:flex;gap:.5rem;flex-wrap:wrap}.today-tools select,.today-tools input{padding:.6rem;border:1px solid var(--border);border-radius:8px;font-size:1rem}
.clockbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.big-btn{display:inline-flex;align-items:center;justify-content:center;min-width:150px;min-height:58px;padding:.8rem 1.6rem;font-size:1.25rem;font-weight:700;border:0;border-radius:12px;background:var(--primary);color:#fff;cursor:pointer;text-decoration:none}
.big-btn.go{background:var(--success)}.big-btn.stop{background:var(--danger)}
.job-card{border-left:6px solid var(--primary)}.job-card.st-in-progress{border-left-color:var(--warning)}.job-card.st-done{border-left-color:var(--success);opacity:.92}
.job-top{display:flex;justify-content:space-between;gap:1rem}.job-top h3{margin:.15rem 0}.job-time{font-weight:700;color:var(--primary)}
.status-pill{align-self:flex-start;background:#eef3f8;border-radius:20px;padding:.25rem .7rem;font-size:.85rem;white-space:nowrap}
.job-main{margin:1rem 0}.job-main .big-btn{width:100%}.done-note{font-weight:600;color:var(--success)}
.quick-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.q-btn{display:flex;align-items:center;justify-content:center;min-height:52px;padding:.5rem;border:1px solid var(--border);border-radius:10px;background:#f7f9fc;font-size:1rem;cursor:pointer;text-align:center;color:var(--text)}
.q-btn:active{background:#e3eef9}
.mat-list{margin:.7rem 0 0 1.2rem}.sig-thumb img{height:50px;border:1px solid var(--border);border-radius:6px;background:#fff;vertical-align:middle;margin-top:.5rem}
.photo-strip{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem}.photo-strip img{width:72px;height:72px;object-fit:cover;border-radius:8px;cursor:pointer}
.sig-pad{width:100%;height:200px;border:2px dashed var(--border);border-radius:10px;background:#fff;touch-action:none}
.empty{text-align:center;color:var(--muted)}
/* schedule */
.sched-bar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.sched-bar input{padding:.5rem;border:1px solid var(--border);border-radius:8px}
.seg{display:inline-flex;border:1px solid var(--primary);border-radius:8px;overflow:hidden}.seg button{border:0;background:#fff;color:var(--primary);padding:.55rem 1rem;font-weight:600;cursor:pointer}.seg button.on{background:var(--primary);color:#fff}
.sched-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.sched-grid{min-width:760px}.sched-grid.day{min-width:820px}
.sg-head,.sg-row{display:grid;grid-template-columns:130px 1fr;border-bottom:1px solid var(--border)}
.sg-head.sg-week,.sg-row.sg-week{grid-template-columns:130px repeat(7,1fr)}
.sg-tech{padding:.6rem;font-weight:600;position:sticky;left:0;background:var(--card);z-index:2;border-right:1px solid var(--border)}
.sg-dayname{padding:.5rem;font-size:.85rem;font-weight:600;text-align:center}.sg-dayname.is-today{color:var(--primary)}
.sg-track{position:relative;min-height:64px}.sg-hours{min-height:28px}.sg-hours span{position:absolute;top:6px;font-size:.75rem;color:var(--muted);transform:translateX(-50%)}.sg-hours span:first-child{transform:none}
.sg-track i{position:absolute;top:0;bottom:0;border-left:1px dashed #edf1f5}
.sg-cell{min-height:70px;padding:3px;border-left:1px solid var(--border);display:flex;flex-direction:column;gap:3px}
.sg-drop.over{background:#e3f2fd}
.sg-chip{background:#d8ecfb;border-left:4px solid var(--primary);border-radius:6px;padding:3px 6px;font-size:.8rem;cursor:grab;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;user-select:none;-webkit-user-select:none}
.sg-track .sg-chip{position:absolute;top:6px;bottom:6px;z-index:1}
.sg-chip small{display:block;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.sg-chip.st-done{background:#dff3e6;border-left-color:var(--success)}.sg-chip.st-in-progress{background:#fff1d6;border-left-color:var(--warning)}
.sg-chip.conflict{outline:2px solid var(--danger);background:#fde4e1}
.sg-chip.dragging{opacity:.35}.sg-ghost{position:fixed;z-index:3000;pointer-events:none;opacity:.9;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.sg-off{position:absolute;top:2px;bottom:2px;background:repeating-linear-gradient(45deg,#eceff1,#eceff1 6px,#dfe3e6 6px,#dfe3e6 12px);border-radius:6px;font-size:.75rem;padding:3px 6px;color:#555;z-index:0}
.sg-off-w{background:repeating-linear-gradient(45deg,#eceff1,#eceff1 6px,#dfe3e6 6px,#dfe3e6 12px);border-radius:5px;font-size:.75rem;padding:2px 5px;color:#555}
.sg-off a,.sg-off-w a{cursor:pointer;font-weight:700;margin-left:4px}
.conflict-msg{color:var(--danger);margin-top:.5rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.form-grid input,.form-grid select,#matSearch,#matQty,#sigName,#etaMin{width:100%;padding:.6rem;border:1px solid var(--border);border-radius:8px;font-size:1rem}
.btn.small{padding:.35rem .7rem;font-size:.85rem;text-decoration:none;display:inline-block}.btn[aria-disabled=true]{opacity:.4;pointer-events:none}
.rem-actions{white-space:nowrap}
#userBadge[data-sync=pending]::after{content:" \2022 sync pending";color:var(--warning)}
@media (max-width:700px){
  .quick-row{grid-template-columns:1fr 1fr}.big-btn{min-height:64px;font-size:1.35rem}
  .form-grid{grid-template-columns:1fr}
  .sg-head,.sg-row{grid-template-columns:90px 1fr}.sg-head.sg-week,.sg-row.sg-week{grid-template-columns:90px repeat(7,minmax(92px,1fr))}
  .sg-tech{font-size:.8rem;padding:.4rem}
  .sched-grid.week{min-width:740px}.sched-grid.day{min-width:640px}
}
.tc-row{display:flex;gap:.3rem}.tc-row input{flex:1;min-width:0}.tc-now{padding:.4rem .6rem}.tc-span{white-space:nowrap}
.sched-bar input{width:auto!important;margin:0}
/* list + global search */
.list-search-row{display:flex;align-items:center;gap:.5rem;margin:.4rem 0 .6rem;flex-wrap:wrap}
.list-search{max-width:380px;flex:1 1 220px}
.gs-wrap{position:relative;flex:1 1 260px;max-width:420px;margin:0 .8rem}
#gsInput{width:100%;margin:0;padding:.5rem .7rem}
.gs-out{display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.15);max-height:70vh;overflow:auto;z-index:900;min-width:300px}
.gs-item{display:flex;gap:.5rem;align-items:baseline;padding:.55rem .7rem;cursor:pointer;border-bottom:1px solid #f0f2f5}
.gs-item.sel,.gs-item:hover{background:#eef6fc}
.gs-type{font-size:.7rem;font-weight:700;text-transform:uppercase;color:#fff;background:var(--primary);border-radius:4px;padding:1px 5px;flex:none;min-width:58px;text-align:center}
.gs-label{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gs-item small{color:var(--muted);margin-left:auto;white-space:nowrap}
.gs-empty,.gs-more{padding:.6rem .7rem;color:var(--muted)}
.gs-add{display:flex;flex-wrap:wrap;gap:.2rem;padding:.4rem;border-top:1px solid var(--border)}
.gs-add .btn{padding:.35rem .6rem;font-size:.8rem}
.qa-wrap{position:relative}
.qa-btn{width:38px;height:38px;padding:0!important;border-radius:50%!important;font-size:1.4rem;line-height:1}
.qa-menu{display:none;position:absolute;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.15);z-index:901;min-width:160px}
.qa-menu.open{display:block}
.qa-menu button{display:block;width:100%;text-align:left;background:none;border:none;padding:.65rem .9rem;cursor:pointer;font-size:.95rem}
.qa-menu button:hover{background:#eef6fc}
.job-results td small{color:var(--muted)}
@media (max-width:700px){
  .gs-wrap{order:3;flex:1 1 100%;max-width:none;margin:.3rem 0 0}
  .gs-out{position:fixed;left:.5rem;right:.5rem;top:auto;min-width:0}
  .list-search{max-width:none;flex:1 1 100%}
  .qa-wrap{order:2}
}
/* ---- phone pass (390px) ---- */
@media (max-width:700px){
  table.stack, table.stack tbody, table.stack tfoot, table.stack tr, table.stack td{display:block;width:100%}
  table.stack thead{display:none}
  table.stack tr{border:1px solid var(--border);border-radius:8px;margin:.5rem 0;padding:.35rem .6rem;background:#fff}
  table.stack tr:hover{background:#fff}
  table.stack tfoot tr{background:#f4f6f9;font-weight:600}
  table.stack td{border:none!important;padding:.3rem 0!important;display:flex;flex-wrap:wrap;gap:.6rem;justify-content:space-between;align-items:center;text-align:right;min-height:1.6rem;word-break:break-word}
  table.stack td::before{content:attr(data-label);font-weight:600;color:var(--muted);text-align:left;flex:0 0 38%;font-size:.85rem}
  table.stack td[data-label=""]{justify-content:flex-end}
  table.stack td[data-label=""]::before{display:none}
  table.stack td > input, table.stack td > select, table.stack td > textarea{flex:1;min-width:0;max-width:none!important;width:auto!important}
  table.stack td .btn{margin:.1rem}
  .report-doc, #reportDoc{overflow-x:auto}
  input[type=checkbox]{width:22px!important;height:22px;min-width:22px}
  button.btn{min-height:44px}
  .card{padding:.9rem}
}
.badge.custom{background:#fff3cd;color:#8a5a00;border:1px solid #f0c36d;font-size:.7rem;padding:1px 6px;border-radius:10px}
.mat-block{margin:.8rem 0;border:1px solid var(--border);border-radius:8px;padding:.5rem .8rem;background:#fafbfc}
.mat-block summary{font-weight:600;cursor:pointer;padding:.3rem 0}
.mat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.mat-list{margin:.3rem 0 .5rem 1.1rem}.mat-list li{margin:.2rem 0}
.mat-del{padding:.1rem .5rem!important;min-height:0!important}
.mat-kind{font-size:.85rem;min-height:1.1rem;margin:.2rem 0}
@media (max-width:700px){.mat-grid{grid-template-columns:1fr 1fr}.mat-del{min-height:32px!important}}
.badge{display:inline-block;min-width:1.4em;padding:0 .4em;border-radius:1em;background:#e53935;color:#fff;font-size:.75rem;text-align:center;line-height:1.4em;vertical-align:middle}
.badge:empty{display:none}
#whoInCard table{width:100%}
.msg-list{width:100%;border-collapse:collapse}.msg-list td{padding:.35rem .4rem;border-bottom:1px solid #eee}.msg-row.unread{background:#f3f8ff}
.msg-row.unread td:first-child{color:#1a73e8}.board-post{padding:.5rem;border:1px solid #eee;border-radius:6px;margin:.4rem 0}.board-post.pinned{background:#fffbe6;border-color:#f5d76e}
.btn.small{padding:.15rem .5rem;font-size:.8rem}
.gps-log{width:100%;border-collapse:collapse}.gps-log td,.gps-log th{padding:.3rem .4rem;border-bottom:1px solid #eee;text-align:left}.gps-far{background:#fff1f0}.far-flag{color:#c0392b}
.insp-open-fail{background:#fff1f0}.insp-passed td:nth-child(3) b,.insp-passed b{color:#1e7e34}
.chk-item{display:block;margin:.5rem 0}.chk-photos img{max-width:110px;max-height:90px;margin:2px;border-radius:4px}.q-btn.chk-ok{background:#e6f4ea}.q-btn.chk-req{border:1px solid #c0392b}
