@charset "UTF-8";
:root{color-scheme:dark;--bg:#050709;--panel:#0c1217;--panel2:#10191f;--line:#253a47;--text:#eff8fc;--muted:#9bb2c2;--cyan:#02c6f1;--cyan2:#04a5cc;--danger:#ff939e;--green:#66dfab;--radius:12px;font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.5}button,input,textarea,select{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}a{color:var(--cyan);text-underline-offset:3px}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.58}button,input,textarea,select,a{outline-offset:4px}:focus-visible{outline:2px solid var(--cyan)}button{border:1px solid var(--line);border-radius:7px;background:#101c24;color:var(--text);padding:9px 14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#173240;border-color:#46849d}button.primary{background:var(--cyan);color:#00161c;border-color:var(--cyan)}button.primary:hover:not(:disabled){background:#51dafa;border-color:#51dafa}button.outline{border-color:#068caa;color:var(--cyan);background:#07141a}button.ghost{background:transparent;border-color:transparent;color:var(--muted)}button.danger{color:var(--danger);border-color:#793d46;background:#241116}button.small{font-size:12px;padding:5px 9px;min-height:32px}button.icon-button{padding:8px;min-width:38px}svg.icon{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,h3,h4,p{margin-top:0}h1{font-size:26px;line-height:1.2;letter-spacing:-.6px;margin-bottom:8px}h2{font-size:20px;line-height:1.3;margin-bottom:8px;letter-spacing:-.3px}h3{font-size:16px;margin-bottom:12px}h4{font-size:14px;margin-bottom:6px}p{margin-bottom:12px}.muted,.help{color:var(--muted)}.help{font-size:12px;line-height:1.55}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--cyan)}[hidden]{display:none!important}.skip-link{position:fixed;top:-80px;left:16px;z-index:20;background:var(--cyan);color:#000;padding:12px}.skip-link:focus{top:8px}.boot{height:100vh;display:flex;align-items:center;justify-content:center;gap:16px}.spinner{height:22px;width:22px;border:2px solid #335466;border-top-color:var(--cyan);border-radius:100%;display:inline-block;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}
.topbar{height:93px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid #18303b;background:linear-gradient(115deg,#020406,#071116);gap:24px}.brand{display:flex;align-items:center;gap:22px;flex-shrink:0}.logo-crop{position:relative;overflow:hidden;width:180px;height:76px;display:inline-block;flex-shrink:0;background:transparent}.logo-crop img{position:absolute;width:252px;max-width:none;height:auto;left:-34px;top:-49px}.brand-title{padding-left:22px;border-left:1px solid #2a5264}.brand-title strong{font-size:25px;font-weight:750;letter-spacing:-.8px;display:block}.brand-title span{font-size:11px;color:var(--muted);letter-spacing:.3px}.topnav{display:flex;align-items:center;gap:7px}.topnav button{background:transparent;border-color:transparent;font-weight:500}.topnav button.active{color:var(--cyan);background:#0b2833}.topnav .icon{color:var(--cyan)}.user-chip{padding-left:14px;border-left:1px solid var(--line);font-size:12px;color:var(--muted);margin-left:10px}.user-chip strong{color:var(--text);display:block}.app-workspace{display:grid;grid-template-columns:335px minmax(0,1fr);gap:14px;padding:18px;max-width:1900px;margin:auto;align-items:start}.sidebar{position:sticky;top:18px;min-height:calc(100vh - 129px);background:linear-gradient(160deg,#0c151b,#090f13);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}.sidebar-head{padding:19px 16px 12px}.sidebar-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.sidebar-title h2{font-size:23px;margin:0}.sidebar-title button{width:34px;min-width:34px;min-height:34px;padding:6px}.search{position:relative}.search .icon{position:absolute;left:12px;top:12px;color:var(--muted)}.search input{padding-left:39px;width:100%;font-size:12px}.filters{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.filters button{font-size:11px;font-weight:500;min-height:30px;padding:5px 9px;border-radius:5px}.filters button.active{background:var(--cyan);border-color:var(--cyan);color:#021a23}.list-head{display:grid;grid-template-columns:1.07fr 1.1fr .9fr;padding:11px 15px;background:#101e27;color:var(--muted);font-size:10px;font-weight:650;gap:6px}.inspection-list{max-height:calc(100vh - 390px);overflow-y:auto;min-height:180px}.inspection-row{width:100%;display:grid;grid-template-columns:1.07fr 1.1fr .9fr;gap:6px;align-items:center;text-align:left;padding:14px 15px;border:0;border-bottom:1px solid #182b36;border-radius:0;background:transparent;font-weight:400;font-size:11px;min-height:67px}.inspection-row:hover{background:#10232c!important}.inspection-row.selected{background:#073343!important;box-shadow:inset 3px 0 var(--cyan)}.inspection-row strong{font-size:11px}.inspection-row .cell-location{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}.inspection-row small{color:var(--muted);display:block;font-size:10px;margin-top:4px}.status{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;gap:6px;border-radius:5px;background:#1b2c38;color:#cadce8;padding:4px 7px;font-weight:600;font-size:10px;width:fit-content}.status.progress{background:#063d57;color:#77deff}.status.done{background:#103c2c;color:#79e6af}.status.pending{background:#46361d;color:#ffd286}.sidebar-footer{margin-top:auto;padding:16px;font-size:11px;color:var(--muted);border-top:1px solid #182b36}.detail{min-width:0}.empty-panel{min-height:calc(100vh - 131px);border:1px solid var(--line);border-radius:var(--radius);background:radial-gradient(ellipse at top,#0a202b 0,#0a1116 55%);display:flex;align-items:center;justify-content:center;text-align:center;padding:40px}.empty-panel .icon{width:45px;height:45px;color:var(--cyan);margin-bottom:22px}.empty-panel p{max-width:390px;color:var(--muted);margin:0 auto 24px}.detail-shell{background:linear-gradient(160deg,#0c151b,#080e12);border:1px solid var(--line);border-radius:var(--radius);padding:20px 20px 0;overflow:hidden}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.detail-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.detail-heading h1{margin:0;font-size:25px}.detail-heading .status{font-size:11px;padding:5px 10px}.location-line{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;margin-top:9px}.location-line .icon{width:15px;height:15px;color:var(--cyan)}.detail-meta{font-size:10px;text-align:right;color:var(--muted);line-height:1.8;min-width:125px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-bottom:16px}.metric{display:flex;align-items:center;gap:17px;border:1px solid #254454;background:linear-gradient(130deg,#0c1b24,#0a1217);border-radius:7px;padding:13px 17px}.metric .icon{width:36px;height:36px;color:var(--cyan);stroke-width:1.6}.metric .label{font-size:11px;color:var(--muted)}.metric strong{display:block;font-size:26px;letter-spacing:-.6px;line-height:1.25}.metric strong span{font-size:16px;letter-spacing:0}.tabs{display:flex;border-bottom:1px solid var(--line);gap:5px;margin-bottom:18px}.tab{border:0;background:transparent;border-radius:0;color:var(--muted);font-size:13px;padding:12px 16px;border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:500}.tab:hover:not(:disabled){background:#0d202a;border-color:transparent;border-bottom-color:#345c6c}.tab.active{color:var(--cyan);border-bottom-color:var(--cyan)!important}.tab .icon{width:17px;height:17px}.section{border:1px solid var(--line);border-radius:8px;background:#0a1319;padding:16px;margin-bottom:14px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.section-head h2,.section-head h3{margin:0}.section-head p{margin:4px 0 0}.section summary{cursor:pointer;font-size:14px;font-weight:600;padding:0;list-style-position:inside}.section[open] summary{margin-bottom:17px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.full{grid-column:1/-1}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span,.field>label,label.field{font-size:12px;color:#bfced7;font-weight:500}.field .help{font-size:11px;font-weight:400;margin:0}.field>span.required:after{content:' *';color:var(--cyan)}input,textarea,select{background:#060e13;border:1px solid #29404e;border-radius:6px;padding:10px 11px;color:var(--text);width:100%;min-width:0;min-height:40px;transition:border-color .15s}input::placeholder,textarea::placeholder{color:#607c8c;opacity:1}input:hover,textarea:hover,select:hover{border-color:#3b6277}input:focus,textarea:focus,select:focus{border-color:var(--cyan);outline:1px solid #02c6f133}textarea{resize:vertical;min-height:100px;line-height:1.6}input[type=checkbox]{width:16px;min-height:16px;height:16px;accent-color:var(--cyan)}input[readonly],textarea[readonly]{color:#d7e4ed;background:#0b141a;cursor:default}fieldset{border:0;margin:0;padding:0;min-width:0}fieldset:disabled input,fieldset:disabled select,fieldset:disabled textarea{opacity:1;color:#c2d5df;background:#0b141a}.check-label{display:flex;align-items:center;gap:10px;font-size:12px;color:#c2d5df;cursor:pointer;margin:10px 0}.subsection-title{font-size:11px;color:var(--cyan);font-weight:650;letter-spacing:.8px;text-transform:uppercase;margin:20px 0 11px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px}table{width:100%;border-collapse:collapse;font-size:11px;text-align:left}th{background:#122430;color:#c4d7e4;padding:10px 11px;font-weight:600;white-space:nowrap}td{padding:10px 11px;border-top:1px solid #213340;color:#c8d8e3;vertical-align:middle}tbody tr:nth-child(even){background:#0e1a22}td strong{color:var(--text)}.table-empty{text-align:center;padding:22px;color:var(--muted)}.tramo-card{border:1px solid #2a4455;border-radius:8px;padding:16px;margin-top:12px;background:#0c1820}.tramo-card h3{margin:0}.tramo-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.tramo-number{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;margin-right:8px;background:#063643;border:1px solid #07617a;border-radius:6px;color:var(--cyan);font-size:12px}.address-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:16px}.address-block{border-top:1px solid var(--line);padding-top:14px;min-width:0}.address-block h4{margin-bottom:11px;color:#dceaf2}.coordinate-actions{display:flex;align-items:center;gap:10px;margin:10px 0;flex-wrap:wrap}.coordinate-actions a{font-size:11px}.map-frame{width:100%;height:180px;border:1px solid var(--line);border-radius:5px;background:#15232c}.log-entry{display:grid;grid-template-columns:180px 1fr auto;gap:12px;padding:14px 0;border-bottom:1px solid #20333e;align-items:start}.log-entry textarea{min-height:70px}.log-entry:last-child{border-bottom:0}.section-intro{color:var(--muted);font-size:12px;line-height:1.6;margin-bottom:16px}.empty-state{padding:24px 14px;text-align:center;font-size:12px;color:var(--muted);background:#091016;border:1px dashed #29404e;border-radius:7px}.evidence-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.preview-box{background:#081018;border:1px solid #284352;border-radius:7px;padding:9px;min-width:0}.preview-box h4{font-size:12px;margin-bottom:8px}.preview-box img{width:100%;height:155px;object-fit:contain;border-radius:4px;background:#050709;display:block}.preview-placeholder{height:100px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;border-radius:4px;background:#101c24;color:#627e91;font-size:11px}.preview-placeholder .icon{width:27px;height:27px}.photo-group{padding:16px;border:1px solid #294352;border-radius:8px;margin-bottom:14px;background:#0c1720}.photo-group .section-head{align-items:flex-start}.photo-title{display:flex;align-items:center;gap:9px}.photo-title .count{border:1px solid #2a4e60;background:#0c2532;color:var(--cyan);font-size:10px;padding:1px 6px;border-radius:4px}.photo-description{font-size:11px;color:var(--muted);margin:4px 0 0}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}.photo-card{border:1px solid #2a414f;background:#061017;border-radius:7px;overflow:hidden;min-width:0}.photo-image{position:relative;display:block;height:145px;background:#03070a}.photo-image img{width:100%;height:100%;object-fit:contain;display:block}.photo-index{position:absolute;top:7px;left:7px;background:#01121edb;color:#8fe9ff;border:1px solid #216278;border-radius:4px;font-size:10px;padding:3px 6px}.photo-info{padding:8px}.photo-name{font-size:10px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:#a4bdcd;margin-bottom:7px}.photo-actions{display:flex;gap:5px;justify-content:flex-end}.photo-actions button{min-height:27px;min-width:27px;padding:4px;font-size:10px}.photo-actions .icon{width:14px;height:14px}.photo-note{font-size:12px;min-height:64px}.upload-label{display:inline-flex;align-items:center;gap:6px;background:#092e3b;border:1px solid #087895;border-radius:6px;min-height:35px;padding:6px 10px;font-size:11px;font-weight:600;color:#6ee8ff;cursor:pointer;white-space:nowrap}.upload-label:hover{background:#0c4050}.upload-label input{width:.1px;height:.1px;min-height:0;opacity:0;position:absolute;overflow:hidden}.upload-label:focus-within{outline:2px solid var(--cyan);outline-offset:3px}.upload-label.disabled{pointer-events:none;opacity:.5}.comparison-card{border:1px solid #294352;background:#081119;border-radius:7px;padding:12px;margin:12px 0}.comparison-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.comparison-head h4{margin:0}.comparison-card .form-grid{margin-bottom:12px}.detail-footer{position:sticky;bottom:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 0;background:#0a1116f5;border-top:1px solid #203c4b;backdrop-filter:blur(8px)}.save-state{color:var(--muted);font-size:11px;display:flex;align-items:center;gap:7px}.save-state.dirty{color:#f7ca79}.save-state .dot{height:6px;width:6px;background:var(--green);border-radius:50%}.save-state.dirty .dot{background:#f7ca79}.footer-actions{display:flex;gap:10px;align-items:flex-start}.download-wrap{text-align:right}.download-wrap .help{margin:5px 0 0;font-size:10px}.detail-footer button{padding:10px 19px}.inline-error{padding:12px 14px;border:1px solid #7f3d49;border-radius:7px;color:#ffb9c1;background:#2c121b;font-size:12px;margin:12px 0;white-space:pre-line}.notice{padding:11px 14px;background:#082b3b;border:1px solid #15536d;border-radius:6px;color:#9adcef;font-size:12px;margin-bottom:16px}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:30;max-width:min(580px,calc(100vw - 32px));background:#103a2b;color:#b5f2d4;border:1px solid #357558;border-radius:8px;padding:14px 20px;box-shadow:0 8px 45px #000b;font-size:13px}.toast.error{background:#351821;color:#ffc5ce;border-color:#914654}.toast.info{background:#092b3b;color:#b6eafd;border-color:#267590}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 50% 0,#0d3442 0,#070e13 45%,#030507 85%)}.auth-card{width:100%;max-width:430px;border:1px solid #254b5e;border-radius:16px;background:#0a131aeF;padding:32px;box-shadow:0 28px 100px #0007}.auth-brand{display:flex;align-items:center;justify-content:center;flex-direction:column;margin-bottom:26px}.auth-brand .logo-crop{margin-bottom:15px}.auth-brand h1{font-size:29px;margin:0}.auth-brand .eyebrow{margin-top:8px}.auth-card h2{font-size:21px;margin-bottom:8px}.auth-card .field{margin-bottom:16px}.auth-card button[type=submit]{width:100%;margin-top:8px}.auth-foot{margin:22px 0 0;font-size:10px;color:#718ea0;text-align:center}.page-container{max-width:1160px;padding:28px 24px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.account-grid{display:grid;grid-template-columns:300px 1fr;gap:20px}.identity-card{text-align:center;padding:30px 20px}.avatar{display:flex;align-items:center;justify-content:center;background:#073544;border:1px solid #096581;color:var(--cyan);width:66px;height:66px;border-radius:18px;margin:0 auto 16px;font-size:26px;font-weight:600}.identity-card h2{margin:0 0 5px}.role-badge{font-size:11px;color:var(--cyan);text-transform:uppercase;letter-spacing:1px}.account-form{max-width:540px}.account-form .field{margin-bottom:16px}.account-actions{display:flex;gap:10px}.users-table td{padding:14px 12px;font-size:12px}.users-table .actions{display:flex;gap:6px;flex-wrap:wrap}.user-editor{margin-bottom:24px}.user-editor .actions{margin-top:18px;display:flex;gap:10px}.mobile-back{display:none}.busy-strip{position:fixed;top:0;left:0;right:0;height:3px;background:var(--cyan);z-index:40;animation:loadbar 1.2s ease-in-out infinite;transform-origin:left}@keyframes loadbar{0%{transform:scaleX(.15)}50%{transform:scaleX(.7)}100%{transform:scaleX(1);opacity:.3}}.read-only-note{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:7px}.pagination-note{margin-top:12px;font-size:11px;color:var(--muted)}
@media(min-width:1600px){.app-workspace{grid-template-columns:365px minmax(0,1fr)}.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.preview-box img{height:200px}}
@media(max-width:1200px){.app-workspace{grid-template-columns:285px minmax(0,1fr);gap:10px;padding:12px}.detail-shell{padding:16px 14px 0}.sidebar-head{padding:15px 12px 12px}.inspection-row,.list-head{padding-left:11px;padding-right:11px}.detail-heading h1{font-size:21px}.metric{padding:12px;gap:10px}.metric strong{font-size:22px}.metric .icon{width:29px}.detail-meta{display:none}.tab{padding:11px 12px;font-size:12px}.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{padding:0 18px}.user-chip{display:none}.address-grid{grid-template-columns:1fr}.coordinate-actions{margin-top:12px}.log-entry{grid-template-columns:150px 1fr auto}.detail-footer button{padding:10px 12px;font-size:12px}.detail-footer{gap:10px}}
@media(max-width:850px){.topbar{height:80px;padding:0 14px;gap:10px}.brand{gap:12px}.logo-crop{width:132px;height:62px}.logo-crop img{width:202px;left:-30px;top:-39px}.brand-title{padding-left:12px}.brand-title strong{font-size:21px}.brand-title span{font-size:9px}.topnav button{font-size:12px;padding:9px;min-width:36px}.topnav button .nav-label{display:none}.app-workspace{display:block;padding:12px}.sidebar{min-height:calc(100vh - 108px);position:static}.inspection-list{max-height:none;min-height:200px}.inspection-row{font-size:13px;padding:14px 18px;grid-template-columns:1fr 1.3fr 1fr}.inspection-row strong{font-size:12px}.list-head{padding:10px 18px;grid-template-columns:1fr 1.3fr 1fr}.inspection-row small{font-size:11px}.sidebar-head{padding:20px 18px 16px}.sidebar-title h2{font-size:25px}.filters button{font-size:12px;padding:7px 12px;min-height:35px}.sidebar.has-selection{display:none}.detail:empty{display:none}.detail-shell{padding:16px 16px 0}.empty-panel{display:none}.mobile-back{display:inline-flex;margin-bottom:14px;padding:5px 0;min-height:30px}.metric strong{font-size:25px}.metric .icon{width:35px}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.address-grid{grid-template-columns:1fr 1fr;gap:15px}.page-container{padding:20px 14px}.account-grid{grid-template-columns:1fr}.identity-card{padding:20px}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.preview-box img{height:180px}}
@media(max-width:600px){body{font-size:13px}.topbar{height:74px;padding:0 10px}.brand{gap:7px}.brand-title{padding-left:9px}.brand-title strong{font-size:18px}.brand-title span{display:none}.logo-crop{width:111px;height:55px}.logo-crop img{width:175px;left:-26px;top:-34px}.topnav{gap:0}.topnav button{padding:8px}.app-workspace{padding:9px}.detail-shell{padding:13px 11px 0;border-radius:9px}.detail-header{margin-bottom:14px}.detail-heading{gap:8px}.detail-heading h1{font-size:20px}.detail-heading .status{font-size:10px}.location-line{font-size:11px}.metrics{gap:6px;margin-bottom:10px}.metric{display:block;padding:10px 9px}.metric .icon{height:22px;width:22px;margin-bottom:4px}.metric .label{font-size:9px}.metric strong{font-size:21px;margin-top:4px}.metric strong span{font-size:12px}.tabs{gap:0;justify-content:space-between;margin-bottom:12px}.tab{font-size:11px;padding:11px 7px;gap:5px}.tab .icon{width:15px;height:15px}.section,.photo-group{padding:12px}.section-head{gap:10px}.section-head h2{font-size:17px}.section-head h3{font-size:14px}.section-head button{font-size:11px;padding:7px 9px}.section-intro{font-size:11px}.form-grid,.form-grid.three,.form-grid.four{gap:11px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three>.field:last-child{grid-column:1/-1}.address-grid{grid-template-columns:1fr;gap:8px}.tramo-card{padding:12px}.log-entry{grid-template-columns:1fr auto;gap:8px}.log-entry .log-text{grid-column:1/-1;grid-row:2}.log-entry .log-delete{grid-column:2;grid-row:1;align-self:end}.preview-box{padding:7px}.evidence-preview{gap:8px}.preview-box img{height:110px}.preview-box h4{font-size:10px}.preview-placeholder{height:85px;font-size:10px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.photo-image{height:120px}.photo-title{gap:6px}.photo-title h3{font-size:13px}.photo-description{font-size:10px}.upload-label{font-size:10px;padding:6px 8px;gap:4px}.upload-label .icon{width:14px;height:14px}.photo-group>.section-head{flex-wrap:wrap}.detail-footer{align-items:flex-start;flex-wrap:wrap;gap:9px;padding:12px 0}.save-state{width:100%;font-size:10px}.footer-actions{width:100%;justify-content:flex-end;gap:8px}.detail-footer button{font-size:12px;padding:9px 13px;min-height:40px}.download-wrap .help{font-size:9px}.read-only-note{padding:7px 0}.auth-card{padding:26px 22px}.auth-brand .logo-crop{width:180px;height:76px}.auth-brand .logo-crop img{width:252px;left:-34px;top:-49px}.page-heading{align-items:flex-start;gap:12px}.page-heading h1{font-size:25px}.users-table .actions{min-width:130px}.identity-card h2{font-size:21px}.mobile-back{font-size:12px}.comparison-head h4{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition:none!important}} 
.logo-crop{height:86px}
@media(max-width:850px){.logo-crop{height:68px}.logo-crop img{width:185px;left:-27px;top:-36px}}
@media(max-width:600px){.logo-crop{height:60px}.logo-crop img{width:160px;left:-24px;top:-32px}.auth-brand .logo-crop{height:86px}}
.photo-comment-field{display:flex;flex-direction:column;gap:5px;margin:9px 0}.photo-comment-field span{font-size:10px;color:var(--muted);font-weight:600}.photo-comment{min-height:72px;font-size:11px;line-height:1.45;padding:8px}.photo-comment-save{width:100%;justify-content:center;margin-bottom:7px}
.metric-source{font-size:10px;line-height:1.4;color:var(--muted);margin-top:5px}
.save-state.error{color:var(--danger)}.save-state.error .dot{background:var(--danger)}
[aria-invalid=true]{border-color:var(--danger)}


/* Orden manual de ejecuci�n */
.route-help{margin:10px 0 0;color:#86a5b6;font-size:10px;line-height:1.45}
.list-head{grid-template-columns:58px 1.07fr 1.1fr .9fr;padding-left:8px}
.inspection-row{display:flex;gap:0;align-items:stretch;padding:0}
.inspection-open{flex:1;min-width:0;display:grid;grid-template-columns:1.07fr 1.1fr .9fr;gap:6px;align-items:center;text-align:left;padding:14px 12px 14px 6px;border:0;border-radius:0;background:transparent;color:inherit;font-weight:400;font-size:11px;min-height:67px}
.inspection-open:hover{background:transparent}
.inspection-delete{flex:0 0 38px;align-self:stretch;min-width:38px;min-height:0;padding:0;border:0;border-left:1px solid #733b42;border-radius:0;background:#241116;color:var(--danger)}
.inspection-delete:hover:not(:disabled){background:#3a171e;border-color:#9a4c57}.inspection-delete .icon{width:16px;height:16px}
.route-tools{width:58px;flex:0 0 58px;display:grid;grid-template-columns:30px 20px;grid-template-rows:24px 24px;gap:3px;align-content:center;justify-content:center;padding:7px 3px}
.route-tools.readonly{display:flex;align-items:center;justify-content:center}
.route-grip{grid-row:1/3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid #275064;border-radius:6px;background:#0b2834;color:var(--cyan);cursor:grab;user-select:none}
.route-grip:active{cursor:grabbing}.route-grip .icon{width:15px;height:15px}.route-grip b{font-size:9px}
.route-action{min-width:20px;min-height:20px;width:20px;height:24px;padding:2px;border-radius:5px;background:#0d2029}.route-action .icon{width:13px;height:13px}.route-action:disabled{opacity:.24}
.route-position{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;border:1px solid #275064;border-radius:8px;background:#0b2834;color:var(--cyan);font-size:11px;font-weight:700}
.inspection-row.dragging{opacity:.45}.inspection-row.drop-before{box-shadow:inset 0 3px var(--cyan)}.inspection-row.drop-after{box-shadow:inset 0 -3px var(--cyan)}
.inspection-row.selected.drop-before{box-shadow:inset 3px 0 var(--cyan),inset 0 3px var(--cyan)}.inspection-row.selected.drop-after{box-shadow:inset 3px 0 var(--cyan),inset 0 -3px var(--cyan)}
@media(max-width:850px){.list-head{grid-template-columns:58px 1fr 1.3fr 1fr}.inspection-open{grid-template-columns:1fr 1.3fr 1fr;font-size:13px;padding-right:18px}.inspection-open strong{font-size:12px}.inspection-open small{font-size:11px}}


/* Tema Azul Corporativo · alto contraste para terreno */
:root{color-scheme:light;--bg:#edf4fa;--panel:#fff;--panel2:#f5f9fc;--line:#bfd0de;--text:#102a43;--muted:#4b6478;--cyan:#0067b9;--cyan2:#005494;--danger:#b42318;--green:#08783e}
body{background:var(--bg);color:var(--text)}
a{color:#005ea8}
button{background:#fff;color:var(--text);border-color:#9fb7c9;box-shadow:0 1px 2px #173b5712}
button:hover:not(:disabled){background:#e8f2fa;border-color:#2877ad}
button.primary{background:#0067b9;color:#fff;border-color:#005ca8}
button.primary:hover:not(:disabled){background:#005494;border-color:#004b83}
button.outline{background:#fff;color:#005ea8;border-color:#3781b5}
button.ghost{color:#294d68}
button.danger{color:#a61b12;border-color:#e3aaa5;background:#fff5f4}
:focus-visible{outline-color:#005ea8}
.topbar{background:linear-gradient(115deg,#003d73,#0067b9);border-bottom-color:#002f59;color:#fff;box-shadow:0 3px 14px #153c5b2b}
.brand-title{border-left-color:#ffffff66}.brand-title span,.user-chip{color:#dcecf8}.user-chip{border-left-color:#ffffff55}.user-chip strong{color:#fff}
.topnav button{color:#fff}.topnav button:hover:not(:disabled),.topnav button.active{color:#fff;background:#ffffff20;border-color:#ffffff2e}.topnav .icon{color:#fff}
.app-workspace{background:var(--bg)}
.sidebar,.detail-shell{background:#fff;border-color:var(--line);box-shadow:0 4px 18px #153c5b12}
.empty-panel{background:linear-gradient(145deg,#fff,#eef7fd);border-color:var(--line)}
.empty-panel p,.muted,.help,.detail-meta,.metric .label,.section-intro,.photo-description,.save-state,.read-only-note,.pagination-note{color:var(--muted)}
.search input,input,textarea,select{background:#fff;color:var(--text);border-color:#9fb7c9}
input::placeholder,textarea::placeholder{color:#647d90}
input:hover,textarea:hover,select:hover{border-color:#4c8bb7}
input:focus,textarea:focus,select:focus{border-color:#0067b9;outline:2px solid #0067b926}
input[readonly],textarea[readonly],fieldset:disabled input,fieldset:disabled select,fieldset:disabled textarea{background:#eef4f8;color:#28475e}
.field>span,.field>label,label.field,.check-label{color:#28475e}
.filters button{background:#fff;color:#173b57;border-color:#a9bfce}
.filters button.active{background:#0067b9;border-color:#0067b9;color:#fff}
.route-help{color:#4b6478}
.list-head{background:#dcebf6;color:#234a66;border-top:1px solid #c4d5e1;border-bottom:1px solid #b5cad8}
.inspection-list{background:#f5f9fc}
.inspection-row{background:#fff;color:var(--text);border-bottom-color:#cfdee8}
.inspection-row:hover{background:#eaf4fb!important}
.inspection-row.selected{background:#d9eefc!important;box-shadow:inset 4px 0 #0067b9}
.inspection-open{color:var(--text)}
.inspection-delete{background:#fff5f4;color:#a61b12;border-left-color:#e3aaa5}
.inspection-delete:hover:not(:disabled){background:#ffe5e2;border-color:#cf726a}
.inspection-row small{color:#496579}
.status{background:#e6edf3;color:#29465d;border:1px solid #c1d0dc}
.status.progress{background:#d8efff;color:#005b96;border-color:#80bfe6}
.status.done{background:#dff5e9;color:#08783e;border-color:#84caa5}
.status.pending{background:#fff0c7;color:#7a4b00;border-color:#e5bd57}
.sidebar-footer{color:#4b6478;border-top-color:#cfdee8;background:#f7fafc}
.metric,.section,.tramo-card,.photo-group,.comparison-card{background:#fff;border-color:#c5d5e0}
.metric{background:linear-gradient(135deg,#fff,#edf7fd)}.metric .icon,.location-line .icon,.subsection-title,.eyebrow{color:#0067b9}
.tabs{border-bottom-color:#bfd0de}.tab{color:#456277}.tab:hover:not(:disabled){background:#edf6fc;border-bottom-color:#76acd0}.tab.active{color:#005ea8;border-bottom-color:#0067b9!important}
.table-wrap{border-color:#bfd0de}th{background:#dcebf6;color:#193e59}td{border-top-color:#d5e1e9;color:#29485f}tbody tr:nth-child(even){background:#f3f8fb}
.empty-state{background:#f5f9fc;color:#4b6478;border-color:#aac0cf}
.preview-box,.photo-card{background:#f7fafc;border-color:#c2d3df}.photo-image{background:#e7eef3}.preview-box img{background:#eef3f6}.preview-placeholder{background:#e7eef3;color:#547086}
.upload-label{background:#e3f3ff;border-color:#4c99ca;color:#005c9f}.upload-label:hover{background:#d3ebfb}
.photo-title .count{background:#e0f1fc;border-color:#76b1d6;color:#005ea8}
.tramo-number,.avatar,.route-grip,.route-position{background:#e0f1fc;border-color:#76b1d6;color:#005ea8}
.route-action{background:#fff;border-color:#9fb7c9;color:#005ea8}
.detail-footer{background:#fffffff5;border-top-color:#bfd0de}.save-state.dirty{color:#8a5600}
.notice{background:#e5f4fd;border-color:#89bedc;color:#164f73}
.inline-error{background:#fff0ef;border-color:#e2aaa5;color:#9f1c14}
.toast{background:#e2f5ea;color:#08683a;border-color:#78c49c;box-shadow:0 8px 32px #173b5738}.toast.error{background:#fff0ef;color:#9f1c14;border-color:#d6908a}.toast.info{background:#e5f4fd;color:#164f73;border-color:#89bedc}
.auth-page{background:linear-gradient(145deg,#e2eff8,#f8fbfd)}.auth-card{background:#fff;border-color:#aec6d7;box-shadow:0 24px 70px #173b572e}.auth-foot{color:#5b7385}
.busy-strip{background:#0067b9}
@media(max-width:850px){
  .topbar{box-shadow:0 2px 10px #153c5b36}
  .sidebar{background:#f7fafc}
  .sidebar-head{background:#fff}
  .inspection-list{display:grid;gap:10px;padding:12px}
  .inspection-row{border:1px solid #bfd0de;border-radius:10px;overflow:hidden;min-height:82px;box-shadow:0 2px 8px #153c5b12}
  .list-head{grid-template-columns:72px 1fr 1.35fr 1fr;padding-left:12px}
  .route-tools{width:72px;flex-basis:72px;grid-template-columns:36px 30px;grid-template-rows:34px 34px;gap:4px;padding:5px}
  .route-grip{min-width:36px}.route-action{width:30px;height:34px;min-width:30px;min-height:34px}
  .inspection-open{grid-template-columns:1fr 1.35fr 1fr;min-height:82px;padding:12px 12px 12px 8px}
  .filters{gap:8px}.filters button{min-height:44px;padding:9px 13px;font-size:13px}
  .sidebar-title button{width:44px;min-width:44px;min-height:44px}
  .search input{min-height:46px;font-size:14px}
}
@media(max-width:600px){
  .app-workspace{padding:8px}.sidebar{border-radius:12px}
  .topnav button{min-width:42px;min-height:42px}
  .list-head{grid-template-columns:72px 1fr 1.25fr .9fr;padding:11px 10px;font-size:10px}
  .inspection-open{grid-template-columns:1fr 1.25fr .9fr;font-size:12px}
  .inspection-open strong{font-size:13px}
  .status{font-size:10px;padding:5px 6px}
  .section,.photo-group{box-shadow:0 2px 8px #153c5b0d}
}

/* Dashboard Ejecutivo · acceso administrativo */
.dashboard-page{max-width:1440px}.dashboard-heading h1{margin:5px 0 4px}.dashboard-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) auto auto;gap:12px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:18px;box-shadow:0 3px 14px #153c5b0d}.dashboard-filters button{min-height:40px}.dashboard-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}.dashboard-kpi{background:#fff;border:1px solid #c5d5e0;border-top:4px solid #73a6c9;border-radius:10px;padding:16px;box-shadow:0 3px 14px #153c5b0d}.dashboard-kpi>span{display:block;color:var(--muted);font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.5px}.dashboard-kpi strong{display:block;color:#123b58;font-size:28px;margin-top:9px;line-height:1}.dashboard-kpi strong small{font-size:14px;margin-left:4px}.dashboard-kpi.success{border-top-color:#13975b}.dashboard-kpi.highlight{border-top-color:#0067b9;background:linear-gradient(135deg,#fff,#eaf6fe)}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dashboard-card{min-width:0;background:#fff;border:1px solid #c5d5e0;border-radius:12px;padding:18px;box-shadow:0 3px 14px #153c5b0d}.dashboard-card.wide{grid-column:1/-1}.dashboard-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.dashboard-card-head h2{font-size:18px;margin:5px 0 0}.dashboard-card-head>strong{color:#005ea8;font-size:20px;white-space:nowrap}.meter-chart{height:260px;display:flex;align-items:flex-end;gap:8px;padding:20px 8px 0;border-left:1px solid #d3e0e9;border-bottom:1px solid #d3e0e9;overflow-x:auto}.meter-bar-item{height:100%;min-width:52px;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}.meter-bar{display:block;width:min(34px,75%);min-height:4px;background:linear-gradient(180deg,#20a0df,#0067b9);border-radius:5px 5px 0 0}.meter-bar-value{font-size:10px;color:#315a75;margin-bottom:5px}.meter-bar-item small{width:100%;min-height:34px;padding-top:7px;color:#536e81;font-size:9px;text-align:center;white-space:nowrap}.completion-wrap{display:grid;grid-template-columns:190px 1fr;gap:20px;align-items:center}.completion-ring{--completion:0;width:172px;height:172px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at center,#fff 0 57%,transparent 58%),conic-gradient(#08783e calc(var(--completion)*1%),#dbe6ed 0)}.completion-ring strong{font-size:30px;color:#08783e}.completion-ring span{font-size:11px;color:var(--muted);text-transform:uppercase}.status-list{display:grid;gap:9px}.status-row{display:grid;grid-template-columns:1fr auto 54px;align-items:center;gap:10px;padding-bottom:9px;border-bottom:1px solid #e0e9ef}.status-row>strong,.status-row>span:last-child{text-align:right}.material-list{display:grid;gap:19px}.material-row>div:first-child{display:flex;justify-content:space-between;gap:15px;font-size:12px;margin-bottom:7px}.material-row>div:first-child span{color:var(--muted)}.material-track{height:13px;background:#e4edf3;border-radius:20px;overflow:hidden}.material-track span{display:block;height:100%;min-width:2px;border-radius:20px}.material-track .cobre{background:#b56b3b}.material-track .fibra{background:#157ab5}.material-track .ferreteria{background:#657887}.dashboard-table td:first-child{font-weight:600}.rank-number{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-right:9px;border-radius:7px;background:#e0f1fc;color:#005ea8}.dashboard-empty{width:100%;padding:30px;color:var(--muted);text-align:center}
@media(max-width:1100px){.dashboard-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-filters button{grid-column:auto}.dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.dashboard-page{padding:18px 10px}.dashboard-heading{align-items:flex-start}.dashboard-heading .outline{padding:9px}.dashboard-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:13px}.dashboard-filters button{min-height:44px}.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.dashboard-kpi{padding:13px}.dashboard-kpi strong{font-size:24px}.dashboard-grid{grid-template-columns:1fr}.dashboard-card,.dashboard-card.wide{grid-column:1;padding:14px}.meter-chart{height:230px}.completion-wrap{grid-template-columns:1fr}.completion-ring{margin:auto}.dashboard-table{min-width:650px}}
@media(max-width:430px){.topbar{min-width:0;overflow:hidden}.brand{min-width:0}.brand-title{display:none}.topnav{min-width:0;flex:1;overflow-x:auto;justify-content:flex-end;scrollbar-width:none}.topnav::-webkit-scrollbar{display:none}.dashboard-filters{grid-template-columns:1fr}.dashboard-kpis{grid-template-columns:1fr 1fr}.dashboard-kpi strong{font-size:21px}.dashboard-card-head{align-items:flex-start;flex-direction:column}.meter-bar-item{min-width:46px}}


/* Logo transparente - 2026-09-26 */
.logo-crop,.auth-brand .logo-crop{background:transparent!important}
.logo-crop img{background:transparent!important}
