:root{--color-primary:#8e1537;--color-primary-dark:#6f102b;--color-primary-soft:#f7e7ed;--color-bg:#f3f4f6;--color-surface:#fff;--color-border:#dde1e6;--color-text:#1f2933;--color-muted:#687382;--color-success:#16845f;--color-warning:#b7791f;--color-danger:#b42318;--font-body:"Montserrat", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-title:"Poppins", "Montserrat", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:var(--color-bg);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:7px;min-height:42px;font-weight:700}button:disabled{cursor:not-allowed;opacity:.6}input,select{background:var(--color-surface);width:100%;min-height:42px;color:var(--color-text);border:1px solid #c8ced6;border-radius:7px;padding:0 12px}input:focus,select:focus,button:focus-visible{outline-offset:2px;outline:3px solid #8e153738}table{border-collapse:collapse;table-layout:auto;width:100%}th,td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;padding:12px 14px}th{color:#596474;text-transform:uppercase;white-space:nowrap;background:#f8f9fb;font-size:.78rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;grid-template-columns:minmax(0,1fr) 360px;align-items:center;gap:40px;width:min(960px,100%);padding:48px;display:grid;box-shadow:0 16px 36px #1f293314}.login-panel h1,.topbar h1,.panel h2,.reader-card h3{font-family:var(--font-title);letter-spacing:0;margin:0}.login-panel h1{color:var(--color-primary);font-size:clamp(2rem,6vw,3.4rem);line-height:1.05}.login-copy{max-width:520px;color:var(--color-muted);margin:18px 0 0;font-size:1.05rem}.login-form,.field{display:grid}.login-form{gap:16px}.field{gap:7px}.field label{color:#3c4654;font-size:.88rem;font-weight:700}.primary-button{background:var(--color-primary);color:#fff;padding:0 18px}.primary-button:hover:not(:disabled){background:var(--color-primary-dark)}.secondary-button{background:var(--color-surface);color:#273241;border:1px solid #c8ced6;padding:0 14px}.secondary-button:hover:not(:disabled){background:#fafbfc;border-color:#aab3bf}.form-error,.app-alert{color:var(--color-danger);margin:0;font-weight:700}.app-alert{background:#fff1ef;border:1px solid #f0b8b1;border-radius:7px;padding:12px 14px}.app-shell{width:min(1480px,100%);margin:0 auto;padding:clamp(14px,2vw,24px)}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;display:flex}.topbar h1{color:var(--color-primary);font-size:clamp(1.8rem,4vw,2.6rem)}.topbar__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.main-nav{border:1px solid var(--color-border);background:var(--color-surface);scrollbar-width:thin;border-radius:8px;flex-wrap:nowrap;gap:8px;margin-bottom:18px;padding:8px;display:flex;overflow-x:auto}.nav-button{color:#3d4653;min-height:40px;font-family:var(--font-title);background:0 0;border:1px solid #0000;flex:none;padding:0 14px}.nav-button:hover{background:#f7f8fa}.nav-button--active{background:var(--color-primary);color:#fff;border-color:#8e153759}.nav-button--active:hover{background:var(--color-primary-dark)}.eyebrow{color:var(--color-muted);text-transform:uppercase;margin:0 0 6px;font-size:.74rem;font-weight:800}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px;display:grid}.quick-actions{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;padding:16px;display:grid}.quick-action{border:1px solid var(--color-border);min-height:96px;color:var(--color-text);text-align:left;background:#fafbfc;align-content:center;gap:4px;padding:16px;display:grid}.quick-action:hover{background:var(--color-primary-soft);border-color:#8e153759}.quick-action span{color:var(--color-muted);text-transform:uppercase;font-size:.78rem;font-weight:800}.quick-action strong{color:var(--color-primary);font-family:var(--font-title);font-size:1rem}.summary-section{grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px;display:grid}.summary-card,.panel,.reader-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px}.summary-card{align-content:center;gap:4px;min-height:96px;padding:16px;display:grid}.summary-card--primary{background:var(--color-primary-soft);border-color:#8e153759}.summary-card--status{align-content:center}.summary-card__label{color:var(--color-muted);font-size:.84rem;font-weight:800}.summary-card strong{color:var(--color-primary);font-family:var(--font-title);font-size:1.65rem}.panel{min-width:0;overflow:hidden}.panel--wide{grid-column:1/-1}.panel__header{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;min-height:76px;padding:18px;display:flex}.panel__header--stackable{align-items:flex-end}.panel-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.segmented-control{background:#f8f9fb;border:1px solid #c8ced6;border-radius:8px;gap:2px;padding:3px;display:inline-flex}.segmented-control__button{color:#3d4653;background:0 0;border-radius:6px;min-height:34px;padding:0 12px}.segmented-control__button--active{background:var(--color-primary);color:#fff}.count-badge{background:var(--color-primary-soft);min-width:34px;height:34px;color:var(--color-primary);font-family:var(--font-title);border-radius:999px;place-items:center;font-weight:800;display:inline-grid}.connection-status{color:#2b3440;background:#fff;border:1px solid #cbd2db;border-radius:999px;align-items:center;gap:8px;min-height:38px;padding:0 12px;font-weight:800;display:inline-flex}.connection-status__dot{background:#8a96a3;border-radius:999px;width:9px;height:9px}.connection-status--connected .connection-status__dot,.status-badge--online{background:var(--color-success)}.connection-status--connecting .connection-status__dot{background:var(--color-warning)}.connection-status--error .connection-status__dot,.status-badge--offline{background:var(--color-danger)}.reader-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;padding:16px;display:grid}.reader-filters{border-bottom:1px solid var(--color-border);background:#fbfcfd;grid-template-columns:minmax(260px,1fr) 170px max-content;align-items:end;gap:12px;padding:14px 18px;display:grid}.reader-search,.reader-status-filter{color:#3c4654;gap:6px;font-size:.88rem;font-weight:700;display:grid}.reader-count{min-height:42px;color:var(--color-muted);white-space:nowrap;align-items:center;font-size:.88rem;font-weight:800;display:inline-flex}.reader-card{gap:14px;padding:14px;display:grid}.reader-card__header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.reader-card__header h3{font-size:1rem}.reader-card__header span{color:var(--color-muted)}.reader-card__header .status-badge{color:#fff}.status-badge{color:#fff;border-radius:999px;flex:none;padding:4px 9px;font-size:.75rem;font-weight:800}.readers-table td{vertical-align:middle}.readers-table .status-badge{justify-content:center;min-width:104px;display:inline-flex}.detail-grid,.device-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.detail-grid{margin:0}.detail-grid div,.device-summary div{min-width:0}.detail-grid dt,.device-summary__label{color:var(--color-muted);text-transform:uppercase;font-size:.75rem;font-weight:800}.detail-grid dd{overflow-wrap:anywhere;margin:2px 0 0;font-weight:700}.command-form{gap:14px;padding:18px;display:grid}.command-form--stacked{grid-template-columns:1fr}.device-summary{border:1px solid var(--color-border);background:#fafbfc;border-radius:8px;padding:12px}.device-summary strong,.device-summary code{overflow-wrap:anywhere;margin-top:2px;display:block}.command-log{background:#fafbfc;height:376px;padding:14px;overflow:auto}.log-entry{background:#fff;border-left:4px solid #8b98a5;border-radius:6px;gap:4px;margin-bottom:10px;padding:10px 12px;display:grid}.log-entry--success{border-left-color:var(--color-success)}.log-entry--error{border-left-color:var(--color-danger)}.log-entry time{color:var(--color-muted);font-size:.78rem;font-weight:800}.log-entry p{margin:0}.empty-state,.table-empty{color:var(--color-muted)}.empty-state{margin:0;padding:18px}.empty-state--compact{padding:0;font-size:.9rem}.search-form{grid-template-columns:minmax(min(100%,260px),1fr) auto;gap:10px;width:min(620px,100%);display:grid}.table-wrap{overflow:auto}.table-wrap table{min-width:760px}.readers-table{min-width:980px}.readers-table th:first-child,.readers-table td:first-child{min-width:220px}.readers-table th:nth-child(2),.readers-table td:nth-child(2){min-width:170px}.readers-table th:nth-child(3),.readers-table td:nth-child(3){min-width:140px}.readers-table th:nth-child(4),.readers-table td:nth-child(4){min-width:190px}.readers-table th:nth-child(5),.readers-table td:nth-child(5){min-width:260px}.events-table{min-width:1080px}.events-table th:first-child,.events-table td:first-child{min-width:90px}.events-table th:nth-child(2),.events-table td:nth-child(2){min-width:190px}.events-table th:nth-child(3),.events-table td:nth-child(3){min-width:220px}.events-table th:nth-child(4),.events-table td:nth-child(4){min-width:250px}.events-table th:nth-child(5),.events-table td:nth-child(5){min-width:190px}.events-table th:nth-child(6),.events-table td:nth-child(6){min-width:130px}.event-data{overflow-wrap:anywhere;max-width:420px}.event-client{overflow-wrap:anywhere;max-width:220px}.detail-button{min-width:112px}.modal-backdrop{z-index:20;background:#1118276b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-panel{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;grid-template-rows:auto auto minmax(0,1fr);width:min(940px,100%);max-height:min(760px,100vh - 40px);display:grid;overflow:hidden;box-shadow:0 24px 70px #11182738}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:14px;padding:18px;display:flex}.modal-header h2{color:var(--color-primary);font-family:var(--font-title);margin:0}.modal-close{flex:none}.event-detail-grid{border-bottom:1px solid var(--color-border);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:0;padding:16px 18px;display:grid}.event-detail-grid div{min-width:0}.event-detail-grid dt{color:var(--color-muted);text-transform:uppercase;font-size:.75rem;font-weight:800}.event-detail-grid dd{overflow-wrap:anywhere;margin:2px 0 0;font-weight:700}.json-detail{gap:8px;min-height:0;padding:16px 18px 18px;display:grid}.json-code{color:#e5e7eb;white-space:pre;background:#111827;border:1px solid #d6dce4;border-radius:8px;min-height:180px;margin:0;padding:14px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.86rem;line-height:1.55;overflow:auto}.json-token--key{color:#93c5fd}.json-token--string{color:#86efac}.json-token--number{color:#fbbf24}.json-token--boolean{color:#c4b5fd}.json-token--null{color:#fca5a5}.table-subtext{color:var(--color-muted);margin-top:2px;font-size:.82rem;display:block}.pagination-bar{color:var(--color-muted);grid-template-columns:1fr;align-items:start;gap:10px;padding:14px 18px;font-weight:700;display:grid}.pagination-bar--top{border-bottom:1px solid var(--color-border)}.pagination-controls{grid-template-columns:max-content 88px 104px 104px;justify-content:start;align-items:center;gap:10px;display:grid}.pagination-controls select{width:88px}.pagination-controls .secondary-button{min-width:104px}@media (width<=1100px){.dashboard-grid{grid-template-columns:1fr}}@media (width<=900px){.login-panel{grid-template-columns:1fr;padding:32px}.topbar,.topbar__actions,.panel-actions,.panel__header--stackable{flex-direction:column;align-items:flex-start}.search-form{grid-template-columns:1fr;width:100%}.search-form .primary-button{width:100%}.reader-filters{grid-template-columns:1fr;align-items:stretch}.reader-count{white-space:normal;min-height:auto}.pagination-bar{width:100%;padding:12px 14px}.pagination-controls{grid-template-columns:max-content 72px minmax(72px,1fr) minmax(78px,1fr);gap:6px;width:100%}.pagination-controls label{white-space:nowrap}.pagination-controls select{width:72px;min-width:0;padding:0 8px}.pagination-controls .secondary-button{width:auto;min-width:0;padding:0 8px}}@media (width<=560px){.app-shell,.login-shell{padding:14px}.login-panel{padding:22px}.summary-section,.detail-grid,.device-summary,.quick-actions{grid-template-columns:1fr}.main-nav{border-left:0;border-right:0;border-radius:0;margin-left:-14px;margin-right:-14px}.nav-button{padding:0 12px}.panel__header{flex-direction:column;align-items:flex-start}.modal-backdrop{padding:12px}.modal-panel{max-height:calc(100vh - 24px)}.modal-header{flex-direction:column;align-items:flex-start}.modal-close,.panel-actions,.segmented-control,.secondary-button,.primary-button{width:100%}.pagination-controls .secondary-button{width:auto}.segmented-control__button{flex:1 1 0}}
