:root{font-family:Segoe UI,Roboto,Arial,sans-serif;color:#1b2430;background:#eef2f6;font-synthesis:none;--tnb-blue: #0b5fa5;--tnb-blue-dark: #063b6b;--tnb-blue-pale: #eaf5fc;--tnb-red: #e30613;--border: #c8d3df;--muted: #536478;--paper: #fff;--radius: 6px}*{box-sizing:border-box}body{margin:0;min-width:280px}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}button:focus-visible,input:focus-visible{outline:2px solid var(--tnb-blue);outline-offset:2px}.site-width{width:min(1184px,calc(100% - 80px));margin-inline:auto}.masthead{background:var(--paper);border-top:4px solid var(--tnb-red);border-bottom:1px solid #d9e2ea}.masthead-inner{min-height:77px;display:flex;align-items:center;gap:16px}.brand-logo{display:block;object-fit:cover}.brand-text{display:grid;gap:3px;border-left:1px solid #d9e2ea;padding-left:16px}.brand-name{color:var(--tnb-blue-dark);font-size:17px;font-weight:750}.brand-subtitle{color:var(--muted);font-size:10px;font-weight:650;letter-spacing:.12em;text-transform:uppercase}.login-stage{display:grid;align-items:center;min-height:calc(100svh - 82px);padding-block:40px}.login-shell{display:grid;grid-template-columns:1.1fr 1fr;grid-template-areas:"visual form";min-height:clamp(540px,72svh,670px);overflow:hidden;background:var(--paper);border:1px solid #d1dbe5;border-radius:var(--radius);box-shadow:0 14px 38px #14284617}.login-visual{grid-area:visual;display:flex;align-items:end;padding:clamp(34px,5vw,66px);color:#fff;background-color:var(--tnb-blue-dark);background-image:linear-gradient(180deg,#06234217 28%,#051b3347 55%,#04182ef0),url(/assets/overhead-lines-3Kn182XV.jpg);background-position:center,center 46%;background-size:cover}.red-rule{display:block;width:44px;height:4px;border-radius:1px;background:#ff3440}.visual-title{margin:18px 0 14px;font-size:clamp(36px,4.1vw,62px);font-weight:750;letter-spacing:-.035em;line-height:1.04}.visual-voltage{margin:0;color:#e6eff9;font-size:14px;font-weight:600;letter-spacing:.035em}.visual-voltage span{margin-inline:6px}.login-panel{grid-area:form;display:grid;place-items:center;padding:46px clamp(28px,5vw,84px);border-left:1px solid #d9e2ea}.login-content{width:min(100%,365px)}h1,h2,h3{margin:0;line-height:1.15}.login-content h1{margin-bottom:28px;font-size:clamp(30px,3vw,40px);letter-spacing:-.035em}.login-form{display:grid;gap:19px}.field{display:grid;gap:7px}.field label{color:#35465a;font-size:14px;font-weight:650}.field input{min-height:48px;width:100%;padding:11px 13px;color:#1b2430;background:#fbfcfe;border:1px solid #b9c6d4;border-radius:var(--radius);font-size:16px}.field input::placeholder{color:#65758a}.field input:focus{border-color:var(--tnb-blue);background:#fff}.password-field{position:relative}.password-field input{padding-right:54px}.icon-button{display:grid;place-items:center;padding:0;background:transparent;border:0;border-radius:4px;color:var(--muted)}.password-toggle{position:absolute;inset:4px 4px 4px auto;width:42px}.password-toggle:hover{background:var(--tnb-blue-pale);color:var(--tnb-blue-dark)}.password-toggle svg{width:19px;height:19px}.button{display:inline-flex;justify-content:center;align-items:center;gap:9px;min-height:44px;border:1px solid transparent;border-radius:var(--radius);padding:10px 16px;font-size:14px;font-weight:700}.button-primary{background:var(--tnb-blue);color:#fff}.button-primary:hover:not(:disabled){background:var(--tnb-blue-dark)}.button-outline{border-color:var(--border);background:#fff;color:var(--tnb-blue-dark)}.button-outline:hover:not(:disabled){border-color:var(--tnb-blue);background:var(--tnb-blue-pale)}.login-submit{justify-content:space-between;margin-top:5px;min-height:49px}.muted{color:var(--muted);font-size:14px}.notice{margin:0;padding:11px 13px;border:1px solid #b9d3ee;border-radius:var(--radius);background:var(--tnb-blue-pale);color:var(--tnb-blue-dark);font-size:14px;line-height:1.4}.notice-error{border-color:#edbcc1;background:#fff0f1;color:#a40715}.login-content>.notice{margin-bottom:14px}.dashboard{padding-block:42px}.dashboard-banner{min-height:225px;display:flex;flex-direction:column;justify-content:center;align-items:start;padding:34px clamp(24px,4vw,55px);border-radius:var(--radius);background-color:var(--tnb-blue-dark);background-image:linear-gradient(90deg,#063b6b 20%,#063259e0 50%,#0623425c),url(/assets/overhead-lines-3Kn182XV.jpg);background-size:cover,66% auto;background-position:center,right 29%;background-repeat:no-repeat;color:#fff}.dashboard-banner h1{margin:17px 0 9px;font-size:clamp(32px,4vw,49px);letter-spacing:-.035em}.dashboard-banner h1:focus{outline:none}.dashboard-banner p{margin:0;color:#e0edf7;font-size:16px}.dashboard-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(275px,1fr);align-items:start;gap:20px;margin-top:23px}.panel{padding:22px;border:1px solid var(--border);border-radius:var(--radius);background:var(--paper);box-shadow:0 2px 8px #1428460a}.panel h2{margin-bottom:20px;color:var(--tnb-blue-dark);font-size:14px;font-weight:750;letter-spacing:.07em;text-transform:uppercase}.mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.mode-group{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius)}.mode-header{display:flex;align-items:center;gap:10px;padding:14px;border-bottom:1px solid var(--border);background:var(--tnb-blue-pale)}.system-icon,.account-icon{display:grid;flex-shrink:0;place-items:center;width:36px;height:36px;border-radius:var(--radius);background:#d8eaf8;color:var(--tnb-blue-dark)}.mode-header h3{color:var(--tnb-blue-dark);font-size:14px}.mode-header p{margin:4px 0 0;color:var(--muted);font-size:13px}.mode-list{margin:0;padding:0;list-style:none}.mode-list li{display:flex;align-items:center;gap:10px;min-height:49px;padding:9px 14px;font-size:14px;font-weight:600}.mode-list li+li{border-top:1px solid #e4eaf1}.mode-icon.visual{color:#2e7d32}.mode-icon.thermal{color:#ac4700}.account-email{display:flex;align-items:center;gap:10px;color:var(--tnb-blue-dark);font-size:15px;font-weight:700;overflow-wrap:anywhere}.session-details{margin:16px 0}.session-details div{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:3px 8px;padding:9px 0;border-bottom:1px solid #e4eaf1;font-size:13px}.session-details dt{color:var(--muted)}.session-details dd{margin:0;font-weight:600}.session-panel .notice{margin-bottom:12px}@media(max-width:900px){.site-width{width:calc(100% - 48px)}.login-stage{padding-block:28px}.login-shell{min-height:520px}.dashboard{padding-block:28px}.dashboard-layout{grid-template-columns:1fr}}@media(max-width:640px){.site-width{width:calc(100% - 32px)}.masthead-inner{min-height:70px;gap:10px}.brand-logo{width:73px;height:39px}.brand-text{padding-left:10px}.brand-name{font-size:15px}.brand-subtitle{font-size:9px}.login-stage{align-items:start;min-height:0;padding-block:20px}.login-shell{grid-template-columns:1fr;grid-template-areas:"form" "visual";min-height:0}.login-panel{border-left:0;padding:34px 22px}.login-visual{min-height:205px;padding:24px;background-position:center,center 41%}.visual-title{margin-block:11px 7px;font-size:33px}.visual-voltage{font-size:12px}.dashboard{padding-block:20px}.dashboard-banner{min-height:170px;background-size:cover}.dashboard-layout{gap:14px;margin-top:14px}.panel{padding:17px}}@media(max-width:460px){.mode-grid{grid-template-columns:1fr}}.dashboard-main,.project-page{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;min-width:0}.panel-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:16px}.panel-toolbar h2{margin:0}.project-header h1{min-width:0;overflow-wrap:anywhere}.project-header h1:focus,.report-detail h3:focus{outline:none}.record-form,.report-detail{display:grid;grid-template-columns:minmax(0,1fr);gap:15px;margin-bottom:16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:#f7fafc}.record-form h3,.report-detail h3{color:var(--tnb-blue-dark);font-size:16px}.report-detail .panel-toolbar{margin:0}.record-form fieldset{min-width:0;margin:0;padding:0;border:0}.record-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.record-fields label>span{color:#35465a;font-size:14px;font-weight:650}.record-fields select{width:100%;min-height:48px;padding:10px 13px;border:1px solid #b9c6d4;border-radius:var(--radius);background:#fbfcfe;color:inherit;font:inherit}.record-fields input[readonly]{background:#edf2f7}.record-actions,.record-feedback{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.button-danger{border-color:#edbcc1;color:#a40715;background:#fff}.button-danger:hover:not(:disabled){border-color:#a40715;background:#fff0f1}.empty-records{margin:0;padding:18px;border:1px dashed var(--border);border-radius:var(--radius);color:var(--muted);text-align:center;font-size:14px}.project-list,.report-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--radius)}.project-list li+li,.report-list li+li{border-top:1px solid #e4eaf1}.project-list a,.report-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}.project-list a{color:var(--tnb-blue-dark);text-decoration:none}.project-list a:hover{background:var(--tnb-blue-pale)}.project-list a:focus-visible{outline-offset:-2px}.project-list-name,.report-list-name{display:grid;flex:1;min-width:0;gap:4px;overflow-wrap:anywhere}.project-list-name span,.report-list-name span,.report-date,.project-list-count{color:var(--muted);font-size:13px}.project-list-count{flex-shrink:0}.report-list .button{padding-inline:12px}.back-link{display:inline-flex;align-items:center;justify-self:start;gap:7px;color:var(--tnb-blue-dark);font-size:14px;font-weight:650;text-decoration:none}.back-link:hover{text-decoration:underline}.back-link:focus-visible,.project-list a:focus-visible,.record-fields select:focus-visible{outline:2px solid var(--tnb-blue)}.record-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}.record-details div{padding:10px 12px;border-radius:var(--radius);background:var(--tnb-blue-pale)}.record-details dt{color:var(--muted);font-size:12px}.record-details dd{margin:4px 0 0;font-weight:650;overflow-wrap:anywhere}@media(max-width:900px){.record-details{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.dashboard-main,.project-page{gap:14px}.record-fields{grid-template-columns:1fr}.report-list li{flex-wrap:wrap}.report-list .record-actions{flex-basis:100%}}.visual-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;margin-bottom:16px}.visual-workspace .record-form{margin:0;min-width:0}.visual-wide{grid-column:1 / -1}.visual-preview{position:sticky;top:16px;min-width:0;max-height:calc(100vh - 32px);overflow:auto;padding:13px;border:1px solid var(--border);border-radius:var(--radius);background:#eef2f6}.visual-preview>h4,.visual-section>h4{margin:0 0 10px;color:var(--tnb-blue-dark);font-size:13px;text-transform:uppercase;letter-spacing:.05em}.visual-preview .cbm-report,.report-detail .cbm-report{margin-inline:auto;container-type:inline-size}.visual-section{padding-block:12px;border-top:1px solid var(--border)}.visual-section>.field+.field{margin-top:12px}.temperature-fields{display:flex;align-items:center;gap:6px}.temperature-fields select{min-width:0}.temperature-fields select:first-child{flex:2}.temperature-fields select:last-child{flex:1}.record-fields textarea{width:100%;min-width:0;padding:9px 11px;border:1px solid #b9c6d4;border-radius:var(--radius);color:inherit;background:#fbfcfe;font:inherit;resize:vertical}.record-fields textarea:focus-visible{outline:2px solid var(--tnb-blue);outline-offset:2px}.equipment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px}.equipment-item{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0}.equipment-item label{display:flex;align-items:start;gap:7px;min-width:0;font-size:12px;overflow-wrap:anywhere}.equipment-item input{flex-shrink:0;margin:1px 0 0;accent-color:var(--tnb-blue)}.equipment-action{padding:2px 5px;border:1px solid var(--border);border-radius:4px;background:#fff;color:var(--tnb-blue-dark);font-size:11px}.manual-equipment{display:flex;align-items:end;gap:8px;margin-top:12px}.manual-equipment>label{flex:1;min-width:0}.manual-equipment+.notice{margin-top:8px}.severity-options{display:flex;flex-wrap:wrap;gap:6px}.severity-options button{flex:1 1 58px;min-height:40px;padding:5px;border:1px solid #b9c6d4;border-radius:4px;background:#fff;color:#35465a;font:inherit;font-size:12px;font-weight:700}.severity-normal{--severity-bg: #fff;--severity-fg: #1b2430}.severity-low{--severity-bg: #0b5fa5;--severity-fg: #fff}.severity-cautious{--severity-bg: #f4a620;--severity-fg: #1b2430}.severity-minor{--severity-bg: #7cb342;--severity-fg: #1b2430}.severity-serious{--severity-bg: #f2c200;--severity-fg: #1b2430}.severity-critical{--severity-bg: #e30613;--severity-fg: #fff}.severity-options button[aria-pressed=true]{background:var(--severity-bg);border-color:var(--tnb-blue-dark);color:var(--severity-fg)}.visual-save-status{margin:0;color:var(--tnb-blue-dark);font-size:13px}.defect-dialog{width:min(620px,calc(100% - 32px));max-height:84vh;padding:18px;border:1px solid var(--border);border-radius:var(--radius);color:inherit;background:#fff}.defect-dialog::backdrop{background:#132c45a0}.defect-dialog h3{color:var(--tnb-blue-dark);font-size:16px}.defect-dialog ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.defect-dialog li>button{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:4px;background:#f5f9fc;color:inherit;font:inherit;font-size:13px;text-align:left}.defect-dialog li>button:hover{background:var(--tnb-blue-pale)}.cbm-report-export{position:fixed;top:0;left:-10000px;width:560px}.cbm-report{width:560px;max-width:100%;border:1px solid #d6dee6;background:#fff;color:#1b2430;font-family:Segoe UI,Roboto,Arial,sans-serif;font-size:11px}.cbm-report-header{display:flex}.cbm-report-logo{display:flex;flex:0 0 15%;flex-direction:column;border-right:1px solid var(--border)}.cbm-report-logo img{width:100%;height:58px;padding:4px 5px;object-fit:contain}.cbm-report-logo strong{flex:1;display:grid;place-items:center;padding:4px 2px;border-top:1px solid var(--border);color:var(--tnb-blue-dark);font-size:7px;text-align:center}.cbm-report-info{flex:1;min-width:0;display:grid;grid-template-columns:minmax(0,58fr) minmax(0,104fr) minmax(0,52fr) minmax(0,104fr) minmax(0,54fr) minmax(0,104fr);grid-auto-rows:minmax(23px,auto);margin:0}.cbm-report-info dt,.cbm-report-info dd{display:flex;align-items:center;margin:0;padding:3px 5px;overflow-wrap:anywhere}.cbm-report-info dt{border-right:1px solid #fff;border-bottom:1px solid #fff;background:var(--tnb-blue);color:#fff;font-size:7px;font-weight:700;text-transform:uppercase}.cbm-report-info dd{border-right:1px solid #c9d6e2;border-bottom:1px solid #c9d6e2;font-size:9px;font-weight:700}.cbm-report-info .wide{grid-column:span 5}.cbm-report-bar{margin:0;padding:4px;background:var(--tnb-blue);color:#fff;font-size:9.5px;font-weight:700;letter-spacing:1px;text-align:center}.cbm-report-bar-white{border-block:1px solid var(--border);background:#fff;color:#1b2430}.cbm-report-components{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0}.cbm-report-components li{position:relative;display:grid;place-items:center;min-height:22px;padding:4px 4px 4px 18px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);font-size:8.5px;line-height:1.2;text-align:center;overflow-wrap:anywhere}.cbm-report-mark{position:absolute;inset:0 auto 0 0;width:15px;display:grid;place-items:center;border-right:1px solid var(--border);color:var(--tnb-red);font-weight:800}.cbm-report-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:6px}.cbm-report-images>div{aspect-ratio:4 / 3;display:grid;place-items:center;border:1px solid var(--border);background:#eef1f4;color:#65798f;font-size:8px}.cbm-report-analysis{display:grid;grid-template-columns:minmax(0,1fr) 70px}.cbm-report-analysis p,.cbm-report-recommendation{margin:0;padding:8px;font-size:9.5px;font-weight:600;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.cbm-report-analysis ul{display:grid;grid-template-rows:repeat(3,1fr);list-style:none;margin:0;padding:0}.cbm-report-analysis li{position:relative;display:grid;place-items:center;min-height:14px;font-size:8px}.cbm-report-analysis li span{position:absolute;left:4px;top:50%;transform:translateY(-50%);font-weight:700}.cbm-report-analysis li,.cbm-report-recommendation{background:var(--severity-bg);color:var(--severity-fg)}.cbm-report-recommendation{min-height:50px}.defect-part{display:block;margin-bottom:5px;color:var(--tnb-blue-dark)}.defect-criteria{display:flex;flex-wrap:wrap;gap:5px;padding:5px 0}.defect-criteria button{padding:5px 8px;text-align:left}.photo-drop{display:grid;gap:6px;padding:10px;border:1px dashed var(--border);border-radius:5px;font-size:13px}.photo-drop input,.photo-editor-slot input{max-width:100%;min-width:0;font-size:12px}.photo-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0}.photo-editor-slot{display:grid;align-content:start;gap:6px;min-width:0;padding:6px;border:1px solid var(--border);border-radius:5px}.photo-editor-slot label{min-width:0;font-size:12px;font-weight:650}.photo-actions{display:flex;flex-wrap:wrap;gap:5px}.photo-frame,.cbm-report-images>.photo-frame{position:relative;width:100%;aspect-ratio:4 / 3;overflow:hidden;background:#1b2430;-webkit-user-select:none;user-select:none}.photo-frame[data-edit=box]{cursor:crosshair;touch-action:none}.photo-frame[data-edit=pan]{cursor:grab;touch-action:none}.photo-layer,.photo-layer img,.photo-box{position:absolute;pointer-events:none}.photo-box{border:2px solid var(--severity-bg, #e30613)}.photo-zoom-range{display:flex;align-items:center;gap:10px;margin:12px 0;font-size:13px}.photo-zoom-range input{flex:1;min-width:0}.cbm-report-images>.measurement-preview{display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:0;padding:4px;background:#fff;color:#1b2430}.measurement-preview table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:7px;text-align:center}.measurement-preview th,.measurement-preview td{padding:2px 1px;border:1px solid var(--border);overflow-wrap:anywhere}.measurement-preview thead th{background:var(--tnb-blue);color:#fff}.measurement-preview .measurement-severity{background:var(--severity-bg);color:var(--severity-fg)}@container (max-width: 380px){.cbm-report-info{grid-template-columns:54px minmax(0,1fr) 49px minmax(0,1fr)}.cbm-report-info dt:has(+.wide){grid-column:1}.cbm-report-info .wide{grid-column:span 3}.measurement-preview table{font-size:6px}.measurement-preview th,.measurement-preview td{padding:0}}@container (max-width: 240px){.cbm-report-info{grid-template-columns:58px minmax(0,1fr)}.cbm-report-info .wide{grid-column:auto}}@media(max-width:900px){.visual-workspace{grid-template-columns:minmax(0,1fr)}.visual-preview{position:static;max-height:none;overflow:visible}}@media(max-width:460px){.equipment-grid{grid-template-columns:1fr}}
