:root{color:#111827;background:#fff;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--blue: #155eef;--blue-dark: #0f4fd6;--blue-soft: #eff5ff;--ink: #111827;--muted: #64748b;--subtle: #94a3b8;--line: #dbe3ee;--line-soft: #e9eef5;--panel: #f4f8fc;--green: #15945d;--danger: #c73b46}*{box-sizing:border-box}html{min-width:320px;background:#fff}body{margin:0;min-width:320px;min-height:100vh;background:#fff}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(21,94,239,.2);outline-offset:2px}.app-shell{min-height:100vh}.app-header{position:sticky;top:0;z-index:40;display:grid;grid-template-columns:265px 1fr auto;align-items:stretch;height:60px;border-bottom:1px solid var(--line);background:#fffffff7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:10px;padding:0 22px;border:0;background:transparent;font-size:20px;font-weight:760;letter-spacing:-.04em;cursor:pointer}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--blue);color:#fff}.main-nav{display:flex;align-items:stretch;gap:6px}.nav-item{position:relative;padding:0 20px;border:0;background:transparent;color:#536176;font-size:14px;font-weight:560;cursor:pointer}.nav-item:after{content:"";position:absolute;right:18px;bottom:-1px;left:18px;height:2px;border-radius:2px 2px 0 0;background:transparent}.nav-item:hover,.nav-item.active{color:var(--blue)}.nav-item.active:after{background:var(--blue)}.primary-button,.outline-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 16px;border-radius:8px;font-size:13px;font-weight:650;text-decoration:none;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.primary-button{border:1px solid var(--blue);background:var(--blue);color:#fff}.primary-button:hover{border-color:var(--blue-dark);background:var(--blue-dark)}.primary-button:active,.outline-button:active{transform:translateY(1px)}.outline-button{border:1px solid #b9c5d4;background:#fff;color:#26364d}.outline-button:hover{border-color:var(--blue);color:var(--blue)}.refresh-button{align-self:center;margin-right:20px}.workspace{display:grid;grid-template-columns:265px minmax(640px,1fr) 330px;min-height:calc(100vh - 60px)}.filter-panel{position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto;padding:20px 21px 28px;border-right:1px solid var(--line);background:var(--panel);scrollbar-width:thin;scrollbar-color:#c3ceda transparent}.filter-panel fieldset{margin:22px 0 0;padding:0;border:0}.filter-panel legend,.field-group>span:first-child{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:10px;color:#263244;font-size:12px;font-weight:740}.filter-panel legend small{color:var(--muted);font-size:10px;font-weight:500}.field-group{display:block}.input-with-icon{display:flex;align-items:center;gap:9px;min-height:38px;padding:0 11px;border:1px solid #cfd9e5;border-radius:7px;background:#fff;color:#7b8ba1}.input-with-icon:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #155eef17}.input-with-icon input{min-width:0;width:100%;height:36px;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:12px}.input-with-icon input::placeholder{color:#97a4b5}.checkbox-stack,.radio-stack{display:grid;gap:9px}.checkbox-stack label,.radio-stack label{display:grid;grid-template-columns:16px 1fr auto;align-items:center;gap:8px;color:#344156;font-size:12px;line-height:1.25;cursor:pointer}.checkbox-stack label:hover,.radio-stack label:hover{color:var(--blue)}.checkbox-stack input,.radio-stack input{width:15px;height:15px;margin:0;accent-color:var(--blue)}.checkbox-stack small{color:var(--muted);font-size:10px}.services-list{max-height:192px;overflow-y:auto;padding-right:5px;scrollbar-width:thin}.source-list{max-height:160px;overflow-y:auto;padding-right:5px;scrollbar-width:thin}.budget-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.budget-row label{display:flex;align-items:center;gap:5px;min-width:0;height:36px;padding:0 9px;border:1px solid #cfd9e5;border-radius:7px;background:#fff}.budget-row span{color:var(--muted);font-size:11px}.budget-row input{min-width:0;width:100%;border:0;outline:0;color:var(--ink);font-size:11px}.filter-actions{display:grid;gap:4px;margin-top:24px}.wide{width:100%}.text-button{min-height:34px;border:0;background:transparent;color:var(--blue);font-size:12px;font-weight:600;cursor:pointer}.text-button.muted{color:var(--muted)}.mobile-drawer-title{display:none}.jobs-main{position:relative;min-width:0;padding:26px 26px 40px;background:#fff}.jobs-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:20px}.jobs-heading h1,.view-heading h1{margin:0;color:#101827;font-size:clamp(22px,1.8vw,28px);line-height:1.18;letter-spacing:-.035em}.jobs-heading p,.view-heading p{margin:7px 0 0;color:var(--muted);font-size:13px}.jobs-heading p span{margin:0 5px;color:#9aa7b8}.sort-select{position:relative;flex:0 0 auto;display:flex;align-items:center}.sort-select select{min-width:146px;height:38px;padding:0 38px 0 13px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cdd7e3;border-radius:8px;outline:0;background:#fff;color:#344156;font-size:12px;cursor:pointer}.sort-select svg{position:absolute;right:12px;pointer-events:none;color:#6d7c91}.jobs-table{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff;transition:opacity .16s ease}.jobs-table.is-loading{opacity:.62}.jobs-table-head,.job-row{display:grid;grid-template-columns:minmax(230px,2.3fr) minmax(90px,.85fr) minmax(92px,.9fr) 72px 88px minmax(116px,1.05fr) 110px;column-gap:12px;align-items:center}.jobs-table-head{min-height:39px;padding:0 13px;border-bottom:1px solid var(--line);background:#fbfcfe;color:#65738a;font-size:10px;font-weight:660}.job-row{min-height:92px;padding:12px 13px;border-bottom:1px solid var(--line-soft);cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.job-row:last-child{border-bottom:0}.job-row:hover{background:#fbfdff}.job-row.selected{position:relative;z-index:1;background:#f7faff;box-shadow:inset 0 0 0 1.5px var(--blue)}.job-summary{min-width:0}.job-summary h3{margin:0 0 5px;overflow:hidden;color:#1a2535;font-size:12px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.job-summary p{display:-webkit-box;margin:0;overflow:hidden;color:#66758b;font-size:10px;line-height:1.42;-webkit-box-orient:vertical;-webkit-line-clamp:2}.job-source{display:flex;align-items:center;min-width:0;gap:5px;color:#455268;font-size:11px}.job-source span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-source svg,.detail-source svg{flex:0 0 auto;color:var(--green)}.job-budget{color:#28364a;font-size:10.5px;line-height:1.45}.job-format,.job-date{color:#5f6e83;font-size:10px;line-height:1.35}.job-tags{display:flex;flex-wrap:wrap;gap:4px}.job-tags span{padding:4px 6px;border-radius:5px;background:#eef3f9;color:#5c6f8a;font-size:9px;line-height:1.1}.job-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.bookmark-button,.icon-button{display:inline-grid;flex:0 0 auto;place-items:center;width:34px;height:34px;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:#35445a;text-decoration:none;cursor:pointer}.bookmark-button:hover,.icon-button:hover{border-color:#cbd6e3;background:#f6f9fc}.bookmark-button.saved,.saved-action{color:var(--blue)}.row-open{min-height:32px;padding:0 11px;border-color:var(--blue);color:var(--blue);font-size:10px}.pagination{display:flex;align-items:center;justify-content:center;gap:12px;min-height:52px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.pagination button:disabled{opacity:.35;cursor:not-allowed}.loading-state,.empty-state{display:grid;place-items:center;align-content:center;gap:8px;min-height:340px;border:1px solid var(--line);border-radius:10px;color:var(--muted);text-align:center}.empty-state strong{color:#26364c;font-size:15px}.empty-state span{max-width:380px;font-size:12px}.job-detail{position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto;border-left:1px solid var(--line);background:#fff}.job-detail.has-job{padding:54px 22px 92px}.detail-close{position:absolute;top:14px;right:14px}.detail-heading h2{margin:0;color:#172132;font-size:18px;line-height:1.26;letter-spacing:-.025em}.detail-source{display:flex;align-items:center;gap:6px;margin-top:10px;color:#526178;font-size:12px}.detail-source small{margin-left:auto;color:#8a98aa;font-size:10px}.detail-section{margin-top:24px;padding-top:22px;border-top:1px solid var(--line-soft)}.detail-section.compact{display:grid;gap:7px}.detail-label{display:block;margin-bottom:10px;color:#27354a;font-size:12px;font-weight:740}.detail-budget{color:#172132;font-size:16px}.detail-section p{margin:0;color:#526178;font-size:12px;line-height:1.62}.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.detail-facts>div{display:flex;align-items:flex-start;gap:8px;padding:11px;border:1px solid var(--line-soft);border-radius:8px;color:#35445a;font-size:11px}.detail-facts svg{flex:0 0 auto;color:#728198}.detail-facts span{display:grid;gap:2px}.detail-facts small{color:#8a98aa;font-size:9px}.detail-tags span{padding:5px 7px;font-size:10px}.detail-footer{position:fixed;right:0;bottom:0;z-index:5;display:grid;grid-template-columns:auto 1fr;gap:8px;width:330px;padding:14px 18px;border-top:1px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.detail-footer .outline-button{width:42px;padding:0;font-size:0}.detail-open{min-height:42px}.detail-placeholder{display:grid;place-items:center;align-content:center;gap:7px;height:100%;padding:40px;color:#8a98aa;text-align:center}.detail-placeholder strong{color:#425168;font-size:14px}.detail-placeholder span{font-size:11px}.detail-grabber,.detail-backdrop,.mobile-toolbar,.mobile-search-row,.mobile-sort,.mobile-floating-filter,.saved-counter{display:none}.error-banner{position:fixed;top:70px;left:50%;z-index:80;display:flex;align-items:center;gap:16px;padding:10px 12px 10px 16px;border:1px solid #f1bec3;border-radius:9px;background:#fff7f8;color:#8f2d36;font-size:12px;box-shadow:0 10px 30px #3c0e121a;transform:translate(-50%)}.error-banner button{display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border:0;border-radius:6px;background:#fff;color:#8f2d36;font-size:11px;cursor:pointer}.standalone-view{max-width:1220px;margin:0 auto;padding:38px 28px 64px}.view-heading{display:flex;justify-content:space-between;gap:24px;margin-bottom:26px}.source-table{overflow:hidden;border:1px solid var(--line);border-radius:10px}.source-table-head,.source-row{display:grid;grid-template-columns:minmax(300px,1.8fr) 150px 80px 70px 160px 36px;gap:16px;align-items:center}.source-table-head{min-height:42px;padding:0 16px;border-bottom:1px solid var(--line);background:#f9fbfd;color:var(--muted);font-size:11px;font-weight:650}.source-row{min-height:82px;padding:13px 16px;border-bottom:1px solid var(--line-soft);color:#526178;font-size:12px}.source-row:last-child{border-bottom:0}.source-name{display:flex;align-items:flex-start;gap:12px}.source-name>span:last-child{display:grid;gap:4px}.source-name strong{color:#26364d;font-size:13px}.source-name small{color:#7a899e;font-size:10px;line-height:1.45}.source-name .source-error{color:var(--danger)}.source-icon{display:grid;flex:0 0 auto;place-items:center;width:36px;height:36px;border-radius:9px;background:#edf2f8;color:#65758b}.source-icon.active{background:#eaf7f1;color:var(--green)}.status-label{display:inline-flex;align-items:center;gap:5px;width:max-content;padding:5px 7px;border-radius:6px;background:#f0f3f7;color:#68778b;font-size:10px;font-weight:650}.status-label.active{background:#eaf7f1;color:var(--green)}.status-label.available{background:var(--blue-soft);color:var(--blue)}.status-label.error{background:#fff0f2;color:var(--danger)}.source-kind{color:#68778b;font-size:10px;font-weight:700;letter-spacing:.06em}.saved-filter-list{overflow:hidden;border:1px solid var(--line);border-radius:10px}.saved-filter-row{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px;padding:14px 16px;border-bottom:1px solid var(--line-soft)}.saved-filter-row:last-child{border-bottom:0}.saved-filter-row>div:first-child{display:grid;gap:5px}.saved-filter-row strong{color:#26364d;font-size:14px}.saved-filter-row span{color:var(--muted);font-size:11px}.saved-filter-row>div:last-child{display:flex;align-items:center;gap:8px}.icon-button.danger:hover{border-color:#efc5c9;background:#fff6f7;color:var(--danger)}.empty-state.large{min-height:420px}.spinning{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1480px){.workspace{grid-template-columns:245px minmax(590px,1fr) 310px}.app-header{grid-template-columns:245px 1fr auto}.filter-panel{padding-inline:18px}.jobs-main{padding-inline:20px}.jobs-table-head,.job-row{grid-template-columns:minmax(210px,2.2fr) minmax(80px,.8fr) minmax(82px,.9fr) 68px 78px minmax(100px,1fr) 82px;column-gap:9px}.row-open{display:none}.detail-footer{width:310px}}@media(max-width:1199px){.workspace{grid-template-columns:245px minmax(0,1fr)}.job-detail{position:fixed;top:auto;right:0;bottom:0;left:0;z-index:75;width:min(620px,100%);height:min(78vh,720px);margin:0 auto;border:1px solid var(--line);border-bottom:0;border-radius:20px 20px 0 0;box-shadow:0 -20px 60px #10203429;transform:translateY(105%);transition:transform .22s ease}.job-detail.mobile-open{transform:translateY(0)}.job-detail.has-job{padding:44px 28px 92px}.detail-grabber{position:absolute;top:12px;left:50%;display:block;width:44px;height:5px;border-radius:999px;background:#cbd3dd;transform:translate(-50%)}.detail-footer{right:auto;left:50%;width:min(620px,100%);transform:translate(-50%)}.detail-backdrop{position:fixed;z-index:70;display:block;top:0;right:0;bottom:0;left:0;border:0;background:#14203047;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}@media(max-width:899px){.app-header{display:none}.workspace{display:block;min-height:100vh}.jobs-main{padding:0 18px 110px}.mobile-toolbar{display:flex;align-items:center;justify-content:space-between;height:70px;margin:0 -18px;padding:0 18px;border-bottom:1px solid var(--line)}.mobile-brand{color:#111827;font-size:21px;font-weight:770;letter-spacing:-.045em}.mobile-brand span:last-child{color:var(--blue)}.mobile-toolbar-actions{display:flex;gap:6px}.jobs-heading{display:block;margin:28px 0 20px}.jobs-heading h1{max-width:500px;font-size:28px;line-height:1.12}.jobs-heading p{margin-top:10px;font-size:15px}.desktop-sort{display:none}.mobile-sort{display:flex;width:100%;min-height:46px;margin:10px 0 6px;padding-left:13px;border:1px solid #cdd7e3;border-radius:10px}.mobile-sort>span{flex:0 0 auto;color:#445269;font-size:13px}.mobile-sort select{width:100%;min-width:0;height:44px;padding-left:8px;border:0;font-size:13px}.mobile-sort svg{right:13px}.mobile-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:7px}.mobile-search-row .input-with-icon{min-height:46px;border-radius:10px}.mobile-search-row input{height:44px;font-size:14px}.mobile-filter-button{position:relative;width:46px;min-height:46px;padding:0;border-radius:10px}.mobile-filter-button span{position:absolute;top:-6px;right:-5px;display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--blue);color:#fff;font-size:10px}.filter-panel{position:fixed;top:0;right:0;bottom:0;left:auto;z-index:90;width:min(390px,92vw);height:100vh;padding:18px 20px 30px;border-right:0;border-left:1px solid var(--line);box-shadow:-24px 0 70px #111f322e;transform:translate(105%);transition:transform .22s ease}.filter-panel.mobile-open{transform:translate(0)}.mobile-drawer-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.mobile-drawer-title>div{display:flex;align-items:center;gap:9px}.drawer-backdrop{position:fixed;z-index:85;top:0;right:0;bottom:0;left:0;border:0;background:#14203057;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.jobs-table{overflow:visible;border:0;border-radius:0}.jobs-table-head{display:none}.job-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;min-height:0;padding:22px 2px;border-bottom:1px solid var(--line)}.job-row.selected{background:transparent;box-shadow:none}.job-summary{grid-column:1}.job-summary h3{margin-bottom:7px;font-size:17px;line-height:1.28;white-space:normal}.job-summary p{display:none}.job-source{grid-column:1;grid-row:2;font-size:13px}.job-budget{grid-column:1;grid-row:3;font-size:14px}.job-format{grid-column:1;grid-row:4;font-size:12px}.job-date{grid-column:2;grid-row:3 / span 2;align-self:center;color:#758398;font-size:12px;text-align:right}.job-tags{grid-column:1 / -1;grid-row:5;margin-top:3px}.job-tags span{padding:6px 8px;border-radius:7px;font-size:11px}.job-actions{grid-column:2;grid-row:1 / span 2;align-self:start}.row-open{display:none}.bookmark-button{width:38px;height:38px}.pagination{border-top:0}.mobile-floating-filter{position:fixed;bottom:22px;left:50%;z-index:50;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;border:0;border-radius:999px;background:var(--blue);color:#fff;font-size:14px;font-weight:680;box-shadow:0 10px 30px #155eef47;transform:translate(-50%)}.mobile-floating-filter span{display:grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:999px;background:#fff;color:var(--blue);font-size:11px}.job-detail{height:min(60vh,570px)}.detail-heading h2{font-size:20px}.detail-footer{grid-template-columns:1fr 50px;padding-bottom:max(14px,env(safe-area-inset-bottom))}.detail-footer .outline-button{grid-column:2;grid-row:1;width:50px}.detail-open{grid-column:1;grid-row:1}.standalone-view{padding:28px 18px 60px}.source-table{border:0;border-radius:0}.source-table-head{display:none}.source-row{grid-template-columns:minmax(0,1fr) auto;gap:10px;min-height:110px;padding:16px 0}.source-name{grid-column:1 / -1}.source-row>.status-label{grid-column:1}.source-row>.source-kind,.source-row>strong,.source-row>span:nth-of-type(3){display:none}.source-row>a{grid-column:2;grid-row:2}}@media(max-width:520px){.jobs-main{padding-inline:16px}.mobile-toolbar{margin-inline:-16px;padding-inline:16px}.jobs-heading h1{font-size:27px}.sort-select{width:100%}.detail-facts{grid-template-columns:1fr}.saved-filter-row{align-items:flex-start;flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
