.dashboard-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.85fr);align-items:center;gap:32px}
.dashboard-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.dashboard-tools button{margin:0}
.dashboard-top .muted{margin-bottom:14px}
.dashboard-next{padding:24px;background:var(--surface-soft);border:1px solid var(--line);border-radius:14px}
.dashboard-next small{text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:700;color:var(--accent)}
.dashboard-next h3{font-size:21px;margin:10px 0}
.dashboard-next p{font-size:13px;color:var(--muted);margin:0 0 18px}
.dashboard-next button{min-height:44px;font-size:13px}
.dashboard-stats{grid-template-columns:repeat(var(--stat-count,3),minmax(0,1fr))}
.invitation-badge{display:inline-flex;width:fit-content;margin:8px 0 0;padding:4px 9px;border:1px solid var(--accent);border-radius:6px;color:var(--accent);font-size:11px;font-weight:650}
#jobs .card .job-offer-count{flex:none;display:block;font-weight:650;color:var(--ink);margin:12px 0 0}
@media(max-width:980px){.job-filters{grid-template-columns:1fr}.job-filters>label,.job-filters>input,.job-filters>.grid{grid-column:1;grid-row:auto}}
@media(max-width:760px){.dashboard-top{grid-template-columns:1fr;padding:22px;gap:22px}.dashboard-next{padding:20px}.dashboard-tools{gap:7px}.dashboard-top h2{font-size:26px}}
@media(max-width:540px){.dashboard-stats .stat{padding:16px 12px}.dashboard-stats .stat strong{font-size:27px}.dashboard-stats .stat span{font-size:12px}.filterbar button{flex:1 1 calc(50% - 5px)}.job-filters>.grid{grid-template-columns:1fr}}
@media(max-width:360px){.dashboard-stats{grid-template-columns:1fr}.dashboard-stats .stat{padding:13px 17px}.dashboard-next button{width:100%}}

.job-matching{padding:20px;border:1px solid var(--line);border-radius:14px;margin-block:16px 20px;background:var(--surface)}.job-matching summary{min-height:44px;cursor:pointer;font-weight:650}.job-matching p{overflow-wrap:anywhere}.job-matching input:not([type=checkbox]){width:100%}.job-matching .matching-check{display:flex;gap:12px;align-items:center;min-height:44px;margin-block:12px}.job-matching .matching-check input{width:20px;height:20px;flex:none;margin:0}.matching-actions{display:flex;flex-wrap:wrap;gap:8px}.matching-actions button{min-height:44px;white-space:normal;max-width:100%}.job-match-reasons{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:12px 0 20px;flex:none}.job-match-reasons li{font-size:12px;padding:4px 8px;border-radius:6px;color:var(--accent);background:var(--accent-soft)}

