.campus-page{min-height:100vh;background:var(--gn2-bg-main);display:flex;flex-direction:column}.campus-header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:var(--gn2-bg-nav);border-bottom:1px solid var(--gn2-border);flex-shrink:0}.campus-logo{height:32px}.campus-header-center{display:flex;flex-direction:column;align-items:center;gap:2px}.campus-title{font-size:16px;font-weight:700;color:var(--gn2-text-main);letter-spacing:.03em}.campus-refresh-time{font-size:11px;color:var(--gn2-text-muted)}.campus-header-error{font-size:11px;color:var(--gn2-red)}.campus-logout{background:none;border:1px solid var(--gn2-border);border-radius:4px;padding:4px 12px;font-size:12px;color:var(--gn2-text-muted);cursor:pointer}.campus-logout:hover{background:var(--gn2-bg-card)}.campus-grid{flex:1;display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,1fr);gap:12px;padding:12px;min-height:0}.campus-loading{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--gn2-text-muted);padding:40px}.campus-card{background:var(--gn2-bg-card);border:1px solid var(--gn2-border);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;min-height:0;overflow:hidden}.campus-card--inactive{opacity:.5;border-style:dashed}.campus-card-header{display:flex;align-items:center;gap:8px;flex-shrink:0}.campus-card-fleet{font-size:15px;font-weight:700;color:var(--gn2-text-main);flex:1}.campus-card-customer{font-size:12px;color:var(--gn2-text-muted);white-space:nowrap}.campus-card-status{font-size:10px;font-weight:700;letter-spacing:.06em;color:#2ac532;background:#2ac5321a;border:1px solid rgba(42,197,50,.3);border-radius:3px;padding:2px 6px;flex-shrink:0}.campus-card-status--inactive{color:var(--gn2-text-muted);background:#6f6a6214;border-color:#6f6a6240}.campus-wells{display:flex;flex-direction:column;gap:5px;flex-shrink:0}.campus-well-row{display:grid;grid-template-columns:minmax(80px,180px) 1fr 52px;align-items:center;gap:8px}.campus-well-name{font-size:11px;color:var(--gn2-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.campus-well-progress-wrap{height:7px;background:var(--gn2-border);border-radius:4px;overflow:hidden}.campus-well-progress-bar{height:100%;background:var(--gn2-red);border-radius:4px;transition:width .5s ease;min-width:2px}.campus-well-stage{font-size:11px;font-weight:600;color:var(--gn2-text-main);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.campus-chart-area{flex:1;min-height:200px;position:relative}.campus-chart-loading,.campus-chart-error,.campus-chart-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--gn2-text-muted)}.campus-chart-error{color:var(--gn2-red)}.campus-inactive-body{flex:1;display:flex;align-items:center;justify-content:center}.campus-inactive-label{font-size:13px;color:var(--gn2-text-muted);font-style:italic}:root{--gn2-red: #8b1c1c;--gn2-bg-main: #ebe7df;--gn2-bg-nav: #ded9cf;--gn2-bg-card: #f6f4ef;--gn2-border: #c6c0b6;--gn2-text-main: #2b2b2b;--gn2-text-muted: #6f6a62}html,body{margin:0;padding:0;background:var(--gn2-bg-main);color:var(--gn2-text-main);font-family:Helvetica Neue,Arial,sans-serif}main{padding:12px}.gn2-page-loading,.gn2-page-error{padding:24px;font-size:14px;color:var(--gn2-text-muted)}.gn2-loading{padding:20px;text-align:center;color:var(--gn2-text-muted)}h1,h2,h3,h4,h5{margin:0;font-weight:600}small{font-size:.75rem;color:var(--gn2-text-muted)}.gn2-muted{color:#777;font-size:13px}.gn2-section-subtle{font-size:13px;font-weight:400;color:var(--gn2-text-muted);margin-left:8px}.gn2-metric-suffix{margin-left:4px;font-weight:500;color:var(--gn2-text-main)}.gn2-metric-unit{margin-left:6px;font-size:10px;font-weight:400;color:var(--gn2-text-muted);text-transform:uppercase;letter-spacing:.04em}button{background:transparent;color:var(--gn2-text-main);border:1px solid var(--gn2-border);border-radius:4px;padding:6px 12px;cursor:pointer;font-size:13px}button:hover{border-color:var(--gn2-red)}button:disabled{opacity:.5;cursor:not-allowed}.gn2-btn{padding:6px 16px;font-size:13px;border-radius:18px;cursor:pointer;border:1px solid var(--gn2-border);background:transparent;color:var(--gn2-text-main)}.gn2-btn.accept{border-color:var(--gn2-red);background:#8b1c1c26}.gn2-btn.accept:hover{background:#8b1c1c40}.gn2-primary{background:#b32017;color:#fff;border:none;border-radius:4px;padding:8px 14px;font-weight:600;cursor:pointer;margin-left:5px}.gn2-primary:hover{opacity:.9}.gn2-secondary{background:#f4f4f4;border:1px solid #ccc;border-radius:4px;padding:6px 12px;cursor:pointer}.gn2-icon-button{background:transparent;border:none;font-size:18px;cursor:pointer}.gn2-section-settings{border:1px solid var(--gn2-border);background:var(--gn2-bg-card);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px}.gn2-section-settings:hover{background:#f0ede6}.gn2-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2b2b2b59;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000}.gn2-modal{width:420px;background:var(--gn2-bg-card);border:1px solid var(--gn2-border);border-radius:8px;padding:26px 28px;text-align:center}.gn2-modal h3{margin-bottom:6px}.gn2-modal .gn2-muted{font-size:12px;margin-bottom:10px}.gn2-modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--gn2-border)}.gn2-modal-title{font-size:18px;font-weight:600;margin-bottom:12px;color:var(--gn2-text-main)}.gn2-modal-body{font-size:14px;line-height:1.5;color:var(--gn2-text-muted);margin-bottom:22px}.gn2-modal-actions{display:flex;justify-content:center}.gn2-modal-actions button{padding:8px 18px;font-size:14px;border-radius:18px;border:1px solid var(--gn2-border)}.gn2-modal-actions button:hover{border-color:var(--gn2-red)}.gn2-modal-close{background:none;border:none;font-size:18px;cursor:pointer;opacity:.65}.gn2-modal-close:hover{opacity:1}.gn2-stage-chart-modal{width:min(96vw,1200px);max-height:90vh;display:flex;flex-direction:column}.gn2-chart-footnote{font-size:11px;opacity:.6;padding:6px 12px 10px;text-align:right}.gn2-stage-modal{width:calc(100vw - 64px);max-width:1400px;height:calc(100vh - 96px);max-height:600px;display:flex;flex-direction:column}.gn2-stage-modal .gn2-modal-header{align-items:center;justify-content:space-between;padding-bottom:10px}.gn2-stage-modal .gn2-modal-header h3{margin:0;font-size:18px;font-weight:600}.gn2-stage-modal-toolbar{position:relative;display:flex;justify-content:flex-end;align-items:center;padding:6px 0 10px;margin-bottom:6px}.gn2-stage-modal-toolbar .gn2-chart-gear{margin-right:2px}.gn2-stage-modal-body{flex:1;display:flex;flex-direction:column;min-height:0}.gn2-stage-modal-body>div{flex:1}.gn2-admin-modal{width:auto;min-width:520px;max-width:1200px;transition:width .2s ease}@media (max-width: 600px){.gn2-modal{width:calc(100% - 32px);margin:0 16px;padding:22px 20px}.gn2-modal-title{font-size:16px}.gn2-modal-body{font-size:13px}.gn2-modal-actions button{width:100%;padding:10px 0}.gn2-stage-modal{width:calc(100vw - 24px);height:calc(100vh - 24px);padding:14px}.gn2-stage-modal .gn2-modal-header h3{font-size:15px}.gn2-admin-modal{min-width:0;max-width:85%;width:100%;margin:0}}.gn2-timepicker{width:520px;background:var(--gn2-bg-card);color:var(--gn2-text-main);border-radius:6px;border:1px solid var(--gn2-border);overflow:hidden}.gn2-timepicker-body{display:grid;grid-template-columns:160px 1fr;min-height:260px}.gn2-timepicker-header{padding:10px 14px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gn2-text-muted);border-bottom:1px solid var(--gn2-border);text-align:center}.gn2-timepicker-quick{border-right:1px solid var(--gn2-border)}.gn2-timepicker-quick-list{padding:8px 0}.gn2-timepicker-quick-item{padding:8px 16px;font-size:13px;cursor:pointer;color:var(--gn2-text-main)}.gn2-timepicker-quick-item:hover{background:#ffffff0a}.gn2-timepicker-quick-item.active{color:var(--gn2-red);font-weight:600}.gn2-timepicker-custom{padding:14px}.gn2-timepicker-label{font-size:12px;color:var(--gn2-text-muted);margin-bottom:6px}.gn2-timepicker-input{width:95%;padding:8px;font-size:13px;background:var(--gn2-bg-main);color:var(--gn2-text-main);border:1px solid var(--gn2-border);border-radius:4px;margin-bottom:14px}.gn2-timepicker-footer{display:flex;justify-content:flex-end;gap:10px;padding:12px 16px;border-top:1px solid var(--gn2-border);background:var(--gn2-bg-nav)}@media (max-width: 600px){.gn2-timepicker{width:calc(100vw - 24px);max-width:none;border-radius:8px}.gn2-timepicker-body{grid-template-columns:1fr}.gn2-timepicker-quick{border-right:none;border-bottom:1px solid var(--gn2-border)}.gn2-timepicker-header{text-align:left;font-size:11px}.gn2-timepicker-custom{padding:12px}.gn2-timepicker-footer{justify-content:space-between}}.dashboard-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:60px;gap:12px}.dashboard-grid-item{height:100%;display:flex;min-width:0}.dashboard-grid-item>*{flex:1}.chart-card{position:relative;height:100%;background:var(--gn2-bg-card);border:1px solid var(--gn2-border);border-radius:8px;padding:14px 16px 16px;display:flex;flex-direction:column;box-sizing:border-box;box-shadow:0 1px #0000000a;min-width:0}.chart-card:before{content:"";height:3px;width:100%;background:linear-gradient(to right,var(--gn2-red),transparent);border-radius:8px 8px 0 0;margin-bottom:8px}.chart-card canvas{width:100%!important;flex:1 1 auto;min-height:0}.chart-card .chart-body{flex:1;display:flex}.chart-card .chart-body>div{flex:1}.gn2-chart-title{font-weight:600;margin-bottom:8px}.gn2-chart-settings-wrapper{position:absolute;top:10px;right:10px;z-index:25;pointer-events:auto}.gn2-chart-gear{border-radius:8px;padding:6px 8px;font-size:14px;background:transparent;border:1px solid transparent;cursor:pointer}.gn2-chart-gear:hover{background:#0000000f;border-color:#00000014}.gn2-chart-settings-popover{position:absolute;top:40px;right:0;width:300px;max-width:calc(100vw - 28px);background:var(--gn2-bg-card);border:1px solid var(--gn2-border);border-radius:12px;padding:14px 16px;box-shadow:0 14px 30px #00000024;z-index:30;pointer-events:auto}.gn2-chart-settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.gn2-chart-settings-header h4{font-size:14px;font-weight:600;margin:0;color:var(--gn2-text-main)}.gn2-chart-close{background:transparent;border:none;font-size:14px;cursor:pointer;color:var(--gn2-text-muted);padding:4px 6px;border-radius:6px}.gn2-chart-close:hover{color:var(--gn2-red);background:#0000000d}.gn2-chart-setting-header{display:grid;grid-template-columns:18px 2.2fr 56px 84px 60px 60px 36px;gap:8px;align-items:center;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gn2-text-muted);padding:0 4px 6px;margin-bottom:6px;border-bottom:1px solid rgba(0,0,0,.06)}.gn2-chart-setting-row{display:grid;grid-template-columns:18px 100px 56px 0px 0px 45px;gap:8px;align-items:center;padding:6px 4px;border-radius:8px;transition:background .15s ease}.gn2-chart-setting-row:hover{background:#0000000a}.gn2-chart-setting-row input[type=checkbox]{margin:0}.gn2-chart-setting-row span{font-size:13px;font-weight:500;white-space:normal;overflow:visible;text-overflow:unset;line-height:1.2}.gn2-chart-setting-row select{font-size:12px;padding:5px 8px;background:var(--gn2-bg-main);border:1px solid var(--gn2-border);border-radius:6px;cursor:pointer}.gn2-chart-setting-row select:not(.gn2-chart-add-select):not(.gn2-metric-select){text-align:center}.gn2-chart-add-select,.gn2-metric-select{grid-column:2 / 3;width:100%;min-width:180px;max-width:100%;text-align:left;justify-self:stretch;padding:6px 12px}.gn2-chart-setting-row select:hover{border-color:var(--gn2-red)}.gn2-chart-setting-row input[type=number]{font-size:12px;padding:5px 8px;background:var(--gn2-bg-main);border:1px solid var(--gn2-border);border-radius:6px;width:100%}.gn2-chart-setting-row input[type=color]{width:30px;height:22px;padding:0;border:none;background:transparent;cursor:pointer}.gn2-chart-add-row select,.gn2-chart-add-select{justify-self:start;width:100%;text-align:left}.gn2-chart-divider{height:1px;background:var(--gn2-border);opacity:.5;margin:12px 0 10px}.gn2-chart-add-btn{width:100%;padding:8px 0;border-radius:8px;border:1px dashed var(--gn2-border);background:transparent;font-size:13px;font-weight:500;color:var(--gn2-text-muted);cursor:pointer;transition:all .15s ease}.gn2-chart-add-btn:hover{border-color:var(--gn2-red);color:var(--gn2-red);background:#8b1c1c0f}@media (max-width: 600px){.gn2-chart-settings-wrapper{display:none}.chart-card{height:100%;display:flex;flex-direction:column;box-sizing:border-box}}@media (max-width: 1100px){.dashboard-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:40px}}.kpi-grid{display:grid;grid-template-columns:.75fr .75fr 1.2fr 1.2fr 1.4fr;grid-template-rows:1fr 1fr;gap:14px;margin-top:18px;grid-template-areas:"well   well   pressure   rate        prop_conc" "status stage  fr_conc    clean_total sand"}.kpi-well{grid-area:well}.kpi-status{grid-area:status}.kpi-stage{grid-area:stage}.kpi-pressure{grid-area:pressure}.kpi-rate{grid-area:rate}.kpi-sand{grid-area:sand}.kpi-fr-conc{grid-area:fr_conc}.kpi-clean-total{grid-area:clean_total}.kpi-prop-conc{grid-area:prop_conc}.kpi-well,.kpi-status,.kpi-stage{display:flex;flex-direction:column;justify-content:flex-start;gap:10px}.kpi-pressure,.kpi-rate,.kpi-sand,.kpi-fr-conc,.kpi-clean-total,.kpi-prop-conc{display:flex;flex-direction:column;justify-content:flex-start;align-self:stretch}.kpi-card{position:relative;background:var(--gn2-bg-card);border:1px solid var(--gn2-border);border-radius:8px;padding:16px;height:100%;box-sizing:border-box;display:grid;grid-template-rows:auto 1fr auto;container-type:size;box-shadow:0 1px #0000000a}.kpi-card:before{content:"";position:absolute;top:10px;left:16px;height:3px;width:28px;background:var(--gn2-border);border-radius:2px}.kpi-label{margin-top:12px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gn2-text-muted)}.kpi-value{display:flex;align-items:baseline;justify-content:flex-start;font-size:clamp(2.5rem,16cqh,6rem);font-weight:700;line-height:1;letter-spacing:-.02em;white-space:nowrap;transform:translateY(15%)}.kpi-unit{font-size:.32em;font-weight:600;margin-left:8px;opacity:.6;letter-spacing:.05rem}.kpi-ts{font-size:.7rem;color:#8a857d}.kpi-title{font-size:1.4rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.kpi-row{display:flex;gap:10px;align-items:center}.status-pill{padding:6px 14px;border-radius:999px;font-weight:525;font-size:.75rem;letter-spacing:.06em;height:50%;display:inline-flex;align-items:center;justify-content:center}.status-pill.on{background:#1e7f432e;color:#1e7f43;border:1px solid rgba(30,127,67,.35)}.status-pill.off{background:#0000000d;color:#666;border:1px solid rgba(0,0,0,.15)}.kpi-status-centered{display:flex;flex-direction:column}.kpi-status-centered .status-pill-1{padding:0 12px;margin-top:auto;margin-bottom:auto;align-self:center;width:85%;height:56px;display:flex;align-items:center;justify-content:center;border-radius:999px;font-weight:700;font-size:1.2rem;letter-spacing:.06em}.gn2-stale-banner{display:flex;align-items:center;justify-content:center;height:42px;margin-bottom:12px;background:#f4e3a1;color:#5f4b00;font-size:14px;font-weight:600;letter-spacing:.02em;border:1px solid #e1cc7a;border-radius:6px}.gn2-stale-banner span{margin-left:8px}.gn2-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}.gn2-kpi-grid-job{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.gn2-kpi-card{background:var(--gn2-bg-card);border:1px solid var(--gn2-border);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.gn2-kpi-card small{font-size:11px;color:var(--gn2-text-muted);text-transform:uppercase;letter-spacing:.04em}.gn2-kpi-card strong{font-size:18px;font-weight:600}.gn2-well-kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:12px}.gn2-kpi-mini{background:var(--gn2-bg-card);border:1px solid var(--gn2-border);border-radius:6px;padding:10px 12px}.gn2-kpi-mini small{font-size:11px;letter-spacing:.04em;opacity:.65}.gn2-kpi-mini strong{font-size:18px;font-weight:700}.gn2-well-primary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.gn2-kpi-primary small{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--gn2-text-muted)}.gn2-kpi-primary strong{font-size:18px;font-weight:600}.gn2-kpi-row{display:flex;justify-content:space-between;font-size:13px}.gn2-kpi-row span{color:var(--gn2-text-muted)}.gn2-kpi-row strong{font-weight:500}.gn2-well-totals .gn2-kpi-row{padding:4px 0}.gn2-well-totals .gn2-kpi-row span{color:#555}@media (max-width: 600px){.kpi-grid{grid-template-columns:1fr 1fr;grid-template-areas:"well        well" "status      stage" "pressure    pressure" "rate        rate" "prop_conc   prop_conc" "sand        sand" "fr_conc     fr_conc" "clean_total clean_total"}.gn2-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}.gn2-landing{max-width:1320px;margin:0 auto;padding-top:10px;min-height:calc(100vh - 90px)}.gn2-landing .gn2-section-title{font-size:20px;font-weight:600;margin:0 0 10px}.gn2-landing.gn2-jobs-layout{display:grid;grid-template-columns:minmax(420px,1fr) 28px minmax(560px,1.55fr);gap:32px;align-items:start}.gn2-landing .gn2-jobs-active{display:flex;flex-direction:column}.gn2-landing .gn2-active-spacer{font-size:12px;color:var(--gn2-text-muted);margin:10px 0 22px}.gn2-landing .gn2-jobs-active .gn2-job-card{width:100%;max-width:none}.gn2-landing .gn2-vertical-divider{width:2px;background:var(--gn2-border);border-radius:2px;margin:54px auto 0;height:calc(100vh - 240px)}.gn2-landing .gn2-jobs-history{display:flex;flex-direction:column}.gn2-landing .gn2-jobs-history .gn2-search{width:96.5%;margin:0 0 12px;padding:6px 10px;font-size:13px;box-sizing:border-box}.gn2-landing .gn2-history-window{max-height:calc(100vh - 240px);overflow-y:auto;overflow-x:hidden;padding-right:10px;display:flex;flex-direction:column;gap:14px;box-sizing:border-box}.gn2-landing .gn2-history-body{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.gn2-landing .gn2-history-date{font-size:12px;color:var(--gn2-text-muted);white-space:nowrap}.gn2-job-card{text-align:left;background:var(--gn2-bg-card);border:1px solid var(--gn2-border);border-radius:8px;padding:14px 16px;cursor:pointer;display:flex;flex-direction:column;gap:4px;box-shadow:0 1px #0000000a;height:142px}.gn2-job-card:hover{border-color:var(--gn2-red)}.gn2-job-card:before{content:"";height:3px;width:24px;background:var(--gn2-border);border-radius:2px}.gn2-job-card--history{cursor:pointer;padding:14px 16px;min-height:142px;width:100%;max-width:100%;box-sizing:border-box;background:var(--gn2-bg-card)}.gn2-job-card--history:hover{background:var(--gn2-bg-card);border-color:var(--gn2-red)}.gn2-job-card--history:before{width:26px;background:#d0ccc2}.gn2-landing .gn2-job-card--history .gn2-job-header{display:flex;justify-content:space-between;gap:12px;align-items:center;min-width:0}.gn2-landing .gn2-job-card--history .gn2-job-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.gn2-landing .gn2-job-card--history .status-pill{flex:0 0 auto}.gn2-job-header{display:flex;justify-content:space-between;align-items:center}.gn2-job-customer{font-size:14px;font-weight:600;color:var(--gn2-text-main)}.gn2-job-body{flex:1;display:flex;flex-direction:column;justify-content:flex-end}.gn2-job-card--history .gn2-job-header{display:flex;justify-content:space-between;align-items:center}.gn2-job-card--history .gn2-job-body{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.gn2-job-line small{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--gn2-text-muted)}.gn2-job-line div{margin-top:2px;font-size:13px;line-height:1.3}.gn2-job-footer{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--gn2-text-main)}.gn2-jobs-page{max-width:1100px;margin:0 auto;padding-top:12px}.gn2-jobs-title{font-size:22px;font-weight:600;margin-bottom:4px}.gn2-jobs-subtitle{font-size:14px;color:var(--gn2-text-muted);margin-bottom:18px}.gn2-job-grid{display:grid;gap:16px}@media (max-width: 900px){.gn2-landing{max-width:560px!important;width:100%;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;box-sizing:border-box}.gn2-landing.gn2-jobs-layout{display:block!important}.gn2-landing .gn2-vertical-divider{display:none!important}.gn2-landing .gn2-jobs-active,.gn2-landing .gn2-jobs-history{width:100%;padding-left:0;padding-right:0}.gn2-landing .gn2-jobs-history{margin-top:24px}.gn2-landing .gn2-history-window{max-height:none!important;overflow:visible!important;padding-right:0}.gn2-landing .gn2-jobs-history .gn2-search{width:100%}.gn2-landing .gn2-job-id{white-space:normal}.gn2-landing .gn2-jobs-active .gn2-job-card,.gn2-landing .gn2-job-card{width:100%;max-width:100%}}.gn2-job-summary{max-width:1320px;margin:0 auto;padding:24px 16px 60px;display:flex;flex-direction:column;gap:6px}.gn2-job-summary .gn2-section-title{font-size:20px;font-weight:600;margin-bottom:12px}.gn2-summary-card{background:var(--gn2-bg-card);border:1px solid var(--gn2-border);border-radius:10px;padding:18px 20px 20px}.gn2-summary-section{background:#f6f4ef;border:1px solid var(--gn2-border);border-radius:10px;padding:16px 18px 20px}.gn2-summary-section+.gn2-summary-section{margin-top:24px}.gn2-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.gn2-summary-header{margin-bottom:14px}.gn2-summary-header-inline{display:flex;justify-content:space-between;align-items:center}.gn2-well-grid{display:grid;gap:18px}.gn2-well-card{background:#fbf9f4;border:1px solid var(--gn2-border);border-radius:8px;padding:14px 16px 16px;display:flex;flex-direction:column;gap:14px}.gn2-well-header h4{font-size:14px;font-weight:600;margin:0}.gn2-well-secondary{border-top:1px solid var(--gn2-border);padding-top:10px;display:flex;flex-direction:column;gap:4px}.gn2-stage-grid{display:grid;gap:18px}.gn2-stage-table{background:#fbf9f4;border:1px solid var(--gn2-border);border-radius:8px;padding:14px 16px 16px}.gn2-stage-table h4{font-size:14px;font-weight:600;margin-bottom:8px}.gn2-stage-table table{width:100%;border-collapse:collapse;font-size:13px}.gn2-stage-table th{text-align:left;font-size:11px;font-weight:600;color:var(--gn2-text-muted);padding:6px 4px;border-bottom:1px solid var(--gn2-border)}.gn2-stage-table td{padding:6px 4px;border-top:1px solid var(--gn2-border)}.gn2-row-clickable{cursor:pointer}.gn2-row-clickable:hover{background:#00000008}.gn2-stage-footer{margin-top:8px;font-size:11px;color:var(--gn2-text-muted)}@media (max-width: 600px){.gn2-job-summary{padding:12px 14px 24px;gap:24px}.gn2-stage-grid{grid-template-columns:1fr}}@media (max-width: 768px){.gn2-well-grid{grid-template-columns:minmax(0,1fr)!important;width:100%;max-width:100%}.gn2-well-grid>*{min-width:0}.gn2-well-card{width:100%;max-width:100%;box-sizing:border-box}.gn2-well-primary,.gn2-well-secondary{min-width:0}.gn2-well-card *{max-width:100%;box-sizing:border-box;word-wrap:break-word}.gn2-stage-grid{grid-template-columns:minmax(0,1fr)!important;width:100%;max-width:100%}.gn2-stage-grid>*{min-width:0}.gn2-stage-table{width:100%;max-width:100%;box-sizing:border-box;overflow-x:auto;overflow-y:auto;position:relative}.gn2-stage-table table{width:max-content;min-width:100%}.gn2-stage-table th,.gn2-stage-table td{white-space:nowrap}}.login-page{height:100vh;width:100vw;background:url(/login-bg.jpg) center / cover no-repeat;display:flex;align-items:center;justify-content:center}.login-card{width:360px;background:#ffffffe0;border-radius:8px;padding:28px;box-shadow:0 20px 40px #00000059;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.login-logo{display:flex;justify-content:center;margin-bottom:12px}.login-logo img{height:42px}.login-title{text-align:center;font-size:18px;font-weight:600;margin-bottom:20px;color:var(--gn2-text-main)}.login-field{margin-bottom:14px}.login-field label{display:block;font-size:13px;margin-bottom:4px;color:var(--gn2-text-muted)}.login-field input{width:100%;box-sizing:border-box;padding:8px 10px;font-size:14px;border-radius:4px;border:1px solid var(--gn2-border)}.login-button{width:100%;padding:10px;margin-top:12px;border-radius:4px;background:var(--gn2-red);color:#fff;border:none;font-size:14px;cursor:pointer}.login-button:hover{background:#7a1818}.login-error{margin-top:12px;padding:9px 14px;font-size:13px;line-height:1.4;border-radius:5px;background:#8b1a1a14;color:#7a1818;border:1px solid rgba(139,26,26,.3);text-align:center;animation:loginErrorIn .25s ease-out}@keyframes loginErrorIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.toast{position:fixed;top:20px;right:20px;min-width:240px;padding:12px 16px;border-radius:6px;color:#fff;background:#b91c1c;box-shadow:0 10px 25px #00000059;animation:slideIn .2s ease-out;z-index:2000}@keyframes slideIn{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 600px){.login-page{padding:0;display:flex;align-items:center;justify-content:center}.login-card{transform:scale(.9);transform-origin:center;width:360px;max-width:90vw}}.login-forgot-link{margin-top:12px;text-align:center}.gn2-link-button{background:none;border:none;padding:0;font-size:13px;color:var(--gn2-text-muted);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.gn2-link-button:hover{color:var(--gn2-red)}.login-forgot-modal{width:420px;max-width:90vw;position:relative;padding:0;text-align:left}.login-forgot-close{position:absolute;top:12px;right:14px;background:none;border:none;font-size:15px;color:var(--gn2-text-muted);cursor:pointer;line-height:1;padding:2px 4px}.login-forgot-close:hover{color:var(--gn2-text-main)}.login-forgot-body{padding:28px 24px 24px}.login-forgot-icon{font-size:28px;margin-bottom:10px}.login-forgot-title{font-size:16px;font-weight:600;color:var(--gn2-text-main);margin:0 0 6px}.login-forgot-desc{font-size:13px;color:var(--gn2-text-muted);margin:0 0 18px;line-height:1.5}.login-forgot-sent{text-align:center}.login-forgot-sent-icon{font-size:32px;margin-bottom:10px;opacity:.85}.login-forgot-sent-title{font-size:15px;font-weight:600;color:var(--gn2-text-main);margin:0 0 6px}.login-forgot-sent-desc{font-size:13px;color:var(--gn2-text-muted);line-height:1.5;margin:0 0 16px}.login-strength-bar{display:flex;align-items:center;gap:4px;margin-top:6px}.login-strength-segment{flex:1;height:3px;border-radius:2px;background:var(--gn2-border);transition:background .2s}.login-strength-label{font-size:11px;font-weight:500;min-width:36px;text-align:right;transition:color .2s}.login-match-hint{font-size:11px;margin-top:5px;font-weight:500}.login-reset-success{text-align:center;padding:12px 0}.login-reset-success-icon{font-size:36px;color:#2ac532;margin-bottom:8px}.login-reset-success p{font-size:14px;color:var(--gn2-text-main);margin:0 0 6px}.login-reset-redirect{font-size:12px;color:var(--gn2-text-muted)!important}.gn2-mobile-menu{position:absolute;top:85px;left:12px;right:12px;background:var(--gn2-bg-card);border:1px solid var(--gn2-border);border-radius:12px;box-shadow:0 8px 20px #00000014;overflow:hidden;z-index:2000}.gn2-mobile-header{padding:12px 16px;font-size:12px;font-weight:600;letter-spacing:.8px;color:var(--gn2-text-muted);border-bottom:1px solid var(--gn2-border)}.mobile-item{padding:14px 16px;font-size:14px;border-bottom:1px solid var(--gn2-border);cursor:pointer;transition:background .15s ease}.mobile-item:last-child{border-bottom:none}.mobile-item:hover{background:#8b1c1c0d}.gn2-navbar{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:var(--gn2-bg-nav);border-bottom:1px solid var(--gn2-border);position:relative}.gn2-nav-left,.gn2-nav-right{display:flex;align-items:center;gap:14px}.gn2-logo-stack{display:flex;flex-direction:column;align-items:center;gap:0px}.gn2-logo-stack img:nth-child(1){height:52px}.gn2-logo-stack img:nth-child(2){margin-top:-2px;height:18px}.gn2-nav-right button{font-size:13px;padding:6px 14px;background:#8b1c1c14;border:1px solid rgba(139,28,28,.35);color:var(--gn2-text-main);border-radius:999px;font-weight:500;cursor:pointer;transition:background .15s ease}.gn2-nav-right button:hover{background:#8b1c1c26;color:var(--gn2-red);border-color:var(--gn2-red)}.gn2-time-trigger{font-size:13px;padding:6px 12px;background:#8b1c1c14;border:1px solid rgba(139,28,28,.35);color:var(--gn2-text-main);border-radius:999px;font-weight:500;cursor:pointer}.gn2-time-trigger:hover{background:#8b1c1c26}.gn2-timepicker-popover{position:absolute;top:60px;right:18px;z-index:1000}.gn2-hamburger,.gn2-nav-divider,.gn2-time-mobile{display:none}@media (max-width: 900px){.gn2-navbar{padding:0 16px;min-height:64px}.gn2-nav-spacer,.gn2-nav-right,.gn2-time-desktop{display:none}.gn2-nav-left{gap:8px;flex:1;min-width:0}.gn2-logo{height:34px;flex-shrink:0}.gn2-nav-divider{display:block;width:2px;height:28px;background:var(--gn2-border);border-radius:999px;margin:0 8px;flex-shrink:0}.gn2-timepicker-popover{top:85px;left:50%;right:auto;transform:translate(-50%)}.gn2-time-mobile{display:flex;flex:1;min-width:0;max-width:180px;padding:6px 10px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gn2-hamburger{display:flex;align-items:center;justify-content:center;height:34px;width:34px;margin-left:6px;flex-shrink:0;border-radius:999px;background:#8b1c1c14;border:1px solid rgba(139,28,28,.35);cursor:pointer}}.gn2-job-setup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2b2b2b59;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000}.gn2-job-setup-modal{width:calc(100vw - 64px);max-width:1000px;max-height:85vh;background:var(--gn2-bg-card);border:1px solid var(--gn2-border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.gn2-job-setup-header{padding:20px 28px;border-bottom:1px solid var(--gn2-border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:var(--gn2-bg-card)}.gn2-job-setup-header h2{margin:0;font-size:18px;font-weight:600;color:var(--gn2-text-main)}.gn2-job-setup-close{background:none;border:none;font-size:24px;line-height:1;cursor:pointer;opacity:.65;color:var(--gn2-text-main);padding:0;transition:opacity .2s ease}.gn2-job-setup-close:hover{opacity:1}.gn2-job-setup-body{overflow-y:auto;overflow-x:hidden;flex:1;min-height:0}.gn2-job-setup-scroll-content{padding:28px}.gn2-job-setup-body::-webkit-scrollbar{width:10px}.gn2-job-setup-body::-webkit-scrollbar-track{background:var(--gn2-bg-card)}.gn2-job-setup-body::-webkit-scrollbar-thumb{background:var(--gn2-border);border-radius:5px}.gn2-job-setup-body::-webkit-scrollbar-thumb:hover{background:#a39d93}.gn2-job-form-group{margin-bottom:24px}.gn2-job-form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:600;color:var(--gn2-text-main)}.gn2-job-form-group input,.gn2-job-form-group select{width:100%;padding:10px 14px;font-size:14px;border:1px solid var(--gn2-border);border-radius:6px;background:var(--gn2-bg-card);color:var(--gn2-text-main);transition:border-color .2s ease;font-family:inherit;box-sizing:border-box}.gn2-job-form-group input:focus,.gn2-job-form-group select:focus{outline:none;border-color:var(--gn2-red)}.gn2-job-form-group select{cursor:pointer}.gn2-wells-container{max-height:none;margin-top:24px}.gn2-wells-container.scrollable{max-height:290px;overflow-y:auto;padding-right:8px;margin-bottom:20px}.gn2-wells-container::-webkit-scrollbar{width:8px}.gn2-wells-container::-webkit-scrollbar-track{background:var(--gn2-bg-main);border-radius:4px}.gn2-wells-container::-webkit-scrollbar-thumb{background:var(--gn2-border);border-radius:4px}.gn2-wells-container::-webkit-scrollbar-thumb:hover{background:#a39d93}.gn2-job-well-group{margin:0 0 16px;padding:20px;background:var(--gn2-bg-card);border-radius:8px;border:1px solid var(--gn2-border)}.gn2-job-well-group:last-child{margin-bottom:0}.gn2-job-well-group h4{margin:0 0 16px;font-size:15px;font-weight:600;color:var(--gn2-text-main);display:flex;align-items:center;gap:8px}.gn2-job-well-group h4:before{content:"";display:inline-block;width:4px;height:16px;background:var(--gn2-red);border-radius:2px}.gn2-job-well-inputs{display:grid;grid-template-columns:2fr 1fr;gap:16px}.gn2-job-well-inputs>div{min-width:0}.gn2-job-well-inputs label{display:block;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--gn2-text-main)}.gn2-job-well-inputs input{width:100%;padding:8px 12px;font-size:14px;border:1px solid var(--gn2-border);border-radius:6px;background:var(--gn2-bg-card);color:var(--gn2-text-main);box-sizing:border-box}.gn2-job-well-inputs input:focus{outline:none;border-color:var(--gn2-red)}.gn2-metric-order-section{margin-top:32px;padding-top:32px;border-top:1px solid var(--gn2-border)}.gn2-metric-order-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.gn2-metric-order-header h3{margin:0;font-size:16px;font-weight:600;color:var(--gn2-text-main)}.gn2-metric-order-actions{display:flex;gap:10px}.gn2-metric-order-table{max-height:350px;overflow-y:auto;overflow-x:hidden;border:1px solid var(--gn2-border);border-radius:6px;padding:12px;background:var(--gn2-bg-card)}.gn2-metric-order-table::-webkit-scrollbar{width:8px}.gn2-metric-order-table::-webkit-scrollbar-track{background:var(--gn2-bg-card);border-radius:4px}.gn2-metric-order-table::-webkit-scrollbar-thumb{background:var(--gn2-border);border-radius:4px}.gn2-metric-order-table::-webkit-scrollbar-thumb:hover{background:#a39d93}.gn2-metric-row{display:grid;grid-template-columns:50px 1fr;gap:12px;align-items:center;margin-bottom:10px}.gn2-metric-row-number{font-size:13px;font-weight:600;color:var(--gn2-text-muted);text-align:center}.gn2-metric-row select{width:100%;padding:8px 12px;font-size:13px;border:1px solid var(--gn2-border);border-radius:6px;background:var(--gn2-bg-card);color:var(--gn2-text-main);cursor:pointer;transition:border-color .2s ease}.gn2-metric-row select:hover{border-color:var(--gn2-red)}.gn2-metric-row select:focus{outline:none;border-color:var(--gn2-red)}.gn2-job-setup-footer{padding:16px 28px;border-top:1px solid var(--gn2-border);display:flex;justify-content:flex-end;gap:12px;flex-shrink:0;background:var(--gn2-bg-card)}.gn2-job-btn{padding:8px 18px;font-size:14px;font-weight:500;border-radius:18px;cursor:pointer;transition:all .2s ease;font-family:inherit}.gn2-job-btn-secondary{background:var(--gn2-bg-card);color:var(--gn2-text-main);border:1px solid var(--gn2-border)}.gn2-job-btn-secondary:hover{border-color:var(--gn2-red)}.gn2-job-btn-primary{background:var(--gn2-red);color:#fff;border:1px solid var(--gn2-red)}.gn2-job-btn-primary:hover{background:#6f1515;border-color:#6f1515}.gn2-job-btn-primary:disabled{background:#a39d93;border-color:#a39d93;cursor:not-allowed;opacity:.6}.gn2-job-btn-primary.loading{position:relative;color:transparent}.gn2-job-btn-primary.loading:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}@media (max-width: 768px){.gn2-job-setup-modal{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.gn2-job-setup-header,.gn2-job-setup-footer{padding:16px 20px}.gn2-job-setup-scroll-content{padding:20px}.gn2-job-well-inputs{grid-template-columns:1fr}.gn2-metric-order-header{flex-direction:column;align-items:flex-start;gap:12px}.gn2-wells-container.scrollable{max-height:300px}.gn2-metric-order-table{max-height:250px}}.gn2-job-form-group{position:relative}.gn2-job-form-group select{width:100%!important;max-width:100%!important}.gn2-active-jobs-container{width:100%;padding:2rem;background:var(--gn2-bg-card);border-radius:10px;border:1px solid var(--gn2-border)}.gn2-active-jobs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--gn2-border)}.gn2-active-jobs-header h2{margin:0;font-size:1.5rem;font-weight:700}.gn2-active-jobs-controls{display:flex;gap:1rem;align-items:center}.gn2-search-input{padding:.55rem 1rem;border:1px solid var(--gn2-border);border-radius:6px;min-width:280px;font-size:.9rem;background:#fff}.gn2-search-input:focus{outline:none;border-color:var(--gn2-red)}.gn2-toggle-label{display:flex;align-items:center;gap:.4rem;font-size:.9rem;cursor:pointer}.gn2-toggle-label input{accent-color:var(--gn2-red)}.gn2-fleet-section{margin-bottom:2.5rem}.gn2-fleet-title{font-size:1.1rem;font-weight:600;margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:2px solid var(--gn2-red)}.gn2-jobs-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden}.gn2-jobs-table thead{background:var(--gn2-bg-main)}.gn2-jobs-table th{padding:.8rem 1rem;text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gn2-text-muted);border-bottom:1px solid var(--gn2-border)}.gn2-jobs-table td{padding:.85rem 1rem;border-bottom:1px solid var(--gn2-border);font-size:.9rem;vertical-align:middle}.gn2-jobs-table tbody tr:hover{background:var(--gn2-bg-main)}.gn2-jobs-table tbody tr:last-child td{border-bottom:none}.gn2-clickable{cursor:pointer}.gn2-jobs-table td:first-child{font-family:Courier New,monospace;font-weight:600;min-width:180px}.gn2-jobs-table th:nth-child(3),.gn2-jobs-table td:nth-child(3){text-align:center;width:120px}.gn2-jobs-table th:nth-child(4),.gn2-jobs-table td:nth-child(4){min-width:220px}.gn2-jobs-table th:nth-child(5),.gn2-jobs-table td:nth-child(5){text-align:center;width:120px}.gn2-jobs-table th:nth-child(6),.gn2-jobs-table td:nth-child(6){text-align:center;width:100px}.gn2-jobs-table th:nth-child(7),.gn2-jobs-table td:nth-child(7){width:180px}.gn2-status-badge{display:inline-block;padding:.25rem .7rem;border-radius:14px;font-size:.7rem;font-weight:600}.gn2-status-active{background:#dcefe2;color:#2f6b43}.gn2-status-completed{background:#e6edf2;color:#415e73}.gn2-status-not-started{background:#f4ecd8;color:#8a6d2a}.gn2-wells-stack,.gn2-stages-stack{display:flex;flex-direction:column;gap:.25rem}.gn2-wells-stack div,.gn2-stages-stack div{line-height:1.35}.gn2-actions-cell{display:flex;gap:.5rem;align-items:center;justify-content:flex-start;min-height:100%}.gn2-action-btn{padding:.35rem .75rem;border-radius:5px;border:1px solid var(--gn2-border);background:#fff;font-size:.75rem;font-weight:600;cursor:pointer}.gn2-action-btn:hover{background:var(--gn2-bg-main)}.jco-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#2b2b2b73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}.jco-modal{background:var(--gn2-bg-card, #f5f1eb);border:1px solid var(--gn2-border, #d5cfc6);border-radius:10px;box-shadow:0 8px 32px #00000038;width:min(1160px,96vw);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.jco-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px 12px;border-bottom:1px solid var(--gn2-border, #d5cfc6);background:var(--gn2-bg-main, #ebe7df);flex-shrink:0}.jco-header-left{display:flex;align-items:center;gap:12px}.jco-title{font-size:15px;font-weight:700;color:var(--gn2-text-primary, #2b2b2b)}.jco-job-id{font-size:12px;font-weight:600;color:var(--gn2-text-muted, #666);background:var(--gn2-bg-card, #f5f1eb);border:1px solid var(--gn2-border, #d5cfc6);border-radius:4px;padding:2px 8px}.jco-customer-name{font-size:12px;color:var(--gn2-text-muted, #666);font-style:italic}.jco-header-right{display:flex;align-items:center;gap:16px}.jco-source-legend{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--gn2-text-muted, #666)}.jco-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0}.jco-dot--system{background:#9e9e9e}.jco-dot--customer{background:#1976d2}.jco-dot--job{background:var(--gn2-red, #8b1c1c)}.jco-dot-label{margin-right:6px}.jco-close-btn{background:none;border:none;font-size:16px;color:var(--gn2-text-muted, #666);cursor:pointer;padding:2px 6px;line-height:1;border-radius:4px}.jco-close-btn:hover{background:var(--gn2-border, #d5cfc6);color:var(--gn2-text-primary, #2b2b2b)}.jco-body{display:flex;flex:1;overflow:hidden}.jco-left{width:320px;min-width:280px;flex-shrink:0;border-right:1px solid var(--gn2-border, #d5cfc6);overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:20px}.jco-section{display:flex;flex-direction:column;gap:8px}.jco-section-heading{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gn2-text-muted, #666);margin:0 0 4px}.jco-field-row{display:flex;align-items:center;gap:8px}.jco-field-label{font-size:12px;color:var(--gn2-text-muted, #666);width:36px;flex-shrink:0}.jco-field-input{flex:1;font-size:12px;padding:5px 8px;border:1px solid var(--gn2-border, #d5cfc6);border-radius:4px;background:var(--gn2-bg-main, #ebe7df);color:var(--gn2-text-primary, #2b2b2b);margin-left:50px;max-width:125px}.jco-field-input:focus{outline:none;border-color:var(--gn2-red, #8b1c1c)}.jco-section--metrics{flex:1}.jco-metrics-header{display:flex;align-items:center;justify-content:space-between}.jco-metrics-col-heads{display:flex;gap:4px;font-size:10px;color:var(--gn2-text-muted, #888);text-transform:uppercase;letter-spacing:.05em}.jco-metrics-col-heads span{width:48px;text-align:center}.jco-metrics-list{display:flex;flex-direction:column;gap:2px}.jco-metric-row{display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:4px;transition:background .1s}.jco-metric-row:hover{background:var(--gn2-bg-main, #ebe7df)}.jco-metric-row--off{opacity:.45}.jco-metric-label{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--gn2-text-primary, #2b2b2b);flex:1;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jco-metric-label input[type=checkbox]{width:14px;height:14px;flex-shrink:0;accent-color:var(--gn2-red, #8b1c1c)}.jco-color-cell{display:flex;align-items:center;gap:4px;width:48px;justify-content:center}.jco-color-cell input[type=color]{width:26px;height:22px;padding:1px;border:1px solid var(--gn2-border, #d5cfc6);border-radius:3px;cursor:pointer;background:none}.jco-color-cell input[type=color]:disabled{opacity:.4;cursor:default}.jco-style-select{width:60px;font-size:11px;padding:3px 2px;border:1px solid var(--gn2-border, #d5cfc6);border-radius:4px;background:var(--gn2-bg-main, #ebe7df);color:var(--gn2-text-primary, #2b2b2b)}.jco-style-select:disabled{opacity:.4}.jco-width-input{width:44px;font-size:12px;padding:3px 4px;border:1px solid var(--gn2-border, #d5cfc6);border-radius:4px;background:var(--gn2-bg-main, #ebe7df);color:var(--gn2-text-primary, #2b2b2b);text-align:center}.jco-width-input:disabled{opacity:.4}.jco-right{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:12px;min-width:0}.jco-preview-heading{display:flex;align-items:baseline;gap:10px}.jco-preview-title{font-size:13px;font-weight:700;color:var(--gn2-text-primary, #2b2b2b)}.jco-preview-subtitle{font-size:11px;color:var(--gn2-text-muted, #888);font-style:italic}.jco-chart-tabs{display:flex;gap:4px}.jco-chart-tab{padding:5px 14px;font-size:12px;font-weight:600;border:1px solid var(--gn2-border, #d5cfc6);border-radius:5px;background:var(--gn2-bg-main, #ebe7df);color:var(--gn2-text-muted, #666);cursor:pointer}.jco-chart-tab:hover{background:var(--gn2-bg-card, #f5f1eb)}.jco-chart-tab--active{background:var(--gn2-red, #8b1c1c);color:#fff;border-color:var(--gn2-red, #8b1c1c)}.jco-preview-panel{background:var(--gn2-bg-card, #f5f1eb);border:1px solid var(--gn2-border, #d5cfc6);border-radius:8px;padding:14px;flex:1}.jco-preview-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.jco-preview-note{font-size:10px;color:var(--gn2-text-muted, #999);text-align:center;margin:6px 0 0;font-style:italic}.jco-no-config{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--gn2-text-muted, #888);font-size:13px;text-align:center;padding:40px}.jco-overrides-active-badge{font-size:11px;color:var(--gn2-red, #8b1c1c);background:#8b1c1c14;border:1px solid rgba(139,28,28,.25);border-radius:4px;padding:4px 10px;align-self:flex-start}.jco-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--gn2-border, #d5cfc6);background:var(--gn2-bg-main, #ebe7df);flex-shrink:0}.jco-footer-actions{display:flex;gap:8px}.jco-reset-btn{font-size:12px;color:var(--gn2-text-muted, #666);background:none;border:1px solid var(--gn2-border, #d5cfc6);border-radius:5px;padding:6px 14px;cursor:pointer}.jco-reset-btn:hover:not(:disabled){border-color:var(--gn2-red, #8b1c1c);color:var(--gn2-red, #8b1c1c)}.jco-reset-btn:disabled{opacity:.45;cursor:default}.gn2-audit-page{max-width:1200px;margin:0 auto;padding:24px 28px}.gn2-audit-page-header{display:flex;align-items:center;gap:16px;margin-bottom:20px}.gn2-audit-page-header h2{margin:0;font-size:22px;font-weight:700}.gn2-admin-window{background:#fff;border:1px solid var(--gn2-border);border-radius:10px;padding:0 24px 28px;box-shadow:0 1px 4px #0000001f}.gn2-admin-window-body{margin-top:0}.gn2-admin-window .gn2-audit-tabs{margin-bottom:20px;padding-top:4px}.gn2-audit-tabs{display:flex;border-bottom:2px solid var(--gn2-border);margin-bottom:20px}.gn2-audit-tab{background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;padding:12px 22px;font-size:14px;font-weight:500;color:var(--gn2-text-muted);cursor:pointer}.gn2-tab-add-btn{margin-left:auto;align-self:center;margin-right:4px;padding:5px 14px;font-size:13px;font-weight:600;background:var(--gn2-red);color:#fff;border:none;border-radius:6px;cursor:pointer}.gn2-tab-add-btn:hover{opacity:.88}.gn2-audit-tab:hover{color:var(--gn2-text)}.gn2-audit-tab.active{color:var(--gn2-red);border-bottom-color:var(--gn2-red);font-weight:600}.gn2-admin-toolbar{margin-bottom:12px}.gn2-admin-filter-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:16px;background:var(--gn2-bg-main);border:1px solid var(--gn2-border);border-radius:8px;flex-wrap:wrap}.gn2-filter-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--gn2-text-muted);padding-right:10px;border-right:1px solid var(--gn2-border);margin-right:2px;white-space:nowrap}.gn2-sessions-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--gn2-bg-main);border:1px solid var(--gn2-border);border-radius:8px;flex-wrap:wrap;margin-bottom:14px}.gn2-sessions-count{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--gn2-text)}.gn2-session-status-dot{width:8px;height:8px;border-radius:50%;background:#2e7d32;box-shadow:0 0 0 2px #c8e6c9;flex-shrink:0}.gn2-admin-table,.gn2-audit-table-wrap{border:1px solid var(--gn2-border);border-radius:8px;overflow:hidden;background:#fff}.gn2-table-head{width:100%;table-layout:fixed;border-bottom:1px solid var(--gn2-border)}.gn2-table-head th{position:static!important;z-index:auto!important}.gn2-table-scroll{overflow-y:auto;max-height:460px}.gn2-table-scroll .gn2-audit-table{table-layout:fixed;width:100%}.gn2-sessions-wrap{gap:0}.gn2-sessions-header-row{margin-bottom:16px}.gn2-admin-table-inner,.gn2-audit-table,.gn2-user-table{width:100%;border-collapse:collapse;font-size:.9rem}.gn2-admin-table-inner thead,.gn2-audit-table thead{background:var(--gn2-bg-main)}.gn2-admin-table-inner th,.gn2-audit-table th{padding:.8rem 1rem;text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gn2-text-muted);border-bottom:1px solid var(--gn2-border);position:sticky;top:0;z-index:3;background:var(--gn2-bg-main)}th.gn2-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.gn2-sortable:hover{color:var(--gn2-text)}.gn2-sort-indicator{margin-left:6px;font-size:11px;opacity:.6}.gn2-admin-table-inner td,.gn2-audit-table td{padding:.85rem 1rem;border-bottom:1px solid var(--gn2-border);vertical-align:middle}.gn2-admin-table-inner tbody tr:hover,.gn2-audit-row:hover,.gn2-user-table tbody tr:hover{background:var(--gn2-bg-main)}.gn2-admin-table-inner tbody tr:last-child td{border-bottom:none}.gn2-user-table tbody tr:hover,.gn2-admin-table tbody tr:hover,.gn2-admin-table-inner tbody tr:hover,.gn2-audit-table tbody tr:hover{background:var(--gn2-bg-main)}.gn2-admin-table-inner td:last-child,.gn2-admin-table-inner th:last-child{position:sticky;right:0;background:#fff;z-index:2}.gn2-audit-table,.gn2-audit-table td,.gn2-audit-table th{font-family:Helvetica Neue,Arial,sans-serif;font-size:13px;letter-spacing:.02em}.gn2-badge,.gn2-role,.gn2-audit-action-badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;border-radius:12px;border:1px solid var(--gn2-border);background:var(--gn2-bg-main);color:var(--gn2-text)}.gn2-role-admin,.gn2-role-super,.gn2-role-user{background:var(--gn2-bg-main)}.gn2-actions{display:flex;gap:6px;align-items:center}.gn2-action{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;font-size:12px;font-weight:600;border-radius:6px;border:1px solid var(--gn2-border);background:#fff;color:var(--gn2-text);cursor:pointer}.gn2-action:hover{background:var(--gn2-bg-main)}.gn2-action-delete{color:#b3261e}.gn2-action-warn{color:#856404;white-space:nowrap;min-width:80px}.gn2-action:disabled{opacity:.5;cursor:default}.gn2-form-table-card{background:var(--gn2-bg-main);border:1px solid var(--gn2-border);border-radius:8px;padding:20px 24px;margin-bottom:16px}.gn2-form-table-card table.gn2-audit-table{width:auto;border-collapse:collapse}.gn2-form-table-card .gn2-audit-table th{font-size:13px;font-weight:600;text-transform:none;letter-spacing:normal;padding:7px 16px 7px 0;color:var(--gn2-text);text-align:right;white-space:nowrap;background:transparent;border-bottom:none;position:static;z-index:auto;vertical-align:middle}.gn2-form-table-card .gn2-audit-table td{padding:6px 0 6px 10px;border-bottom:none;vertical-align:middle}.gn2-form-table-card .gn2-audit-table input,.gn2-form-table-card .gn2-audit-table select{padding:7px 10px;min-width:240px;border:1px solid var(--gn2-border);border-radius:5px;font-size:13px;background:#fff;outline:none}.gn2-form-table-card .gn2-audit-table input:focus,.gn2-form-table-card .gn2-audit-table select:focus{border-color:var(--gn2-red);box-shadow:0 0 0 2px #8b1e1e1a}.gn2-form-table-card .gn2-audit-table tr:last-child td{padding-top:14px}.gn2-form-card{border:1px solid var(--gn2-border);border-radius:6px;background:var(--gn2-bg-card);padding:18px;margin-bottom:16px}.gn2-form-stack{display:grid;grid-template-columns:120px 1fr 120px 1fr;gap:12px 18px;align-items:center}.gn2-form-stack span{font-weight:600;font-size:13px}.gn2-form-stack input,.gn2-form-stack select{width:100%;padding:6px 8px;border:1px solid var(--gn2-border);border-radius:4px;font-size:13px}.gn2-customer-select{grid-column:span 3;max-width:350px}.gn2-form-actions{grid-column:1 / -1;margin-top:10px;display:flex;gap:10px}.gn2-audit-ts{font-size:12px;color:var(--gn2-text-muted);white-space:nowrap}.gn2-audit-detail{font-size:12px;color:var(--gn2-text-muted);max-width:450px;word-break:break-word}.gn2-audit-pagination{display:flex;justify-content:center;gap:12px;margin-top:16px}.gn2-audit-page-info{font-size:13px;color:var(--gn2-text-muted)}.gn2-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.gn2-modal-card{background:#fff;border-radius:10px;box-shadow:0 8px 32px #0003;width:420px;max-width:95vw;overflow:hidden}.gn2-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--gn2-border);font-size:15px;font-weight:700}.gn2-modal-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--gn2-text-muted);line-height:1;padding:0 4px}.gn2-modal-close:hover{color:var(--gn2-text)}.gn2-modal-body{padding:20px;display:flex;flex-direction:column;gap:6px}.gn2-field-label{font-size:12px;font-weight:600;color:var(--gn2-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:8px}.gn2-field-label:first-child{margin-top:0}.gn2-field-input{width:100%;padding:8px 10px;border:1px solid var(--gn2-border);border-radius:6px;font-size:13px;background:#fff;box-sizing:border-box}.gn2-field-input:focus{outline:none;border-color:var(--gn2-red);box-shadow:0 0 0 2px #8b1e1e1a}.gn2-modal-actions{display:flex;gap:10px;margin-top:14px}@media (max-width: 800px){.gn2-form-stack{grid-template-columns:1fr}.gn2-admin-table{max-height:none}}.gn2-nav-btn-active{color:var(--gn2-red)!important;border-color:var(--gn2-red)!important;background:#8b1c1c0f!important}
