:root{font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:#dbe5ed;background:#0b1622;color-scheme:dark;font-size:13px}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;transition:background .15s,border-color .15s,transform .15s}button:disabled{opacity:.5;cursor:not-allowed}button:active{transform:translateY(1px)}
#app{height:100vh;display:grid;grid-template-columns:280px minmax(300px,1fr) 316px;grid-template-rows:68px 1fr}
.topbar{grid-column:1/4;display:flex;align-items:center;justify-content:space-between;background:#0b1723;border-bottom:1px solid #203548;padding:0 20px;gap:20px;z-index:1100}
.brand{display:flex;align-items:center;gap:11px;white-space:nowrap;min-width:242px}.brand-icon{display:grid;place-items:center;width:40px;height:40px;color:#a9e69a;background:#183a36;border-radius:10px}.brand-icon svg{width:29px;height:29px}.brand strong{font-size:18px;letter-spacing:1.2px;color:#f7fafc}.brand strong span{color:#9dd38e}.brand small{font-size:9px;color:#7890a0;letter-spacing:2.2px;display:block;margin-top:3px;font-weight:650}
.topsearch{display:flex;align-items:center;border:1px solid #33485a;border-radius:8px;background:#162736;max-width:480px;flex:1;overflow:hidden;height:37px}.topsearch input{border:0;background:transparent;flex:1;min-width:50px;padding:9px 13px;color:#e0eff8;outline:0}.topsearch button{border:0;color:#cfe5de;background:#264940;height:100%;padding:0 17px}.top-actions{display:flex;align-items:center;gap:9px}.pill{font-size:9px;letter-spacing:.7px;font-weight:750;color:#92a8b5;border:1px solid #263c4d;border-radius:20px;padding:8px 10px;white-space:nowrap}.dot{display:inline-block;width:7px;height:7px;background:#7e8991;border-radius:50%;margin-right:4px}.pill.live .dot{background:#90d69c}.pill.demo .dot{background:#eabb76}
.left,.right{background:#0e1d2b;overflow:auto;min-width:0}.left{border-right:1px solid #233447}.right{border-left:1px solid #233447}.panel-scroll::-webkit-scrollbar{width:5px}.panel-scroll::-webkit-scrollbar-thumb{background:#314c5c;border-radius:4px}
.panel-section{padding:18px 18px 20px;border-bottom:1px solid #223646}.section-kicker{font-size:9px;letter-spacing:2px;font-weight:850;color:#87a8b2;margin-bottom:15px}.field-row{margin:12px 0}.field-row label,.field-label{color:#a5b7c5;display:block;font-size:11px;font-weight:600;margin-bottom:7px}.field-row>label{display:flex;justify-content:space-between}.field-row label output{color:#b6dbc9}
input:not([type=checkbox]):not([type=range]),select{width:100%;height:35px;background:#192d3d;border:1px solid #345064;border-radius:5px;color:#e7f0f6;outline:none;padding:0 10px}input:focus,select:focus{border-color:#8cc59d!important}select{appearance:auto}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:11px}.two-cols>div{min-width:0}.two-cols input{min-width:0}
.small{border-radius:6px;font-weight:700;font-size:11px;padding:10px 12px;border:1px solid transparent;white-space:nowrap}.large{border-radius:6px;font-weight:780;font-size:12px;letter-spacing:.2px;padding:13px 14px;border:1px solid transparent}.block{display:block;width:100%}.primary{background:#a1d38d;color:#0d261c}.primary:hover{background:#b1ec9b}.outline{color:#c8d7e1;background:#142637;border-color:#3b5669}.outline:hover,.ghost:hover{background:#264457}.ghost{color:#bbd6de;background:transparent;border-color:#355161}.actions-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tool-set{display:grid;gap:8px}.tool-button{border:1px solid #354e60;background:#162b39;padding:10px 9px;display:flex;align-items:center;gap:9px;color:#e5f0f4;text-align:left;border-radius:6px;width:100%}.tool-button:hover,.tool-button.active{border-color:#98d091;background:#1c3b3a}.tool-icon{font-size:22px;color:#a2d599;min-width:27px;text-align:center}.tool-button>span:nth-child(2){flex:1}.tool-button strong{display:block;font-size:12px}.tool-button small{color:#83a0ac;font-size:10px;display:block;margin-top:3px}.tool-button>span:last-child{color:#89aaa9}.field-stats-mini{border:1px solid #2e4655;display:flex;justify-content:space-between;border-radius:6px;padding:12px;margin-top:11px;align-items:center}.field-stats-mini span{font-size:9px;color:#779da7;font-weight:800;letter-spacing:1px}.field-stats-mini strong{color:#d4ebdb}.hint,.tiny-hint{color:#8ba5b4;line-height:1.5;font-size:10px;margin:7px 0}.disclaimer{font-size:10px;line-height:1.5;color:#b2a184;border-left:2px solid #7d6650;padding-left:8px;margin-top:12px}.upload-holder{margin-top:12px;padding:10px;border:1px dashed #435c63;border-radius:6px}.upload-holder small{display:block;font-size:10px;color:#93acba;margin-top:8px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;border:1px solid #314958;border-radius:6px;padding:3px;background:#112330}.segmented button{font-size:10px;padding:9px 4px;background:transparent;border:0;color:#90a5b4;border-radius:4px}.segmented button.active{background:#315448;color:#c3ecbe;font-weight:750}.checks{display:grid;grid-template-columns:1fr 1fr;gap:11px 4px;margin-top:15px}.checks label{font-size:10px;color:#a4bbc8;display:flex;align-items:center;gap:6px}.checks input{accent-color:#a3d793}details{border-top:1px solid #2d4150;margin-top:12px;padding-top:11px}summary{cursor:pointer;color:#b3c6d0;font-weight:600;font-size:11px}input[type=range]{width:100%;accent-color:#a6d898}#resetRender{margin-top:6px}
.map-wrapper{position:relative;min-width:0;overflow:hidden;background:#233b3c}#map{position:absolute;inset:0}.map-tools{position:absolute;z-index:750;top:15px;left:16px;display:flex;gap:5px;flex-wrap:wrap;max-width:calc(100% - 40px)}.map-tools button{background:#112434e8;color:#dbe9f2;padding:10px 13px;font-weight:700;border:1px solid #557080;border-radius:6px;box-shadow:0 3px 10px #0002;font-size:11px}.map-tools button:hover,.map-tools button.selected{background:#365b54;color:#dcffda}.map-tools button span{font-size:15px;margin-right:4px}.map-note{position:absolute;bottom:22px;left:20px;z-index:750;background:#102333ed;color:#ccdfeb;border:1px solid #395666;border-radius:6px;padding:11px 14px;font-size:11px;max-width:70%;box-shadow:0 2px 8px #0004}.note-dot{display:inline-block;background:#8bd195;width:8px;height:8px;border-radius:50%;margin-right:6px}.map-legend{position:absolute;bottom:22px;right:22px;z-index:750;width:170px;background:#102333ef;border:1px solid #395666;border-radius:6px;padding:10px 13px}.map-legend>span{font-weight:800;color:#c2d4d9;font-size:10px;letter-spacing:1px}.legend-bar{height:12px;margin-top:7px;background:linear-gradient(90deg,#30609d,#3aa4b3,#77b170,#e1d572,#cd8e4e,#945642);border-radius:3px}.legend-numbers{display:flex;justify-content:space-between;font-size:10px;color:#c2d2de;margin-top:5px}.draw-toast{position:absolute;top:70px;left:50%;transform:translateX(-50%);z-index:800;display:flex;gap:9px;align-items:center;background:#102a34;border:1px solid #8abb94;border-radius:7px;padding:10px;box-shadow:0 7px 20px #0005;white-space:nowrap}.draw-toast button{background:#233e48;border:1px solid #6a8a90;color:#e0e9e8;border-radius:4px;padding:6px 11px}.draw-toast button#completeDraw{background:#a4d997;color:#122719;font-weight:700}.draw-toast strong{font-size:11px}.draw-toast span{font-size:11px;color:#a9bfc9}.coords{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);z-index:700;color:#e3f0f7;background:#1b2f3abf;font-size:10px;padding:2px 9px;border-radius:3px;pointer-events:none}
.leaflet-control-attribution{font-size:9px!important}.leaflet-tooltip{color:#1d3037}
.row-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.row-title h2{font-size:16px;font-weight:700;color:#e9f1f4;margin:0}.sub-tag{font-size:9px;background:#243d44;color:#b1d3ba;padding:6px 8px;border-radius:4px;font-weight:750}.design-modes{grid-template-columns:1fr 1fr}.input-affix{display:flex;align-items:center;background:#192d3d;border:1px solid #345064;border-radius:5px;overflow:hidden}.input-affix input{border:0!important;background:transparent!important}.input-affix span{padding:0 11px;color:#a4c6be;font-weight:750}.metrics{padding-top:20px}.metric-hero{background:linear-gradient(135deg,#26493f,#1c3441);border:1px solid #437264;border-radius:7px;padding:15px;margin:0 0 12px}.metric-hero span,.metric span{display:block;font-size:9px;font-weight:800;letter-spacing:1.4px;color:#8fb6b0}.metric-hero strong{font-size:28px;letter-spacing:.2px;color:#f1fcf3;display:block;margin:8px 0}.metric-hero small,.metric small{font-size:10px;color:#91b2b2}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.metric{background:#172b3a;border:1px solid #304758;border-radius:6px;padding:12px;min-width:0}.metric strong{font-size:21px;font-weight:750;display:block;color:#f0f5f5;margin:8px 0 3px}.strip{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:10px;color:#91acbb;padding:15px 2px}.strip strong{color:#cde4df}.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.export-grid button{white-space:normal;text-align:left}.rtk-readout{text-align:center;border:1px solid #345364;border-radius:7px;padding:17px 10px;background:#142835;margin-top:13px}.rtk-readout small{display:block;color:#96b3c4;font-size:10px;letter-spacing:.4px}.rtk-readout strong{display:block;font-size:31px;color:#f1f7f8;margin:11px 0 5px;font-variant-numeric:tabular-nums}.rtk-readout>span{display:block;color:#a8bac5;margin-bottom:8px;font-weight:800}.rtk-readout.cut{border-color:#bc7756}.rtk-readout.cut strong{color:#ffad85}.rtk-readout.fill{border-color:#568ab7}.rtk-readout.fill strong{color:#8abdf5}.rtk-readout.grade{border-color:#90ca94}.rtk-readout.grade strong{color:#a5f1a3}.manual-position{border:0}.profile-panel{position:fixed;z-index:1200;bottom:20px;left:calc(280px + 30px);width:min(750px,calc(100vw - 670px));background:#122737;border:1px solid #48716b;box-shadow:0 10px 40px #0008;border-radius:9px;padding:15px}.profile-head{display:flex;align-items:center;justify-content:space-between}.profile-head strong{font-size:15px}.profile-head span{color:#9bb6bf}.profile-head button,.modal-head button{color:#c3d7e2;background:transparent;border:0;font-size:23px}#profileChart{max-width:100%;height:auto;margin-top:10px}.profile-legend{display:flex;gap:18px;color:#a6beca;font-size:10px}.profile-legend span:before{content:'';display:inline-block;width:18px;height:3px;margin-right:7px;vertical-align:middle;background:#79d8a0}.profile-legend .line-design:before{background:#eec58f}
.modal-backdrop{position:fixed;inset:0;z-index:2000;background:#04101bc9;display:grid;place-items:center;padding:15px}.modal{background:#142736;border:1px solid #3d5965;border-radius:10px;max-width:540px;width:100%;max-height:80vh;overflow:auto;box-shadow:0 25px 70px #0009;padding:23px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-head h2{margin:0}.project-item{display:flex;gap:12px;justify-content:space-between;align-items:center;border-bottom:1px solid #2c4653;padding:13px 0}.project-item small{display:block;color:#9ab4c2;font-size:10px;margin-top:5px}.project-item strong{color:#e2f2f2}.project-item .small{padding:8px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:2500;background:#25463e;color:#eff9ed;border:1px solid #83bf91;padding:14px 20px;border-radius:6px;box-shadow:0 10px 40px #0007;font-weight:650;max-width:90vw;line-height:1.4}.toast.error{background:#58332d;border-color:#c98778}.leaflet-container{font-family:inherit}
[hidden]{display:none!important}
@media(max-width:1150px){#app{grid-template-columns:260px minmax(280px,1fr) 285px}.brand{min-width:215px}.topbar{gap:10px}.top-actions .pill{display:none}.profile-panel{left:280px;width:calc(100vw - 600px)}}
@media(max-width:850px){#app{height:auto;min-height:100dvh;display:flex;flex-wrap:wrap;overflow:auto}html,body{height:auto;overflow:auto}.topbar{height:auto;min-height:68px;flex-wrap:wrap;width:100%;padding:10px 12px}.brand{min-width:175px}.topsearch{order:3;flex-basis:100%;max-width:none}.top-actions{margin-left:auto}.top-actions .small{padding:7px}.left,.right{width:50%;height:auto;max-height:none}.map-wrapper{width:100%;height:65vh;min-height:400px;order:1}.left{order:2}.right{order:3}.profile-panel{left:5vw;width:90vw;bottom:10px}}
@media(max-width:540px){.left,.right{width:100%}.brand strong{font-size:15px}.brand small{font-size:7px}.top-actions .small{font-size:9px}.map-wrapper{height:55vh}.map-tools{gap:3px}.map-tools button{padding:7px}.map-note{bottom:10px;left:10px;max-width:55%}.map-legend{right:10px;bottom:10px;width:120px}.draw-toast{top:60px;white-space:normal;width:95%;flex-wrap:wrap;justify-content:center}}

/* FieldGrade 1.01.17 — indeterminate operation progress, profile inspection, permanent survey pins. */
.operation-progress[hidden],.profile-hover-tooltip[hidden]{display:none!important}
.operation-progress{position:absolute;z-index:1100;top:67px;left:50%;transform:translateX(-50%);width:min(450px,calc(100% - 24px));padding:15px 18px;background:#112d3cf5;border:1px solid #7298a2;box-shadow:0 10px 35px #001a2690;border-radius:10px;color:#e8f5f3;display:grid;gap:10px;font-size:12px}
.operation-progress-head{display:flex;justify-content:space-between;align-items:center;gap:14px}.operation-progress-head strong{font-size:14px}.operation-progress-head small{color:#b1c9d2}
.operation-progress-track{overflow:hidden;height:9px;border-radius:10px;background:#2b4a54;border:1px solid #517882;position:relative}
.operation-progress-track span{display:block;width:38%;height:100%;border-radius:10px;background:linear-gradient(90deg,#6fa9d9,#91edca,#71d8d3);animation:fg-progress 1.3s ease-in-out infinite alternate}
@keyframes fg-progress{from{transform:translateX(-10%)}to{transform:translateX(185%)}}
@media(prefers-reduced-motion:reduce){.operation-progress-track span{animation:none;width:100%}}
.operation-progress button{justify-self:start}
.fg-selection-label{color:#e6f8f4;background:#123243ec;border:1px solid #649aa0;box-shadow:0 2px 7px #0006;font-size:10px;padding:3px 7px}
.profile-panel{max-height:min(80vh,760px);overflow-y:auto}
.profile-head-actions{display:flex;align-items:center;gap:12px}.profile-head-actions .small{font-size:10px;white-space:nowrap}
.profile-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:13px 0 10px}
.profile-stat{border:1px solid #355766;border-radius:6px;background:#1b3544;padding:8px;min-width:0}
.profile-stat span{display:block;font-size:9px;letter-spacing:.4px;color:#a4c5ce;line-height:1.3}
.profile-stat strong{display:block;font-size:13px;font-variant-numeric:tabular-nums;color:#f2f6ef;margin-top:4px;white-space:nowrap}
.profile-hint{font-size:10px;line-height:1.4;color:#b2cbd2;margin-top:8px;min-height:15px}
#profileChart{display:block;width:100%;cursor:crosshair;touch-action:pan-y}
.profile-hover-tooltip{position:fixed;z-index:100120;pointer-events:none;max-width:min(300px,calc(100vw - 24px));min-width:225px;padding:12px 13px;border:1px solid #83adb7;border-radius:8px;background:#0c2733f7;color:#e5f4f3;box-shadow:0 12px 35px #0009;font-size:11px}
.profile-hover-tooltip strong{font-size:13px;color:#c5f6dc}
.profile-hover-tooltip dl{display:grid;grid-template-columns:1fr auto;gap:5px 10px;margin:8px 0 0}.profile-hover-tooltip dt{color:#abc7d3}.profile-hover-tooltip dd{margin:0;font-variant-numeric:tabular-nums;text-align:right}
@media(max-width:700px){.profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-head{flex-wrap:wrap;gap:8px}.profile-panel{max-height:85vh;bottom:6px}}

.machine-selector{grid-template-columns:repeat(2,minmax(0,1fr))}.machine-selector button{min-height:36px}.machine-selector button:focus-visible{outline:2px solid #98d091;outline-offset:2px}
