:root{color-scheme:light;--navy:#102c45;--navy2:#0b2034;--blue:#286995;--ink:#213446;--muted:#708294;--line:#dce4ea;--soft:#f4f7fa;--white:#fff;--yellow:#eeb84b;--green:#287655;--red:#a33131;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}
body{margin:0;background:#e9eef3;color:var(--ink)}
button,input,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.46}
.app-shell{display:flex;min-height:100vh;max-height:100vh;overflow:hidden}
.sidebar{width:370px;flex-shrink:0;background:#fff;border-right:1px solid #dce4eb;display:flex;flex-direction:column;max-height:100vh}
.brand{display:flex;gap:13px;align-items:center;padding:23px 25px 19px;border-bottom:1px solid var(--line)}
.mode-nav{display:flex;gap:7px;padding:12px 24px 0;background:#fff}
.mode-button{flex:1;border:1px solid #dce6ed;border-radius:8px;background:#f5f8fa;color:#60798d;font-size:11px;font-weight:750;min-height:36px;padding:4px 6px}
.mode-button.active{background:#163d5d;color:#fff;border-color:#163d5d}
.brand strong{display:block;font-size:17px;letter-spacing:-.4px;color:var(--navy)}
.brand-mark{height:42px;width:42px;border-radius:12px;background:#102b44;position:relative;display:grid;place-items:center;flex-shrink:0}
.sun-disc{height:16px;width:16px;border:3px solid #e6ac40;border-radius:50%}
.sun-line{position:absolute;bottom:10px;left:10px;width:22px;border-top:2px solid #e6ac40;transform:rotate(-25deg)}
.eyebrow,.section-kicker{font-size:10px;font-weight:800;letter-spacing:1.8px;color:#a88742}
.eyebrow{margin-bottom:4px}
.sidebar-content{padding:24px 25px 38px;overflow:auto;scrollbar-width:thin;flex:1}
.intro{margin-bottom:25px}
.intro h1{font-size:29px;line-height:1.12;letter-spacing:-1.2px;margin:8px 0 10px;color:var(--navy)}
.intro p:not(.section-kicker){font-size:12px;line-height:1.7;color:#687b8d;margin:0;max-width:310px}
.step{border-top:1px solid var(--line);padding:21px 0 23px}
.step.last{padding-bottom:5px}
.step-heading{display:flex;gap:9px;align-items:center;margin:0 0 15px}
.step-index{height:24px;width:24px;border:1px solid #d4e1e9;border-radius:7px;display:grid;place-items:center;font-size:10px;color:#2b7194;font-weight:800}
.step h2{font-size:13px;color:#1c3850;margin:0;letter-spacing:-.1px}
.step-state{margin-left:auto;background:#eff4f7;color:#718392;border-radius:6px;padding:4px 6px;font-size:9px;font-weight:700;white-space:nowrap}
.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1.5px dashed #a7bdcc;background:#f8fbfd;border-radius:10px;padding:23px 11px;text-align:center;cursor:pointer;transition:.2s}
.dropzone:hover,.dropzone.dragover{border-color:#2c779f;background:#edf7fc}
.dropzone.disabled,.dropzone.disabled:hover{opacity:.58;cursor:not-allowed;border-color:#bdcbd5;background:#f4f6f8}
.dropzone:focus-visible{outline:3px solid #f1bf5a;outline-offset:3px}
.dropzone strong{font-size:12px;color:#234b67;margin-bottom:4px;max-width:270px;overflow-wrap:anywhere}
.dropzone span:not(.upload-icon){font-size:10px;color:#7890a0}
.dropzone small{font-size:9px;color:#9eacb7;margin-top:9px}
.upload-icon{height:34px;width:34px;border-radius:9px;background:#e5f0f6;color:#3479a2;display:grid;place-items:center;font-size:24px;margin-bottom:10px}
.data-stats{margin-top:11px;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #e1e8ed;border-radius:8px;overflow:hidden}
.data-stats div{padding:9px 7px;border-right:1px solid #e1e8ed;min-width:0}
.data-stats div:last-child{border-right:0}
.data-stats small{display:block;font-size:8px;color:#8295a3;letter-spacing:.8px;font-weight:700}
.data-stats strong{font-size:12px;color:var(--navy);white-space:nowrap}
.field-label,.field-grid label{display:block;font-size:10px;color:#526778;font-weight:700;margin-bottom:6px}
select,input[type=text],input[type=number],input[type=date]{width:100%;min-width:0;border:1px solid #d6e0e7;border-radius:7px;background:#fff;padding:10px 9px;color:#253d52;outline:0;font-size:11px}
select:focus,input:focus{border-color:#3d8bb6;box-shadow:0 0 0 3px #3d8bb620}
input::placeholder{color:#a0acb6}
.inline-controls{display:flex;gap:8px}
.select-and-tools{display:flex;align-items:stretch;gap:6px}
.select-and-tools select{flex:1}
.mapping-existing-meter{margin:12px 0;border-radius:8px}
.mapping-link-row{margin:12px 0 0;padding:11px;border:1px dashed #c5dce8;border-radius:8px;background:#f7fbfd}
.mapping-link-row .secondary-button{width:auto;white-space:nowrap;padding:0 11px;font-size:10px}
.daily-advanced{border-top:1px solid var(--line);margin-top:16px;padding-top:13px}
.daily-advanced summary{font-size:10px;font-weight:700;color:#315b78;cursor:pointer;margin-bottom:10px}
.inline-controls select{flex:1}
.icon-button{border:1px solid #d2dfe8;background:#f3f8fa;width:38px;flex-shrink:0;border-radius:7px;font-size:21px;color:#316d91}
.icon-button:hover{background:#e7f1f5}
.plant-editor{border:1px solid #dbe6ed;border-radius:9px;padding:12px;margin-top:11px;background:#fbfdfe}
.subheading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:11px}
.plain-button{background:none;color:var(--blue);border:0;font-size:10px;padding:4px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 10px}
.field-grid label{font-size:10px;margin-bottom:0}
.field-grid label input{display:block;margin-top:5px}
.field-grid .full{grid-column:1/-1}
.plant-portals{display:grid;grid-template-columns:1fr 1fr;gap:7px 6px;padding:10px;border:1px solid #dce7ed;border-radius:8px;background:#fff}
.plant-portals .field-label{grid-column:1/-1;margin-bottom:3px}
.field-grid .plant-portals label{display:flex;gap:5px;align-items:center;cursor:pointer;line-height:1.3}
.field-grid .plant-portals label input{display:inline;width:14px;height:14px;flex-shrink:0;margin:0;accent-color:#267b9d}
.plant-meter-choice,.meter-switch{display:flex!important;align-items:center;gap:9px;cursor:pointer;font-size:11px!important;font-weight:700!important;color:#32536c!important}
.plant-meter-choice input,.meter-switch input{width:17px;height:17px;flex-shrink:0;accent-color:#267b9d;margin:0}
.plant-meter-choice{background:#edf6f9;padding:11px;border:1px solid #cce1eb;border-radius:7px}
.meter-mode-control{padding:12px 11px;background:#f2f7fa;border:1px solid #d7e6ed;border-radius:9px;margin-bottom:14px}
.meter-mode-control small{display:block;font-size:10px;color:#7b8c99;line-height:1.5;margin-top:7px}
.meter-switch input:disabled{opacity:.5}
.muted-note{font-size:10px;line-height:1.6;color:#8997a3;margin:10px 0 0}
.confirm-line{display:flex;gap:9px;align-items:start;font-size:10px;color:#496074;margin-top:17px;line-height:1.5;cursor:pointer}
.confirm-line input{margin:2px 0 0;accent-color:#1d779c;flex-shrink:0}
.primary-button,.secondary-button{border-radius:8px;border:0;min-height:41px;font-size:12px;font-weight:700}
.primary-button{width:100%;color:white;background:#184e72;margin-top:12px;display:flex;gap:10px;justify-content:center;align-items:center}
.primary-button:not(:disabled):hover{background:#0d3856}
.secondary-button{background:#eef4f8;color:#285a79;border:1px solid #d9e6ef;padding:0 9px}
.secondary-button:not(:disabled):hover{background:#e2eef6}
.history-button{width:100%;margin-top:12px;min-height:34px;font-size:10px}
.action-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}
.message{border-radius:7px;padding:10px;font-size:10px;line-height:1.4;margin:9px 0 0}
.message.error{color:#9e3434;background:#fff0ef;border:1px solid #f4cbcb}
.message.warning{color:#94601e;background:#fff7e5;border:1px solid #f1dfb1}
.sidebar-footer{flex-shrink:0;padding:13px 24px;border-top:1px solid var(--line);color:#8a9ba8;font-size:10px;display:flex;align-items:center;gap:8px;white-space:nowrap}
.sidebar-footer span:last-child{margin-left:auto}
.status-dot{height:6px;width:6px;background:#3c9b75;border-radius:50%}
.main-panel{display:flex;flex-direction:column;flex:1;min-width:0;max-height:100vh}
.topbar{height:80px;background:#fff;border-bottom:1px solid #dde5eb;display:flex;justify-content:space-between;align-items:center;padding:0 32px;flex-shrink:0}
.preview-title{font-size:19px;font-weight:700;color:#233d53;letter-spacing:-.45px;margin-top:3px}
.top-actions{display:flex;gap:5px;align-items:center}
.privacy-pill{font-size:10px;background:#ecf8f1;border:1px solid #d7ede0;color:#487f5f;border-radius:30px;padding:8px 12px;margin-right:13px;white-space:nowrap}
.view-toggle{border:1px solid #dce5eb;background:#f7f9fb;border-radius:6px;color:#7890a1;padding:8px 12px;font-size:10px;font-weight:700}
.view-toggle.active{background:#e8f1f7;color:#286a90;border-color:#c6dfec}
.preview-toolbar{display:flex;justify-content:space-between;align-items:center;padding:13px 32px;color:#73889a;font-size:11px;flex-shrink:0}
#preview-status{display:flex;gap:8px;align-items:center}
.preview-dot{height:7px;width:7px;background:#ddac55;border-radius:50%}
.preview-dot.ready{background:#369773}
.preview-scroll{flex:1;overflow:auto;padding:14px 28px 40px;background:linear-gradient(135deg,#eaf0f4,#e5ebf0)}
.paper-wrap{width:min(100%,940px);margin:0 auto;background:white;box-shadow:0 8px 35px #203a5320,0 0 0 1px #d9e2e8;transition:width .2s}
.paper-wrap.zoomed{width:940px;max-width:none}
#report-canvas{display:block;width:100%;height:auto;background:#fff}
.bottom-hint{display:flex;gap:10px;align-items:center;background:#f9fbfc;border-top:1px solid #dee6ec;color:#718496;font-size:10px;line-height:1.5;padding:13px 29px;flex-shrink:0}
.hint-icon{height:17px;width:17px;border:1px solid #c1d0dc;border-radius:50%;display:grid;place-items:center;color:#7b98ad;font-size:10px;font-weight:700;flex-shrink:0}
.mapping-sidebar .intro h1{font-size:27px}
.mapping-field-gap{margin-top:13px}
.mapping-new-plant{margin-top:10px;border:1px solid #d5e4eb;border-radius:9px;background:#f9fcfd;padding:12px}
.mapping-new-plant .field-label{margin-bottom:5px}
.mapping-meter-choice{background:#fff;border:0;padding:11px 0 2px;margin:0}
.mapping-upload{display:flex;align-items:center;gap:10px;border:1px dashed #c0d1dd;background:#f8fbfd;border-radius:8px;padding:11px 10px;margin:9px 0;cursor:pointer;transition:background .16s,border-color .16s}
.mapping-upload:hover{background:#edf6fb;border-color:#5295b5}
.mapping-upload.disabled,.mapping-upload.disabled:hover{cursor:not-allowed;opacity:.55;background:#f3f6f8;border-color:#c9d4dc}
.draft-filled-preview{margin-top:13px;border:1px solid #dbe6ec;border-radius:8px;padding:12px;background:#fafcfe}
.draft-filled-preview:empty{display:none}
.draft-filled-preview>strong{display:block;font-size:12px;color:#214d6a}
.draft-filled-preview .mapping-small-note{margin:5px 0 9px}
.draft-filled-table{max-width:100%;overflow-x:auto}
.draft-filled-table table{min-width:550px;width:100%;font-size:10px;border-collapse:collapse}
.draft-filled-table td,.draft-filled-table th{padding:6px 7px;border-bottom:1px solid #e1e9ed;text-align:right;font-variant-numeric:tabular-nums}
.draft-filled-table td:first-child,.draft-filled-table th:first-child{text-align:left}
.draft-download-file{display:flex;align-items:center;justify-content:center;text-decoration:none;text-align:center;line-height:1.4}
.mapping-upload-icon{width:44px;height:37px;flex-shrink:0;display:grid;place-items:center;border-radius:6px;background:#e2eef5;color:#377494;font-size:10px;font-weight:800;letter-spacing:.3px}
.mapping-upload strong{display:block;font-size:11px;color:#24435a}
.mapping-upload small{display:block;color:#8ca0af;font-size:9px;line-height:1.4;overflow-wrap:anywhere;margin-top:3px}
.mapping-download{width:100%;margin-top:8px}
.mapping-workspace{flex:1;overflow:auto;padding:23px 30px 42px;background:#eef2f5}
.mapping-overview{display:flex;align-items:center;justify-content:space-between;gap:18px;border-radius:13px;background:#143b57;color:white;padding:21px 24px;margin-bottom:17px}
.mapping-overview strong{font-size:18px;letter-spacing:-.3px}
.mapping-overview p{margin:6px 0 0;color:#b7cfde;font-size:11px;line-height:1.5}
.mapping-stage{background:#ffffff20;border:1px solid #ffffff38;border-radius:30px;white-space:nowrap;font-size:10px;font-weight:800;padding:7px 11px}
.mapping-stage.good{background:#246e54;border-color:#63a68c}
.mapping-stage.review{background:#986522;border-color:#d2a461}
.mapping-alert{font-size:11px;line-height:1.65;background:#fff6e5;color:#8b632c;border:1px solid #ead9b9;border-radius:9px;padding:12px 15px;margin-bottom:16px}
.mapping-alert.mismatch{background:#fff0ee;border-color:#e8b4ac;color:#9c3a30}
.mapping-sheet-choice{background:#fff;border:1px solid #dce4ea;border-radius:10px;padding:14px 16px;display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin-bottom:16px}
.mapping-sheet-choice label{font-size:11px;color:#35536a;font-weight:750}
.mapping-sheet-choice select{width:220px;max-width:100%;padding:9px}
.mapping-sheet-choice span{font-size:10px;color:#69869b;line-height:1.4}
.mapping-layout-choice{background:#f8fbfd;border:1px solid #d9e8ef;border-radius:10px;padding:12px 15px;margin-bottom:16px}
.mapping-layout-choice label{display:block;font-size:11px;color:#35536a;font-weight:750;margin-bottom:7px}
.mapping-layout-choice select{width:100%;max-width:480px}
.mapping-layout-choice .muted-note{margin-top:7px}
.mapping-card{background:#fff;border:1px solid #dce4ea;box-shadow:0 3px 12px #334c5e0a;border-radius:12px;padding:19px 20px;margin-bottom:16px;min-width:0}
.mapping-card-wide{padding-bottom:16px}
.card-head{display:flex;justify-content:space-between;align-items:start;gap:18px;margin-bottom:17px}
.card-head h2{font-size:14px;color:#19374e;margin:0}
.card-head p{margin:5px 0 0;font-size:10px;color:#8496a4;line-height:1.5}
.card-head>small{white-space:nowrap;font-size:10px;color:#5f8199}
.mapping-table-scroll{overflow:auto;border:1px solid #e1e8ee;border-radius:8px}
.mapping-table{border-collapse:collapse;width:100%;min-width:850px;text-align:left}
.mapping-table th{font-size:10px;background:#edf3f7;color:#516a7c;letter-spacing:.2px;font-weight:750;padding:12px 11px;border-bottom:1px solid #dce6eb;white-space:nowrap}
.mapping-table td{font-size:11px;color:#26435a;border-bottom:1px solid #e6edf0;padding:10px 11px;vertical-align:middle}
.mapping-table tr:last-child td{border-bottom:none}
.mapping-table td:first-child{font-weight:750;min-width:140px}
.mapping-table td select,.mapping-table td input{min-width:140px;width:100%;max-width:230px;padding:9px;font-size:10px}
.mapping-table td input{max-width:150px}
.mapping-table td small{color:#7b8fa1;font-size:9px;display:block;margin-top:5px;line-height:1.4}
.draft-date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:end;margin:12px 0}
.draft-date-grid input{display:block;width:100%;padding:10px 11px;margin-top:6px}
.draft-date-context{font-size:11px;color:#668296;line-height:1.6;padding-bottom:8px}
.draft-device-assignments{border:1px solid #e1e8ee;border-radius:9px;background:#fafcfd;padding:12px 13px;margin:14px 0;overflow-x:auto}
.draft-device-assignments strong{display:block;color:#31526b;font-size:11px;margin-bottom:10px}
.draft-device-table{width:100%;border-collapse:collapse;font-size:11px;min-width:320px}
.draft-device-table td,.draft-device-table th{padding:8px 10px;border-bottom:1px solid #e0e9ee;text-align:left}
.draft-device-table th{color:#748b9d;font-weight:700;background:#edf3f7}
.draft-device-table select{min-width:150px;padding:8px;max-width:100%}
.ingeteam-identity{border:1px solid #bcd6e5;border-radius:10px;background:#f6fbfd;padding:17px;margin:15px 0}
.ingeteam-identity .card-head{margin-bottom:12px}
.ingeteam-identity>select{max-width:430px;margin-bottom:5px}
.ingeteam-identity .mapping-table-scroll{background:white;margin:12px 0}
.identity-table{width:100%;border-collapse:collapse;min-width:560px;font-size:11px}
.identity-table td,.identity-table th{padding:10px;border-bottom:1px solid #e2ebf0;text-align:left}
.identity-table th{background:#eaf3f8;color:#547084;font-weight:750}
.identity-table td:nth-child(3){font-family:ui-monospace,Consolas,monospace;word-break:break-all}
.identity-warning{background:#fff1ec;border:1px solid #ecc4ba;color:#9d493b;border-radius:7px;padding:10px;font-size:11px;line-height:1.5}
.identity-replacement{display:flex;align-items:flex-start;gap:8px;font-size:11px;color:#844e32;margin:10px 0}
.identity-replacement input{accent-color:#a66d38;margin-top:2px}
.identity-source-confirm{display:flex;align-items:flex-start;gap:8px;font-size:11px;font-weight:650;color:#31546d;margin:11px 0}
.identity-source-confirm input{accent-color:#287aa0;margin-top:2px}
.ingeteam-identity button{width:auto;margin-top:10px}
.draft-data-summary{font-size:11px;line-height:1.6;color:#386075;background:#eff6fa;border:1px solid #d6e7f0;padding:12px 14px;border-radius:9px}
.draft-data-summary.invalid{background:#fff1ef;border-color:#e9bab2;color:#a33b35}
.draft-meter-fields{background:#f9fbfc;border:1px solid #dfe9ef;padding:12px 14px;border-radius:9px;margin-top:13px}
.draft-meter-fields .muted-note{margin-top:0}
.draft-meter-fields .draft-date-grid{margin-bottom:0}
.draft-meter-fields .field-label{margin-bottom:0}
.draft-action-row{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch;margin-top:13px}
.draft-action-row .primary-button,.draft-action-row .secondary-button{width:auto;max-width:none;flex:1 1 240px;margin-top:0;padding:9px 16px}
#draft-download-status{font-size:11px}
.mapping-score{font-size:10px;font-weight:750;border-radius:6px;padding:5px 8px;white-space:nowrap}
.mapping-score.strong{background:#e8f6ef;color:#257358}
.mapping-score.possible{background:#fff4df;color:#a36d24}
.mapping-score.unknown{background:#fbe9e9;color:#ad4b4b}
.mapping-preview-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(320px,1.25fr);gap:16px}
.mapping-image-preview{display:block;max-width:100%;width:auto;max-height:490px;object-fit:contain;margin:0 auto;box-shadow:0 0 0 1px #e4e9ef;background:#f9fbfd}
#mapping-curve{width:100%;height:auto;border:1px solid #e6edf1;background:white}
.mapping-small-note{font-size:10px;color:#7c8fa0;line-height:1.6;margin:10px 0 0}
.mapping-model-note{max-width:840px;margin:6px auto 0;text-align:center}
.mapping-evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mapping-evidence-grid>div>strong{font-size:11px;color:#536d80}
.evidence-scroll{border:1px solid #e1e9ed;border-radius:7px;padding:9px;background:#fafcfd;overflow:auto;max-height:260px;margin-top:8px;font-size:10px;color:#586f7e;line-height:1.6}
.evidence-scroll code{color:#31506b;background:#e9f1f6;padding:3px 5px;border-radius:3px}
.evidence-scroll table{border-collapse:collapse;font-size:9px;white-space:nowrap}
.evidence-scroll td,.evidence-scroll th{border:1px solid #dee7eb;padding:5px 7px;max-width:195px;overflow:hidden;text-overflow:ellipsis}
.evidence-scroll th{background:#eaf1f5}
.mapping-library-empty{color:#92a1ae;font-size:11px;padding:10px 0}
.mapping-library-item{border-top:1px solid #e3ebef;display:grid;grid-template-columns:minmax(100px,1fr) minmax(160px,1.4fr) auto;gap:12px;align-items:center;padding:13px 0;font-size:11px}
.mapping-library-item strong{color:#1b4261}
.mapping-library-item small{display:block;color:#8c9ba7;margin-top:3px;font-size:9px}
.mapping-library-item button{font-size:10px;padding:8px 10px;border:1px solid #d7e4ec;background:#f2f7fa;color:#265879;border-radius:6px}
[hidden]{display:none!important}
@media(max-width:1100px){.sidebar{width:335px}.topbar{padding:0 21px}.preview-toolbar{padding:12px 21px}.preview-scroll{padding:12px 16px}}
@media(max-width:760px){.app-shell{display:block;max-height:none;overflow:visible}.sidebar{width:100%;max-height:none}.sidebar-content{overflow:visible;padding:20px}.brand{padding:15px 20px}.mode-nav{padding:12px 20px 0}.main-panel{max-height:none}.topbar{height:auto;min-height:75px;padding:15px 20px;gap:15px;flex-wrap:wrap}.top-actions{flex-wrap:wrap}.privacy-pill{display:none}.preview-scroll{overflow:auto;padding:10px}.preview-toolbar{padding:11px 14px}.paper-wrap{width:100%;min-width:560px}.bottom-hint{padding:12px 18px}.sidebar-footer{padding:14px 20px}.mapping-workspace{padding:15px}.mapping-overview{padding:18px;flex-wrap:wrap}.mapping-preview-grid,.mapping-evidence-grid,.draft-date-grid{grid-template-columns:1fr}}
@media print{body{background:white!important}.sidebar,.topbar,.preview-toolbar,.bottom-hint,#mapping-main{display:none!important}.app-shell,#daily-main,.preview-scroll{display:block!important;max-height:none!important;overflow:visible!important;background:white!important;padding:0!important;margin:0!important}.paper-wrap,.paper-wrap.zoomed{box-shadow:none!important;margin:0!important;width:100%!important;max-width:none!important;min-width:0!important}#report-canvas{width:100%!important;max-height:100vh!important;object-fit:contain} @page{size:A4 portrait;margin:3mm}}