.dashboard-stats .stat-link{display:block;width:100%;text-align:left;color:var(--ink);border-color:var(--line);cursor:pointer}.dashboard-stats .stat-link:hover{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 4px 14px #163f3510}.dashboard-stats .stat-link:focus-visible{outline:3px solid var(--focus);outline-offset:4px;border-color:var(--accent)}

.dashboard-visually-hidden{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.dashboard-account-wrap{position:relative;flex:none}.dashboard-account>summary{display:flex;align-items:center;justify-content:center;inline-size:44px;block-size:44px;cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink)}.dashboard-account>summary::-webkit-details-marker{display:none}.dashboard-account svg,.logout-icon{inline-size:20px;block-size:20px;flex:none}.dashboard-account-options{position:absolute;z-index:40;inset-inline-end:0;inset-block-start:calc(100% + 8px);inline-size:min(290px,calc(100vw - 32px));padding:10px;display:grid;gap:6px;background:var(--surface);border:1px solid var(--muted);border-radius:14px;box-shadow:var(--shadow)}.dashboard-account-options small{padding:8px;color:var(--muted)}.dashboard-account-options button{min-block-size:44px;inline-size:100%;white-space:normal;text-align:start;padding:10px 12px}.logout-icon{display:none}
.dashboard-view .dashboard-top{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.dashboard-view .profile-heading{display:flex;align-items:center;gap:12px;min-inline-size:0}.dashboard-view .profile-heading .avatar{inline-size:40px;block-size:40px;flex:none;margin:0}.dashboard-view .dashboard-top h2{font-size:20px;line-height:1.35;margin:0;letter-spacing:-.025em;overflow-wrap:anywhere}
.dashboard-view .dashboard-next{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin:0 0 16px}.dashboard-view .dashboard-next>div{min-inline-size:0}.dashboard-view .dashboard-next h3{font-size:16px;line-height:1.35;margin:4px 0 0;letter-spacing:-.02em}.dashboard-view .dashboard-next small{font-size:10px}.dashboard-view .dashboard-next button{flex:0 0 auto;max-inline-size:48%;min-block-size:44px;white-space:normal;line-height:1.4;padding:10px 12px;margin:0}
.dashboard-view .dashboard-stats{display:grid;grid-template-columns:repeat(var(--stat-count,3),minmax(0,1fr));gap:10px;margin:0 0 20px}.dashboard-view .dashboard-stats .stat-link{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:6px;margin:0;min-block-size:74px;padding:12px 14px;text-align:start;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:none}.dashboard-view .dashboard-stats .stat-link:hover{background:var(--accent-soft);border-color:var(--accent)}.dashboard-view .dashboard-stats strong{font-size:24px;line-height:1.2;margin:0}.dashboard-view .dashboard-stats strong>span{font:inherit}.dashboard-view .dashboard-stats .stat-link>span{font-size:12px;line-height:1.4;font-weight:600;color:var(--muted)}
.dashboard-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-block:0 12px}.dashboard-view .section-title{font-size:22px;line-height:1.3;margin:0}.dashboard-new{min-block-size:44px;margin:0;white-space:normal;font-size:13px;flex:none}.dashboard-new>span[aria-hidden]{font-size:19px;line-height:1}
.dashboard-view .filterbar{display:flex;flex-wrap:wrap;gap:5px;padding:5px;margin:0 0 12px;border-radius:12px}.dashboard-view .filterbar button{flex:1 0 auto;min-block-size:44px;font-size:12px;line-height:1.4;white-space:normal;margin:0;padding:8px 10px;color:var(--ink);border:1px solid transparent;border-radius:9px}.dashboard-view .filterbar button.active{color:var(--accent);border-color:var(--accent);background:var(--surface)}
.dashboard-view .job-filters{display:block;padding:0;margin:0 0 14px;border:0;box-shadow:none;background:transparent}.dashboard-search-row{display:flex;align-items:flex-start;gap:8px;position:relative}.dashboard-search-row>input{min-inline-size:0;flex:1;inline-size:100%;min-block-size:44px;margin:0;border-color:var(--muted);border-color:color-mix(in srgb,var(--muted) 80%,var(--surface))}.dashboard-search-row>details{flex:none}.dashboard-search-row>details>summary{display:flex;align-items:center;justify-content:center;gap:6px;min-block-size:44px;padding:8px 12px;font-size:13px;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--muted);border-radius:12px;cursor:pointer}.dashboard-search-row>details>summary:before{content:'+';font-size:18px;line-height:1}.dashboard-search-row>details[open]>summary:before{content:'−'}.dashboard-filter-options{position:absolute;z-index:20;inset-inline-end:0;inset-block-start:calc(100% + 8px);inline-size:min(344px,calc(100vw - 32px));padding:16px;border:1px solid var(--muted);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);display:grid;gap:12px}.dashboard-filter-options label{display:block;margin:0 0 5px}.dashboard-filter-options select{inline-size:100%;min-block-size:44px;min-inline-size:0;margin:0;border-color:var(--muted)}.dashboard-view #result-count{display:block;margin-block-start:7px;line-height:1.5}.dashboard-view #dashboard-filter-count{display:inline-flex;align-items:center;justify-content:center;min-inline-size:20px;block-size:20px;padding:2px 5px;border-radius:6px;color:var(--accent);background:var(--accent-soft)}
.dashboard-view #jobs .card{padding:20px;margin:0 0 14px;border-radius:15px;box-shadow:none}.dashboard-view #jobs .card h3{font-size:19px;line-height:1.35;margin:8px 0 10px;letter-spacing:-.025em}.dashboard-view #jobs .card p{font-size:14px;line-height:1.55;margin-block:12px}.dashboard-view #jobs .card .job-offer-count{font-size:12px}.dashboard-view #jobs .card button{min-block-size:44px;margin-block-start:4px}.dashboard-view .new-job-panel{margin-block:20px}.dashboard-view .new-job-panel>summary{min-block-size:44px;padding:14px 18px;font-size:15px}.dashboard-view .job-matching{margin-block:20px}.dashboard-file-status{font-size:13px;color:var(--ink)}.dashboard-file-names{display:block;color:var(--muted);overflow-wrap:anywhere}.dashboard-view #dashboard-clear-files{min-block-size:44px}
@media(max-width:760px){header #logout{display:inline-flex;align-items:center;justify-content:center;inline-size:44px;min-block-size:44px;padding:8px}.logout-icon{display:block}header #logout>span{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.is-authenticated header>.row{gap:6px}.dashboard-view .dashboard-top{padding:0;gap:12px}.dashboard-view .dashboard-top h2{font-size:20px}.dashboard-view .dashboard-next{padding:12px;gap:10px}.dashboard-view .dashboard-next button{font-size:12px}.dashboard-view .dashboard-stats .stat-link{padding:12px;gap:5px}.dashboard-view .dashboard-stats strong{font-size:24px}.dashboard-view .dashboard-stats .stat-link>span{font-size:12px}.dashboard-new{font-size:12px;padding:9px 11px}}
@media(prefers-reduced-motion:reduce){.dashboard-view *,.dashboard-account *{scroll-behavior:auto;transition:none}}
.dashboard-account-options{position:fixed;inset-inline-end:16px;inset-block-start:calc(var(--goklus-header-height,76px) + 8px);max-block-size:calc(100dvh - var(--goklus-header-height,76px) - 24px);overflow:auto}
.dashboard-view[data-dashboard-role=customer] .filterbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-view[data-dashboard-role=customer] .filterbar button{min-inline-size:0;overflow-wrap:anywhere}
@media(max-width:760px){.dashboard-filter-options{position:fixed;inset-inline:16px;inset-block-start:auto;inset-block-end:16px;inline-size:auto;max-block-size:calc(100dvh - var(--goklus-header-height,76px) - 32px);overflow:auto}}

/* Shared semantic roles, tuned for AA contrast on the dashboard's soft surfaces. */
.dashboard-view{--muted:#596d73;--accent:#07735f}html[data-theme=dark] .dashboard-view{--muted:#a1b6bc;--accent:#65d1ad}

.job-category-icon{inline-size:16px;block-size:16px;vertical-align:middle;margin-inline-end:6px}

/* Closed native disclosures must have no layout or focusable fixed descendants. */
.dashboard-account:not([open])>.dashboard-account-options,#dashboard-more-filters:not([open])>.dashboard-filter-options{display:none}

/* Keep the existing notification panel inside tablet and mobile viewports. */
@media(max-width:900px){.is-authenticated .notification-panel{position:fixed;left:auto;right:auto;inset-inline-end:16px;top:calc(var(--goklus-header-height,88px) + 12px);max-height:calc(100dvh - var(--goklus-header-height,88px) - 28px);width:min(420px,calc(100vw - 32px))}}

/* Five professional filters keep two readable rows across system fonts. */
@media(max-width:760px){.dashboard-view[data-dashboard-role=pro] .filterbar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}.dashboard-view[data-dashboard-role=pro] .filterbar button{min-inline-size:0;grid-column:span 2;overflow-wrap:anywhere}.dashboard-view[data-dashboard-role=pro] .filterbar button:nth-last-child(-n+2){grid-column:span 3}}

/* One existing filter control per category on professional phones. */
.dashboard-filter-count{font-weight:750;font-variant-numeric:tabular-nums}
@media(max-width:760px){
 .dashboard-search-row{flex-wrap:wrap}
 .dashboard-search-row>details{min-inline-size:0;max-inline-size:100%}
 .dashboard-search-row>details>summary{white-space:normal;overflow-wrap:anywhere}
 .dashboard-view[data-dashboard-role=pro] .dashboard-stats,.dashboard-view[data-dashboard-role=pro] .dashboard-next{display:none}
 .dashboard-view[data-dashboard-role=pro] .dashboard-next[data-next-kind=matching]{display:flex;padding:0;border:0;background:none;margin-block:0 12px}
 .dashboard-view[data-dashboard-role=pro] .dashboard-next[data-next-kind=matching]>div{display:none}
 .dashboard-view[data-dashboard-role=pro] .filterbar{display:flex;flex-wrap:nowrap;overflow-x:auto;max-inline-size:100%;scroll-padding-inline:6px;scrollbar-width:thin;padding-block-end:8px}
 .dashboard-view[data-dashboard-role=pro] .filterbar button{flex:0 0 auto;grid-column:auto;min-block-size:44px;max-inline-size:100%;overflow-wrap:anywhere}
}

.pro-filter-shell{container-type:inline-size;container-name:pro-filters;min-inline-size:0}
@container pro-filters (max-width:240px){
 .dashboard-view[data-dashboard-role=pro] .filterbar{flex-wrap:wrap;overflow-x:visible}
 .dashboard-view[data-dashboard-role=pro] .filterbar button{flex:1 1 100%;max-inline-size:100%;min-inline-size:0;overflow-wrap:anywhere}
}

.job-shortlist-actions{display:flex;gap:8px;flex-wrap:wrap;margin-block-start:12px}.job-shortlist-actions button{flex:1;min-inline-size:110px;min-block-size:44px;font-size:13px;padding:9px 12px}.job-shortlist-actions button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.dashboard-filter-options .shortlist-hidden-control{display:flex;gap:10px;align-items:center;min-block-size:44px;cursor:pointer}.shortlist-hidden-control input{inline-size:20px;block-size:20px;min-block-size:20px;flex:none;margin:0}#shortlist-scope,#shortlist-status{font-size:13px;line-height:1.5;overflow-wrap:anywhere}#shortlist-status:empty{display:none}

/* Search-first specialties, with explicit category choices for matching. */
.specialty-search,.job-category-help{min-inline-size:0}.specialty-search input,.job-category-help input{margin-block-end:8px}.specialty-search p,.job-category-help p{margin-block:8px;font-size:13px;line-height:1.5}.specialty-count{color:var(--muted);font-size:12px}.category-chips{display:flex;flex-wrap:wrap;gap:8px;margin-block:8px;min-inline-size:0}.category-chips .category-chip{min-block-size:44px;max-inline-size:100%;padding:9px 12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:24px;white-space:normal;text-align:start;box-shadow:none;overflow-wrap:anywhere}.category-chips .category-chip.selected,.category-chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.category-chips .category-chip:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.specialty-browse,.job-category-help{border:1px solid var(--line);padding:10px 14px;border-radius:12px;margin-block:8px 18px;background:var(--surface)}.specialty-browse>summary,.job-category-help>summary{min-block-size:44px;display:flex;align-items:center;cursor:pointer;font-size:14px;font-weight:600;color:var(--ink)}.specialty-browse>summary:before,.job-category-help>summary:before{content:'+';margin-inline-end:10px;color:var(--accent);font-size:20px}.specialty-browse[open]>summary:before,.job-category-help[open]>summary:before{content:'−'}.specialty-browse .pro-specialty-group{margin-block:16px}.specialty-search [hidden],.job-category-help [hidden]{display:none!important}

.pro-photo-tile{position:relative;min-inline-size:0;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--surface-soft);border:1px solid var(--line)}.pro-photo-tile>.goklus-photo-thumb{inline-size:100%;block-size:100%;border-radius:11px}.pro-photo-tile>.goklus-photo-thumb img{inline-size:100%;block-size:100%;object-fit:cover}.pro-photo-tile>.pro-photo-delete{position:absolute;z-index:1;inset-block-start:4px;right:4px;display:grid;place-items:center;inline-size:44px;block-size:44px;min-block-size:44px;padding:0;border:1px solid #ffffff90;border-radius:50%;background:#102227e8;color:white;font-size:25px;line-height:1;box-shadow:0 2px 8px #0004}.pro-photo-delete:hover{background:#a12f3b}.pro-photo-delete:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.portfolio-project-photos>.goklus-photo-thumb{inline-size:100%;min-inline-size:0}.photo-lightbox-image{touch-action:pan-y pinch-zoom}
/* Moderator shortcuts share existing lists and header geometry. */
.moderator-summary .stat-link{display:flex;flex-direction:column;align-items:flex-start;gap:8px;inline-size:100%;min-block-size:88px;text-align:start;white-space:normal;color:var(--ink);cursor:pointer}.moderator-summary .stat-link:hover{background:var(--accent-soft);border-color:var(--accent)}.moderator-summary .stat-link:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.moderator-summary .stat-link strong{margin:0}.moderator-summary .stat-link strong span{font:inherit;color:inherit}.moderator-summary .stat-link span{max-inline-size:100%;overflow-wrap:anywhere}.moderator-section-heading{scroll-margin-block-start:calc(var(--goklus-header-height,88px) + 16px)}
@media(max-width:540px){.moderator-summary{grid-template-columns:1fr;gap:10px}.moderator-summary .stat-link{min-block-size:72px;padding:14px 18px;flex-direction:row;align-items:center;gap:14px}.moderator-summary .stat-link strong{font-size:27px}}

/* Keep customer and professional greetings free of redundant overview labels. */
.dashboard-view .dashboard-top>.profile-heading:before{content:none;display:none}

/* On desktop the disclosure belongs to its trigger, not the viewport edge. */
@media(min-width:761px){
 .dashboard-account-options{position:absolute;inset-inline-end:0;inset-block-start:calc(100% + 8px)}
}

/* Professional counts already appear in the job filter tabs. */
.dashboard-view[data-dashboard-role=pro] .dashboard-stats{display:none}

/* Customer navigation has one set of counted tabs and one new-job disclosure. */
.dashboard-view[data-dashboard-role=customer] .dashboard-stats,.dashboard-view[data-dashboard-role=customer] .dashboard-next{display:none}
.dashboard-view[data-dashboard-role=customer] .new-job-panel:not([open]){display:none}

.job-shortlist-actions .shortlist-trash{inline-size:18px;block-size:18px;vertical-align:middle;color:currentColor}

#jobs .job-shortlist-actions button:after{content:none}
