/* Project Launch Call — scoped to .plc-* so nothing here can reach another module.
   Every colour comes from the hub's own variables in styles.css; this file adds no
   palette of its own. Split from project_launch_call.js so that file stays well
   under the ~700-line cap. */

/* control bar */
.plc-bar { display:flex; align-items:center; gap:14px; flex-wrap:wrap;
           padding:16px 24px; border-bottom:1px solid var(--border);
           background:var(--bg-soft); }
.plc-bar label { font-size:11px; font-weight:700; letter-spacing:.06em;
                 text-transform:uppercase; color:var(--text-3); }
.plc-select { font:inherit; font-size:13px; font-weight:600; color:var(--text-1);
              background:var(--card); border:1px solid var(--border); border-radius:9px;
              padding:8px 12px; cursor:pointer; }
.plc-select:focus { outline:2px solid var(--accent); outline-offset:1px; }
.plc-stamp { margin-left:auto; text-align:right; font-size:12px; color:var(--text-3);
             line-height:1.5; }
.plc-stamp b { color:var(--text-2); font-weight:600; }

/* banners */
.plc-note { display:flex; gap:10px; align-items:flex-start; margin:16px 24px 0;
            padding:12px 16px; border-radius:11px; font-size:13px; line-height:1.55; }
.plc-note.warn { background:rgba(245,158,11,.10); color:#92400e;
                 border:1px solid rgba(245,158,11,.28); }
.plc-note.info { background:var(--accent-soft); color:var(--blue);
                 border:1px solid rgba(59,158,218,.28); }
.plc-note.bad  { background:rgba(239,68,68,.09); color:#991b1b;
                 border:1px solid rgba(239,68,68,.26); }
.plc-note .ico { font-size:15px; line-height:1.3; flex:none; }

/* booking rows */
.plc-list { margin:16px 24px 24px; background:var(--card);
            border:1px solid var(--border); border-radius:14px; overflow:hidden;
            box-shadow:0 1px 3px rgba(15,23,42,.05); }
.plc-row { display:flex; align-items:center; gap:14px; padding:13px 18px;
           border-bottom:1px solid var(--border); transition:background .12s; }
.plc-row:last-child { border-bottom:none; }
.plc-row:hover { background:var(--bg-soft); }
.plc-row.done { background:rgba(16,185,129,.045); }
.plc-when { flex:none; width:150px; font-size:12.5px; font-weight:700;
            color:var(--text-1); line-height:1.4; }
.plc-when .t { display:block; font-weight:600; color:var(--text-2); font-size:11.5px; }
.plc-who { flex:1; min-width:0; }
.plc-who .nm { font-size:14px; font-weight:700; color:var(--text-1); }
.plc-who .sub { font-size:11.5px; color:var(--text-2); margin-top:2px; line-height:1.5; }
.plc-who .sub code { background:var(--bg-soft); border-radius:4px; padding:1px 5px;
                     font-size:11px; color:var(--text-1); }
.plc-pill { flex:none; font-size:11px; font-weight:800; padding:4px 10px;
            border-radius:999px; white-space:nowrap; letter-spacing:.02em; }
