:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#e2e9f2;background:#0c1421;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #34435c;background:#1d2d44;color:#eaf2ff;border-radius:7px;padding:9px 12px}button:hover{background:#2d4665}button:disabled{opacity:.5;cursor:wait}.primary{background:#14827d;border-color:#14827d}input,select,textarea{border:1px solid #34435c;background:#101d30;color:#eaf2ff;border-radius:6px;padding:9px;max-width:100%}textarea{width:100%}label{display:block;margin:12px 0 5px;color:#a8b9cf}h1,h2,h3,p{margin-top:0}h1{font-size:23px}h2{font-size:18px}small,.muted{color:#9badc5}.login{max-width:390px;margin:12vh auto;padding:35px;background:#152238;border-radius:14px;box-shadow:0 15px 60px #0006}.login input{width:100%;margin-bottom:12px}.login button{width:100%;margin-top:12px}.brand{font-size:26px;font-weight:750;letter-spacing:3px;color:#57d2c2}.header{height:64px;padding:12px 20px;display:flex;align-items:center;gap:16px;border-bottom:1px solid #27364b}.header .brand{font-size:20px}.spacer{flex:1}.layout{display:grid;grid-template-columns:245px 1fr 330px;height:calc(100vh - 64px)}aside{padding:16px;overflow:auto;background:#111e30}aside.left{border-right:1px solid #27364b}aside.right{border-left:1px solid #27364b}.viewer{position:relative;min-width:0;background:#dce5ed}.viewer canvas{display:block;width:100%;height:100%}.toolbar{position:absolute;left:12px;top:12px;display:flex;gap:6px;flex-wrap:wrap}.toolbar button{background:#152238ef}.progress{position:absolute;bottom:16px;left:16px;background:#152238ed;padding:10px 14px;border-radius:8px;max-width:90%}.field{width:100%}.element-list{margin-top:12px;max-height:45vh;overflow:auto}.element-list button{display:block;width:100%;text-align:left;margin:5px 0;padding:8px;font-size:12px}.summary{padding:12px;border:1px solid #2c405a;border-radius:8px;margin:12px 0}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.property{display:grid;grid-template-columns:1.2fr 1fr;gap:8px;border-bottom:1px solid #24344b;padding:8px 0;overflow-wrap:anywhere;font-size:12px}.property span:first-child{color:#9badc5}.history{padding:10px;background:#1a2b42;margin:8px 0;border-radius:6px}.error{color:#ffb0a4;white-space:pre-wrap}.success{color:#65dac2}dialog{background:#142238;color:#eaf2ff;border:1px solid #34435c;border-radius:12px;width:600px;max-width:92vw;max-height:85vh}dialog::backdrop{background:#0008}dialog input{width:100%}.version{margin:10px 0;padding:12px;border:1px solid #34435c;border-radius:7px}.version ul{max-height:120px;overflow:auto}.legend{font-size:12px;line-height:2}#toast{position:fixed;bottom:20px;right:20px;background:#1f3b51;border:1px solid #57758b;border-radius:8px;padding:14px;z-index:100;max-width:400px}@media(max-width:1000px){.layout{grid-template-columns:190px 1fr 260px}}@media(max-width:700px){.layout{grid-template-columns:1fr;grid-template-rows:140px 50vh auto;height:auto}.left .element-list{display:none}.header{gap:8px;padding:8px;font-size:12px}.header button{padding:6px}.right{min-height:300px}}.advanced{margin:14px 0;border-top:1px solid #304158;padding-top:12px}summary{cursor:pointer;color:#83d8ce;padding:8px 0}.help{font-size:12px;line-height:1.5}.header{height:auto;min-height:64px;flex-wrap:wrap;gap:8px}.header button{font-size:12px;padding:8px}#modelLabels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.model-label{position:absolute;left:0;top:0;background:#13273bd9;color:#f4f9ff;font-size:11px;padding:3px 6px;border-radius:4px;white-space:nowrap;box-shadow:0 1px 3px #0003}.model-label[hidden]{display:none}.table-scroll{overflow:auto;margin:12px 0}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:9px;text-align:left;border-bottom:1px solid #34435c;white-space:nowrap}th{color:#99c3d4}.wide{width:850px}dialog select,dialog input:not([type=checkbox]){width:100%}dialog button{margin:6px 4px 6px 0}.allocation{display:flex;gap:6px;align-items:center;margin:8px 0}.allocation select{flex:1}.allocation input{max-width:80px}#sectors{display:flex;flex-wrap:wrap;gap:6px}.reference-delta{font-size:20px;color:#7ee0d0}#resetFilters{margin-top:10px}#canvas{touch-action:none}dialog input[type=checkbox]{width:auto}dialog form{margin:16px 0;padding:12px;border:1px solid #34435c;border-radius:8px}@media(max-width:700px){.layout{grid-template-rows:auto 55vh auto}.left{max-height:40vh}.header .brand{font-size:17px}.toolbar button{font-size:11px;padding:6px}.model-label{font-size:10px}.reference-delta{font-size:23px}.allocation{flex-wrap:wrap}}@media print{body>*:not(dialog){display:none!important}dialog[open]{position:static;display:block!important;max-height:none;overflow:visible;width:100%;max-width:none;background:#fff;color:#000;border:0}dialog button,dialog input,dialog select,dialog form,dialog [data-close]{display:none!important}th,td{color:#000;border-color:#aaa}.table-scroll{overflow:visible}}.element-tooltip{position:absolute;max-width:240px;background:#17374bee;color:#fff;border:1px solid #7295a9;border-radius:6px;padding:7px 9px;font-size:12px;box-shadow:0 2px 8px #0003;pointer-events:none}.element-tooltip.selected{border-color:#efaa54;background:#3b3428ee}.element-tooltip[hidden]{display:none}.opacity-control{display:flex;align-items:center;gap:7px;margin:0;padding:5px 9px;border-radius:7px;background:#152238ef;color:#eaf2ff;font-size:12px}.opacity-control input{width:110px;padding:0}.inline-error{border:2px solid #ee6b5d;background:#622c2a;color:#fff;padding:14px;border-radius:8px;font-weight:600;margin:12px 0;white-space:pre-wrap}.inline-error[hidden]{display:none}.sticky-actions{position:sticky;top:0;z-index:2;background:#142238;display:flex;flex-wrap:wrap;border-bottom:1px solid #34435c}.lift-checks{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.lift-checks label{margin:5px}.property-editor{display:grid;grid-template-columns:110px 1fr;gap:10px;border-bottom:1px solid #34435c;padding:8px}.property-editor small{grid-column:2}.property-editor[hidden]{display:none}#reportChoices{max-height:30vh;overflow:auto}#reportChoices label{margin:7px}.report-print article{break-inside:avoid;margin-bottom:25px}#toast{max-width:min(600px,92vw);border:2px solid #cf8d55;font-weight:600}@media(max-width:700px){.lift-checks{grid-template-columns:repeat(2,1fr)}.property-editor{grid-template-columns:90px 1fr}.opacity-control input{width:80px}}@media print{dialog.report-print>*:not(#printReport){display:none!important}dialog.report-print #printReport{display:block!important}}.settings-menu{display:flex;gap:12px;margin:16px 0}.section-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.section-fields label{display:grid;gap:5px}.section-options{display:flex;flex-wrap:wrap;gap:12px;margin:15px 0}.section-options input{width:auto}.section-preview{background:#111c2e;min-height:450px;overflow:hidden;border-radius:8px;margin-top:12px}.section-preview canvas{width:100%;height:450px;touch-action:none}.inline-error{white-space:pre-line}.lift-checks label:has(input:disabled){opacity:.55}@media(max-width:650px){.section-fields{grid-template-columns:1fr}.settings-menu{flex-direction:column}}.login{max-width:430px;border-top:3px solid #4aa7d6;padding:32px;background:linear-gradient(145deg,#19263a,#101b2d)}.login-eyebrow{font-size:10px;letter-spacing:.14em;color:#8fa7c3;margin-bottom:12px}.login-brand{font-size:32px;letter-spacing:.05em}.login-brand span{color:#58b9e6;font-weight:400}.login-subtitle{color:#b8c8dd;line-height:1.6;font-size:14px;margin:12px 0 24px}.login-credit{text-align:center;border-top:1px solid #33445d;margin-top:24px;padding-top:18px;font-size:12px;color:#8fa4bd;line-height:1.9}.login-credit strong{color:#c6d4e5;font-weight:500}.login-credit a{color:#6dbde3;text-decoration:none}.download-link{display:inline-block;border:1px solid var(--border,#d3dce5);border-radius:6px;padding:7px 10px;margin:4px 6px 4px 0;color:inherit;text-decoration:none}.download-link:hover{background:#eef3f8}#pairChoices small{opacity:.65}.bobin-picker{position:relative;flex:1;min-width:240px}.bobin-picker>select[hidden]{display:none!important}.bobin-toggle{display:block;text-align:left;width:100%;min-height:46px;background:#fff;color:#21374b;border:1px solid #a5b7c9;font-size:16px;padding:10px 12px;white-space:normal;overflow-wrap:anywhere}.bobin-popup{position:absolute;top:100%;left:0;right:0;z-index:30;background:#fff;border:1px solid #a5b7c9;box-shadow:0 4px 12px #0003;padding:8px}.bobin-popup[hidden]{display:none}.bobin-popup>input[type=search]{width:100%;max-width:none;font-size:16px;margin-bottom:6px}.bobin-options{max-height:260px;overflow:auto}.bobin-options button{display:block;text-align:left;width:100%;border:0;border-radius:0;background:#fff;color:#21374b;padding:10px}.bobin-options button:hover,.bobin-options button.active,.bobin-options button[aria-selected=true]{background:#dcecff}.allocation>input[type=number]{flex:0 0 85px;width:85px;min-width:85px;max-width:85px;font-size:18px;min-height:46px}.allocation>button{flex:0 0 auto}@media(max-width:600px){.bobin-picker{min-width:0;flex-basis:calc(100% - 150px)}}.context-menu{position:fixed;z-index:150;background:#142238;border:1px solid #567089;border-radius:10px;padding:6px;min-width:220px;max-height:80dvh;overflow:auto;box-shadow:0 8px 28px #0006}.context-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:10px}.context-menu button:hover{background:#2d4665}.mobile-bar,.sheet-actions{display:none}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.photo-card{text-align:left;display:grid;gap:7px;overflow:hidden}.photo-card img{width:100%;height:150px;object-fit:cover;border-radius:5px}.photo-card span{overflow-wrap:anywhere}.photo-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.photo-previews{display:flex;gap:10px;flex-wrap:wrap}.photo-previews>div{width:130px}.photo-previews img{width:130px;height:100px;object-fit:cover}.photo-source,.photo-element-picker{display:flex;gap:8px}.photo-element-picker input{flex:1}.photo-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.photo-detail-grid figure{margin:0}.photo-detail-grid img{width:100%;max-height:450px;object-fit:contain}.photo-detail-grid figcaption{overflow-wrap:anywhere;margin:8px 0}.issue-badge{color:#ffba9d;background:#543327;padding:5px;border-radius:5px}.photo-note{white-space:pre-wrap}#photoProgress{width:100%;height:22px}dialog{overflow:auto;overscroll-behavior:contain}#mobileActions{display:grid;gap:10px}.element-photo-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.viewer:fullscreen{width:100vw;height:100dvh}@media(max-width:1100px),(pointer:coarse)and (max-width:1400px){body.app-session{height:100dvh;overflow:hidden}body.app-session .header{height:44px;min-height:44px;padding:6px 12px;flex-wrap:nowrap}body.app-session .header>button{display:none}body.app-session .header>span:not(.spacer){max-width:55vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.app-session .layout{display:block;position:fixed;top:44px;bottom:calc(60px + env(safe-area-inset-bottom));left:0;right:0;height:auto}body.app-session .viewer{height:100%;width:100%}.mobile-bar{display:flex;position:fixed;bottom:0;left:0;right:0;min-height:60px;padding:5px 5px calc(5px + env(safe-area-inset-bottom));background:#111e30;z-index:50;gap:4px;border-top:1px solid #42536b}.mobile-bar button{flex:1;font-size:12px;min-height:44px;padding:8px 3px}.layout>aside{display:none;position:fixed;left:0;right:0;bottom:calc(60px + env(safe-area-inset-bottom));max-height:70dvh;height:55dvh;min-height:0;z-index:45;border:1px solid #42536b;border-radius:16px 16px 0 0;box-shadow:0 -5px 25px #0005;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}.sheet-left .layout>.left,.sheet-right .layout>.right{display:block}.sheet-expanded .layout>.right{height:80dvh;max-height:80dvh}.sheet-actions{display:flex;position:sticky;top:-16px;background:#111e30;padding:8px 0;gap:6px;align-items:center;z-index:2}.sheet-actions button{min-height:40px;padding:8px}.left .element-list{display:block;max-height:none}.toolbar{max-width:calc(100% - 16px);left:8px;top:8px}.toolbar:not(.expanded)>button:not([data-view=top]):not(#fit):not(#cut):not(#fullscreen){display:none}.toolbar:not(.expanded)>.opacity-control{display:none}.toolbar.expanded{background:#152238e8;padding:8px;border-radius:8px;max-height:35dvh;overflow:auto}.toolbar button{font-size:12px;min-height:40px}.progress{font-size:11px;bottom:8px;left:8px;max-width:95%;padding:6px 9px}dialog{max-width:96vw;max-height:88dvh;padding:14px}dialog button{min-height:44px}input,select,textarea{font-size:16px}.photo-filters{grid-template-columns:1fr 1fr}#toast{bottom:calc(72px + env(safe-area-inset-bottom));left:12px;right:12px;max-width:none}}@media(min-width:700px)and (max-width:1100px)and (orientation:landscape),(pointer:coarse)and (min-width:700px)and (max-width:1400px)and (orientation:landscape){.layout>aside{top:44px;bottom:calc(60px + env(safe-area-inset-bottom));height:auto;max-height:none;width:350px;right:auto;border-radius:0}.layout>.right{left:auto;right:0;width:390px}.sheet-expanded .layout>.right{width:50vw;height:auto;max-height:none}}@media(max-width:500px){.photo-filters{grid-template-columns:1fr}.photo-grid{grid-template-columns:1fr 1fr}.photo-card img{height:110px}.photo-card{font-size:12px}.photo-detail-grid{grid-template-columns:1fr}}.photo-drop{border:1px dashed #7695b2;border-radius:8px;padding:15px;margin:12px 0}.photo-drop.dragover{background:#24546a;border-color:#7fe0d0}.demo-badge{background:#f7bf45;color:#241700;border-radius:6px;padding:8px 12px;font-size:13px}body[data-data-mode=demo] .header{border-bottom:4px solid #f7bf45}.tour-target{outline:3px solid #edb341!important;outline-offset:-3px}.learning-tour{position:fixed;right:18px;bottom:18px;width:min(380px,calc(100vw - 24px));padding:18px;background:#102e46;color:#fff;border:2px solid #edb341;border-radius:12px;box-shadow:0 12px 45px #0005;z-index:11000;text-align:left;max-height:50dvh;overflow:auto}.learning-tour p{line-height:1.5;font-size:14px}.learning-tour small{color:#d4e3ef}.tour-heading{display:flex;align-items:center;gap:12px;justify-content:space-between}.tour-heading strong{font-size:17px}.learning-tour button{background:#fff;color:#143047;border-radius:6px;min-height:40px}.learning-tour button.primary{background:#edb341;color:#102e46}.tour-actions{display:flex;gap:8px;flex-wrap:wrap}.tour-x{font-size:24px;min-width:40px}.tour-error{padding:8px;background:#8d2323;color:#fff;margin-bottom:10px}.tour-choices{display:flex;gap:12px;flex-wrap:wrap}dialog:has(.learning-tour){padding-bottom:310px}@media(max-width:700px){.learning-tour{bottom:70px;right:12px;max-height:40dvh;padding:12px}.learning-tour p{font-size:13px}dialog:has(.learning-tour){padding-bottom:340px}.header #toggleDemo,.header #learningTour{display:none}}.inventory-tabs{flex-wrap:wrap;gap:6px}.inventory-tabs button{font-size:13px}.delivery-line{display:flex;gap:8px;align-items:center;margin:8px 0}.delivery-line select{flex:1;min-width:120px}.delivery-line input{width:90px}.equipment-checks{display:grid;gap:8px}.draft-note{padding:8px;border-radius:6px;background:#edf4fb;color:#254968;font-size:13px}.inventory-tabs+input{margin:12px 0}@media(max-width:700px){.delivery-line{flex-wrap:wrap}.inventory-tabs{max-height:150px;overflow:auto}.table-scroll{max-width:100%}}html,body{max-width:100%;overflow-x:clip}.layout{grid-template-columns:245px minmax(0,1fr) 330px}.layout>*,.header>*,.sticky-actions>*,.tabs>*,.allocation>*,.delivery-line>*{min-width:0}.app-dialog,.app-dialog.wide{width:calc(100vw - 40px);max-width:1440px;max-height:calc(100dvh - 40px);overflow-x:hidden;overflow-y:auto;padding:18px;overflow-wrap:anywhere}.app-dialog>*{max-width:100%;min-width:0}.app-dialog form{min-width:0;max-width:100%}.app-dialog button,.app-dialog a{white-space:normal;overflow-wrap:anywhere;max-width:100%}.app-dialog input,.app-dialog select,.app-dialog textarea{min-width:0;max-width:100%}.dialog-navigation{position:sticky;top:-18px;display:flex;justify-content:space-between;gap:12px;z-index:10;background:#142238;padding:8px 0;border-bottom:1px solid #34435c;margin-bottom:14px}.dialog-navigation button{margin:0!important}.app-dialog .tabs,.app-dialog .settings-menu,.app-dialog .sticky-actions{display:flex;flex-wrap:wrap;gap:8px;max-width:100%}.app-dialog .table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.app-dialog th,.app-dialog td{white-space:normal;overflow-wrap:anywhere;vertical-align:top}.app-dialog table{min-width:0}.app-dialog select{white-space:nowrap;text-overflow:ellipsis}.app-dialog .allocation select,.app-dialog .delivery-line select{min-width:0;flex:1 1 240px}.app-dialog .allocation,.app-dialog .delivery-line,.app-dialog .photo-source,.app-dialog .photo-element-picker{flex-wrap:wrap}.app-dialog .photo-detail-grid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}.app-dialog .photo-filters{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}.app-dialog .property-editor{grid-template-columns:minmax(80px,110px) minmax(0,1fr)}.app-dialog .table-scroll:has(th:nth-child(8)) table{min-width:760px}.app-dialog .table-scroll:has(th:nth-child(6)):not(:has(th:nth-child(8))) table{min-width:600px}@media(max-width:1000px){.layout{grid-template-columns:190px minmax(0,1fr) 260px}}@media(max-width:700px){.app-dialog,.app-dialog.wide{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:12px;margin:auto;border-radius:10px}.dialog-navigation{top:-12px}.app-dialog form{padding:10px}.app-dialog .photo-filters{grid-template-columns:minmax(0,1fr)}.app-dialog th,.app-dialog td{padding:7px;font-size:12px}.app-dialog .lift-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.app-dialog .allocation select,.app-dialog .delivery-line select{flex-basis:100%;width:100%}}@media print{.dialog-navigation{display:none!important}.app-dialog{width:100%;max-width:none;max-height:none;overflow:visible}.app-dialog table{min-width:0!important}}.app-dialog .photo-grid{grid-template-columns:repeat(auto-fill,minmax(min(190px,100%),1fr))}.context-menu{max-width:calc(100vw - 24px)}.survey-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}.survey-plan{display:block;width:100%;height:420px;background:#f5f8fc;border:1px solid #bac9d9;touch-action:none;cursor:grab}.survey-plan [data-point]{cursor:pointer}#surveySelected{padding:12px;background:#edf3f9;overflow-wrap:anywhere}#surveyTable{max-width:100%;overflow:auto}#surveyTable button{padding:4px 8px}@media(max-width:600px){.survey-plan{height:320px}.survey-actions button{min-height:40px}}.survey-tolerances,.survey-point-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.survey-point-card{padding:12px;border:2px solid #527b9f;border-radius:8px;margin:10px 0;background:#eff6fc;overflow-wrap:anywhere}.survey-point-grid{margin-top:8px}#surveyTable th,#surveyTable td{white-space:nowrap}.survey-plan:focus{outline:2px solid #527b9f}@media(max-width:600px){.survey-tolerances,.survey-point-grid{grid-template-columns:1fr}.survey-point-card{font-size:13px}}
