@font-face{font-family:"Open Sans";src:url("/admin/fonts/open-sans-latin-ext.woff2") format("woff2");font-weight:400 750;font-display:swap;unicode-range:U+0100-024F}
@font-face{font-family:"Open Sans";src:url("/admin/fonts/open-sans-latin.woff2") format("woff2");font-weight:400 750;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+20AC}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:#f4f7fb;color:#1b293b;font:14px/1.45 "Open Sans",system-ui,sans-serif}
header{display:flex;align-items:center;gap:24px;background:#fff;padding:8px clamp(14px,4vw,45px);border-bottom:1px solid #dbe3ee}
header img{display:block;width:94px}
a{color:#2559ad}
main{max-width:1180px;margin:auto;padding:18px clamp(12px,3vw,28px)}
h1,h2{margin:0}
main>p{margin:6px 0 12px;color:#506177}
.table-scroll{overflow:auto;border:1px solid #dbe3ee;border-radius:8px;background:#fff}
table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}
th,td{padding:8px 12px;border-bottom:1px solid #e8edf5}
th{background:#f1f5fa}
td:first-child{white-space:normal;min-width:145px}
td small{display:block;color:#506177}
button,input,select,textarea{font:inherit}
button{cursor:pointer;border:1px solid #ccd8e7;border-radius:6px;padding:6px 10px;background:#fff;color:#2559ad}
#new-job,#save{background:#2559ad;border-color:#2559ad;color:#fff}
dialog{width:min(620px,calc(100% - 24px));border:1px solid #dbe3ee;border-radius:9px;padding:16px;color:inherit}
dialog::backdrop{background:#13233a66}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px}
.fields label{display:grid;gap:4px;align-content:start}
.wide{grid-column:1/-1}
.fields :is(input,select,textarea){min-width:0;width:100%;padding:7px;border:1px solid #ccd8e7;border-radius:5px;color:inherit}
.description{white-space:pre-wrap;overflow-wrap:anywhere;color:#506177}
.actions{display:flex;justify-content:flex-end;gap:8px}
#form-error{color:#a7192b}
#guest{max-width:620px}
#guest-error{color:#a7192b}
#collaborators{margin:10px 0;padding:9px 12px;border:1px solid #dbe3ee;border-radius:7px;background:#fff}
#collaborators summary{cursor:pointer;font-weight:650}
#collaborator-form,#collaborator-list{margin-block:8px}
#collaborator-list{padding-left:20px}
#collaborator-list button{margin:2px 0 2px 8px}
#invite-link{width:min(100%,520px)}
.job-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:8px 12px}
.job-toolbar label{display:grid;gap:3px;color:#506177}
.job-toolbar select{min-width:140px;padding:6px;border:1px solid #ccd8e7;border-radius:6px;background:#fff;color:#1b293b}
.price-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(76px,105px);gap:8px;margin:0;min-width:0;padding:7px 10px 10px;border:1px solid #dbe3ee;border-radius:7px;background:#f7faff}
.price-row legend{padding:0 4px;font-weight:650}
.price-row legend small{margin-left:5px;color:#506177;font-weight:500}
@media(max-width:500px){.fields{grid-template-columns:1fr}}

:root{--accent:#2456a6;--ink:#17283e;--muted:#4b6079;--border:#d7e1ee;--surface:#fff}
body{color:var(--ink);background:#f4f7fb}
header{justify-content:space-between;gap:12px}
header img{width:100px}
.nav-action{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid #d1deef;border-radius:7px;background:#f1f6fd;color:#204d91;text-decoration:none;font-weight:650}
.nav-action svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-action:hover{background:#e5effe}
h1{font-size:clamp(22px,4vw,28px);letter-spacing:-.025em;line-height:1.25}
h2{font-size:20px;letter-spacing:-.015em;line-height:1.3}
button{font-weight:650}
button:hover:not(:disabled){border-color:#91add2;background:#f2f7fe}
button:disabled{cursor:wait;opacity:.65}
:is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid #2456a6;outline-offset:2px}
#new-job,#save,#guest-submit{background:var(--accent);border-color:var(--accent);color:white}
#new-job:hover,#save:hover,#guest-submit:hover{background:#194587}
#guest{max-width:510px;margin:clamp(20px,7vw,60px) auto;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:12px}
#guest form{margin-top:14px}
#guest .fields{grid-template-columns:1fr}
.job-summary{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.job-summary button{display:flex;align-items:center;gap:10px;color:#304b6b;background:#fff}
.job-summary strong{min-width:25px;padding:1px 5px;border-radius:5px;background:#edf3fb;color:#2456a6;font-variant-numeric:tabular-nums}
.job-summary button[aria-pressed=true]{background:#e9f2ff;border-color:#6d99d0;color:#183f7b}
.job-summary button[data-job-filter=overdue] strong{background:#fff0ed;color:#9f2936}
.job-toolbar label,.fields label{font-size:13px;font-weight:600;color:var(--muted)}
.fields :is(input,select,textarea){font-weight:400;color:var(--ink);background:#fff}
th{color:#3a506c;font-size:12px;font-weight:700}
tbody tr:hover{background:#f7faff}
td:first-child{font-weight:650}
.job-state{display:inline-block;border-radius:5px;background:#edf2f8;color:#3f536d;padding:2px 7px;font-size:12px;font-weight:650}
.job-state.estimate{background:#fff2d9;color:#754b0f}
.job-state.working{background:#eaf2ff;color:#234f93}
.job-state.delivered{background:#e6f5ee;color:#176044}
.overdue{color:#a11f32;font-weight:650}
.job-row-actions{white-space:normal}
.job-row-actions :is(a,button){display:inline-block;white-space:nowrap;margin:2px 5px 2px 0}
.job-row-actions a{font-weight:650}
dialog{max-height:calc(100dvh - 24px);overflow:auto;box-shadow:0 16px 45px #152b4533}
#message:empty,#form-error:empty,#guest-error:empty,.description:empty{display:none}
.table-scroll{margin-top:10px}
@media(max-width:540px){
  #guest{margin-inline:12px}
  .job-toolbar label{flex:1 1 145px}
  .job-toolbar select{width:100%;min-width:0}
  .job-summary button{gap:6px}
}


header img { width: clamp(125px,28vw,185px); height: auto; aspect-ratio: 7/1; object-fit: cover; object-position: center 45%; }
