/* Shared rhythm for the daily queue, project workspace and administration. */
:root { --ws-line:#dce3dc; --ws-muted:#627068; --ws-green:#285a42; }
[hidden] { display:none !important; }
.ws-page-head { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-bottom:32px; }
.ws-page-head h1 { font:500 clamp(28px,3vw,40px)/1.15 'Fraunces',serif; margin:8px 0 12px; letter-spacing:-.025em; }
.ws-eyebrow { text-transform:uppercase; font-size:11px; letter-spacing:.12em; color:var(--ws-muted); font-weight:600; }
.ws-page-head p,.ws-section-head p { color:var(--ws-muted); margin:6px 0; font-size:13px; }
.ws-section-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.ws-section-head h2,.ws-card h2 { font:500 21px/1.3 'Fraunces',serif; margin:0; }
.ws-section-head h3 { font-size:16px; margin:0; }
#homeView { max-width:1440px; margin:auto; padding:36px 40px 80px; }
#wsHomeSearch { display:flex; gap:8px; width:min(440px,45%); }
#wsHomeSearch input { width:100%; min-width:0; }
.ws-home-grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr); gap:32px; }
.ws-main-queue { min-width:0; }
.ws-queue-group { margin:24px 0; }
.ws-queue-group h3 { display:flex; align-items:center; justify-content:space-between; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--ws-muted); }
.ws-queue-group h3 span { background:#e9eeea; border-radius:16px; padding:4px 9px; letter-spacing:0; }
.ws-queue-row { display:flex; gap:14px; align-items:center; justify-content:space-between; padding:17px 0; border-bottom:1px solid var(--ws-line); }
.ws-queue-row strong { font-size:14px; font-weight:600; }
.ws-queue-row p { font-size:13px; color:var(--ws-muted); margin:5px 0 0; line-height:1.6; }
.ws-queue-actions { display:flex; flex-direction:column; align-items:flex-end; gap:5px; flex-shrink:0; }
.ws-queue-actions .btn { white-space:nowrap; }
.ws-queue-actions [data-review-alert] { font-size:11px; color:var(--ws-muted); border:0; padding:4px 8px; }
.ws-home-aside { display:flex; flex-direction:column; gap:20px; }
.ws-card { border:1px solid var(--ws-line); border-radius:12px; background:white; padding:24px; }
.ws-card>h2 { margin-bottom:20px; }
.ws-empty,.ws-muted { color:var(--ws-muted); font-size:13px; line-height:1.6; }
.ws-empty { padding:8px 0; }
.ws-business>a { display:flex; justify-content:space-between; gap:16px; padding:12px 0; color:inherit; font-size:13px; text-decoration:none; }
.ws-business strong { font-size:20px; font-variant-numeric:tabular-nums; }
.ws-recent { display:flex; flex-direction:column; gap:5px; padding:13px 0; border-bottom:1px solid var(--ws-line); color:inherit; text-decoration:none; font-size:14px; }
.ws-recent span { font-size:12px; color:var(--ws-muted); }
.ws-task { display:flex; align-items:flex-start; gap:12px; padding:14px 0; border-bottom:1px solid var(--ws-line); }
.ws-task>div { min-width:0; }
.ws-check { background:none; border:1px solid #b8c8bd; border-radius:50%; flex:0 0 26px; width:26px; height:26px; color:var(--ws-green); cursor:pointer; }
.ws-task-title { padding:2px 0; border:0; background:none; font:600 14px/1.5 Inter,sans-serif; text-align:left; cursor:pointer; color:inherit; overflow-wrap:anywhere; }
.ws-task p { margin:5px 0 0; font-size:12px; color:var(--ws-muted); line-height:1.6; }
.ws-task p a { color:var(--ws-green); }
.ws-task.is-done .ws-task-title { text-decoration:line-through; color:var(--ws-muted); }
.ws-overdue,.ws-error { color:#9b362d; }
.ws-error { font-size:13px; line-height:1.6; }
.ws-completed { margin-top:20px; font-size:13px; }
.ws-completed summary,.ws-manage summary,.ws-report-more summary { cursor:pointer; padding:10px 0; color:var(--ws-muted); }
.ws-row-next { display:block; margin-top:5px; color:var(--ws-green); font-size:12px; line-height:1.5; white-space:normal; }
.ws-dialog { border:1px solid var(--ws-line); border-radius:16px; padding:28px; width:min(520px,calc(100vw - 32px)); max-height:90dvh; box-shadow:0 24px 100px #10261940; color:#1d2921; }
.ws-dialog::backdrop { background:#10261970; }
.ws-dialog h2 { font:500 25px/1.3 'Fraunces',serif; margin:0 0 14px; }
.ws-dialog label { display:flex; flex-direction:column; gap:8px; font-size:13px; margin:14px 0; }
.ws-dialog input,.ws-dialog select,.ws-view-controls input,.ws-view-controls select,#wsHomeSearch input { border:1px solid #cdd7cf; border-radius:7px; padding:10px 12px; background:white; font:inherit; color:inherit; }
.ws-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ws-tabs { display:flex; gap:4px; position:sticky; top:0; z-index:4; background:white; padding:8px 0 16px; border-bottom:1px solid var(--ws-line); margin-bottom:24px; }
.ws-tabs .btn { border:0; padding:9px 13px; font-size:13px; }
.ws-tabs .is-active,.ws-settings-tabs .is-active { background:#e7eee8; color:var(--ws-green); }
.project-drawer-panel { width:min(680px,100vw); }
.project-drawer.is-workspace .project-drawer-panel { width:min(1120px,100vw); }
.project-drawer-body { padding:0 26px 30px; }
.project-drawer-foot { justify-content:space-between; }
.project-drawer-head { padding:22px 26px; }
.ws-manage { position:relative; font-size:12px; }
.ws-manage[open] #drawerDeleteBtn { position:absolute; bottom:100%; right:0; background:white; border:1px solid #ecd9d6; padding:16px; min-width:150px; }
.ws-overview h3 { font:500 26px/1.35 'Fraunces',serif; margin:12px 0; }
.ws-overview>p { font-size:14px; color:var(--ws-muted); line-height:1.65; }
.ws-overview h4 { font-size:13px; margin:26px 0 12px; }
.ws-facts { display:grid; grid-template-columns:1fr 1fr; gap:22px; border-block:1px solid var(--ws-line); padding:24px 0; margin:28px 0; }
.ws-facts dt { color:var(--ws-muted); font-size:12px; margin-bottom:7px; }
.ws-facts dd { margin:0; font-size:14px; overflow-wrap:anywhere; }
.ws-note { white-space:pre-wrap; }
.ws-alert-note { background:#f5f2e8; padding:13px 16px; border-radius:8px; }
.ws-view-controls { display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px; margin:14px 0 20px; }
.ws-view-controls label { display:flex; flex-direction:column; gap:6px; font-size:11px; color:var(--ws-muted); }
.ws-view-controls select,.ws-view-controls input { font-size:13px; max-width:240px; height:40px; }
.ws-project-summary { border-block:1px solid var(--ws-line); margin:16px 0; }
.ws-project-summary>summary { cursor:pointer; padding:12px 0; font-size:12px; color:var(--ws-muted); }
.v3-shell { grid-template-columns:200px minmax(0,1fr); }
.v3-main { min-width:0; }
.v3-head { margin-bottom:16px; }
.v3-head-title { font-size:30px; }
.v3-head-sub { font-size:12px; }
.v3-sync { display:none; }
.v3-toolbar { margin-top:20px; }
.v3-tb-search { flex:1; max-width:540px; }
.metric-value { font-family:Inter,sans-serif; font-variant-numeric:tabular-nums; font-size:30px; }
.metric-card.is-dimmed { opacity:1; }
.v3-row { grid-template-columns:26px minmax(180px,2fr) minmax(155px,1.4fr) minmax(100px,1fr) 80px 64px; gap:12px; padding:16px 14px; }
.v3-ms-row { flex-wrap:wrap; gap:6px; }
.v3-row-name-text .label { white-space:normal; overflow:visible; line-height:1.45; }
.v3-row-name-text .v3-row-sub { white-space:normal; overflow:visible; line-height:1.5; }
.v3-row.is-favor { background:var(--surface); }
.v3-row.is-favor:hover { background:#f3f6f3; }
.v3-row-add-action { opacity:1; }
.projects-viewbar { padding:16px 32px 0; margin:0; }
.bd-root,.sbb-root { max-width:1600px; margin:auto; padding:28px 32px; }
.bd-root .ws-page-head { margin-bottom:8px; }
.sbb-col:not(.is-rail) { flex:1 0 268px; }
.billing-view,.report-orders-view,.integrations-view,.submittals-view { max-width:1440px; margin-inline:auto; }
.report-orders-view,.integrations-view { padding-inline:40px; }
.ws-settings-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:24px 0; }
.ws-report-type { border:1px solid var(--ws-line); border-radius:8px; padding:16px; margin:16px 0; }
.ws-report-type legend { font-size:13px; font-weight:600; }
.ws-report-type label { display:flex; align-items:flex-start; gap:10px; padding:10px 0; cursor:pointer; }
.ws-report-type strong,.ws-report-type small { display:block; font-size:13px; line-height:1.5; }
.ws-report-type small { color:var(--ws-muted); font-size:12px; margin-top:3px; }
.ro-pdf { font-size:13px; font-weight:600; padding:8px 0; }
.ws-report-more { font-size:12px; }
.ws-report-more summary { text-align:right; }
.ws-report-more .ro-btn { display:block; }
@media (max-width:1200px) {
  .v3-shell { grid-template-columns:1fr; }
  .v3-sidebar { display:none; }
  .ws-home-grid { grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr); gap:24px; }
}
@media (max-width:900px) {
  .topbar-inner { flex-wrap:nowrap; padding:10px 18px; gap:10px; }
  .brand-logo { width:90px; height:auto; }
  .topbar-actions { margin-left:auto; gap:6px; }
  .user-chip-email,.user-chip-role { display:none; }
  .user-chip { padding:0; border:0; background:none; }
  .tabbar { grid-template-columns:repeat(5,1fr); }
  #homeView { padding:24px 20px 90px; }
  .ws-page-head { flex-direction:column; align-items:stretch; gap:15px; margin-bottom:24px; }
  #wsHomeSearch { width:100%; }
  .ws-home-grid { grid-template-columns:1fr; }
  .ws-card { padding:20px; }
  .ws-home-aside { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ws-home-aside>:first-child { grid-column:1/-1; }
  .ws-view-controls { gap:10px; }
  .v3-main { padding:18px 20px 80px; }
  .v3-head { gap:12px; }
  .v3-head-title { font-size:26px; }
  .v3-head-sub { font-size:12px; }
  .v3-head-actions .btn { font-size:12px; padding:9px 12px; }
  .v3-toolbar { margin-top:16px; }
  .v3-toolbar .v3-tb-search { width:100%; }
  .projects-viewbar { padding:14px 20px 0; }
  .v3-row { grid-template-columns:1fr; gap:8px; padding:16px; }
  .v3-row.head { display:none; }
  .v3-row-name { padding-right:24px; }
  .ws-view-controls label { flex:1; min-width:120px; }
  .ws-view-controls select { width:100%; max-width:100%; }
  .ws-view-controls [data-ws-clear] { min-height:40px; }
  .ws-project-summary { margin:6px 0; }
  .v3-attn-wrap { margin:0 0 14px; }
  .bd-root,.sbb-root { padding:20px; }
  .bd-root { height:auto !important; }
  .bd-cols { overflow:visible; }
  .report-orders-view,.integrations-view { padding:24px 20px 90px; }
  .project-drawer-panel,.project-drawer.is-workspace .project-drawer-panel { width:100vw; }
}
@media (max-width:540px) {
  .ws-home-aside { display:flex; }
  .ws-page-head h1 { font-size:29px; }
  .ws-section-head h2 { font-size:20px; }
  .ws-queue-row { align-items:flex-start; flex-direction:column; gap:10px; }
  .ws-queue-actions { flex-direction:row; align-items:center; }
  .ws-queue-actions .btn { min-height:38px; }
  .ws-tabs { gap:0; overflow-x:auto; }
  .ws-tabs .btn { padding:11px 9px; font-size:12px; }
  .project-drawer-body { padding-inline:18px; }
  .ws-facts { gap:18px; }
  .ws-form-grid { grid-template-columns:1fr; gap:0; }
  .ws-dialog { padding:22px; }
  .ws-view-controls label { min-width:110px; }
  .ws-view-controls { margin-bottom:12px; }
  .ws-row-next { font-size:13px; }
  .v3-head-sub { max-width:220px; }
}

/* Final density and accessibility pass. */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
#homeView a:not(.btn):not(.ws-business>a):not(.ws-recent) { color:var(--ws-green); text-underline-offset:3px; }
a.btn { text-decoration:none; }
.ws-import-note { background:#f5f2e8; border-radius:8px; padding:14px 16px; margin:16px 0; font-size:13px; }
.drawer-group-body>.drawer-section>h3 { display:none; }
.ws-project-tools { display:flex; align-items:flex-end; gap:14px; margin:18px 0 4px; }
.ws-project-tools .v3-toolbar { flex:1; min-width:160px; margin:0 0 2px; }
.ws-project-tools .v3-tb-search { max-width:none; }
.ws-project-tools .v3-tb-search input { height:40px; }
.ws-project-tools .ws-view-controls { margin:0; flex-wrap:nowrap; }
.v3-sidebar { padding-inline:16px; }
.v3-side-item { gap:8px; }
.v3-head { padding-bottom:18px; }
.v3-row.head { font-size:10px; }
.ws-tabs .btn:focus-visible,.ws-task-title:focus-visible,.ws-check:focus-visible { outline:2px solid var(--ws-green); outline-offset:3px; }
@media (min-width:1201px) { #wsProjectFilters .ws-view-controls>label:first-child { display:none; } }
@media (max-width:1050px) {
 .ws-project-tools { flex-direction:column; align-items:stretch; gap:10px; }
 .ws-project-tools .v3-toolbar { flex:auto; }
 .ws-project-tools .ws-view-controls { flex-wrap:wrap; }
}

.drawer-group { scroll-margin-top:70px; }
.metric-card.metric-card--filter.is-dimmed { opacity:1; }
.ws-project-tools .v3-tb-search { padding-block:0; }
@media (max-width:540px) {
 .v3-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; }
 .v3-head-title { font-size:25px; }
 .v3-head-actions { align-self:end; }
 .v3-head-actions .btn { font-size:11px; padding:9px; }
 .v3-head-sub { font-size:11px; }
}

.ws-milestone-summary { display:flex; gap:10px; flex-wrap:wrap; font-size:12px; color:var(--ws-muted); }
.v3-ms-row { align-items:flex-start; flex-direction:column; }
@media (max-width:900px) {
 .v3-row:not(.head) { position:relative; grid-template-columns:minmax(0,1fr) auto; }
 .v3-row .v3-row-cb { position:absolute; right:14px; top:14px; }
 .v3-row-name,.v3-ms-row { grid-column:1/-1; }
 .v3-row-updated { grid-column:1/-1; font-size:11px; color:var(--ws-muted); }
 .v3-row-updated[data-label]::before { display:inline; margin-right:6px; }
}

/* The desktop project rail stays put while the project list moves. */
.v3-sidebar-switch { padding:14px 14px 18px; border-bottom:1px solid var(--v3-line); }
.v3-sidebar-groups { min-height:0; overflow-y:auto; overscroll-behavior-y:contain; scrollbar-gutter:stable; padding:14px 8px 24px; }
.v3-side-section { margin-bottom:16px; }
.v3-side-title { display:flex; align-items:center; justify-content:space-between; gap:8px; cursor:pointer; list-style:none; padding:9px 10px; border-radius:var(--r-sm); user-select:none; }
.v3-side-title::-webkit-details-marker { display:none; }
.v3-side-title::after { content:'›'; font-size:17px; line-height:1; transform:rotate(0); }
.v3-side-section[open]>.v3-side-title::after { transform:rotate(90deg); }
.v3-side-title:hover { background:var(--v3-cream-2); }
.v3-side-title:focus-visible { outline:2px solid var(--ws-green); outline-offset:-2px; }
@media (min-width:1201px) {
  body.v3-projects .projects-view { padding-block:24px; }
  body.v3-projects #projectsView>.projects-viewbar { display:none; }
  .v3-root, .v3-shell { min-height:calc(100dvh - var(--v3-topbar-height,85px) - 48px); }
  .v3-sidebar { position:sticky; top:calc(var(--v3-topbar-height,85px) + 24px); align-self:start; display:flex; flex-direction:column; height:calc(100dvh - var(--v3-topbar-height,85px) - 48px); min-height:0; padding:0; overflow:hidden; }
  .v3-sidebar-switch { flex:none; }
  .v3-sidebar-groups { flex:1; }
}
