:root{font-family:Segoe UI,Aptos,sans-serif;color:#1e252b;background:#eef2f4}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{border:0;border-radius:6px;padding:10px 14px;background:#dfe7eb;color:#162129;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}input,select,textarea{width:100%;border:1px solid #c8d2d8;border-radius:6px;padding:9px 10px;background:#fff;color:#1e252b}label{display:grid;gap:6px;font-size:.86rem;font-weight:650}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,rgba(67,209,122,.18),transparent 34%),linear-gradient(135deg,#15232d,#203846 48%,#eef2f4 48% 100%)}.login-card{width:min(420px,100%);display:grid;gap:16px;padding:28px;border:1px solid rgba(255,255,255,.42);border-radius:18px;background:#fffffff0;box-shadow:0 24px 80px #15232d47}.login-brand{display:grid;gap:2px;text-transform:uppercase}.login-brand span{color:#66808d;font-size:.76rem;font-weight:800}.login-brand strong{color:#15232d;font-size:2.2rem;line-height:1}.app-shell{min-height:100vh;display:grid;grid-template-columns:320px 1fr}.sidebar{background:#15232d;color:#f7fbfc;padding:24px;display:flex;flex-direction:column;gap:20px}.brand{display:grid;gap:2px;text-transform:uppercase;letter-spacing:0}.brand span{font-size:.76rem;color:#9fb1bb}.brand strong{font-size:1.9rem}.secondary{background:#2d4655;color:#fff}.secondary.active-menu{background:#1f7a59;box-shadow:inset 0 0 0 1px #ffffff29}.reader-list{display:grid;gap:10px;overflow:auto}.simulator-list{border-top:1px solid rgba(255,255,255,.12);padding-top:10px}.reader-item{align-items:stretch;background:#213541;border-left:4px solid transparent;border-radius:6px;color:#fff;display:grid;grid-template-columns:1fr auto;overflow:hidden}.reader-select{background:transparent;border-radius:0;color:inherit;display:grid;gap:4px;padding:10px 12px;text-align:left}.reader-rename,.reader-delete{align-self:stretch;background:#ffffff14;border-radius:0;min-width:42px;padding:0}.reader-rename{color:#d8ffea;font-size:1rem}.reader-rename:hover:not(:disabled){background:#ffffff2e;color:#fff}.reader-delete{color:#ffd9d9;font-size:1.3rem}.reader-delete:hover:not(:disabled){background:#8d2f2f;color:#fff}.reader-item.active{border-color:#9bf2c3;background:#1f7a59;box-shadow:inset 0 0 0 1px #ffffff24,0 10px 24px #1f7a5938}.reader-item small{color:#adc0c8}.reader-item .reader-ip{color:#c7d9df;font-size:.78rem}.reader-item em{color:#43d17a;font-style:normal;font-size:.8rem}.reader-item.active small{color:#d8ffea}.reader-item.active em{color:#fff}.virtual-badge{background:#dff6e9;border-radius:999px;color:#176b4d;display:inline-block;font-size:.72rem;margin-left:8px;padding:3px 8px;text-transform:uppercase;vertical-align:middle}.workspace{padding:28px;display:grid;gap:20px}.topbar{display:flex;justify-content:space-between;gap:24px;align-items:center}.eyebrow{margin:0 0 4px;color:#59717f;font-size:.78rem;text-transform:uppercase;font-weight:700}h1,h2,h3,p{margin-top:0}h1{margin-bottom:4px;font-size:2rem}h2{font-size:1.05rem;margin-bottom:16px}h3{margin:18px 0 10px;font-size:.9rem;color:#4b626f}.actions{display:flex;gap:10px;flex-wrap:wrap}.primary{background:#176b4d;color:#fff}.danger{background:#9d3b3b;color:#fff}.helper-link{align-self:start;background:#edf2f4;border-radius:999px;color:#2d4655;font-size:.85rem;font-weight:800;padding:8px 12px;text-decoration:none}.helper-link:hover{background:#dfe7eb}.notice{border:1px solid #c8d2d8;background:#fff;padding:12px 14px;border-radius:6px}.notice.success{border-color:#9fd9b5;background:#effaf3;color:#176b4d}.notice.error{border-color:#e0abab;background:#fff1f1;color:#8d2f2f}.status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.status-card,.panel{background:#fff;border:1px solid #d8e1e5;border-radius:8px;box-shadow:0 10px 30px #1829340f}.status-card{padding:18px;display:grid;gap:4px}.status-card span,.status-card small,.muted{color:#6a7f89}.inline-help{align-self:end;margin:0}.status-card strong{font-size:1.5rem}.two-columns{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(420px,1.15fr);gap:18px;align-items:start}.two-columns.bottom{grid-template-columns:minmax(340px,.8fr) minmax(420px,1.2fr)}.stacked-section{display:grid;gap:18px}.panel{padding:20px;display:grid;gap:14px}.collapsible-panel{display:block}.collapsible-panel>summary{align-items:center;cursor:pointer;display:flex;gap:12px;justify-content:space-between;list-style:none}.collapsible-panel>summary::-webkit-details-marker{display:none}.collapsible-panel>summary h2{margin:0}.collapsible-panel>summary span{color:#6a7f89;font-size:.78rem;font-weight:700;text-transform:uppercase}.collapsible-panel>summary:after{background:#edf2f4;border-radius:999px;color:#415560;content:"+";display:grid;flex:0 0 28px;font-size:1.2rem;font-weight:800;height:28px;line-height:1;place-items:center;width:28px}.collapsible-panel[open]>summary:after{content:"-"}.collapsible-content{display:grid;gap:14px;padding-top:16px}.chips,.pin-grid{display:flex;flex-wrap:wrap;gap:8px}.chip,.pin{background:#edf2f4;border-radius:6px;padding:8px 10px;color:#415560}.chip.good,.pin.high{background:#dff6e9;color:#176b4d}.pin{width:68px;display:grid;gap:2px;justify-items:center}.pin strong{font-size:1.1rem}.pin:not(:disabled){cursor:pointer}.modal-backdrop{align-items:center;background:#0c1a236b;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:20}.modal-card{background:#fff;border:1px solid #d8e1e5;border-radius:14px;box-shadow:0 24px 70px #0c1a2347;display:grid;gap:16px;max-height:calc(100vh - 48px);max-width:820px;overflow:auto;padding:22px;width:min(820px,100%)}.modal-head{align-items:start;display:flex;justify-content:space-between;gap:16px}.modal-head h2{margin:0}.rename-modal-card{gap:18px;max-width:560px;overflow:hidden;padding:0}.rename-modal-head{align-items:flex-start;background:radial-gradient(circle at top left,rgba(31,122,89,.24),transparent 32%),linear-gradient(135deg,#1b3340,#243f4e);color:#fff;display:flex;gap:16px;justify-content:space-between;padding:22px}.rename-modal-head .eyebrow{color:#b8f0d8}.rename-modal-head h2{margin:3px 0 6px}.rename-modal-head span{color:#ffffffc7}.icon-button{align-items:center;background:#ffffff1f;border-radius:999px;color:#fff;display:inline-flex;font-weight:700;height:34px;justify-content:center;padding:0;width:34px}.icon-button:hover:not(:disabled){background:#ffffff38}.rename-modal-form{display:grid;gap:14px;padding:0 22px 22px}.reader-identity-card{background:#f1f7f5;border:1px solid #cfe2dc;border-radius:12px;display:grid;gap:4px;padding:14px}.reader-identity-card span,.reader-identity-card small{color:#607783}.reader-identity-card strong{color:#173b4a;font-size:1.12rem;letter-spacing:.02em}.modal-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.modal-actions.compact button{min-width:130px}.antenna-editor{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.antenna-row{border:1px solid #d8e1e5;border-radius:8px;padding:10px;display:grid;gap:8px}.antenna-row label,.inline-check,details label{display:flex;align-items:center;gap:8px}.antenna-row input[type=checkbox],.inline-check input[type=checkbox],details input[type=checkbox]{width:auto}.form-grid,.gpi-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.gpi-editor{border:1px solid #d8e1e5;border-radius:8px;padding:12px}.gpi-editor legend{font-weight:700;color:#4b626f}.reading-gpo-editor{border:1px solid #d8e1e5;border-radius:8px;background:#f8fbfc;padding:12px;display:grid;gap:10px}.reading-gpo-editor legend{font-weight:700;color:#4b626f}.reading-gpo-row{display:grid;grid-template-columns:minmax(90px,.6fr) minmax(100px,.8fr) minmax(170px,1fr) minmax(150px,1fr) auto;gap:8px;align-items:center}.reads-table{display:grid;gap:6px}.reads-head,.reads-row{display:grid;grid-template-columns:minmax(180px,1fr) 60px 70px 95px;gap:10px;align-items:center;padding:9px 10px;border-radius:6px}.reads-head{background:#15232d;color:#fff;font-weight:700}.reads-row{background:#f5f8f9}.reads-row span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-flow{display:grid;gap:14px}.preview-box,.action-card{border:1px solid #d8e1e5;border-radius:8px;background:#f8fbfc;padding:14px;display:grid;gap:12px}.preview-head{align-items:center;display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap}.preview-head strong{color:#2d4655}.action-card{background:#fff;border-left:4px solid #176b4d}.action-head,.gpo-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end}.gpo-columns{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.auth-editor,.body-builder,.gpo-rules,.query-params,.antenna-filter,.response-validation,.presence-state,.csv-output,.template-assignment{display:grid;gap:10px}.antenna-filter,.response-validation,.presence-state,.csv-output,.template-assignment{border:1px solid #d8e1e5;border-radius:8px;background:#f8fbfc;padding:12px}.presence-state.enabled{border-color:#b8d9c8;background:linear-gradient(180deg,#f5fbf8,#fff)}.presence-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.presence-options{display:flex;flex-wrap:wrap;gap:8px}.warning-text{margin:0;color:#9a4d0b;font-weight:700}.actions-row{display:flex;gap:10px;flex-wrap:wrap}.antenna-filter-options{display:flex;flex-wrap:wrap;gap:10px}.body-builder{border-top:1px dashed #d8e1e5;border-bottom:1px dashed #d8e1e5;gap:14px;padding:14px 0}.body-builder-section{display:grid;gap:12px;overflow:hidden;border:1px solid #d8e1e5;border-radius:12px;background:#fbfdfe;box-shadow:0 1px #15232d0a}.body-builder-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 16px;border-left:5px solid #176b4d;background:linear-gradient(90deg,#f1f7f4,#fbfdfe 72%)}.body-builder-section-head h3{margin:0 0 5px;color:#2d4655;font-size:.95rem}.body-builder-section-head p{margin:0}.body-builder-section-head>span{flex:0 0 auto;padding:5px 10px;border:1px solid #cfe0d7;border-radius:999px;background:#fff;color:#176b4d;font-size:.78rem;font-weight:800;white-space:nowrap}.body-builder-section-body{display:grid;gap:10px;padding:0 16px 16px}.body-builder-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.body-add-button{width:auto;min-height:36px;padding:8px 13px;border-radius:999px;font-size:.88rem;font-weight:750}.body-remove-button{width:auto;padding:8px 11px;background:#edf2f4;color:#4b626f;font-size:.84rem;font-weight:700}.body-remove-button:hover{background:#f4e7e7;color:#8a3131}.field-row,.gpo-rule,.query-param-row,.response-rule-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:8px;align-items:center}.response-rule-row{grid-template-columns:minmax(140px,1fr) minmax(120px,.8fr) minmax(105px,.7fr) minmax(100px,.8fr) minmax(160px,1fr) auto}.field-row.expression{grid-template-columns:repeat(auto-fit,minmax(115px,1fr))}.tag-field-card{display:grid;overflow:hidden;border:1px solid #cfdbe0;border-radius:10px;background:#fff}.tag-field-card+.tag-field-card{margin-top:4px}.tag-field-card.compact{border-color:#d8e1e5}.field-row.primary{grid-template-columns:minmax(130px,1.1fr) minmax(105px,.7fr) minmax(150px,1.2fr) minmax(125px,.8fr) auto;padding:12px}.field-row.primary.expression{grid-template-columns:minmax(130px,.8fr) minmax(105px,.5fr) minmax(260px,2fr) minmax(125px,.7fr) auto}.advanced-transformations{border-top:1px solid #d8e1e5;background:#f8fbfc}.advanced-transformations>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;color:#2d4655;cursor:pointer;font-weight:700;list-style-position:inside}.advanced-transformations>summary:hover{background:#f0f5f7}.transform-count{padding:4px 8px;border-radius:999px;background:#e9eef1;color:#60727c;font-size:.78rem;white-space:nowrap}.transform-count.active{background:#e4f4ec;color:#176b4d}.advanced-transformations-content{display:grid;gap:12px;padding:13px;border-top:1px solid #d8e1e5}.transformation-order{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:#6b7d87;font-size:.82rem}.transformation-order strong{padding:4px 7px;border:1px solid #d8e1e5;border-radius:5px;background:#fff;color:#3a5260;font-size:.8rem}.transformation-order b{color:#176b4d}.conditional-insert{display:grid;gap:11px;padding:12px;border:1px solid #cbd8de;border-radius:8px;background:#fff}.conditional-insert.enabled{border-color:#a9d3bf;background:#eaf6f0}.conditional-insert-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.conditional-insert-head>strong{color:#176b4d}.conditional-insert-grid{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(140px,.8fr) minmax(190px,1.4fr);gap:10px}.conditional-insert-grid label{position:relative}.conditional-insert-grid label small{position:absolute;right:9px;bottom:11px;color:#778992;pointer-events:none}.conditional-insert-grid label:has(small) input{padding-right:82px}.advanced-transform-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.field-transform-preview{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center;padding:12px;border:1px solid #d8e1e5;border-radius:8px;background:#fff}.field-transform-preview small{display:block;margin-bottom:5px;color:#71838d;font-weight:700}.field-transform-preview code{display:block;overflow-wrap:anywhere;color:#1f3440;font-size:.84rem;font-weight:700}.field-transform-preview>strong{color:#176b4d;font-size:1.2rem}.transformation-note{margin:0}.object-list-builder{display:grid;gap:8px;padding:10px;margin:8px 0;border:1px solid #d8e1e5;border-radius:10px;background:#f8fbfc}.object-list-header{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:8px;align-items:center}.inline-hint{align-self:center;font-size:.86rem}.wide-input{min-width:220px}.field-row.fixed{grid-template-columns:minmax(120px,1fr) minmax(150px,1.2fr) minmax(110px,.6fr) auto}.field-row.timestamp{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.gpo-rule{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));padding:10px;border:1px solid #d8e1e5;border-radius:8px;background:#f8fbfc}.metadata-editor{display:grid;gap:10px;margin:14px 0}.metadata-options{display:flex;flex-wrap:wrap;gap:8px}.inline-check.compact{min-height:42px;padding:0 8px}.query-param-row{grid-template-columns:minmax(120px,1fr) minmax(150px,1.2fr) auto}pre{margin:0;overflow:auto;background:#15232d;color:#effaf3;border-radius:8px;padding:12px;font-size:.82rem}.monitor-page{min-height:100vh;padding:28px;background:radial-gradient(circle at top left,rgba(37,132,91,.18),transparent 36%),linear-gradient(135deg,#102129,#1f3840 42%,#eef3ef 42% 100%)}.monitor-link-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;padding:12px;border:1px solid #d8e1e5;border-radius:12px;background:#fff}.monitor-hero,.monitor-card,.monitor-lane{border:1px solid rgba(203,217,209,.88);border-radius:18px;background:#fffffff0;box-shadow:0 18px 48px #10212924}.monitor-hero{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:24px;margin-bottom:18px}.monitor-hero h1{margin:4px 0;font-size:clamp(2rem,5vw,4.2rem);line-height:1}.monitor-kicker{font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#19724e}.monitor-status{border-radius:999px;padding:10px 14px;font-weight:800;background:#f5dfdf;color:#9b2727}.monitor-status.ok{background:#dff3e7;color:#146c46}.monitor-grid,.monitor-lanes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-bottom:14px}.monitor-card{display:grid;gap:10px;padding:18px}.monitor-card strong,.monitor-lane strong{font-size:1.05rem}.monitor-actions{display:flex;gap:10px;flex-wrap:wrap}.monitor-physical{display:grid;grid-template-columns:auto 1fr;gap:8px 12px}.monitor-physical div,.monitor-metrics,.epc-list{display:flex;flex-wrap:wrap;gap:8px}.monitor-physical b,.monitor-metrics span,.epc-list code{border-radius:999px;padding:5px 9px;background:#edf4f1}.monitor-lanes{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.monitor-lane{display:grid;gap:12px;padding:18px;border-left:8px solid #aab8bf}.monitor-lane.ok{border-left-color:#1d7b55}.monitor-lane.error{border-left-color:#b93535}.monitor-lane.skipped{border-left-color:#c9952e}.monitor-lane-head{display:flex;justify-content:space-between;gap:12px}.monitor-lane-head div{display:grid;gap:4px}.friendly-body{display:grid;gap:8px}.friendly-body div{display:grid;grid-template-columns:minmax(100px,.35fr) 1fr;gap:8px;padding:8px;border-radius:10px;background:#f5faf7}@media (max-width: 980px){.app-shell,.two-columns,.two-columns.bottom,.status-grid{grid-template-columns:1fr}.sidebar{min-height:auto}.topbar{align-items:flex-start;flex-direction:column}.antenna-editor,.form-grid,.gpi-editor,.action-head,.gpo-columns,.field-row,.field-row.fixed,.field-row.timestamp,.gpo-rule,.reading-gpo-row,.query-param-row,.field-row.primary,.field-row.primary.expression,.conditional-insert-grid,.advanced-transform-grid,.field-transform-preview{grid-template-columns:1fr}.field-transform-preview>strong{transform:rotate(90deg);text-align:center}.monitor-page{padding:14px}.monitor-hero,.monitor-lane-head{align-items:flex-start;flex-direction:column}}