.plc-pill.ok   { background:var(--green-soft); color:var(--green); }
.plc-pill.todo { background:var(--bg-soft);   color:var(--text-3); }
.plc-btn { flex:none; font:inherit; font-size:12.5px; font-weight:700; cursor:pointer;
           padding:8px 15px; border-radius:9px; border:1px solid transparent;
           background:var(--blue); color:#fff; transition:filter .12s, transform .06s; }
.plc-btn:hover:not(:disabled) { filter:brightness(1.1); }
.plc-btn:active:not(:disabled) { transform:translateY(1px); }
.plc-btn:disabled { opacity:.45; cursor:not-allowed; }
.plc-btn.ghost { background:var(--card); color:var(--text-2); border-color:var(--border); }
.plc-btn.ghost:hover:not(:disabled) { background:var(--bg-soft); }

/* the per-booking working panel */
.plc-panel { padding:14px 18px 18px 18px; background:var(--bg-soft);
             border-bottom:1px solid var(--border); }
.plc-panel h4 { margin:0 0 10px; font-size:12px; font-weight:800; letter-spacing:.05em;
                text-transform:uppercase; color:var(--text-3); }
.plc-log { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:11.5px;
           line-height:1.65; background:var(--log-bg); color:#cbd5e1;
           border-radius:10px; padding:12px 14px; max-height:190px; overflow:auto;
           white-space:pre-wrap; word-break:break-word; }
.plc-cands { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
.plc-cand { display:flex; align-items:center; gap:11px; padding:10px 13px;
            background:var(--card); border:1px solid var(--border); border-radius:10px;
            cursor:pointer; transition:border-color .12s, background .12s; }
.plc-cand:hover { border-color:var(--accent); background:var(--accent-soft); }
.plc-cand input { accent-color:var(--blue); width:15px; height:15px; cursor:pointer; }
.plc-cand .jn { flex:1; font-size:13px; font-weight:700; color:var(--text-1); }
.plc-cand .cf { font-size:10.5px; font-weight:800; letter-spacing:.04em;
                text-transform:uppercase; padding:3px 8px; border-radius:999px; }
.plc-cand .cf.exact  { background:var(--green-soft); color:var(--green); }
/* 'nickname' is an exact match once a short first name is expanded (Jeff ->
   JEFFREY). It auto-records like 'exact', so it reads green, not amber. */
.plc-cand .cf.nickname { background:var(--green-soft); color:var(--green); }
.plc-cand .cf.strong { background:var(--accent-soft); color:var(--blue); }
.plc-cand .cf.weak   { background:rgba(245,158,11,.12); color:#b45309; }
.plc-manual { display:flex; gap:9px; align-items:center; margin-top:12px; flex-wrap:wrap; }
.plc-manual input { font:inherit; font-size:13px; padding:8px 12px; border-radius:9px;
                    border:1px solid var(--border); background:var(--card);
                    color:var(--text-1); min-width:250px; flex:1; }
.plc-manual input:focus { outline:2px solid var(--accent); outline-offset:1px; }
.plc-actions { display:flex; gap:9px; margin-top:12px; flex-wrap:wrap; }

.plc-empty { padding:44px 24px; text-align:center; color:var(--text-3); font-size:13.5px; }
.plc-unread { margin:0 24px 24px; font-size:12px; color:var(--text-2); line-height:1.6; }
.plc-unread summary { cursor:pointer; font-weight:700; color:var(--text-2); }
.plc-unread li { margin-top:6px; }

/* ── Step 4 inside the OCC → BT (New Jobs) screen ─────────────────────────── */
/* The panel no longer owns a whole view, so it supplies its own inset instead
   of relying on .module-view-body. Colours stay on the hub tokens. */
.plc-intro {
  margin: 0 22px 12px;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--text-2);
}

.plc-offer {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 22px 14px;
  padding: 13px 16px;
  border: 1px solid color-mix(in srgb, var(--blue) 38%, transparent);
  border-radius: 12px;
  background: color-mix(in srgb, var(--blue) 9%, transparent);
  box-shadow: 0 6px 18px -12px color-mix(in srgb, var(--blue) 60%, transparent);
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-1);
}
.plc-offer > div { flex: 1; min-width: 0; }
.plc-offer .ico { font-size: 17px; line-height: 1; }
.plc-offer code {
  padding: 1px 6px;
  border-radius: 5px;
  background: color-mix(in srgb, var(--blue) 14%, transparent);
  font-size: 11.5px;
}

/* ── Check Buildertrend — the read-only reconcile ─────────────────────────── */
.plc-check {
  margin: 0 22px 14px;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg-soft);
}
.plc-check.done { border-color: color-mix(in srgb, var(--blue) 30%, var(--border)); }
.plc-check .hd { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; }
.plc-check .hd b { font-size: 13px; color: var(--text-1); }
.plc-check .hd span { font-size: 12px; color: var(--text-3); line-height: 1.5; }
.plc-check .plc-log { margin-top: 10px; }

.plc-check .tallies { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; }
.plc-check .tally {
  padding: 3px 9px; border-radius: 999px;
  font-size: 11.5px; font-weight: 700; letter-spacing: .01em;
}
.plc-check .tally.ok   { background: var(--green-soft); color: var(--green); }
.plc-check .tally.todo { background: var(--accent-soft); color: var(--blue); }
.plc-check .tally.warn { background: rgba(245,158,11,.14); color: #b45309; }

.plc-check .needs { list-style: none; margin: 12px 0 0; padding: 0; }
.plc-check .needs li {
  padding: 9px 0; border-top: 1px solid var(--border);
  font-size: 12.5px; line-height: 1.55; color: var(--text-2);
}
.plc-check .needs li b { color: var(--text-1); }
.plc-check .needs .v { margin-left: 8px; font-size: 11.5px; font-weight: 700; }
.plc-check .needs .v.ok   { color: var(--green); }
.plc-check .needs .v.todo { color: var(--blue); }
.plc-check .needs .v.warn { color: #b45309; }
.plc-check .needs code {
  padding: 1px 6px; border-radius: 5px; font-size: 11.5px;
  background: color-mix(in srgb, var(--blue) 12%, transparent);
}
.plc-check .needs .cands { font-size: 11.5px; color: var(--text-3); }
