/* SuperSeal portal — project workflow (flow.js, Nov 2). Only fl- classes; nothing existing is restyled. */
.fl-col .col-head .t{gap:6px}
.fl-step{background:#ECEDFF!important;color:#0309F6!important;font-size:13px}
.fl-card{padding:0;overflow:hidden}
.fl-card .fl-open{display:block;width:100%;text-align:left;background:none;border:0;padding:11px 12px 9px;font:inherit;color:inherit;cursor:pointer}
.fl-card .r3{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.fl-scs{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}
.fl-sc{font-size:11.5px;background:#F5F6FB;border:1px solid #E4E5EF;border-radius:8px;padding:2px 7px;color:#14152B}
.fl-sc b{font-size:12.5px}
.fl-acts{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 11px}
.fl-acts .btn,.fl-pacts .btn{padding:8px 11px;font-size:13.5px;white-space:normal;line-height:1.2;flex:1 1 auto;min-width:0;width:auto}
.btn.fl-go{background:#0309F6;border-color:#0309F6;color:#fff}
.fl-due{background:#FFF0E6!important;color:#E8590C!important}
.fl-rev{background:#D1030A!important;color:#fff!important}
.fl-ok{background:#E7F6EE!important;color:#0F8A4B!important}
.fl-date{background:#ECEDFF!important;color:#0309F6!important}
.fl-card.fl-flag{border-left-color:#D1030A;box-shadow:0 0 0 2px #FDECEC}
.fl-card.fl-duec{border-left-color:#E8590C}
.fl-snz{display:block;width:100%;margin:8px 0 4px;background:none;border:1px dashed #C9CBDD;border-radius:10px;padding:8px;color:#7A7D96;font-size:12.5px;font-weight:600;cursor:pointer}
.fl-lnk{background:none;border:0;color:#0309F6;font-weight:700;font-size:12.5px;padding:2px 0;cursor:pointer;text-decoration:underline}
.fl-revbox{background:#FDECEC;border:1px solid #F3B5B7;border-radius:14px;padding:12px;margin:10px 0}
.fl-revbox h3{margin:0 0 2px;color:#D1030A;font-size:16px}
.fl-revbox .mine-grid{margin-top:8px}
/* panel in the project */
.fl-panel{border:2px solid #0309F6;background:#F7F7FF;border-radius:14px;padding:12px;margin:10px 0 14px}
.fl-ph{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px}
.fl-panel p{margin:8px 0}
.fl-pacts{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.fl-big{font-size:15.5px!important;padding:12px 14px!important}
.fl-note{background:#fff;border:1px solid #E4E5EF;border-radius:10px;padding:8px 10px}
.fl-flagline{background:#D1030A;color:#fff;border-radius:10px;padding:8px 10px}
.fl-log{margin-top:8px;font-size:13px}
.fl-log summary{cursor:pointer;color:#7A7D96;font-weight:600}
.fl-log ol{margin:6px 0 0;padding-left:18px}
.fl-log li{margin:4px 0}
.fl-log li span{display:block;color:#7A7D96;font-size:12px}
.fl-dt{border-collapse:collapse;width:100%;background:#fff;border-radius:10px;overflow:hidden;font-size:14px;margin:6px 0}
.fl-dt th,.fl-dt td{padding:6px 8px;border-bottom:1px solid #E4E5EF;text-align:left}
.fl-dt th{font-size:12px;color:#7A7D96}
.fl-dt tr.bad td{background:#FDECEC;color:#D1030A;font-weight:700}
/* modals */
.fl-mw{position:fixed;inset:0;z-index:80;background:rgba(20,21,43,.45);display:flex;align-items:flex-end;justify-content:center}
.fl-m{background:#fff;width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:18px 18px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -6px 30px rgba(0,0,0,.2)}
@media (min-width:700px){.fl-mw{align-items:center}.fl-m{border-radius:18px}}
.fl-m h3{margin:0 0 4px;font-size:19px}
.fl-l{display:block;font-weight:700;margin:12px 0 4px;font-size:14px}
.fl-l small{font-weight:500;color:#7A7D96}
.fl-l input,.fl-l select,.fl-l textarea{display:block;width:100%;margin-top:4px;font:inherit;font-weight:500;padding:10px;border:1px solid #C9CBDD;border-radius:10px;background:#fff;box-sizing:border-box}
.fl-mf{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px;position:sticky;bottom:-16px;background:#fff;padding:10px 0 4px}
.fl-mf .btn{flex:1 1 auto;width:auto}
.fl-months{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.fl-months .btn{flex-direction:column;padding:12px 6px;font-size:15px;width:auto}
.fl-months small{font-weight:500;color:#7A7D96;font-size:11.5px}
.fl-ppl{display:flex;flex-wrap:wrap;gap:6px}
.fl-pp{display:flex;align-items:center;gap:6px;border:1px solid #E4E5EF;border-radius:10px;padding:7px 10px;cursor:pointer;background:#fff}
.fl-pp.ing{border-color:#0309F6;background:#F7F7FF}
.fl-pp span{display:flex;flex-direction:column;font-weight:600;font-size:14px}
.fl-pp small{font-weight:500;color:#7A7D96;font-size:11px}
.fl-pp input{width:20px;height:20px}
.fl-crew{border:1px solid #E4E5EF;border-radius:12px;padding:10px;margin:10px 0;display:flex;flex-direction:column;gap:8px}
.fl-crh{display:flex;gap:8px;align-items:center}
.fl-cn{flex:1;font:inherit;font-weight:700;padding:8px 10px;border:1px solid #C9CBDD;border-radius:10px}
.fl-del{color:#D1030A}
.fl-addr{font-size:17px;font-weight:800;margin:2px 0 8px}
.fl-step{display:flex;align-items:center;gap:8px;font-weight:800;margin:14px 0 6px}
.fl-step b{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#0309F6;color:#fff;font-size:13px}
.fl-qs{display:flex;flex-direction:column;gap:6px}
.fl-q{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #E4E5EF;border-radius:12px;padding:8px 10px}
.fl-q span{font-weight:700;font-size:16px;display:flex;flex-direction:column}
.fl-q small{font-weight:500;color:#7A7D96;font-size:12px}
.fl-q input{width:84px;font-size:22px;font-weight:800;text-align:center;padding:8px;border:2px solid #C9CBDD;border-radius:10px}
.fl-q input.need{border-color:#D1030A;background:#FDECEC}
/* Install Crew screen */
.fl-work{max-width:640px;margin:0 auto}
.fl-wj{background:#fff;border:1px solid #E4E5EF;border-left:5px solid #0309F6;border-radius:14px;padding:14px;margin:12px 0;box-shadow:0 1px 2px rgba(20,21,43,.06)}
.fl-wj.today{border-left-color:#0F8A4B}
.fl-wj.sent{opacity:.75}
.fl-wd{font-size:14px;color:#7A7D96;font-weight:600}
.fl-wd b{color:#0F8A4B}
.fl-wa{display:block;font-size:20px;font-weight:800;color:#14152B;text-decoration:none;margin:6px 0 10px}
.fl-wa small{display:block;font-size:13px;font-weight:600;color:#0309F6;margin-top:2px}
.fl-wsc{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.fl-wsi{display:flex;align-items:center;gap:10px;background:#F5F6FB;border-radius:12px;padding:10px}
.fl-wsi b{font-size:28px;line-height:1;color:#0309F6;min-width:28px;text-align:center}
.fl-wsi span{font-weight:700;font-size:14.5px;display:flex;flex-direction:column}
.fl-wsi small{font-weight:500;color:#7A7D96;font-size:11.5px}
.fl-wsq{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:10px;font-size:13px;color:#7A7D96}
.fl-wsq b{color:#14152B}
.fl-wbtn{width:100%;margin-top:12px;font-size:18px;padding:14px!important}
.fl-wsent{margin-top:12px;color:#0F8A4B;font-weight:800}
.fl-wlater{margin-top:12px}
.fl-wh{margin:20px 0 4px;color:#7A7D96;font-size:15px}

/* v37 (Nathan 11:00 / 11:06 AM): Cancel job · Restore · Pick a date · Recurring service */
.fl-ml{font-weight:700;font-size:14px;margin:12px 0 6px;display:block}
.fl-rs{display:flex;flex-wrap:wrap;gap:8px}
.fl-rs .btn{width:auto;flex:1 1 calc(50% - 8px);padding:11px 8px;font-size:14.5px;white-space:normal;line-height:1.2}
.fl-rs .btn[aria-pressed="true"]{background:#0309F6;border-color:#0309F6;color:#fff}
.fl-cxm .fl-rs .btn[aria-pressed="true"]{background:#C62828;border-color:#C62828}
.fl-m textarea{width:100%;box-sizing:border-box;font:inherit;font-size:16px;padding:10px;border:1px solid #C9CBDD;border-radius:10px}
.fl-cxerr{color:#C62828;font-size:13.5px;margin:6px 0 0;min-height:1em}
.fl-cxgo{background:#C62828!important;border-color:#C62828!important;color:#fff!important}
.fl-cxrow{margin-top:10px;padding-top:10px;border-top:1px dashed #C9CBDD;display:flex;justify-content:flex-end}
.fl-cxbtn{width:auto;background:#fff;border-color:#E3B4B4;color:#C62828;font-size:13.5px;padding:7px 12px}
.fl-cxbox{background:#FFF4F4;border:1px solid #F0C9C9;border-radius:10px;padding:4px 10px}
.fl-cxp{background:#FFECEC!important;color:#B71C1C!important}
.fl-recp{background:#EEF7EE!important;color:#1B5E20!important}
.fl-rec{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;background:#fff;border:1px solid #E4E5EF;border-radius:10px;padding:8px 10px;font-size:14px}
.fl-recl{margin:8px 0 0}
.fl-pickrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.fl-pickrow input[type=date],.fl-pickrow input[type=number]{font:inherit;font-size:16px;padding:10px;border:1px solid #C9CBDD;border-radius:10px;min-width:0;flex:1 1 150px}
.fl-pickrow input[type=number]{flex:0 0 90px}
.fl-pickrow .btn{width:auto;flex:0 0 auto}
.fl-radio{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px;margin:6px 0}
.fl-radio input[type=radio]{width:20px;height:20px}
.fl-radio input[type=date]{font:inherit;font-size:16px;padding:8px;border:1px solid #C9CBDD;border-radius:10px}
.fl-months{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}
/* v43: Follow up search results for Office (only while the Dashboard search box has words) */
.fl-fsr{background:#F4F5FF;border:1px solid #C9CBF7;border-radius:14px;padding:12px;margin:10px 0}
.fl-fsr h3{margin:0 0 2px;color:#0309F6;font-size:16px}
.fl-fsr h3 small{font-weight:600;color:#5A5DA8;font-size:13px}
.fl-fsr .mine-grid{margin-top:8px}
.fl-fu{background:#ECEDFF!important;color:#0309F6!important}

/* v44: schedule from any step */
.fl-fd{display:flex;align-items:center;gap:8px;margin:12px 0 4px;font-size:14.5px;min-height:44px;padding:4px 10px;border:1px solid #C9CBDD;border-radius:10px;background:#fff;cursor:pointer}.fl-fd input{width:22px;height:22px;margin:0}.fl-fd small{color:#7A7D96;font-weight:500}
.fl-l[hidden]{display:none}
#fl-snote{width:100%;box-sizing:border-box;font:inherit;padding:8px 10px;border:1px solid #D5D7E3;border-radius:10px;min-height:44px}
.fl-schb{border-color:#BFD8FF;background:#F2F8FF}
.fl-ssr{background:#F2F8FF;border-color:#BFD8FF}

/* v46: office Awarded button (primary in Follow up, green outline earlier in the flow) */
.fl-awbtn:not(.fl-go){background:#fff;border-color:#8CCB9F;color:#1B7F3B}

/* v55 (Nov 5): crew row at the top of the project + merged board */
.fl-crewrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 10px;padding:8px 10px;border-radius:10px;background:#f1f3ff;border:1px solid #dfe3ff;font-size:14px}
.fl-crewrow .fl-crewbtn{margin-left:auto;padding:6px 12px}
.u-col .col-body,.u-mlist .list{grid-auto-rows:max-content}

/* v56 (Nov 5): "📅 Scheduled (N)" fold on the Dashboard (no Scheduled column) */
.u-schd{display:inline-block;width:auto;margin:6px 0 8px;padding:8px 14px}
.u-schd-list .u-schd-h{margin:10px 0 6px;font-size:13.5px}
.u-schd-list .list{grid-auto-rows:max-content}
@media (min-width:900px){.u-schd-list .list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}}

/* v57 (Nov 5, Nathan 4:56 PM): Cancel for old CompanyCam jobs (app.js cxOld*) */
.cxo-top{padding:6px 16px 0;display:flex;justify-content:flex-end}
.cxo-btn{color:#C62828!important;border-color:#F0C9C9!important;background:#FFF7F7!important;font-weight:600}
.cxo-box{background:#FFF4F4;border:1px solid #F0C9C9;border-radius:10px;margin:8px 16px;padding:6px 12px}
.cxo-box p{margin:4px 0}
.cxo-restore{background:#0B7A3B!important;border-color:#0B7A3B!important;color:#fff!important;font-weight:600}
.pill.cxo-pill{background:#FFECEC;color:#B71C1C}
.stage-pick .cxo-chip{color:#B71C1C;border-color:#F0C9C9}
.stage-pick .cxo-chip[aria-pressed="true"]{background:#FFECEC;color:#B71C1C}

/* v58: one job = one card (app.js SS_MERGE) */
.pill.mg-pill{background:#EEF3FF;color:#1A3FB0}
.mg-line{background:#F3F6FF;border:1px solid #D6E0FF;border-radius:10px;padding:6px 10px;margin:6px 0;font-size:13px}
.mg-box{background:#F3F6FF;border:1px solid #D6E0FF;border-radius:10px;margin:8px 16px;padding:8px 12px;font-size:14px}
