body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);min-height:100vh;overflow:hidden}.app-shell{display:grid;grid-template-columns:220px 1fr;grid-template-rows:90px 1fr;grid-template-areas:"header header" "sidebar main";height:100vh;width:100vw}.app-header{grid-area:header;background:#1a1a2ef2;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between;padding:0 24px;z-index:100}.header-left{display:flex;align-items:center}.header-logo{height:72px}.header-right{display:flex;align-items:center;gap:16px}.user-name{color:#94a3b8;font-size:14px}.logout-btn{color:#94a3b8;text-decoration:none;font-size:14px;padding:8px 16px;border-radius:6px;transition:all .2s}.logout-btn:hover{background:#ffffff1a;color:#fff}.sidebar{grid-area:sidebar;background:#16213ecc;border-right:1px solid rgba(255,255,255,.1);padding:16px 0;overflow-y:auto}.nav-list{list-style:none}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 20px;color:#94a3b8;cursor:pointer;transition:all .2s;border-left:3px solid transparent}.nav-item:hover{background:#ffffff0d;color:#e2e8f0}.nav-item.active{background:#3b82f626;color:#3b82f6;border-left-color:#3b82f6}.nav-icon{width:20px;height:20px;flex-shrink:0}.nav-item span{font-size:14px;font-weight:500}.external-icon{width:14px;height:14px;margin-left:auto;opacity:.5}.nav-divider{height:1px;background:#ffffff1a;margin:16px 20px}.main-content{grid-area:main;overflow-y:auto;padding:24px;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460)}.screen{display:none;animation:fadeIn .3s ease}.screen.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.screen-header{margin-bottom:24px}.screen-header h1{color:#fff;font-size:28px;font-weight:600;margin-bottom:4px}.screen-subtitle{color:#94a3b8;font-size:14px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px}.stat-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center}.stat-icon svg{width:24px;height:24px}.stat-icon.drilling{background:#3b82f633;color:#3b82f6}.stat-icon.success{background:#22c55e33;color:#22c55e}.stat-icon.equipment{background:#a855f733;color:#a855f7}.stat-icon.warning{background:#f59e0b33;color:#f59e0b}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:24px;font-weight:700;color:#fff}.stat-label{font-size:13px;color:#94a3b8}.dashboard-grid{display:grid;grid-template-columns:1fr 350px;grid-template-rows:auto auto;gap:20px}.dashboard-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-header h3{color:#fff;font-size:16px;font-weight:600}.badge{background:#3b82f633;color:#3b82f6;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.map-card{grid-row:span 2}.dashboard-map{height:400px;background:#0000004d;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:14px}.activity-feed{display:flex;flex-direction:column;gap:12px}.activity-item{display:flex;align-items:flex-start;gap:12px}.activity-dot{width:10px;height:10px;border-radius:50%;margin-top:5px;flex-shrink:0}.activity-dot.success{background:#22c55e}.activity-dot.info{background:#3b82f6}.activity-dot.warning{background:#f59e0b}.activity-content{display:flex;flex-direction:column;gap:2px}.activity-title{color:#e2e8f0;font-size:13px}.activity-time{color:#64748b;font-size:11px}.quick-actions{display:flex;flex-direction:column;gap:10px}.action-btn{display:flex;align-items:center;gap:12px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:#3b82f6;padding:12px 16px;border-radius:8px;cursor:pointer;transition:all .2s;font-size:14px;font-weight:500}.action-btn:hover{background:#3b82f633;border-color:#3b82f6}.action-btn svg{width:18px;height:18px}#screen-route-planner{padding:0;margin:-24px;height:calc(100vh - 60px);width:calc(100% + 48px);overflow:hidden;position:relative}#screen-route-planner #map-container{width:100%;height:100%;position:relative;display:block}#screen-route-planner #map{width:100%;height:100%}#screen-route-planner #controls{position:absolute;top:20px;left:80px;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 10px #0000004d;z-index:1;width:320px}#screen-route-planner #controls h3{margin-bottom:10px;color:#333}#screen-route-planner #controls p{margin-bottom:15px;color:#666;font-size:14px;line-height:1.4}#screen-route-planner #controls #instructions{max-width:280px}#screen-route-planner #section-container{position:relative;width:100%;height:100%;padding:20px;background:#f5f5f5;overflow:auto;display:none;box-sizing:border-box}.metrics-bar{display:flex;gap:24px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px 24px;margin-bottom:24px}.metric{display:flex;flex-direction:column;align-items:center;gap:4px}.metric .metric-value{font-size:24px;font-weight:700;color:#fff}.metric .metric-label{font-size:12px;color:#94a3b8}.metric.success .metric-value{color:#22c55e}.metric.warning .metric-value{color:#f59e0b}.live-ops-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(480px,1fr));gap:20px}.job-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;transition:all .2s;display:flex;gap:16px}.job-card:hover{background:#ffffff14;border-color:#fff3}.job-card.delayed{border-color:#f59e0b80}.job-card-content{flex:1;min-width:0}.job-map{width:180px;height:180px;border-radius:8px;overflow:hidden;flex-shrink:0;background:#0000004d}.job-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.job-title h3{color:#fff;font-size:16px;font-weight:600;margin-bottom:4px}.job-client{color:#94a3b8;font-size:13px}.job-status{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.job-status.drilling{background:#3b82f633;color:#3b82f6}.job-status.reaming{background:#a855f733;color:#a855f7}.job-progress{margin-bottom:16px}.progress-bar{height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#22c55e);border-radius:4px;transition:width .3s ease}.progress-text{color:#94a3b8;font-size:12px}.job-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.job-metric{text-align:center}.job-metric .metric-label{display:block;color:#64748b;font-size:11px;margin-bottom:4px}.job-metric .metric-value{color:#fff;font-size:14px;font-weight:600}.job-metric.warning .metric-value{color:#f59e0b}.job-directional{display:flex;gap:16px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.directional-item{display:flex;flex-direction:column;gap:2px}.dir-label{color:#64748b;font-size:10px;text-transform:uppercase}.dir-value{color:#22c55e;font-size:14px;font-weight:600;font-family:Courier New,monospace}.string-builder-layout{display:grid;grid-template-columns:300px 1fr;gap:24px}.component-library{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.component-library h3{color:#fff;font-size:16px;margin-bottom:16px}.component-tabs{display:flex;gap:8px;margin-bottom:16px}.comp-tab{flex:1;padding:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#94a3b8;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.comp-tab:hover{background:#ffffff14}.comp-tab.active{background:#3b82f633;border-color:#3b82f6;color:#3b82f6}.component-list{display:flex;flex-direction:column;gap:10px}.component-item{display:flex;align-items:center;gap:14px;padding:12px 14px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:10px;cursor:grab;transition:all .2s}.component-item:hover{background:#ffffff14;border-color:#fff3;transform:translate(4px)}.component-item:active{cursor:grabbing}.comp-svg{width:40px;height:40px;flex-shrink:0}.comp-img{width:50px;height:50px;object-fit:contain;flex-shrink:0;border-radius:6px}.comp-details{display:flex;flex-direction:column;gap:2px}.comp-details .comp-name{color:#e2e8f0;font-size:13px;font-weight:600}.comp-details .comp-spec{color:#64748b;font-size:11px}.string-visualization{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:24px;display:flex;flex-direction:column}.string-visualization h3{color:#fff;font-size:16px;margin-bottom:20px}.string-diagram-container{background:linear-gradient(180deg,#0000004d,#00000026);border-radius:12px;padding:24px;margin-bottom:24px;overflow-x:auto}.string-diagram-scroll{display:flex;align-items:center;justify-content:space-between;gap:0;width:100%;padding:30px 40px;flex-direction:row}.string-part{display:flex;flex-direction:column;align-items:center;position:relative;flex-shrink:0}.part-visual{position:relative;display:flex;align-items:center}.part-img{height:110px;width:auto;max-width:240px;object-fit:contain;filter:drop-shadow(2px 2px 6px rgba(0,0,0,.4));transform:rotate(-90deg)}.part-img.tall{height:130px;max-width:360px}.part-img.extra-tall{height:140px;max-width:500px}.string-part.bit .part-img{height:45px;max-width:80px}.part-info{display:flex;flex-direction:column;align-items:center;margin-top:8px;text-align:center;position:absolute;bottom:-55px;left:50%;transform:translate(-50%);white-space:nowrap}.part-name{color:#e2e8f0;font-size:11px;font-weight:600;white-space:nowrap}.part-length{color:#3b82f6;font-size:12px;font-weight:700;margin-top:2px}.string-joint{flex:1;height:0;border-top:2px dashed rgba(150,150,150,.5);margin:0 10px;align-self:center}.string-diagram-container{padding-bottom:70px}.string-specs-panel{background:#0003;border-radius:12px;padding:20px}.string-specs-panel h4{color:#fff;font-size:14px;margin-bottom:16px}.specs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.spec-card{display:flex;align-items:center;gap:12px;padding:14px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:10px;transition:all .2s}.spec-card:hover{background:#ffffff0f;border-color:#ffffff26}.spec-card.highlight{background:#3b82f61a;border-color:#3b82f64d}.spec-icon{width:24px;height:24px;color:#3b82f6;flex-shrink:0}.spec-card.highlight .spec-icon{color:#22c55e}.spec-data{display:flex;flex-direction:column;gap:2px}.spec-data .spec-value{color:#fff;font-size:15px;font-weight:700}.spec-data .spec-label{color:#64748b;font-size:11px}.hydraulics-layout{display:grid;grid-template-columns:300px 1fr;gap:24px}.hydraulics-inputs{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.hydraulics-inputs h3{color:#fff;font-size:16px;margin-bottom:20px}.input-group{margin-bottom:16px}.input-group label{display:block;color:#94a3b8;font-size:13px;margin-bottom:6px}.input-group input{width:100%;padding:10px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#fff;font-size:14px}.input-group input:focus{outline:none;border-color:#3b82f6}.calculate-btn{width:100%;padding:12px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:8px}.calculate-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.hydraulics-results{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.hydraulics-results h3{color:#fff;font-size:16px;margin-bottom:20px}.results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:24px}.result-card{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:6px}.result-card.success{border-color:#22c55e80;background:#22c55e1a}.result-label{color:#64748b;font-size:12px}.result-value{color:#fff;font-size:18px;font-weight:600}.result-card.success .result-value{color:#22c55e}.hydraulics-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:16px}.hydro-tab{padding:12px 24px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#94a3b8;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.hydro-tab:hover{background:#ffffff1a;color:#fff}.hydro-tab.active{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#3b82f6;color:#fff}.hydro-tab-content{display:none}.hydro-tab-content.active{display:block}.hydraulics-grid{display:grid;grid-template-columns:380px 1fr;gap:24px}.hydro-inputs-column{display:flex;flex-direction:column;gap:16px}.hydro-input-panel{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.hydro-input-panel h4{color:#fff;font-size:15px;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.1)}.input-row{display:flex;gap:12px;margin-bottom:12px}.input-row:last-of-type{margin-bottom:0}.input-group{flex:1}.input-group.full-width{flex:none;width:100%}.input-group label{display:block;color:#94a3b8;font-size:12px;margin-bottom:6px}.input-with-unit{display:flex;align-items:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:6px;overflow:hidden}.input-with-unit input{flex:1;background:transparent;border:none;padding:10px 12px;color:#fff;font-size:14px;min-width:0}.input-with-unit input:focus{outline:none}.input-with-unit .unit{padding:10px 12px;background:#ffffff0d;color:#64748b;font-size:12px;border-left:1px solid rgba(255,255,255,.1)}.form-select{width:100%;padding:10px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#fff;font-size:14px;cursor:pointer}.form-select option{background:#1a1a2e}.calculate-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;margin-top:16px}.calculate-btn svg{flex-shrink:0}.hydro-results-column{display:flex;flex-direction:column;gap:16px}.hydro-results-panel{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.hydro-results-panel h4{color:#fff;font-size:15px;margin-bottom:16px}.hydro-results-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.hydro-results-grid.wide{grid-template-columns:repeat(3,1fr)}.hydro-result-card{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:16px;display:flex;align-items:center;gap:12px}.hydro-result-card.large{grid-column:span 3;padding:20px}.result-icon{width:40px;height:40px;border-radius:10px;background:#3b82f633;flex-shrink:0}.result-icon.pump{background:linear-gradient(135deg,#3b82f64d,#2563eb4d)}.result-icon.velocity{background:linear-gradient(135deg,#22c55e4d,#16a34a4d)}.result-icon.cleaning{background:linear-gradient(135deg,#8b5cf64d,#7c3aed4d)}.result-icon.ecd{background:linear-gradient(135deg,#f59e0b4d,#d977064d)}.result-icon.torque{background:linear-gradient(135deg,#ec48994d,#db27774d)}.result-icon.push{background:linear-gradient(135deg,#22c55e4d,#16a34a4d)}.result-icon.pull{background:linear-gradient(135deg,#ef44444d,#dc26264d)}.result-icon.rotate{background:linear-gradient(135deg,#3b82f64d,#2563eb4d)}.result-icon.pull-large{width:50px;height:50px;background:linear-gradient(135deg,#22c55e4d,#16a34a4d)}.result-data{flex:1;display:flex;flex-direction:column;gap:2px}.hydro-result-card .result-value{color:#fff;font-size:22px;font-weight:700}.hydro-result-card.large .result-value{font-size:32px}.hydro-result-card .result-label{color:#94a3b8;font-size:12px}.result-status{padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600}.result-status.ok{background:#22c55e33;color:#22c55e}.result-status.warning{background:#f59e0b33;color:#f59e0b}.result-status.critical{background:#ef444433;color:#ef4444}.hydro-chart-panel{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.hydro-chart-panel h4{color:#fff;font-size:15px;margin-bottom:16px}.pressure-chart{padding:10px 0}.pressure-bar-container{display:flex;height:50px;border-radius:8px;overflow:hidden;margin-bottom:16px}.pressure-bar{display:flex;flex-direction:column;justify-content:center;padding:0 12px;color:#fff;font-size:11px;position:relative;min-width:80px}.pressure-bar.bit{background:linear-gradient(135deg,#ef4444,#dc2626)}.pressure-bar.motor{background:linear-gradient(135deg,#3b82f6,#2563eb)}.pressure-bar.string{background:linear-gradient(135deg,#22c55e,#16a34a)}.pressure-bar.annulus{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.bar-label{font-weight:600;margin-bottom:2px}.bar-value{opacity:.9}.pressure-total{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#ffffff0d;border-radius:8px;color:#94a3b8;font-size:14px}.pressure-total strong{color:#fff;font-size:18px}.pressure-margin{color:#22c55e;font-size:13px}.velocity-chart,.td-chart,.pullback-chart{width:100%;height:auto}.safety-factors-panel{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.safety-factors-panel h4{color:#fff;font-size:15px;margin-bottom:16px}.safety-bars{display:flex;flex-direction:column;gap:16px}.safety-item{display:flex;align-items:center;gap:16px}.safety-label{width:160px;color:#94a3b8;font-size:13px;flex-shrink:0}.safety-bar-track{flex:1;height:12px;background:#ffffff1a;border-radius:6px;overflow:hidden}.safety-bar{height:100%;border-radius:6px;transition:width .5s ease}.safety-bar.safe{background:linear-gradient(90deg,#22c55e,#16a34a)}.safety-bar.warning{background:linear-gradient(90deg,#f59e0b,#d97706)}.safety-bar.danger{background:linear-gradient(90deg,#ef4444,#dc2626)}.safety-value{width:140px;color:#e2e8f0;font-size:13px;font-weight:500;text-align:right}.asset-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:24px}.status-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px;text-align:center}.status-count{display:block;font-size:32px;font-weight:700;color:#fff;margin-bottom:4px}.status-label{color:#94a3b8;font-size:13px}.status-card.deployed{border-left:4px solid #22c55e}.status-card.deployed .status-count{color:#22c55e}.status-card.available{border-left:4px solid #3b82f6}.status-card.available .status-count{color:#3b82f6}.status-card.ready{border-left:4px solid #f59e0b}.status-card.ready .status-count{color:#f59e0b}.status-card.inspection{border-left:4px solid #f97316}.status-card.inspection .status-count{color:#f97316}.status-card.repair{border-left:4px solid #ef4444}.status-card.repair .status-count{color:#ef4444}.asset-filters{display:flex;gap:12px;margin-bottom:20px}.filter-select{padding:10px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#fff;font-size:14px;cursor:pointer}.filter-select option{background:#1a1a2e;color:#fff}.search-input{flex:1;padding:10px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#fff;font-size:14px}.search-input::placeholder{color:#64748b}.asset-table-container{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden}.asset-table{width:100%;border-collapse:collapse}.asset-table th{text-align:left;padding:14px 16px;background:#ffffff08;color:#94a3b8;font-size:12px;font-weight:600;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.1)}.asset-table td{padding:14px 16px;color:#e2e8f0;font-size:14px;border-bottom:1px solid rgba(255,255,255,.05)}.asset-table tr:hover td{background:#ffffff08}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600}.status-badge.deployed{background:#22c55e33;color:#22c55e}.status-badge.available{background:#3b82f633;color:#3b82f6}.status-badge.inspection{background:#f9731633;color:#f97316}.status-badge.repair{background:#ef444433;color:#ef4444}.external-link-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:48px;text-align:center;max-width:500px}.external-link-icon{width:64px;height:64px;color:#3b82f6;margin-bottom:20px}.external-link-card h3{color:#fff;font-size:20px;margin-bottom:12px}.external-link-card p{color:#94a3b8;font-size:14px;margin-bottom:24px}.external-app-btn{display:inline-block;padding:12px 28px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;text-decoration:none;border-radius:8px;font-weight:600;transition:all .2s}.external-app-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.settings-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:24px;margin-bottom:20px;max-width:500px}.settings-card h3{color:#fff;font-size:16px;margin-bottom:20px}.setting-item{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.05)}.setting-item:last-child{border-bottom:none}.setting-item label{color:#e2e8f0;font-size:14px}.setting-item select{padding:8px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#fff;font-size:14px}.setting-item select option{background:#1a1a2e}.setting-item input[type=checkbox]{width:20px;height:20px;accent-color:#3b82f6}#screen-route-planner #route-info{background:#f5f5f5;padding:10px;border-radius:4px;margin-bottom:15px}#screen-route-planner #route-info p{margin:5px 0}#screen-route-planner #controls button{margin:5px 5px 5px 0;padding:10px 20px;background:#0080ff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}#screen-route-planner #controls button:hover:not(:disabled){background:#06c}#screen-route-planner #controls button:disabled{background:#ccc;cursor:not-allowed}#screen-route-planner #controls #reset-btn{background:#f44}#screen-route-planner #controls #reset-btn:hover{background:#c00}#screen-route-planner .mapboxgl-ctrl button{margin:0;padding:0;background:#fff;color:#333;border:none;border-radius:0}#screen-route-planner .mapboxgl-ctrl-group button{background:#fff;width:29px;height:29px}#screen-route-planner .mapboxgl-ctrl-group button:hover{background:#f0f0f0}#screen-route-planner #section-controls{background:#fff;padding:12px 16px;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:16px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}#screen-route-planner #section-info{margin-left:auto;display:flex;gap:16px;flex-wrap:wrap}#screen-route-planner #section-info p{margin:0;font-size:13px;color:#666}#screen-route-planner #section-controls button{padding:8px 14px;font-size:13px}#screen-route-planner #view-map-btn{background:#666}#screen-route-planner #view-map-btn:hover{background:#444}#screen-route-planner #export-btn{background:#22c55e}#screen-route-planner #export-btn:hover{background:#16a34a}#screen-route-planner #hdd-controls{background:#fff;padding:12px 16px;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:16px}#screen-route-planner #hdd-controls h4{margin:0 0 10px;color:#333;font-size:14px}#screen-route-planner .hdd-params-grid{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}#screen-route-planner .param-group{display:flex;flex-direction:column;gap:3px}#screen-route-planner .param-group label{font-size:11px;color:#666;font-weight:500}#screen-route-planner .param-group input,#screen-route-planner .param-group select{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px;width:100px;background:#fff;color:#333}#screen-route-planner .param-hint{font-size:9px;color:#999;margin-top:1px}#screen-route-planner #views-container{display:flex;gap:20px;flex-wrap:wrap;max-height:calc(100% - 200px)}#screen-route-planner #plan-view-wrapper,#screen-route-planner #section-view-wrapper{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:20px}#screen-route-planner #plan-view-wrapper{flex:0 0 350px;min-height:350px;max-height:400px}#screen-route-planner #section-view-wrapper{flex:1;min-width:500px;min-height:350px}#screen-route-planner #plan-view-wrapper h4,#screen-route-planner #section-view-wrapper h4{margin:0 0 15px;color:#333;font-size:16px}#screen-route-planner #plan-view{width:100%;height:300px;border-radius:4px;overflow:hidden}#screen-route-planner #section-view{min-height:300px}#screen-route-planner .unit-toggle-btn{background:#f0f0f0;color:#333;padding:6px 12px;font-size:12px;font-weight:600;border:1px solid #ddd;margin:0}#screen-route-planner .unit-toggle-btn:hover{background:#e0e0e0}#screen-route-planner .unit-toggle-btn.imperial{background:#3b82f6;color:#fff;border-color:#3b82f6}@media(max-width:1200px){.dashboard-grid{grid-template-columns:1fr}.map-card{grid-row:auto}.string-builder-layout,.hydraulics-layout{grid-template-columns:1fr}}.crew-stats-bar{display:flex;gap:20px;margin-bottom:24px;flex-wrap:wrap}.crew-stat{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:16px 24px;display:flex;flex-direction:column;align-items:center;min-width:120px}.crew-stat .stat-number{font-size:28px;font-weight:700;color:#3b82f6}.crew-stat .stat-label{font-size:12px;color:#94a3b8;margin-top:4px}.crew-stat.warning .stat-number{color:#f59e0b}.gantt-container{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px;margin-bottom:20px}.gantt-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.gantt-header h3{color:#fff;font-size:18px;margin:0}.gantt-controls{display:flex;gap:10px;align-items:center}.gantt-nav-btn,.gantt-today-btn{padding:8px 16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:13px;cursor:pointer;transition:background .2s}.gantt-nav-btn:hover,.gantt-today-btn:hover{background:#fff3}.gantt-today-btn{background:#3b82f6;border-color:#3b82f6}.gantt-today-btn:hover{background:#2563eb}.gantt-view-select{padding:8px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:13px;cursor:pointer}.gantt-view-select option{background:#1a1a2e}.gantt-chart{position:relative;overflow-x:auto}.gantt-timeline{display:flex;border-bottom:2px solid rgba(255,255,255,.2);margin-bottom:0}.gantt-rig-label-header{width:180px;min-width:180px;padding:10px 15px;color:#94a3b8;font-size:12px;font-weight:600;text-transform:uppercase}.gantt-dates{display:flex;flex:1}.gantt-week{flex:1;min-width:140px;border-left:1px solid rgba(255,255,255,.1);padding:8px}.gantt-week.current-week{background:#3b82f61a}.week-label{color:#e2e8f0;font-size:12px;font-weight:600;margin-bottom:6px}.gantt-days{display:flex;justify-content:space-between}.gantt-days span{color:#64748b;font-size:10px;width:14px;text-align:center}.gantt-days span.today{color:#3b82f6;font-weight:700;background:#3b82f64d;border-radius:50%;width:18px;height:18px;line-height:18px;margin:-2px}.gantt-row{display:flex;border-bottom:1px solid rgba(255,255,255,.08)}.gantt-row:hover{background:#ffffff05}.gantt-rig-label{width:180px;min-width:180px;padding:12px 15px;display:flex;flex-direction:column;gap:4px;border-right:1px solid rgba(255,255,255,.1)}.rig-name{color:#fff;font-size:14px;font-weight:600}.rig-status{font-size:10px;font-weight:600;padding:2px 8px;border-radius:10px;width:fit-content;text-transform:uppercase}.rig-status.drilling{background:#22c55e33;color:#22c55e}.rig-status.reaming{background:#3b82f633;color:#3b82f6}.rig-status.standby{background:#f59e0b33;color:#f59e0b}.gantt-bars{flex:1;padding:8px 0;display:flex;flex-direction:column;gap:6px}.gantt-crew-row{display:flex;align-items:center;height:28px}.crew-role{width:60px;min-width:60px;font-size:11px;color:#94a3b8;padding-left:10px}.gantt-bar-track{flex:1;height:24px;position:relative;margin-right:10px}.gantt-bar{position:absolute;height:100%;border-radius:4px;display:flex;align-items:center;padding:0 10px;font-size:11px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:opacity .2s,transform .2s}.gantt-bar:hover{opacity:.9;transform:scaleY(1.1);z-index:10}.gantt-bar.driller{background:linear-gradient(90deg,#22c55e,#16a34a)}.gantt-bar.locator{background:linear-gradient(90deg,#3b82f6,#2563eb)}.gantt-bar.helper{background:linear-gradient(90deg,#8b5cf6,#7c3aed)}.gantt-bar.standby-bar{background:repeating-linear-gradient(45deg,#ffffff1a,#ffffff1a 5px,#ffffff0d 5px 10px);border:1px dashed rgba(255,255,255,.3);color:#94a3b8}.crew-name{overflow:hidden;text-overflow:ellipsis}.crew-change-marker{position:absolute;width:3px;height:32px;background:#ef4444;top:-4px;transform:translate(-50%);z-index:5;cursor:pointer}.crew-change-marker:before{content:"";position:absolute;top:-4px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid #ef4444}.crew-change-marker:hover:after{content:attr(title);position:absolute;top:-30px;left:50%;transform:translate(-50%);background:#1e293b;color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;white-space:nowrap;z-index:20}.gantt-today-line{position:absolute;top:0;bottom:0;width:2px;background:#ef4444;z-index:15;pointer-events:none}.gantt-today-line:before{content:"TODAY";position:absolute;top:5px;left:5px;font-size:9px;font-weight:700;color:#ef4444;background:#ef444433;padding:2px 6px;border-radius:3px}.gantt-legend{display:flex;gap:24px;padding:16px 20px;background:#ffffff08;border-radius:8px}.legend-item{display:flex;align-items:center;gap:8px;color:#94a3b8;font-size:13px}.legend-color{width:16px;height:16px;border-radius:3px}.legend-color.driller{background:linear-gradient(90deg,#22c55e,#16a34a)}.legend-color.locator{background:linear-gradient(90deg,#3b82f6,#2563eb)}.legend-color.helper{background:linear-gradient(90deg,#8b5cf6,#7c3aed)}.legend-marker{width:3px;height:16px;background:#ef4444;position:relative}.legend-marker:before{content:"";position:absolute;top:-3px;left:50%;transform:translate(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #ef4444}.business-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:16px}.biz-tab{padding:12px 24px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#94a3b8;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.biz-tab:hover{background:#ffffff1a;color:#fff}.biz-tab.active{background:linear-gradient(135deg,#22c55e,#16a34a);border-color:#22c55e;color:#fff}.biz-tab-content{display:none}.biz-tab-content.active{display:block}.pipeline-stats{display:flex;gap:20px;margin-bottom:24px}.pipeline-stat{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px 30px;display:flex;flex-direction:column;align-items:center}.pipeline-stat .stat-value{font-size:28px;font-weight:700;color:#22c55e}.pipeline-stat .stat-label{font-size:13px;color:#94a3b8;margin-top:4px}.pipeline-kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kanban-column{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden}.kanban-header{padding:16px;border-bottom:1px solid rgba(255,255,255,.08)}.kanban-header.prospect{border-top:3px solid #94a3b8}.kanban-header.proposal{border-top:3px solid #3b82f6}.kanban-header.negotiation{border-top:3px solid #f59e0b}.kanban-header.awarded{border-top:3px solid #22c55e}.column-title{display:block;color:#fff;font-size:14px;font-weight:600;margin-bottom:4px}.column-value{display:block;color:#22c55e;font-size:20px;font-weight:700}.column-count{display:block;color:#64748b;font-size:12px;margin-top:2px}.kanban-cards{padding:12px;display:flex;flex-direction:column;gap:10px;max-height:400px;overflow-y:auto}.pipeline-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:14px;cursor:pointer;transition:all .2s}.pipeline-card:hover{background:#ffffff14;transform:translateY(-2px)}.pipeline-card.won{border-left:3px solid #22c55e}.card-client{color:#94a3b8;font-size:11px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.card-project{color:#fff;font-size:14px;font-weight:600;margin-bottom:8px}.card-value{color:#22c55e;font-size:16px;font-weight:700;margin-bottom:8px}.card-meta{display:flex;justify-content:space-between;font-size:11px;color:#64748b}.card-status{display:inline-block;padding:3px 8px;border-radius:10px;font-size:10px;font-weight:600;margin-top:8px}.card-status.hot{background:#ef444433;color:#ef4444}.card-status.active{background:#22c55e33;color:#22c55e}.card-status.scheduled{background:#3b82f633;color:#3b82f6}.financial-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.kpi-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.kpi-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.kpi-title{color:#94a3b8;font-size:13px}.kpi-trend{font-size:12px;font-weight:600;padding:2px 8px;border-radius:10px}.kpi-trend.up{background:#22c55e33;color:#22c55e}.kpi-trend.down{background:#3b82f633;color:#3b82f6}.kpi-trend.neutral{background:#94a3b833;color:#94a3b8}.kpi-value{color:#fff;font-size:28px;font-weight:700;margin-bottom:8px}.kpi-target,.kpi-subtitle{color:#64748b;font-size:12px;margin-bottom:10px}.kpi-progress{height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.kpi-progress .progress-bar{height:100%;background:linear-gradient(90deg,#3b82f6,#22c55e);border-radius:3px}.kpi-progress .progress-bar.exceeded{background:linear-gradient(90deg,#22c55e,#16a34a)}.financials-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-bottom:24px}.chart-panel,.invoice-panel{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.chart-panel h4,.invoice-panel h4{color:#fff;font-size:15px;margin-bottom:16px}.revenue-chart{width:100%;height:auto}.invoice-summary{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.invoice-row{display:flex;align-items:center;gap:12px}.invoice-status{width:12px;height:12px;border-radius:50%}.invoice-status.current{background:#22c55e}.invoice-status.due{background:#f59e0b}.invoice-status.overdue{background:#f97316}.invoice-status.critical{background:#ef4444}.invoice-label{flex:1;color:#94a3b8;font-size:13px}.invoice-amount{color:#fff;font-size:14px;font-weight:600}.invoice-actions{display:flex;gap:10px}.invoice-btn{flex:1;padding:10px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.invoice-btn:not(.secondary){background:#3b82f6;border:none;color:#fff}.invoice-btn.secondary{background:transparent;border:1px solid rgba(255,255,255,.2);color:#94a3b8}.invoice-btn:hover{transform:translateY(-1px)}.profitability-panel{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.profitability-panel h4{color:#fff;font-size:15px;margin-bottom:16px}.profitability-table{width:100%;border-collapse:collapse}.profitability-table th{text-align:left;padding:12px 16px;color:#94a3b8;font-size:12px;font-weight:600;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.1)}.profitability-table td{padding:14px 16px;color:#e2e8f0;font-size:14px;border-bottom:1px solid rgba(255,255,255,.05)}.profitability-table tr:hover{background:#ffffff08}.margin{font-weight:600}.margin.positive{color:#22c55e}.margin.negative{color:#ef4444}.margin.neutral{color:#94a3b8}.job-status{display:inline-block;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600}.job-status.active{background:#22c55e33;color:#22c55e}.job-status.mobilizing{background:#3b82f633;color:#3b82f6}.job-status.complete{background:#8b5cf633;color:#8b5cf6}.job-status.standby{background:#f59e0b33;color:#f59e0b}.closeout-summary{display:flex;gap:20px;margin-bottom:24px}.closeout-stat{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px 30px;display:flex;flex-direction:column;align-items:center}.closeout-stat .stat-value{font-size:28px;font-weight:700;color:#f59e0b}.closeout-stat .stat-label{font-size:13px;color:#94a3b8;margin-top:4px}.closeout-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.closeout-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.closeout-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.closeout-job h4{color:#fff;font-size:16px;margin:0 0 4px}.closeout-client{color:#64748b;font-size:13px}.closeout-value{color:#22c55e;font-size:20px;font-weight:700}.closeout-progress{display:flex;align-items:center;gap:12px;margin-bottom:16px}.progress-label{color:#94a3b8;font-size:12px;width:110px}.progress-track{flex:1;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#22c55e);border-radius:4px;transition:width .5s ease}.progress-percent{color:#fff;font-size:14px;font-weight:600;width:40px;text-align:right}.closeout-checklist{display:flex;flex-direction:column;gap:10px}.checklist-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#ffffff08;border-radius:6px}.checklist-item svg{width:18px;height:18px;flex-shrink:0}.checklist-item.done svg{color:#22c55e}.checklist-item.pending svg{color:#64748b}.checklist-item span{color:#e2e8f0;font-size:13px}.checklist-item.done span{color:#94a3b8}.checklist-item .due-date{margin-left:auto;color:#f59e0b;font-size:11px;font-weight:500}.checklist-item .due-date.overdue{color:#ef4444}@media(max-width:900px){.app-shell{grid-template-columns:60px 1fr}.sidebar .nav-item span,.sidebar .external-icon{display:none}.nav-item{justify-content:center;padding:12px}.live-ops-grid{grid-template-columns:1fr}}.rm-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:16px}.rm-tab{padding:12px 24px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#94a3b8;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.rm-tab:hover{background:#ffffff1a;color:#fff}.rm-tab.active{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:#f59e0b;color:#fff}.rm-tab-content{display:none}.rm-tab-content.active{display:block}.rm-metrics-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-bottom:24px}.rm-metric-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px;text-align:center;transition:all .2s}.rm-metric-card:hover{background:#ffffff14;transform:translateY(-2px)}.rm-metric-value{font-size:32px;font-weight:700;color:#fff;margin-bottom:6px}.rm-metric-label{color:#94a3b8;font-size:13px}.rm-metric-card.deployed{border-top:3px solid #22c55e}.rm-metric-card.deployed .rm-metric-value{color:#22c55e}.rm-metric-card.inspection{border-top:3px solid #3b82f6}.rm-metric-card.inspection .rm-metric-value{color:#3b82f6}.rm-metric-card.awaiting{border-top:3px solid #f97316}.rm-metric-card.awaiting .rm-metric-value{color:#f97316}.rm-metric-card.repair{border-top:3px solid #ef4444}.rm-metric-card.repair .rm-metric-value{color:#ef4444}.rm-metric-card.qc{border-top:3px solid #8b5cf6}.rm-metric-card.qc .rm-metric-value{color:#8b5cf6}.rm-metric-card.ready{border-top:3px solid #22c55e}.rm-metric-card.ready .rm-metric-value{color:#22c55e}.rm-metric-card.waiting{border-top:3px solid #f97316}.rm-metric-card.waiting .rm-metric-value{color:#f97316}.rm-metric-card .metric-icon{width:48px;height:48px;border-radius:10px;background:#ffffff1a;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.rm-metric-card .metric-icon svg{width:24px;height:24px;color:#94a3b8}.rm-metric-card.deployed .metric-icon{background:#22c55e33}.rm-metric-card.deployed .metric-icon svg{color:#22c55e}.rm-metric-card.inspection .metric-icon{background:#3b82f633}.rm-metric-card.inspection .metric-icon svg{color:#3b82f6}.rm-metric-card.waiting .metric-icon{background:#f9731633}.rm-metric-card.waiting .metric-icon svg{color:#f97316}.rm-metric-card.repair .metric-icon{background:#ef444433}.rm-metric-card.repair .metric-icon svg{color:#ef4444}.rm-metric-card.qc .metric-icon{background:#8b5cf633}.rm-metric-card.qc .metric-icon svg{color:#8b5cf6}.rm-metric-card.ready .metric-icon{background:#22c55e33}.rm-metric-card.ready .metric-icon svg{color:#22c55e}.rm-metric-card .metric-data{display:flex;flex-direction:column;align-items:center;gap:4px}.rm-metric-card .metric-value{font-size:32px;font-weight:700;color:#fff}.rm-metric-card .metric-label{color:#94a3b8;font-size:13px}.rm-metric-card .metric-trend{font-size:11px;margin-top:8px;padding:4px 10px;border-radius:10px}.rm-metric-card .metric-trend.up{background:#22c55e33;color:#22c55e}.rm-metric-card .metric-trend.down{background:#3b82f633;color:#3b82f6}.rm-metric-card .metric-trend.neutral{background:#94a3b833;color:#94a3b8}.rm-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.rm-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.rm-panel{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.rm-panel h4{color:#fff;font-size:15px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1)}.cycle-time-chart,.cycle-chart{display:flex;flex-direction:column;gap:12px}.cycle-row,.cycle-stage{display:flex;align-items:center;gap:12px}.cycle-label,.stage-label{width:120px;color:#94a3b8;font-size:13px;flex-shrink:0}.cycle-stage{flex-direction:row-reverse;justify-content:flex-end}.cycle-stage .stage-label{width:auto;min-width:100px}.cycle-bar-track{flex:1;height:24px;background:#ffffff1a;border-radius:4px;overflow:hidden}.cycle-bar,.stage-bar{height:28px;border-radius:4px;display:flex;align-items:center;padding:0 10px;font-size:11px;color:#fff;font-weight:500;background:linear-gradient(90deg,#64748b,#475569);min-width:50px}.stage-bar .stage-time{color:#fff;font-weight:600}.cycle-bar.inspection,.stage-bar.inspection{background:linear-gradient(90deg,#3b82f6,#2563eb)}.cycle-bar.parts,.stage-bar.waiting{background:linear-gradient(90deg,#f97316,#ea580c)}.cycle-bar.repair,.stage-bar.repair{background:linear-gradient(90deg,#ef4444,#dc2626)}.cycle-bar.qc,.stage-bar.qc{background:linear-gradient(90deg,#8b5cf6,#7c3aed)}.cycle-bar.target{background:linear-gradient(90deg,#22c55e,#16a34a)}.cycle-value{width:60px;color:#fff;font-size:14px;font-weight:600;text-align:right}.cycle-total{display:flex;align-items:center;gap:12px;margin-top:16px;padding:12px 16px;background:#ffffff0d;border-radius:8px;color:#94a3b8;font-size:14px}.cycle-total strong{color:#fff;font-size:18px}.cycle-total .cycle-trend{margin-left:auto;font-size:12px}.cycle-total .cycle-trend.down{color:#22c55e}.cycle-total .cycle-trend.up{color:#ef4444}.critical-items-list,.critical-list{display:flex;flex-direction:column;gap:10px}.critical-item{display:flex;align-items:center;gap:12px;padding:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;transition:all .2s}.critical-item:hover{background:#ffffff0f}.critical-item.urgent{border-left:3px solid #ef4444}.critical-item.high{border-left:3px solid #f59e0b}.critical-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.critical-icon svg{width:18px;height:18px}.critical-icon.motor{background:#ef444433;color:#ef4444}.critical-icon.mwd{background:#3b82f633;color:#3b82f6}.critical-icon.reamer{background:#f59e0b33;color:#f59e0b}.critical-info{display:flex;flex-direction:column;gap:2px;flex:1}.critical-name{color:#fff;font-size:14px;font-weight:500}.critical-id{color:#3b82f6;font-size:12px;font-weight:500}.critical-status{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.critical-status .status-badge{padding:4px 10px;border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase}.critical-status .status-badge.urgent{background:#ef444433;color:#ef4444}.critical-status .status-badge.waiting{background:#f9731633;color:#f97316}.critical-status .status-badge.repair{background:#ef444433;color:#ef4444}.critical-status .status-badge.inspection{background:#3b82f633;color:#3b82f6}.critical-job{color:#94a3b8;font-size:12px;margin-top:4px}.critical-days{color:#ef4444;font-size:14px;font-weight:600}.critical-stage{padding:3px 8px;border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase}.critical-stage.parts{background:#f9731633;color:#f97316}.critical-stage.repair{background:#ef444433;color:#ef4444}.parts-alerts-list,.parts-alerts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.parts-alert{display:flex;flex-direction:column;gap:10px;padding:16px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:10px;transition:all .2s}.parts-alert:hover{background:#ffffff0f}.parts-alert.critical{border-left:3px solid #ef4444}.parts-alert.low{border-left:3px solid #f59e0b}.parts-alert.ordered{border-left:3px solid #3b82f6}.parts-alert.ok{border-left:3px solid #22c55e}.part-info{flex:1}.parts-alert>.part-name{color:#fff;font-size:14px;font-weight:500}.part-detail{color:#64748b;font-size:12px}.part-stock{display:flex;align-items:center;gap:8px}.part-stock .stock-count{font-size:24px;font-weight:700}.parts-alert.critical .stock-count{color:#ef4444}.parts-alert.low .stock-count{color:#f59e0b}.parts-alert.ok .stock-count{color:#22c55e}.part-stock .stock-label{color:#64748b;font-size:12px}.parts-alert .reorder-status{color:#94a3b8;font-size:12px}.parts-alert.critical .reorder-status{color:#ef4444}.order-status{font-size:11px;color:#3b82f6}.rm-panel.full-width{grid-column:1 / -1}.rm-workflow-kanban,.rm-workflow-board{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.workflow-column{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden;min-height:400px}.workflow-header{padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.workflow-header.returned{border-top:3px solid #94a3b8}.workflow-header.inspection{border-top:3px solid #3b82f6}.workflow-header.awaiting{border-top:3px solid #f97316}.workflow-header.repair{border-top:3px solid #ef4444}.workflow-header.qc{border-top:3px solid #8b5cf6}.workflow-header.ready{border-top:3px solid #22c55e}.workflow-title{color:#fff;font-size:13px;font-weight:600;margin-bottom:4px}.workflow-count{color:#64748b;font-size:12px}.workflow-cards{padding:10px;display:flex;flex-direction:column;gap:8px;max-height:350px;overflow-y:auto}.workflow-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px;cursor:pointer;transition:all .2s}.workflow-card:hover{background:#ffffff14;transform:translateY(-2px)}.workflow-card.priority-urgent{border-left:3px solid #ef4444}.workflow-card.priority-high{border-left:3px solid #f59e0b}.workflow-card .card-type{color:#64748b;font-size:10px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.workflow-card .card-name{color:#fff;font-size:13px;font-weight:500;margin-bottom:4px}.workflow-card .card-id{color:#94a3b8;font-size:11px;margin-bottom:8px}.workflow-card .card-meta{display:flex;justify-content:space-between;align-items:center}.workflow-card .card-job{color:#3b82f6;font-size:11px}.workflow-card .card-days{font-size:11px;font-weight:600}.workflow-card .card-days.overdue{color:#ef4444}.workflow-card .card-days.warning{color:#f59e0b}.workflow-card .card-days.ok{color:#22c55e}.workflow-card .card-issue{color:#f59e0b;font-size:11px;margin-top:6px;padding-top:6px;border-top:1px dashed rgba(255,255,255,.1)}.workflow-card .card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.workflow-card .tool-id{color:#3b82f6;font-size:12px;font-weight:600}.workflow-card .tool-type{color:#64748b;font-size:10px;text-transform:uppercase}.workflow-card .tool-type.priority-badge{background:#ef444433;color:#ef4444;padding:2px 6px;border-radius:4px}.workflow-card .tool-name{color:#fff;font-size:13px;font-weight:500;margin-bottom:8px}.workflow-card .card-meta{display:flex;flex-direction:column;gap:2px;font-size:11px;color:#94a3b8;margin-bottom:6px}.workflow-card .card-hours{color:#64748b;font-size:11px}.workflow-card.priority{border-left:3px solid #ef4444}.workflow-card.blocked{border-left:3px solid #f97316}.workflow-card .inspection-status{height:4px;background:#ffffff1a;border-radius:2px;margin-top:8px;overflow:hidden}.workflow-card .inspection-progress{height:100%;background:linear-gradient(90deg,#3b82f6,#22c55e);border-radius:2px}.workflow-card .inspection-notes{color:#f59e0b;font-size:11px;margin-top:6px;font-style:italic}.workflow-card .parts-needed{display:flex;gap:6px;font-size:11px;margin-bottom:6px}.workflow-card .part-label{color:#64748b}.workflow-card .part-name{color:#f59e0b;font-weight:500}.workflow-card .eta-status{font-size:11px;font-weight:500}.workflow-card .eta-status.critical{color:#ef4444}.workflow-card .eta-status.warning{color:#f59e0b}.workflow-card .repair-info{display:flex;flex-direction:column;gap:2px;font-size:11px;margin-bottom:8px}.workflow-card .repair-type{color:#e2e8f0}.workflow-card .repair-tech{color:#64748b}.workflow-card .repair-progress{display:flex;align-items:center;gap:8px;height:6px;background:#ffffff1a;border-radius:3px;overflow:visible;position:relative}.workflow-card .repair-progress .progress-fill{height:100%;background:linear-gradient(90deg,#22c55e,#16a34a);border-radius:3px}.workflow-card .repair-progress span{position:absolute;right:-30px;font-size:11px;color:#22c55e;font-weight:600}.workflow-card .qc-checklist{display:flex;flex-direction:column;gap:4px;margin-top:8px}.workflow-card .qc-item{font-size:11px;padding-left:18px;position:relative}.workflow-card .qc-item:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:12px;height:12px;border-radius:50%;border:2px solid #64748b}.workflow-card .qc-item.done{color:#22c55e}.workflow-card .qc-item.done:before{background:#22c55e;border-color:#22c55e}.workflow-card .qc-item.pending{color:#94a3b8}.workflow-card .qc-ready{margin-top:8px;padding:6px 10px;background:#22c55e33;color:#22c55e;font-size:11px;font-weight:600;border-radius:4px;text-align:center}.workflow-card.ready-card{border-left:3px solid #22c55e}.workflow-card .ready-status{display:flex;align-items:center;gap:6px;color:#22c55e;font-size:11px;margin-top:6px}.workflow-card .ready-status svg{width:14px;height:14px}.workflow-card.assigned{background:#3b82f61a;border-left:3px solid #3b82f6}.workflow-card .assigned-job{display:flex;gap:6px;font-size:11px;margin-top:6px}.workflow-card .assigned-label{color:#64748b}.workflow-card .job-name{color:#3b82f6;font-weight:500}.workflow-card .ship-date{color:#22c55e;font-size:11px;font-weight:500;margin-top:4px}.workflow-header.waiting{border-top:3px solid #f97316}.rm-logistics-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.shipment-panel{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.shipment-panel h4{color:#fff;font-size:15px;margin-bottom:16px;display:flex;align-items:center;gap:10px}.shipment-panel h4 svg{width:20px;height:20px;color:#3b82f6}.shipment-list{display:flex;flex-direction:column;gap:10px}.shipment-item{display:flex;align-items:center;gap:12px;padding:14px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;transition:all .2s}.shipment-item:hover{background:#ffffff0f}.shipment-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.shipment-icon svg{width:20px;height:20px}.shipment-icon.inbound{background:#22c55e33;color:#22c55e}.shipment-icon.outbound{background:#3b82f633;color:#3b82f6}.shipment-info{flex:1}.shipment-tools{color:#fff;font-size:14px;font-weight:500;margin-bottom:2px}.shipment-route{color:#94a3b8;font-size:12px}.shipment-status{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.shipment-eta{color:#22c55e;font-size:13px;font-weight:600}.shipment-carrier{color:#64748b;font-size:11px}.mobilization-panel{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.mobilization-panel h4{color:#fff;font-size:15px;margin-bottom:16px}.mobilization-table{width:100%;border-collapse:collapse}.mobilization-table th{text-align:left;padding:12px 14px;color:#94a3b8;font-size:11px;font-weight:600;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.1)}.mobilization-table td{padding:14px;color:#e2e8f0;font-size:13px;border-bottom:1px solid rgba(255,255,255,.05)}.mobilization-table tr:hover{background:#ffffff08}.mob-status{display:inline-block;padding:4px 10px;border-radius:10px;font-size:11px;font-weight:600}.mob-status.confirmed{background:#22c55e33;color:#22c55e}.mob-status.pending{background:#f59e0b33;color:#f59e0b}.mob-status.in-transit{background:#3b82f633;color:#3b82f6}.logistics-summary{display:flex;gap:20px;margin-bottom:24px}.logistics-stat{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px 30px;display:flex;flex-direction:column;align-items:center}.logistics-stat .stat-value{font-size:28px;font-weight:700;color:#fff}.logistics-stat .stat-label{font-size:13px;color:#94a3b8;margin-top:4px}.logistics-stat.outbound{border-top:3px solid #3b82f6}.logistics-stat.outbound .stat-value{color:#3b82f6}.logistics-stat.inbound{border-top:3px solid #22c55e}.logistics-stat.inbound .stat-value{color:#22c55e}.logistics-stat.pending{border-top:3px solid #f59e0b}.logistics-stat.pending .stat-value{color:#f59e0b}.shipments-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.shipments-panel{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.shipments-panel h4{color:#fff;font-size:15px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1)}.shipment-card{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:16px;margin-bottom:12px;transition:all .2s}.shipment-card:last-child{margin-bottom:0}.shipment-card:hover{background:#ffffff0f}.shipment-card.outbound{border-left:3px solid #3b82f6}.shipment-card.inbound{border-left:3px solid #22c55e}.shipment-card .shipment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.shipment-card .shipment-id{color:#94a3b8;font-size:12px;font-weight:500}.shipment-card .shipment-status{padding:4px 10px;border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase}.shipment-card .shipment-status.in-transit{background:#3b82f633;color:#3b82f6}.shipment-card .shipment-status.scheduled{background:#f59e0b33;color:#f59e0b}.shipment-card .shipment-status.delivered{background:#22c55e33;color:#22c55e}.shipment-card .shipment-route{display:flex;align-items:center;gap:10px;margin-bottom:10px}.shipment-card .origin{color:#e2e8f0;font-size:13px}.shipment-card .arrow{color:#64748b;font-size:14px}.shipment-card .destination{color:#3b82f6;font-size:13px;font-weight:500}.shipment-card .shipment-items{color:#94a3b8;font-size:12px;margin-bottom:10px}.shipment-card .shipment-eta{display:flex;gap:8px;margin-bottom:8px}.shipment-card .eta-label{color:#64748b;font-size:12px}.shipment-card .eta-time{color:#22c55e;font-size:12px;font-weight:600}.shipment-card .shipment-carrier{display:flex;gap:16px;color:#64748b;font-size:11px}@media(max-width:1400px){.rm-metrics-grid,.rm-workflow-board{grid-template-columns:repeat(3,1fr)}}@media(max-width:1000px){.rm-metrics-grid,.rm-workflow-board{grid-template-columns:repeat(2,1fr)}.rm-overview-grid,.rm-logistics-grid{grid-template-columns:1fr}}*{margin:0;padding:0;box-sizing:border-box}#auth-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);display:flex;align-items:center;justify-content:center;z-index:9999}.auth-content{text-align:center;color:#fff}.auth-logo{max-width:300px;margin-bottom:30px}#auth-status{font-size:1.1rem;color:#94a3b8;margin-bottom:20px}#auth-login-btn{background:#2563eb;color:#fff;border:none;padding:14px 28px;font-size:1rem;font-weight:600;border-radius:8px;cursor:pointer;transition:background .2s}#auth-login-btn:hover{background:#1d4ed8}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;overflow:hidden;background:#1a1a2e}#map-container{width:100vw;height:100vh;position:relative}#map{width:100%;height:100%}#controls{position:absolute;top:20px;left:80px;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 10px #0000004d;z-index:1;min-width:280px}#controls h3{margin-bottom:10px;color:#333}#units-ctrl-btn{font-weight:600;font-size:12px;color:#000}.unit-toggle-btn{background:#f0f0f0;color:#333;padding:6px 12px;font-size:12px;font-weight:600;border:1px solid #ddd;margin:0}.unit-toggle-btn:hover{background:#e0e0e0}.unit-toggle-btn.imperial{background:#3b82f6;color:#fff;border-color:#3b82f6}.unit-toggle-btn.imperial:hover{background:#2563eb}#controls p{margin-bottom:15px;color:#666;font-size:14px}#route-info{background:#f5f5f5;padding:10px;border-radius:4px;margin-bottom:15px}#route-info p{margin:5px 0}button{margin:5px 5px 5px 0;padding:10px 20px;background:#0080ff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}button:hover:not(:disabled){background:#06c}button:disabled{background:#ccc;cursor:not-allowed}#reset-btn{background:#f44}#reset-btn:hover{background:#c00}#section-container{display:none;width:100vw;height:100vh;padding:20px;background:#f5f5f5;overflow:auto}#section-controls{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:20px;display:flex;align-items:center;gap:20px}#section-info{margin-left:auto;display:flex;gap:20px}#section-info p{margin:0;font-size:14px;color:#666}#view-map-btn{background:#666}#view-map-btn:hover{background:#444}#export-btn{background:#22c55e}#export-btn:hover{background:#16a34a}#adjust-route-btn{background:#8b5cf6}#adjust-route-btn:hover{background:#7c3aed}#apply-route-btn{background:#22c55e}#apply-route-btn:hover{background:#16a34a}#cancel-adjust-btn{background:#6b7280}#cancel-adjust-btn:hover{background:#4b5563}#views-container{display:flex;gap:20px;flex-wrap:wrap}#plan-view-wrapper{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:20px;flex:0 0 400px;min-height:450px}#plan-view-wrapper h4{margin:0 0 15px;color:#333;font-size:16px}#plan-view{width:100%;height:400px;border-radius:4px;overflow:hidden}#section-view-wrapper{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:20px;flex:1;min-width:600px;min-height:450px}#section-view-wrapper h4{margin:0 0 15px;color:#333;font-size:16px}#section-view{min-height:400px}#hdd-controls{background:#fff;padding:15px 20px;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:20px}#hdd-controls h4{margin:0 0 15px;color:#333;font-size:16px}.hdd-params-grid{display:flex;flex-wrap:wrap;gap:15px;align-items:flex-end}.param-group{display:flex;flex-direction:column;gap:5px}.param-group label{font-size:12px;color:#666;font-weight:500}.param-group input,.param-group select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;width:120px}.param-group input:focus,.param-group select:focus{outline:none;border-color:#0080ff;box-shadow:0 0 0 2px #0080ff33}.param-hint{font-size:10px;color:#999;margin-top:2px}#recalculate-hdd{background:#ff4500;margin-left:auto}#recalculate-hdd:hover{background:#cc3700}#tooltip{position:absolute;display:none;background:#fff;padding:12px;border-radius:6px;box-shadow:0 4px 12px #00000026;font-size:13px;pointer-events:none;z-index:1000;max-width:250px}#tooltip strong{display:block;margin-bottom:5px;color:#333}#tooltip br{margin:3px 0}#loading-spinner{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:30px;border-radius:8px;box-shadow:0 4px 20px #0003;z-index:2000;text-align:center}.spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #0080ff;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 15px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#loading-spinner p{color:#666;margin:0}.ground-surface{transition:opacity .3s}.ground-line{transition:stroke .3s}svg rect{cursor:pointer;transition:opacity .2s}svg rect:hover{opacity:.8}svg text{pointer-events:none;-webkit-user-select:none;user-select:none}.axis path,.axis line{fill:none;stroke:#999;shape-rendering:crispEdges}.axis text{fill:#666;font-size:11px}
