/* round 7 module (locations), built by B18: existing variables only, no hex colours. F30 WIP locations (js/locations.js) + the Traveler chip. */
.lc{display:flex;flex-direction:column;gap:12px}
.lc .sp{flex:1}
.lc .card{margin:0}
.lc-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lc-hint{font-size:12.5px;color:var(--ink3)}
.lc-cols{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:14px;align-items:start}
.lc-main,.lc-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.lc-ch{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.lc-ch h3{margin:0;font-size:16px}
.lc-sub{font-size:12.5px;color:var(--ink3)}
.lc-unsc{color:var(--red)}
.lc-legend{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--ink2)}
.lc-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-left:6px}
.lc-legend i.ok,.lc-bar2 i.ok{background:var(--green)} .lc-legend i.warn,.lc-bar2 i.warn{background:var(--amber)} .lc-legend i.bad,.lc-bar2 i.bad{background:var(--red)} .lc-bar2 i.none{background:var(--grey)}
.lc-areas{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.lc-area{border:1px dashed var(--rule2,var(--rule));border-radius:10px;padding:8px 10px 10px;background:var(--paper2)}
.lc-at{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);margin-bottom:6px}
.lc-tiles{display:flex;flex-wrap:wrap;gap:8px}
.lc-tile{position:relative;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;column-gap:10px;min-width:78px;text-align:left;padding:6px 8px 6px 10px;border:1px solid var(--rule);border-left:4px solid var(--grey);border-radius:6px;background:var(--paper);color:var(--ink);cursor:pointer;font:inherit}
.lc-tile:hover{box-shadow:var(--sh);border-color:var(--rule-hi,var(--ink3))}
.lc-tile.ok{border-left-color:var(--green)} .lc-tile.warn{border-left-color:var(--amber)} .lc-tile.bad{border-left-color:var(--red)}
.lc-tile.empty{opacity:.75}
.lc-code{font-weight:800;font-size:13.5px}
.lc-n{grid-row:1/span 2;grid-column:2;font-family:var(--mono);font-size:12px;font-weight:700;min-width:20px;text-align:center;border-radius:99px;padding:1px 6px;background:var(--grey-l);color:var(--ink)}
.lc-tile.empty .lc-n{color:var(--ink3)}
.lc-name{font-size:11px;color:var(--ink3);white-space:nowrap}
.lc-none{color:var(--ink3);font-size:13px;padding:6px 2px}
.lc-tw{overflow:auto;border:1px solid var(--rule);border-radius:10px}
.lc-tbl th{padding:8px 8px}
.lc-tbl td{padding:6px 8px;border-bottom:1px solid var(--rule);vertical-align:middle;font-size:13px}
.lc-tbl tr:last-child td{border-bottom:0}
.lc-wo1{display:block;white-space:nowrap}
.lc-wo1 a{font-family:var(--mono);font-weight:700}
.lc-wo2{display:block;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11.5px;color:var(--ink3)}
.lc-tbl .num{text-align:right}
.lc-tbl .c{text-align:center}
.lc-ok{color:var(--green-t,var(--ink))} .lc-warn{color:var(--amber-t,var(--ink));font-weight:700} .lc-bad{color:var(--red);font-weight:700}
.lc-barc{width:70px;min-width:50px}
.lc-bar2{display:block;height:7px;border-radius:99px;background:var(--grey-l);overflow:hidden}
.lc-bar2 i{display:block;height:100%;border-radius:99px}
.lc-unrow td{background:var(--amber-l)}
.lc-note{margin:8px 2px 0}
.lc-find{width:100%;box-sizing:border-box;font-family:var(--mono);font-size:15px;padding:10px 12px;border:2px solid var(--ink);border-radius:8px;background:var(--field,var(--paper));color:var(--ink)}
.lc-hit{margin-top:10px;border:1px solid var(--rule);border-radius:9px;padding:9px 11px;background:var(--amber-l)}
.lc-hit.none{background:var(--paper2)}
.lc-hwo a{font-family:var(--mono);font-weight:700}
.lc-hsub{font-size:12px;color:var(--ink2);margin:2px 0 6px}
.lc-hloc{display:flex;align-items:center;gap:10px}
.lc-hloc>div{flex:1;min-width:0;display:flex;flex-direction:column;font-size:13px}
.lc-hloc>div span{font-size:11.5px;color:var(--ink3)}
.lc-big{font-weight:800;font-size:18px;background:var(--ink);color:var(--paper);border-radius:7px;padding:4px 10px;min-width:30px;text-align:center}
.lc-big.none{background:var(--grey-l);color:var(--ink2)}
.lc-target{background:var(--indigo-l);color:var(--ink);border-radius:8px;padding:8px 10px;font-size:13px;margin-bottom:8px}
.lc-step{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--rule);color:var(--ink3)}
.lc-step>div{display:flex;flex-direction:column;font-size:13px}
.lc-step>div span{font-size:12px}
.lc-step.on,.lc-step.done{color:var(--ink)}
.lc-sn{flex:none;width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;border:2px dashed var(--rule2,var(--rule))}
.lc-step.on .lc-sn{border-color:var(--amber);color:var(--amber-t,var(--ink))}
.lc-step.done .lc-sn{border:0;background:var(--green);color:var(--on-accent)}
.lc-scanrow,.lc-pick{display:flex;gap:6px;margin-top:10px}
.lc-scan{flex:1;min-width:0;font-family:var(--mono);font-size:14px;padding:9px 11px;border:2px solid var(--indigo);border-radius:8px;background:var(--field,var(--paper));color:var(--ink)}
.lc-pick select{flex:1;min-width:0;padding:7px 8px;border:1px solid var(--rule);border-radius:7px;font:inherit;background:var(--paper);color:var(--ink)}
.lc-plist{margin-top:8px;border:1px solid var(--rule);border-radius:8px;overflow:hidden}
.lc-ph{font-size:12px;color:var(--ink2);padding:6px 10px;background:var(--paper2)}
.lc-prow{display:flex;gap:8px;width:100%;text-align:left;border:0;border-top:1px solid var(--rule);background:var(--paper);color:var(--ink);padding:7px 10px;cursor:pointer;font:inherit;font-size:13px}
.lc-prow span{color:var(--ink3)}
.lc-prow:hover{background:var(--hover,var(--paper2))}
.lc-recent{display:flex;flex-direction:column}
.lc-rrow{display:grid;grid-template-columns:70px minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--rule);font-size:12.5px}
.lc-rrow:last-child{border-bottom:0}
.lc-rt{font-family:var(--mono);font-size:11.5px;color:var(--ink2)}
.lc-rw a{font-family:var(--mono);font-weight:700}
.lc-rm{font-family:var(--mono);font-weight:700;white-space:nowrap}
.lc-rb{color:var(--ink2);white-space:nowrap}
.lc-dlg{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.lc-dlg label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink2)}
.lc-dlg select,.lc-dlg input{font:inherit;font-size:13px;padding:7px 8px;border:1px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--ink)}
.lc-mtw{max-height:55vh}
.lc-mtbl input:not([type=checkbox]),.lc-mtbl select{font:inherit;font-size:12.5px;padding:4px 6px;border:1px solid var(--rule);border-radius:5px;background:var(--paper);color:var(--ink);width:100%;box-sizing:border-box;min-width:70px}
.lc-mtbl .lc-seq{width:64px;min-width:0}
.lc-areasel{display:flex;flex-direction:column;gap:6px;margin:10px 0;font-size:13px}
/* Traveler header chip (js/floor.js hook → locChipHtml) */
.loc-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--rule);border-left:4px solid var(--grey);border-radius:6px;background:var(--paper);color:var(--ink);font:inherit;font-size:12px;font-weight:600;padding:2px 8px;cursor:pointer;vertical-align:middle;white-space:nowrap}
.loc-chip b{font-family:var(--mono);font-weight:800}
.loc-chip.ok{border-left-color:var(--green)} .loc-chip.warn{border-left-color:var(--amber)} .loc-chip.bad{border-left-color:var(--red)}
.loc-chip.none{color:var(--ink3)}
.loc-chip:hover{background:var(--hover,var(--paper2))}
@media (max-width:1100px){.lc-cols{grid-template-columns:minmax(0,1fr)} .lc-cols>:last-child{order:-1}}   /* R10: Scan to move first when the columns stack */
/* R10: "N jobs in work have no location" banner, the ⋯ menu (Manage, Export) */
.lc-unban{flex:0 1 auto;padding:6px 12px;border-radius:8px;border-left:4px solid var(--amber);background:var(--amber-l);color:var(--ink);font-size:13px}
.lc-unban[hidden]{display:none}
.lc-more{position:relative} .lc-more>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-width:32px} .lc-more>summary::-webkit-details-marker{display:none}
.lc-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:20;display:flex;flex-direction:column;gap:2px;min-width:180px;padding:6px;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--sh)}
.lc-menu .btn{text-align:left;justify-content:flex-start}
.lc-bar .btn,.lc-scanrow .btn,.lc-pick .btn,.lc-hloc .btn,.lc-tbl .btn{min-height:32px}

/* v1 tablet: 44 px touch targets (toolbar, scan box, move pick, tiles, dialogs) */
@media (max-width:1100px),(pointer:coarse){
  .lc-bar .btn,.lc-more>summary,.lc-menu .btn,.lc-scan,.lc-scanrow .btn,.lc-pick select,.lc-pick .btn,.lc-hloc .btn,.lc-find,.lc-prow,.lc-dlg select,.lc-dlg input,.lc-card .row .btn,#modal:has(.lc-dlg) .row .btn,#modal:has(.lc-mtbl) .btn,#modal:has(.lc-mtbl) input,#modal:has(.lc-mtbl) select,#modal:has(.lc-areasel) .row .btn,.lc-tbl .btn,.lc-areasel label{min-height:44px}
  .lc-tile{min-height:56px}
  .lc-areasel label{display:inline-flex;align-items:center;gap:6px}
}

/* R10 fix: the placeholder reads in the body font (a typed or scanned code stays mono) */
.lc-scan::placeholder{font-family:var(--font);font-size:14px}
