/* The directory follows the workspace theme, including installed PWAs. */
.qpd-directory{--qd-muted:var(--muted);--qd-line:var(--line);--qd-accent:var(--steel);border:1px solid var(--qd-line);border-radius:20px;background:var(--panel);overflow:visible;color:var(--ink);box-shadow:0 4px 22px #0f233503}
.qpd-header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:30px 30px 26px;background:linear-gradient(125deg,color-mix(in srgb,var(--steel) 6%,var(--panel)),var(--panel) 66%);border-radius:20px 20px 0 0}
.qpd-header .eyebrow{color:var(--steel);font-size:10px;letter-spacing:.14em;font-weight:700}.qpd-header h2{font-size:30px;line-height:1.2;letter-spacing:-.9px;margin:9px 0 11px}.qpd-header p{font-size:13px;line-height:1.65;color:var(--qd-muted);margin:0}.qpd-header>.button{flex-shrink:0;min-height:44px;gap:8px}
.qpd-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:0 30px 28px}
.qpd-summary>button{display:flex;flex-direction:column;align-items:stretch;gap:12px;border:1px solid var(--qd-line);border-radius:12px;background:var(--panel);text-align:left;color:var(--qd-muted);font:inherit;padding:17px 18px;cursor:pointer;min-width:0;transition:background .15s,border-color .15s}
.qpd-summary>button:hover,.qpd-summary>button[aria-pressed=true]{background:var(--soft);border-color:var(--steel)}.qpd-summary>button>span{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600}.qpd-summary strong{font-size:29px;line-height:1;letter-spacing:-.8px;color:var(--ink);font-weight:650}.qpd-summary small{display:flex;justify-content:space-between;gap:8px;font-size:10px;line-height:1.5}.qpd-summary small b{color:var(--muted);font-size:14px;font-weight:400}.qpd-dot{display:inline-block;flex-shrink:0;width:7px;height:7px;border-radius:50%;background:var(--muted)}.qpd-dot.active{background:var(--green)}.qpd-dot.bidding{background:var(--steel)}.qpd-dot.completed{background:var(--muted)}.qpd-dot.attention{background:var(--amber)}
.qpd-recent{display:flex;align-items:center;gap:10px;padding:18px 30px;flex-wrap:wrap;border-top:1px solid var(--qd-line);border-bottom:1px solid var(--qd-line);background:var(--soft)}.qpd-recent>span{font-size:9px;font-weight:700;letter-spacing:.12em;color:var(--qd-muted);margin-right:6px}.qpd-recent>button{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--qd-line);border-radius:7px;color:var(--ink);padding:9px 11px;font:inherit;font-size:11px;cursor:pointer;max-width:100%;min-width:0}.qpd-recent>button:hover{border-color:var(--steel)}.qpd-recent>button>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:205px}.qpd-recent small{color:var(--qd-muted);font-size:9px;white-space:nowrap}.qpd-recent b{color:var(--steel);font-weight:500}
.qpd-tools{display:grid;grid-template-columns:minmax(150px,1fr) 190px auto;gap:16px;padding:25px 30px 21px;align-items:center}.qpd-tools .field{min-width:0}.qpd-tools input,.qpd-tools select{font-size:12px;min-height:44px;border-radius:9px;background:var(--field);color:var(--ink);border-color:var(--line)}.qpd-tools label{font-size:11px}.qpd-search input{padding-left:13px}.qpd-search small{color:var(--qd-muted);font-size:10px;line-height:1.6}.qpd-tools>.field:not(.qpd-search){margin-bottom:17px}.qpd-layout{display:flex;border:1px solid var(--qd-line);border-radius:9px;padding:3px;gap:3px;background:var(--soft)}.qpd-layout>button{border:0;border-radius:6px;background:transparent;color:var(--qd-muted);height:35px;width:35px;font-size:18px;cursor:pointer}.qpd-layout>button[aria-pressed=true]{background:var(--panel);color:var(--steel);box-shadow:0 1px 4px #1232}
.qpd-tabs{display:flex;align-items:center;gap:23px;padding:0 30px;border-bottom:1px solid var(--qd-line);flex-wrap:wrap}.qpd-tabs>button{border:0;border-bottom:2px solid transparent;background:none;color:var(--qd-muted);font:inherit;font-size:11px;padding:12px 0;cursor:pointer;white-space:nowrap}.qpd-tabs>button:hover{color:var(--ink)}.qpd-tabs>button[aria-pressed=true]{color:var(--steel);border-bottom-color:var(--steel);font-weight:650}.qpd-tabs span{font-size:9px;padding:2px 5px;border-radius:4px;background:var(--soft);margin-left:4px;color:var(--muted)}.qpd-tabs [aria-pressed=true] span{color:var(--steel);background:color-mix(in srgb,var(--steel) 9%,var(--panel))}.qpd-tabs .qpd-favorite-filter{margin-left:auto}.qpd-tabs .qpd-favorite-filter>span{background:none;color:var(--amber);margin:0 4px 0 0;padding:0;font-size:12px}
.qpd-results-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:22px 30px 17px;font-size:12px;min-height:60px}.qpd-results-heading>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.qpd-results-heading>span,.qpd-results-heading>div>span{color:var(--qd-muted);font-size:11px}.qpd-filter-chip{display:inline-flex;align-items:center;gap:10px;font:inherit;font-size:10px;color:var(--ink);padding:5px 8px;margin-left:7px;border:1px solid var(--line);border-radius:5px;background:var(--soft)}.qpd-filter-chip b{font-size:14px;color:var(--muted)}
.qpd-projects{padding:0 30px 28px;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:18px}.qpd-project{--qpd-project-color:var(--steel);position:relative;display:flex;flex-direction:column;border:1px solid var(--qd-line);border-radius:13px;background:var(--panel);min-width:0;transition:border-color .16s,box-shadow .16s,transform .16s}.qpd-project.active{--qpd-project-color:var(--green)}.qpd-project.on_hold{--qpd-project-color:var(--amber)}.qpd-project.completed,.qpd-project.archived{--qpd-project-color:var(--muted)}.qpd-project:hover{border-color:color-mix(in srgb,var(--qpd-project-color) 60%,var(--line));box-shadow:0 8px 26px #13283b0b;transform:translateY(-2px)}.qpd-project:focus-within{border-color:var(--steel)}
.qpd-project-top{display:flex;align-items:center;gap:12px;padding:19px 20px 10px}.qpd-folder{width:50px;height:43px;color:var(--qpd-project-color);margin-right:auto}.qpd-folder svg{width:100%;display:block}.qpd-project-top>.pill{font-size:9px;padding:5px 8px;letter-spacing:.02em}.qpd-star{font-size:24px;background:none;border:0;color:var(--qd-muted);cursor:pointer;padding:4px;line-height:1;border-radius:5px}.qpd-star:hover{background:var(--soft)}.qpd-star[aria-pressed=true]{color:var(--amber)}
.qpd-project-open{width:100%;text-align:left;border:0;background:none;color:inherit;padding:9px 20px 2px;cursor:pointer;font:inherit}.qpd-project-open:focus-visible{outline:2px solid var(--steel);outline-offset:-3px;border-radius:5px}.qpd-project-open small{font-size:10px;letter-spacing:.08em;color:var(--qd-muted);font-weight:600}.qpd-project-open h3{font-size:19px;line-height:1.4;margin:7px 0 8px;overflow-wrap:anywhere;letter-spacing:-.35px;font-weight:650}.qpd-project-open:hover h3{color:var(--steel)}.qpd-project-open>span{font-size:12px;color:var(--ink)}.qpd-project-open p{color:var(--qd-muted);font-size:11px;line-height:1.6;margin:7px 0;min-height:17px;overflow-wrap:anywhere}
.qpd-project-data{padding:10px 20px 11px;display:flex;gap:12px;flex-wrap:wrap;font-size:10px;color:var(--qd-muted)}.qpd-project-data>span+span:before{content:'·';margin-right:12px;color:var(--qd-muted)}.qpd-signal{display:flex;align-items:flex-start;gap:7px;margin:0 20px 15px;padding:8px 9px;border-radius:6px;background:var(--soft);font-size:10px;color:var(--qd-muted);line-height:1.6}.qpd-signal>i{width:5px;height:5px;margin-top:5px;border-radius:50%;background:var(--muted);flex-shrink:0}.qpd-signal.attention{color:var(--ink);background:color-mix(in srgb,var(--amber) 10%,var(--panel))}.qpd-signal.attention>i{background:var(--amber)}.qpd-signal>span{overflow-wrap:anywhere}
.qpd-budget{margin:0 20px 19px;padding-top:12px;border-top:1px solid var(--line)}.qpd-budget>div:first-child{display:flex;justify-content:space-between;font-size:10px;color:var(--qd-muted);gap:10px}.qpd-budget strong{color:var(--ink);font-size:12px;font-weight:650}.qpd-budget-track{height:4px;border-radius:5px;background:var(--line);overflow:hidden;margin:9px 0}.qpd-budget-track i{display:block;height:100%;background:var(--green);border-radius:5px}.qpd-budget-track .over{background:var(--danger)}.qpd-budget>small{font-size:9px;color:var(--qd-muted);line-height:1.6}
.qpd-project-bottom{border-top:1px solid var(--qd-line);display:flex;align-items:center;gap:10px;padding:12px 16px 12px 20px;margin-top:auto;background:color-mix(in srgb,var(--soft) 65%,var(--panel));border-radius:0 0 13px 13px}.qpd-project-bottom>span{font-size:10px;color:var(--qd-muted);margin-right:auto;line-height:1.5}.qpd-project-bottom>.button{font-size:11px;gap:12px;min-height:34px;border-radius:6px;background:var(--panel);color:var(--steel);border-color:var(--line)}.qpd-project-bottom>.button:hover{border-color:var(--steel)}.qpd-project-bottom .qpf-menu>summary{font-size:13px;padding:7px 8px}.qpd-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--qd-line);padding:16px 30px;color:var(--qd-muted);font-size:10px;line-height:1.7}
.qpd-empty{text-align:center;grid-column:1/-1;padding:45px 20px;color:var(--qd-muted);background:var(--soft);border:1px dashed var(--line);border-radius:10px}.qpd-empty svg{width:65px;color:var(--steel)}.qpd-empty h3{color:var(--ink);font-size:18px}.qpd-empty p{font-size:12px;line-height:1.7;margin-bottom:22px}
.qpd-directory button:focus-visible,.qpd-directory summary:focus-visible{outline:2px solid var(--steel);outline-offset:3px}.qpd-directory input:focus-visible,.qpd-directory select:focus-visible{outline:2px solid var(--steel);outline-offset:1px}
.qpd-projects.list{grid-template-columns:1fr;gap:10px}.qpd-projects.list .qpd-project{display:grid;grid-template-columns:135px minmax(180px,1fr) minmax(155px,205px) 170px;align-items:center;transform:none}.qpd-projects.list .qpd-project-top{padding:18px;flex-wrap:wrap;gap:6px}.qpd-projects.list .qpd-folder{width:40px}.qpd-projects.list .qpd-project-top>.pill{order:3}.qpd-projects.list .qpd-project-data,.qpd-projects.list .qpd-signal{display:none}.qpd-projects.list .qpd-project-open{padding:17px 6px}.qpd-projects.list .qpd-project-open h3{font-size:15px;margin:5px 0}.qpd-projects.list .qpd-project-open>span{font-size:11px}.qpd-projects.list .qpd-project-open p{margin:5px 0 0;font-size:10px}.qpd-projects.list .qpd-budget{margin:20px 18px;border-top:0;padding-top:0}.qpd-projects.list .qpd-project-bottom{border-top:0;flex-wrap:wrap;justify-content:flex-end;padding:18px;margin:0;background:none;border-radius:0}.qpd-projects.list .qpd-project-bottom>span{width:100%;text-align:right}.qpd-projects.list .qpd-has-attention{border-left:3px solid var(--amber)}.project-breadcrumb select{max-width:320px;min-width:0;font-size:12px;padding:7px 10px}
.qpd-punch-location{margin-top:8px;max-width:230px;line-height:1.6}.qpd-punch-location small{color:var(--muted)}.qpd-punch-location a{display:block;font-size:11px;color:var(--steel);margin-top:3px}
@media(min-width:1550px){.qpd-projects:not(.list){grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}
@media(max-width:1100px){.qpd-projects.list .qpd-project{grid-template-columns:115px minmax(160px,1fr) 165px}.qpd-projects.list .qpd-budget{display:none}.qpd-tabs{gap:16px}.qpd-header h2{font-size:27px}.qpd-summary{gap:10px}.qpd-summary>button{padding:15px 13px}.qpd-summary small{font-size:9px}.qpd-summary>button>span{font-size:10px}}
@media(max-width:800px){.qpd-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.qpd-summary>button{gap:9px;padding:15px}.qpd-summary strong{font-size:27px}.qpd-summary>button>span{font-size:11px}.qpd-header{align-items:flex-start}.qpd-header h2{font-size:25px}.qpd-tools{grid-template-columns:minmax(150px,1fr) 170px auto;gap:10px}.qpd-tabs{gap:14px}}
@media(max-width:650px){.qpd-directory{border-radius:14px}.qpd-header{padding:23px 18px;flex-direction:column;gap:18px;border-radius:14px 14px 0 0}.qpd-header h2{font-size:25px}.qpd-header p{font-size:12px;max-width:280px}.qpd-summary{padding:0 18px 22px;gap:10px}.qpd-summary small{font-size:9px}.qpd-recent{padding:16px 18px}.qpd-recent>span{width:100%;margin-bottom:3px}.qpd-recent>button{flex:1 1 100%;justify-content:space-between}.qpd-recent>button>span{max-width:180px;margin-right:auto}.qpd-tools{padding:21px 18px;grid-template-columns:1fr auto;gap:12px}.qpd-search{grid-column:1/-1}.qpd-tools>.field:not(.qpd-search){margin:0}.qpd-layout{align-self:end;margin-bottom:1px}.qpd-tabs{padding:0 18px;gap:0 17px}.qpd-tabs>button{padding:10px 0}.qpd-tabs .qpd-favorite-filter{margin-left:0}.qpd-results-heading{padding:19px 18px 14px}.qpd-results-heading>span{display:none}.qpd-filter-chip{margin-left:0}.qpd-projects{padding:0 18px 22px;grid-template-columns:1fr;gap:16px}.qpd-project:hover{transform:none}.qpd-projects.list .qpd-project{grid-template-columns:73px minmax(120px,1fr)}.qpd-projects.list .qpd-project-top{padding:15px 10px;gap:7px}.qpd-projects.list .qpd-project-top>.pill{font-size:8px;padding:3px 4px}.qpd-projects.list .qpd-folder{width:31px}.qpd-projects.list .qpd-star{font-size:18px;padding:0}.qpd-projects.list .qpd-project-open{padding:15px 10px 15px 6px}.qpd-projects.list .qpd-project-bottom{grid-column:1/-1;border-top:1px solid var(--qd-line);padding:10px 15px;flex-wrap:nowrap}.qpd-projects.list .qpd-project-bottom>span{width:auto;text-align:left}.qpd-footer{padding:16px 18px;flex-direction:column;align-items:flex-start;gap:9px}.project-breadcrumb{flex-wrap:wrap}.project-breadcrumb select{max-width:100%}}
@media(prefers-reduced-motion:reduce){.qpd-project,.qpd-summary>button{transition:none}.qpd-project:hover{transform:none}}

/* Assigned crew and current sign-ins remain separate for each worker type. */
.qpd-project-data{gap:8px 12px}
.qpd-crew-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 10px;flex:1 1 100%;min-width:0;font-size:11px}
.qpd-crew-row>span:first-child{color:var(--qd-muted)}
.qpd-crew-row strong{color:var(--ink)}
.qpd-crew-row .qps-live-attendance{font-size:10px;padding:5px 7px;margin-left:auto}
.qpd-projects.list .qpd-project-data{display:flex;grid-row:2;grid-column:1/-1;padding:0 18px 14px}
.qpd-projects.list .qpd-crew-row{flex:0 1 290px}
.qpd-projects.list .qpd-project-top{grid-row:1;grid-column:1}
.qpd-projects.list .qpd-project-open{grid-row:1;grid-column:2}
.qpd-projects.list .qpd-budget{grid-row:1;grid-column:3}
.qpd-projects.list .qpd-project-bottom{grid-row:1;grid-column:4}
@media(max-width:1100px){.qpd-projects.list .qpd-project-bottom{grid-column:3}}
@media(max-width:650px){.qpd-projects.list .qpd-project-bottom{grid-row:3;grid-column:1/-1}.qpd-projects.list .qpd-crew-row{flex-basis:100%}}
