:root{--bg:#f5f7f6;--panel:#fff;--line:#dde3df;--text:#17201b;--muted:#66736b;--green:#1d5e3e;--green2:#e9f4ed;--red:#a12626;--amber:#926200;--blue:#245b88;--shadow:0 12px 35px rgba(23,32,27,.1)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.topbar{height:82px;display:flex;align-items:center;gap:24px;padding:13px 22px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:11px;min-width:300px}.brandmark{width:43px;height:43px;border-radius:10px;background:var(--green);color:white;font-size:27px;font-weight:850;display:grid;place-items:center}.brand h1{font-size:20px;margin:2px 0 0}.eyebrow{font-size:10px;letter-spacing:.12em;color:var(--muted);font-weight:800}.topnav{display:flex;gap:4px;margin-right:auto}.navbtn{border:0;background:transparent;padding:9px 12px;border-radius:8px;font-weight:700;color:var(--muted)}.navbtn.active{background:var(--green2);color:var(--green)}.top-actions{display:flex;gap:7px}.primary,.ghost,.danger,.soft,.tiny{border-radius:8px;padding:9px 13px;font-weight:700;border:1px solid transparent}.primary{background:var(--green);color:#fff}.ghost{background:#fff;border-color:var(--line);color:var(--text)}.soft{background:var(--green2);color:var(--green)}.danger{background:#fff1f1;color:var(--red);border-color:#efcece}.tiny{padding:5px 8px;font-size:12px;background:#fff;border-color:var(--line)}.file-btn{display:inline-flex;align-items:center}.jobs-shell{height:calc(100vh - 82px);display:grid;grid-template-columns:315px 1fr}.sidebar{background:#fff;border-right:1px solid var(--line);overflow:auto}.side-head{padding:14px;border-bottom:1px solid var(--line);display:grid;gap:8px}.side-head input,.field input,.field select,.field textarea,.table-input{width:100%;border:1px solid #ced6d1;border-radius:7px;padding:9px 10px;background:#fff}.field textarea{min-height:76px;resize:vertical}.job-list{padding:7px}.job-card{padding:11px;border:1px solid transparent;border-radius:9px;margin-bottom:5px;cursor:pointer}.job-card:hover{background:#f7f9f8}.job-card.active{background:var(--green2);border-color:#c8dfd1}.job-card strong,.job-card small{display:block}.job-card small{font-size:11px;color:var(--muted);margin-top:4px}.workspace{padding:24px;overflow:auto}.empty{max-width:580px;text-align:center;margin:90px auto;color:var(--muted)}.empty h2{color:var(--text)}.job-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:15px}.job-head h2{margin:0}.meta{font-size:12px;color:var(--muted);margin-top:4px}.pill{display:inline-flex;border-radius:99px;padding:5px 9px;background:#edf0ee;color:#4d5952;font-size:11px;font-weight:800}.pill.green{background:var(--green2);color:var(--green)}.pill.amber{background:#fff4d9;color:var(--amber)}.pill.red{background:#fff0f0;color:var(--red)}.progress{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin:14px 0 5px}.progress i{display:block;height:5px;border-radius:5px;background:#dfe4e1}.progress i.done,.progress i.current{background:var(--green)}.progress-labels{display:grid;grid-template-columns:repeat(7,1fr);font-size:10px;color:var(--muted);margin-bottom:15px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:14px;box-shadow:0 1px 2px rgba(0,0,0,.02)}.card h3{margin:0 0 12px}.card h4{margin:8px 0}.helper{font-size:12px;color:var(--muted)}.notice{padding:10px 12px;background:#fff7df;border:1px solid #ead9a4;color:#6d5207;border-radius:8px;font-size:12px;margin:10px 0}.notice.ok{background:#edf8f1;border-color:#cae5d3;color:#185b38}.notice.red{background:#fff0f0;border-color:#eccaca;color:#8a2525}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.field label{display:block;font-size:11px;font-weight:800;color:#536057;margin-bottom:5px}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:9px}.choice{border:1px solid var(--line);background:#fff;border-radius:9px;padding:12px;text-align:left}.choice.selected{border:2px solid var(--green);padding:11px;background:var(--green2)}.choice strong,.choice small{display:block}.choice small{margin-top:3px;color:var(--muted)}.actions{display:flex;justify-content:space-between;gap:8px;margin-top:15px}.actions-right{display:flex;gap:7px}.stage{display:grid;grid-template-columns:28px 1fr 155px 100px;gap:10px;align-items:center;border-top:1px solid var(--line);padding:10px 0}.stage:first-of-type{border-top:0}.stage input[type=checkbox]{width:18px;height:18px}.stage strong{display:block}.stage small{display:block;color:var(--muted);font-size:11px}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.tab{border:1px solid var(--line);background:#fff;padding:7px 10px;border-radius:8px;font-weight:700;font-size:12px}.tab.active{background:var(--green);color:#fff;border-color:var(--green)}table{width:100%;border-collapse:collapse}.data th,.data td{border-bottom:1px solid var(--line);padding:8px;text-align:left;font-size:12px;vertical-align:top}.data th{color:#566158;font-size:11px}.deadline-overdue{color:var(--red);font-weight:800}.deadline-due{color:var(--amber);font-weight:800}.deadline-complete{color:var(--green);font-weight:800}.file-list{display:grid;gap:6px}.file-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:7px}.sigbox{border:1px dashed #aebbb3;border-radius:8px;background:#fff;height:150px;position:relative}.sigbox canvas{width:100%;height:100%;touch-action:none}.sig-actions{display:flex;gap:7px;margin-top:6px}.doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.doc{border:1px solid var(--line);border-radius:9px;padding:13px;background:#fff}.doc h4{margin:0 0 5px}.doc p{font-size:11px;color:var(--muted);min-height:34px}.admin{padding:25px;max-width:1250px;margin:auto}.admin-nav{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.audit-row{padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.audit-row small{color:var(--muted);display:block}.modal{position:fixed;inset:0;background:rgba(0,0,0,.42);display:grid;place-items:center;z-index:100;padding:16px}.modal-card{background:#fff;border-radius:12px;width:min(940px,97vw);max-height:94vh;overflow:auto;box-shadow:var(--shadow);padding:18px}.hidden{display:none!important}.toast{position:fixed;right:22px;bottom:22px;background:#1d2a22;color:#fff;padding:10px 14px;border-radius:8px;z-index:200;font-size:12px}.report{font-family:Arial,Helvetica,sans-serif;color:#000;background:#fff;max-width:210mm;margin:auto;padding:10mm}.report .stat-head{text-align:center}.report h1{font-size:18px;text-align:center;margin:5px 0}.report h2{font-size:14px}.report h3{font-size:12px;margin:14px 0 5px}.report p,.report li{font-size:11px;line-height:1.35}.report table{border-collapse:collapse;width:100%;margin:5px 0 10px}.report th,.report td{border:1px solid #888;padding:5px;font-size:10px;vertical-align:top}.report th{background:#f4f4f4;text-align:left;width:28%}.report .blank{min-height:20px}.report .signature{height:55px}.report .signature img{max-height:52px;max-width:220px}.report .form-title{font-weight:bold;font-size:17px;text-align:center}.report .form-law{text-align:center;font-weight:bold}.report .form-reg{text-align:right;font-size:11px}.report .form-section{font-weight:bold;margin:12px 0 4px}.report .checkbox{font-family:monospace}.pagebreak{break-before:page;page-break-before:always}.role-warning{border:2px solid #a12626;padding:8px;color:#8b1e1e;font-weight:bold;margin:8px 0}.invoice-total{text-align:right;font-size:15px;font-weight:800}.source-note{font-size:9px;color:#555;margin-top:12px}.codebox{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;white-space:pre-wrap;background:#f4f6f5;border:1px solid var(--line);border-radius:8px;padding:10px;max-height:250px;overflow:auto}
@media(max-width:950px){.topnav{display:none}.brand{min-width:auto}.jobs-shell{grid-template-columns:1fr}.sidebar{display:none}.grid2,.grid3,.grid4,.choice-grid,.doc-grid{grid-template-columns:1fr}.workspace{padding:14px}.stage{grid-template-columns:28px 1fr}.stage>*:nth-child(3),.stage>*:nth-child(4){grid-column:2}.top-actions .ghost{display:none}}
@media print{body>*:not(#modal){display:none!important}.modal{position:static;background:#fff;padding:0}.modal-card{box-shadow:none;max-height:none;width:100%;padding:0}.modal-card>*:not(.report){display:none!important}.report{padding:0;max-width:none}.no-print{display:none!important}}
.login-wrap{max-width:480px;margin:80px auto;padding:20px}.login-card{padding:28px}.user-badge{font-size:12px;color:var(--muted);white-space:nowrap}.sign-page{max-width:1050px;margin:24px auto;padding:0 16px}.sign-shell{display:grid;gap:16px}.sign-document{background:#fff;padding:30px;border:1px solid var(--line);border-radius:12px}.sigbox canvas{width:100%;height:180px;border:1px solid var(--line);background:#fff;touch-action:none}.notice.warn{border-color:#f59e0b;background:#fffbeb}
.confirm-line{display:flex;gap:.65rem;align-items:flex-start;margin:1rem 0;padding:.8rem;border:1px solid #d7d7d7;border-radius:8px;background:#fafafa}.confirm-line input{margin-top:.2rem}

/* v4.1.1 — mobile navigation and signature-control fixes */
.mobile-menu-btn,.mobile-drawer-head{display:none}.sidebar-footer{display:none}.mobile-drawer-backdrop{display:none}.empty-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.sigbox{height:190px;min-height:190px;overflow:hidden}.sigbox canvas{display:block;width:100%;height:100%;touch-action:none}.sig-actions{position:relative;z-index:2;flex-wrap:wrap;margin-top:10px}.sign-page .sigbox{height:220px;min-height:220px;margin-bottom:12px}.sign-page .sigbox canvas{height:100%;border:0}.sign-page .sign-controls{position:relative;z-index:2;align-items:center;flex-wrap:wrap;margin-top:12px}.sign-page .sign-controls .actions-right{display:flex;gap:7px;flex-wrap:wrap}
@media(max-width:950px){
  body.drawer-open{overflow:hidden}
  .topbar{height:auto;min-height:68px;padding:9px 10px;gap:8px;flex-wrap:nowrap}
  .brand{min-width:0;flex:1}.brandmark{width:38px;height:38px;font-size:23px}.brand h1{font-size:16px;white-space:nowrap}.brand .eyebrow{font-size:8px}
  .mobile-menu-btn{display:inline-flex!important;align-items:center;white-space:nowrap;padding:8px 10px}
  .top-actions{gap:5px}.top-actions #userBadge,.top-actions #logoutBtn,.top-actions #backupBtn,.top-actions .file-btn{display:none!important}.top-actions #newJobBtn{padding:8px 9px;font-size:12px;white-space:nowrap}
  .jobs-shell{height:calc(100dvh - 68px);grid-template-columns:1fr}
  .sidebar{display:flex!important;flex-direction:column;position:fixed;z-index:120;top:0;bottom:0;left:0;width:min(88vw,360px);height:100dvh;border-right:1px solid var(--line);box-shadow:var(--shadow);transform:translateX(-105%);transition:transform .2s ease;overflow:hidden;padding-top:env(safe-area-inset-top)}
  .sidebar.open{transform:translateX(0)}
  .mobile-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line);min-height:52px}
  .side-head{flex:0 0 auto}.job-list{flex:1 1 auto;overflow:auto;-webkit-overflow-scrolling:touch;padding-bottom:14px}.job-card{padding:13px 11px;min-height:62px}
  .sidebar-footer{display:grid;gap:8px;flex:0 0 auto;padding:12px;border-top:1px solid var(--line);background:#fff;padding-bottom:max(12px,env(safe-area-inset-bottom))}.sidebar-footer small{display:block;color:var(--muted);margin-top:2px}.sidebar-footer button{width:100%}
  .mobile-drawer-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:110;opacity:0;pointer-events:none;transition:opacity .2s ease}.mobile-drawer-backdrop.open{opacity:1;pointer-events:auto}
  .workspace{padding:12px;padding-bottom:max(18px,env(safe-area-inset-bottom))}.job-head{gap:10px;flex-direction:column}.job-head>div:last-child{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .actions,.actions-right,.sig-actions{flex-wrap:wrap}.actions>button,.sig-actions>button{min-height:42px}.data{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .sign-page{margin:10px auto;padding:0 10px;padding-bottom:max(20px,env(safe-area-inset-bottom))}.sign-document{padding:14px;overflow-x:auto}.sign-page .sigbox{height:200px;min-height:200px}.sign-page .sign-controls{display:flex;gap:8px}.sign-page .sign-controls>.primary{flex:1 1 180px;min-height:46px}.sign-page .sign-controls .actions-right{flex:1 1 auto}.sign-page .sign-controls button{min-height:44px}
}
@media(max-width:520px){.brand .eyebrow{display:none}.brand h1{font-size:14px}.brandmark{width:34px;height:34px}.mobile-menu-btn{font-size:12px}.top-actions #newJobBtn{font-size:0}.top-actions #newJobBtn::after{content:'+ New';font-size:12px}.progress-labels{display:none}.sign-page .sign-controls,.sign-page .sign-controls .actions-right{display:grid;grid-template-columns:1fr 1fr;width:100%}.sign-page .sign-controls>.primary{grid-column:1/-1;width:100%}}

/* v4.1.2 workflow status / job-list guidance */
.job-card{position:relative}
.job-card-title{display:flex;align-items:center;justify-content:space-between;gap:8px}
.workflow-dot{width:9px;height:9px;border-radius:50%;flex:0 0 9px;background:#9aa59e;box-shadow:0 0 0 3px rgba(0,0,0,.03)}
.workflow-dot.pending{background:#c58a16}.workflow-dot.next{background:#2f6fb5}.workflow-dot.attention{background:#b94242}.workflow-dot.ready{background:#2f7b4d}.workflow-dot.complete{background:#7e8a83}
.job-next{margin-top:6px;padding:5px 7px;border-radius:6px;font-size:11px;font-weight:800;line-height:1.25;background:#f1f3f2;color:#49544d}
.job-next.pending{background:#fff6de;color:#75530a}.job-next.next{background:#edf5ff;color:#225d9d}.job-next.attention{background:#fff0f0;color:#8b2a2a}.job-next.ready{background:#edf8f1;color:#185b38}.job-next.complete{background:#f0f2f1;color:#667169}
.job-card.job-complete{opacity:.72}
.current-workflow{margin-top:8px;display:inline-block;padding:6px 9px;border-radius:7px;font-size:12px;background:#f1f3f2}
.current-workflow.pending{background:#fff6de;color:#75530a}.current-workflow.next{background:#edf5ff;color:#225d9d}.current-workflow.attention{background:#fff0f0;color:#8b2a2a}.current-workflow.ready{background:#edf8f1;color:#185b38}.current-workflow.complete{background:#f0f2f1;color:#667169}
@media (hover:hover) and (pointer:fine){
  .job-card[data-tooltip]::after{content:attr(data-tooltip);white-space:pre-line;position:absolute;left:calc(100% + 10px);top:0;width:300px;padding:10px 12px;border-radius:8px;background:#1f2a24;color:#fff;font-size:11px;line-height:1.4;box-shadow:0 10px 28px rgba(0,0,0,.22);opacity:0;pointer-events:none;transform:translateX(-4px);transition:opacity .12s ease,transform .12s ease;z-index:50}
  .job-card[data-tooltip]:hover::after,.job-card[data-tooltip]:focus::after{opacity:1;transform:translateX(0)}
}
@media(max-width:950px){
  .job-next{font-size:12px;padding:6px 8px}
  .current-workflow{display:block;margin-top:9px}
}

/* v4.1.3 — Victorian statutory workflow validation */
.statutory-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.statutory-strip>div{border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:#f9fbfa}.statutory-strip strong,.statutory-strip span{display:block}.statutory-strip strong{font-size:11px;color:#526057}.statutory-strip span{font-size:12px;margin-top:3px}.stat-summary{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 2px}.stat-summary span{padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:#f7f9f8;font-size:11px}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:950px){.statutory-strip{grid-template-columns:1fr}.stat-summary{display:grid;grid-template-columns:1fr 1fr}.actions .actions-right{flex-wrap:wrap}.actions .actions-right .soft{min-height:42px}}
@media(max-width:520px){.stat-summary{grid-template-columns:1fr}}

/* v4.1.4 — FORM 26 delivery tracking */
.statutory-actions{align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap;margin-top:10px}
.statutory-actions .helper{margin:0}

/* v4.1.5 — editable email templates + PDF email attachments */
.email-template-editor{min-height:260px;line-height:1.45}
.email-body-editor{min-height:220px;line-height:1.45}
.attachment-preview{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 14px;margin:12px 0;border:1px solid #d8dee8;border-radius:10px;background:#f7f9fc;overflow-wrap:anywhere}
.pdf-email-export{position:fixed;left:-100000px;top:0;width:794px;background:#fff;z-index:-1}
.pdf-email-report{background:#fff;color:#111;padding:0!important;box-shadow:none!important;border:0!important}
@media(max-width:700px){.attachment-preview{align-items:flex-start;flex-direction:column}.email-body-editor{min-height:260px}}

/* v4.1.6.1 — PDF Property Details cell wrapping fix
   Long prescribed labels such as City/suburb/town / Postcode must remain
   inside the left cell and never overlap the project address/value cell. */
.report table.property-details{table-layout:fixed;width:100%}
.report table.property-details th{
  width:38%;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  hyphens:none;
  line-height:1.25;
}
.report table.property-details td{
  width:62%;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  line-height:1.25;
}
.pdf-email-report table.property-details th,
.pdf-email-report table.property-details td{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}

/* v4.1.6.2 — keep generated-form signatures compact and proportional */
.report img.form-signature{display:block;width:auto!important;height:auto!important;max-width:42mm!important;max-height:14mm!important;object-fit:contain;object-position:left center;margin:0;}
@media print{.report img.form-signature{max-width:42mm!important;max-height:14mm!important;}}

/* v4.1.7 external signer: draw or upload stored signature */
.signature-methods{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.sig-method{border:1px solid #c9d2dc;background:#fff;border-radius:8px;padding:10px 14px;font-weight:600;cursor:pointer}.sig-method.active{border-color:#315b7d;background:#eef5fa}.signature-upload-preview{min-height:110px;border:1px dashed #b9c4ce;border-radius:10px;padding:14px;display:flex;align-items:center;gap:14px;margin:10px 0;background:#fafcfd}.signature-upload-preview img{max-width:360px;max-height:120px;object-fit:contain;background:#fff}.signature-upload-preview span,.uploaded-pdf span,.uploaded-pdf small{display:block}.uploaded-pdf{padding:10px 12px;border:1px solid #d7dee5;border-radius:8px;background:#f8fafb}.uploaded-pdf a{display:inline-block;margin-top:8px}.sign-inline-actions{margin-top:8px;justify-content:flex-start}@media(max-width:700px){.signature-methods{display:grid;grid-template-columns:1fr 1fr}.signature-upload-preview{display:block}.signature-upload-preview img{max-width:100%;height:auto;margin-bottom:8px}}
/* v4.1.8 — cropped uploaded signatures */
.signature-crop-wrap{margin:12px 0;padding:12px;border:1px solid #d4ddd7;border-radius:10px;background:#f8fbf9}.crop-instructions{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:8px}.crop-instructions span{font-size:12px;color:var(--muted)}.signature-crop-scroll{max-height:520px;overflow:auto;border:1px solid #ccd6d0;border-radius:8px;background:#e9eeeb;padding:6px}.signature-crop-scroll canvas{display:block;max-width:100%;height:auto;margin:auto;background:#fff;cursor:crosshair;touch-action:none}.signature-upload-preview{min-height:56px}.signature-upload-preview span{font-size:12px;color:var(--muted)}
@media(max-width:700px){.signature-crop-scroll{max-height:430px}.crop-instructions{display:block}.crop-instructions span{display:block;margin-top:4px}}

/* v4.1.9 — files grouped by permit / prescribed event */
.file-upload-panel{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:9px;background:#fafcfb}
.file-upload-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;padding-bottom:1px}
.file-groups{display:grid;gap:12px}
.file-group{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.file-group-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#f4f7f5;border-bottom:1px solid var(--line)}
.file-group-head strong{display:block;font-size:13px}
.file-group-head span{font-size:11px;color:var(--muted)}
.file-group .file-list{padding:7px}
.file-main{min-width:0;flex:1}
.file-main>strong{overflow-wrap:anywhere}
.file-row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.file-association-select{max-width:330px;min-width:210px}
@media(max-width:760px){.file-upload-panel{grid-template-columns:1fr}.file-upload-actions{justify-content:flex-start}.file-row{align-items:flex-start;flex-direction:column}.file-row-actions{width:100%;justify-content:flex-start}.file-association-select{max-width:100%;width:100%}}

/* v4.3.0 — field workflow, click navigation, locks and inspection evidence */
.progress .progress-dot{display:block;width:100%;height:7px;border:0;border-radius:6px;background:#dfe4e1;padding:0;min-width:0;cursor:pointer}
.progress .progress-dot.done,.progress .progress-dot.current{background:var(--green)}
.progress .progress-dot:hover{filter:brightness(.94)}
.progress-labels .step-link{border:0;background:transparent;color:var(--muted);font-size:10px;padding:3px 2px;text-align:left;cursor:pointer;border-radius:5px}
.progress-labels .step-link:hover,.progress-labels .step-link.current{color:var(--green);text-decoration:underline;text-underline-offset:2px}
.field-lock{font-size:14px;vertical-align:middle;margin-left:5px}
.locked-choices .choice:disabled{cursor:not-allowed;opacity:.72;background:#f4f6f5}
.locked-choices .choice.selected:disabled{opacity:1;background:var(--green2);border-color:var(--green)}
.inspection-evidence{margin-top:16px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fafcfb}
.inspection-evidence h4{margin:0 0 4px}
.inspection-evidence-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 12px}
.inspection-evidence-row{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.5fr) auto;gap:10px;align-items:end;padding:10px;border-top:1px solid var(--line);background:#fff}
.inspection-evidence-row:first-child{border-top:0}
.inspection-evidence-row.pending{background:#fffdf5}
.inspection-evidence-file strong,.inspection-evidence-file small{display:block;overflow-wrap:anywhere}
.inspection-evidence-file small{font-size:11px;color:var(--muted);margin-top:3px}
.inspection-evidence-row .field{margin:0}
.inspection-evidence-row textarea{min-height:62px}
.inspection-evidence-buttons{display:flex;gap:6px;padding-bottom:2px}
.file-comment{margin-top:5px;padding:5px 7px;border-left:3px solid #c7d8cf;background:#f6f9f7;font-size:11px;line-height:1.35;overflow-wrap:anywhere}
@media(max-width:760px){.inspection-evidence-row{grid-template-columns:1fr}.inspection-evidence-buttons{justify-content:flex-start}.progress-labels{gap:2px}.progress-labels .step-link{text-align:center}}

/* v4.3.1 administration registers, presence and document readiness */
.presence-badge{font-size:12px;font-weight:500;color:#667085;margin-left:8px;vertical-align:middle;white-space:nowrap}.presence-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#22a06b;margin-right:5px;box-shadow:0 0 0 2px rgba(34,160,107,.12)}
.admin-register{min-width:1100px}.admin-register td{vertical-align:top;white-space:normal;min-width:110px}.wrap-url{overflow-wrap:anywhere}
.document-summary{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 16px}.doc-count,.doc-status{border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700}.doc-count.ready,.doc-status.ready{background:#e8f7ef;color:#137a4b}.doc-count.waiting,.doc-status.waiting{background:#fff5d6;color:#8a6100}.doc-count.blocked,.doc-status.blocked{background:#fdeaea;color:#a33131}.doc-count.complete,.doc-status.complete{background:#e8f1ff;color:#245ea8}.doc-status.na{background:#f2f4f7;color:#667085}.doc-status-row{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.doc-status-row h4{margin-top:0}.doc-outstanding{font-size:12px;line-height:1.35;padding:7px 9px;border-radius:7px;background:rgba(0,0,0,.035);margin:8px 0 10px}.doc-waiting{border-left:4px solid #d9a300}.doc-blocked{border-left:4px solid #c94141}.doc-ready{border-left:4px solid #299a64}.doc-complete{border-left:4px solid #3779c7}.form-note{font-size:10px;color:#555;border-top:1px solid #ddd;padding-top:6px}

/* v4.3.2 access, credentials and practitioner register */
.credential-warning-badge{border:1px solid #e4b85a;background:#fff4d6;color:#7a5300;border-radius:8px;padding:7px 10px;font-size:12px;font-weight:800;white-space:nowrap}.credential-warning-badge:hover{background:#ffedb8}.permission-grid{display:grid;gap:7px;margin:8px 0 14px}.permission-row{display:grid;grid-template-columns:1fr 170px;align-items:center;gap:12px;padding:7px 9px;border:1px solid var(--line);border-radius:8px}.permission-row span{font-size:12px;font-weight:700}.permission-row select{width:100%;border:1px solid #ced6d1;border-radius:7px;padding:7px;background:#fff}.credential-fields{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:9px;background:#fafcfb}.active-account{display:block;margin-top:12px}.credentials-report{background:#fff}.mobile-version{color:var(--muted);font-size:11px}.choice small{line-height:1.35}.credential-warning-list .notice{font-size:13px}
@media(max-width:950px){.credential-warning-badge{font-size:0;padding:7px 9px}.credential-warning-badge::first-letter{font-size:14px}.permission-row{grid-template-columns:1fr}.credentials-report{font-size:12px}}
@media print{body>*{display:none!important}#modal{display:block!important;position:static!important;background:#fff!important;padding:0!important}.modal-card{box-shadow:none!important;max-height:none!important;width:100%!important}.modal-card>.actions{display:none!important}.credentials-report{display:block!important}}

/* v4.3.2.1 patch */
.presence-badge{position:relative;cursor:pointer;display:inline-block;padding:4px 7px;border-radius:7px}
.presence-badge:hover,.presence-badge:focus,.presence-badge.open{background:#f3f6f4;outline:none}
.presence-popover{display:none;position:absolute;left:0;top:calc(100% + 7px);z-index:80;min-width:270px;max-width:360px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);padding:8px;text-align:left;color:var(--text);white-space:normal}
.presence-badge:hover .presence-popover,.presence-badge:focus .presence-popover,.presence-badge.open .presence-popover{display:block}
.presence-person{padding:7px 8px;border-bottom:1px solid var(--line)}.presence-person:last-child{border-bottom:0}.presence-person strong,.presence-person span{display:block}.presence-person span{font-size:11px;color:var(--muted);margin-top:2px}
.credential-warning-badge.expired{background:#fff0f0;border-color:#e4a0a0;color:#8a2525}
#contactManualFields.register-selected input{background:#eef1ef;color:#667085;cursor:not-allowed}
@media print{#credentialsReport.report{display:block!important}}
/* v4.3.3 agreement records */
.agreement-scroll{max-height:340px;overflow:auto;border:1px solid #d7dce2;border-radius:8px;padding:14px;background:#fff;margin:12px 0;line-height:1.45}
.agreement-scroll p{margin:0 0 10px}.agreement-signature{max-width:240px;max-height:80px;object-fit:contain;border:1px solid #e2e5e9;background:#fff;margin:8px 0}.agreement-record small{display:block;margin-top:4px}.agreement-modal .sigbox{margin-top:12px}

/* v4.3.5 Council/BPC workflow status */
.reporting-status{display:inline-flex;align-items:center;gap:.45rem;flex-wrap:wrap}
.reporting-status .reporting-badge{font-size:.78rem;font-weight:700;padding:.16rem .45rem;border-radius:999px;background:rgba(0,0,0,.06)}
.reporting-status.waiting{border-color:#d5a000;background:#fff8d8}
.reporting-status.blocked{border-color:#b42318;background:#fff0ee}
.reporting-status.complete{border-color:#27824a;background:#edf9f1}
.reporting-status.neutral{opacity:.85}
.council-selected-card{line-height:1.55}
.readonly-field{background:#f3f5f7!important;color:#334155}
.job-owner-group{border-top:1px solid var(--line,#dfe3e8);padding-top:6px;margin-top:8px}.job-owner-group:first-child{border-top:0;margin-top:0}.job-owner-heading{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:7px 9px;font-size:.78rem;letter-spacing:.02em;opacity:.78}.job-owner-heading span{font-size:.72rem}.user-presence{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.user-presence i{display:inline-block;width:9px;height:9px;border-radius:50%;background:#888}.user-presence.active i{background:#22a447;animation:presencePulse 1.8s ease-in-out infinite}.user-presence.idle i{background:#d7a617}.user-presence.offline i{background:#c64b4b}@keyframes presencePulse{0%,100%{box-shadow:0 0 0 0 rgba(34,164,71,.25)}50%{box-shadow:0 0 0 5px rgba(34,164,71,0)}}

/* v4.3.10 readiness cues */
#sigBtn.sig-missing{border:1px solid #d6a600;background:#fff8d8;font-weight:700}#sigBtn.sig-recorded{border:1px solid #6aa56a;background:#eef8ee}.job-complete{opacity:.78}

/* v4.4.0 stability release — job scope, enforcement guidance and readiness */
.job-scope-toggle{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px 8px 2px}.job-scope-toggle button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px;font-size:12px;font-weight:700;cursor:pointer}.job-scope-toggle button.active{background:var(--green2);border-color:var(--green);color:var(--green)}
.enforcement-guidance{border:1px solid #c9d9d1;background:#f5faf7;border-radius:10px;padding:12px 14px;margin:10px 0 14px}.enforcement-guidance p{margin:7px 0;line-height:1.45}.enforcement-guidance small{display:block;color:var(--muted);border-top:1px solid #dce8e2;padding-top:7px;margin-top:9px}.enforcement-evidence-box{border:1px dashed #aebbb5;border-radius:9px;padding:11px;margin:12px 0;background:#fbfcfb}.guidance-admin-card{border:1px solid var(--line);border-radius:10px;padding:12px;margin:12px 0;background:#fafcfb}.guidance-admin-card textarea{min-height:90px}.fee-incomplete{border:1px solid #d6a600!important;background:#fff8d8!important;font-weight:700}.fee-complete{border:1px solid #6aa56a!important;background:#eef8ee!important}
/* v4.5.0 stability visual status + practitioner signature */
.signature-preview{padding:12px;border:1px solid #d7dde3;border-radius:10px;background:#fff;margin:10px 0}.signature-preview img{max-height:110px;max-width:100%;object-fit:contain}
.status-row{border-left:5px solid #7b8794;padding-left:10px}.status-row.urgent{border-left-color:#b42318;background:#fff4f2}.status-row.action{border-left-color:#d97706;background:#fffbeb}.status-row.soon{border-left-color:#ca8a04;background:#fffce8}.status-row.info{border-left-color:#2563eb;background:#eff6ff}.status-row.complete{border-left-color:#15803d;background:#f0fdf4}.status-row.history{border-left-color:#64748b;background:#f8fafc}
.stop-work-banner{border:2px solid #b42318;background:#fff1f0;border-radius:10px;padding:12px 16px;margin:10px 0;font-weight:700}
.tab-status-action{box-shadow:inset 0 -4px 0 #d97706}.tab-status-urgent{box-shadow:inset 0 -4px 0 #b42318}.tab-status-soon{box-shadow:inset 0 -4px 0 #ca8a04}.tab-status-info{box-shadow:inset 0 -4px 0 #2563eb}.tab-status-complete{box-shadow:inset 0 -4px 0 #15803d}

/* v4.5.2 signature clarity */
.practice-signature-card{margin-top:18px;padding:16px;border:1px solid var(--line,#d9e0e6);border-radius:12px;background:#fff}
.signature-preview.compact{max-width:340px;margin:8px 0}
.signature-preview.compact img{display:block;max-width:100%;max-height:90px;object-fit:contain}
.effective-signature{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--line,#d9e0e6);border-radius:10px;flex-wrap:wrap}
.effective-signature>div{display:flex;flex-direction:column;gap:2px;min-width:210px}
.effective-signature small{opacity:.75}
.effective-signature img{width:130px;height:46px;object-fit:contain;border:1px solid #e3e7ea;border-radius:6px;background:#fff}
.effective-signature.sig-missing{border-color:#d5a72d;background:#fff9e8}
.effective-signature.sig-recorded{border-color:#8bb99a;background:#f3faf5}

/* v4.5.6: Form 1 nature of building work selection and printed output */
.form1-nature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:10px;margin:12px 0}
.form1-nature-choice{display:flex;align-items:flex-start;gap:9px;padding:9px 11px;border:1px solid var(--border,#d5dce2);border-radius:7px;cursor:pointer}
.form1-nature-choice input{margin-top:3px;flex-shrink:0}
.form1-selected-work{margin:8px 0 14px;padding-left:23px}
.form1-selected-work li{margin:4px 0}
.form1-missing{font-weight:700;color:#9b2c2c}

/* v4.12.1 — NSW inspection mobile camera/photo attachment controls */
.nsw-hidden-file{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important;pointer-events:none!important}
.nsw-file-action{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:1px solid var(--line);border-radius:7px;padding:9px 13px;font-weight:600;min-height:42px}
.nsw-file-action:focus-within{outline:2px solid currentColor}
.nsw-photo-preview{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.nsw-photo-item{display:flex;flex-direction:column;gap:5px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:8px;max-width:190px;overflow-wrap:anywhere}
.nsw-photo-item img{width:160px;height:120px;object-fit:cover;border-radius:5px}
.nsw-photo-item span{font-size:12px}

/* v4.15.0 NSW workflow navigation aligned with Victorian tabs */
.nsw-workflow-tabs{position:sticky;top:0;z-index:5;background:var(--bg);padding:10px 0;display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;gap:6px}
.nsw-workflow-tabs .tab{white-space:nowrap;flex:0 0 auto;min-height:39px}
.nsw-workflow-tabs .tab:focus-visible{outline:3px solid #2b8b5b;outline-offset:2px}
.nsw-tab-content{min-height:220px}
@media(max-width:750px){.nsw-workflow-tabs{margin-left:-12px;margin-right:-12px;padding:10px 12px}.nsw-tab-content{padding:13px}}

/* v4.17 project-specific assessment helper */
.nsw-affleck-panel{padding:16px;border:1px solid var(--border,#d6dce1);border-radius:10px;margin-bottom:20px}
.nsw-affleck-panel .helper{margin:9px 0}
/* NSW portal workflow controls v4.18 */
.nsw-portal-intake,.nsw-portal-checks{margin-bottom:24px;padding:14px;border:1px solid var(--border,#d7dde2);border-radius:10px}
.nsw-portal-checks .data td{vertical-align:top}.nsw-portal-checks select,.nsw-portal-checks input{min-width:185px;max-width:100%}

/* v4.19 NSW live certification contract */
.nsw-live-contract{padding:16px;margin:16px 0;border:1px solid var(--border,#cbd5df);border-radius:10px}.nsw-live-contract .actions{flex-wrap:wrap}

.nsw-contract-pc-choice{display:flex;align-items:center;gap:9px;margin:12px 0;font-size:14px}

/* NSW administrative workflow status indicators — not statutory determinations */
.nsw-status{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.5;border:1px solid transparent;white-space:normal}
.nsw-status:before{content:'';width:7px;height:7px;flex:none;border-radius:50%;background:currentColor}
.nsw-status--green{background:#e5f5e9;color:#17643c;border-color:#a8d8b9}
.nsw-status--amber{background:#fff4d6;color:#865900;border-color:#edcf7a}
.nsw-status--red{background:#fce9e9;color:#a32929;border-color:#edb1b1}
.nsw-status--grey{background:#edf0f3;color:#586475;border-color:#cbd2d9}
.nsw-status-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 16px}
.nsw-tab-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-left:7px;vertical-align:middle;border:1px solid rgba(0,0,0,.14)}
.nsw-tab-dot--green{background:#239454}.nsw-tab-dot--amber{background:#e6a527}.nsw-tab-dot--red{background:#d43d3d}.nsw-tab-dot--grey{background:#a3aab4}

/* FORM 1 field guidance: scoped to Form 1 keys only; does not change validation. */
.field.form1-required,.field.form1-conditional,.field.form1-optional{padding:10px 12px;border-radius:8px;border:1px solid transparent}
.field.form1-required{background:#fce8e6;border-color:#e9b5b0}
.field.form1-conditional{background:#fff3d6;border-color:#ecd49b}
.field.form1-optional{background:#e9f2fa;border-color:#bad4e9}
.field.form1-required label,.field.form1-conditional label,.field.form1-optional label{color:#293647}
.form1-legend{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.form1-legend span{font-size:12px;font-weight:600;padding:6px 10px;border-radius:6px}
.form1-legend-required{background:#fce8e6;color:#922b21}
.form1-legend-conditional{background:#fff3d6;color:#805600}
.form1-legend-optional{background:#e9f2fa;color:#245d8c}

/* Form 1 statutory contextual help and branch-specific field visibility */
.field.form1-guided[hidden]{display:none!important}
.form1-tip{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;cursor:help;color:#315d86;font-weight:700;font-size:14px}
.form1-tip:focus{outline:2px solid #315d86;outline-offset:2px;border-radius:50%}
.field.form1-guided.form1-required{background:#fce8e6;border-color:#e9b5b0}
.field.form1-guided.form1-conditional{background:#fff3d6;border-color:#ecd49b}
.field.form1-guided.form1-optional{background:#e9f2fa;border-color:#bad4e9}
