body { overflow-x: hidden; }
.admin-shell main, .panel, .rfid-settings-grid > * { min-width: 0; }
.rfid-settings-panel { margin: 0 0 16px; padding: 24px; }
.rfid-status { display: inline-flex; align-items: center; gap: 7px; border-radius: 99px; padding: 7px 10px; font-size: 9px; }
.rfid-status i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 4px color-mix(in srgb, currentColor 14%, transparent); }
.rfid-status.offline { color: #83949c; background: #f1f5f5; }
.rfid-status.connecting { color: #a87022; background: #fff7e7; }
.rfid-status.online { color: #118579; background: #e7f8f5; }
.rfid-status.error { color: #bd4a4f; background: #fff0f0; }
.rfid-settings-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .78fr); gap: 18px; margin-top: 20px; }
.rfid-connection, .rfid-test { border: 1px solid #e1ecef; border-radius: 17px; padding: 18px; background: #fbfdfe; }
.rfid-connection { display: grid; grid-template-columns: 50px 1fr; align-items: center; column-gap: 13px; }
.rfid-device-icon { position: relative; display: grid; width: 50px; height: 50px; place-items: center; border-radius: 15px; background: linear-gradient(145deg, #075d91, #12a8d9); box-shadow: 0 10px 24px rgba(7, 93, 145, .18); }
.rfid-device-icon span { width: 20px; height: 25px; border: 2px solid #dff8ff; border-radius: 6px; }
.rfid-device-icon i { position: absolute; width: 5px; height: 5px; border: 1px solid #a6eaff; border-radius: 50%; }
.rfid-device-icon i:nth-of-type(1) { right: 10px; }
.rfid-device-icon i:nth-of-type(2) { right: 5px; width: 14px; height: 14px; opacity: .6; }
.rfid-device-icon i:nth-of-type(3) { right: 0; width: 24px; height: 24px; opacity: .3; }
.rfid-device-copy p { margin: 0 0 4px; color: #078fce; font-size: 8px; font-weight: 850; letter-spacing: 1px; text-transform: uppercase; }
.rfid-device-copy h3, .rfid-test h3 { margin: 0; color: #173b50; font-size: 14px; letter-spacing: -.35px; }
.rfid-device-copy > span { display: block; margin-top: 4px; color: #718892; font-size: 9px; line-height: 1.45; }
.rfid-connection label { grid-column: 1 / -1; margin: 15px 0 6px; color: #647c85; font-size: 8px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase; }
.rfid-connection input, .rfid-connection select { grid-column: 1 / -1; width: 100%; border: 1px solid #dce8ed; border-radius: 10px; padding: 10px 11px; outline: 0; color: #21475d; background: #fff; font: inherit; font-size: 10px; }
.rfid-connection input:focus, .rfid-connection select:focus { border-color: #078fce; box-shadow: 0 0 0 3px rgba(7, 143, 206, .11); }
.rfid-connection select:disabled { color: #8b999e; background: #f3f6f6; }
.rfid-connection-actions { display: flex; grid-column: 1 / -1; gap: 8px; margin-top: 14px; }
.rfid-connect, .rfid-disconnect, .rfid-read { border: 0; border-radius: 11px; padding: 11px 13px; font-size: 10px; font-weight: 800; }
.rfid-connect, .rfid-read { color: #fff; background: linear-gradient(100deg, #075d91, #0c9fd5); }
.rfid-disconnect { border: 1px solid #dce8ed; color: #567685; background: #fff; }
.rfid-connect:disabled, .rfid-read:disabled { opacity: .48; cursor: default; }
.rfid-help { grid-column: 1 / -1; min-height: 14px; margin: 10px 1px 0; color: #708790; font-size: 9px; line-height: 1.45; }
.rfid-help.error { color: #b9484d; font-weight: 700; }
.rfid-test { display: flex; flex-direction: column; overflow: hidden; background: linear-gradient(150deg, #f9fdff, #edf9ff); }
.rfid-test-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.rfid-test-heading span { display: block; margin-bottom: 4px; color: #078fce; font-size: 8px; font-weight: 850; letter-spacing: 1px; text-transform: uppercase; }
.rfid-test-heading > b { border-radius: 99px; padding: 5px 8px; color: #758b94; background: #e6eff1; font-size: 8px; }
.rfid-reader-visual { position: relative; display: grid; min-height: 142px; margin: 10px 0; place-items: center; }
.rfid-rings { position: absolute; display: grid; width: 116px; height: 116px; place-items: center; }
.rfid-rings i { position: absolute; width: 52px; height: 52px; border: 1px solid rgba(7, 143, 206, .26); border-radius: 50%; }
.rfid-rings i:nth-child(2) { width: 83px; height: 83px; opacity: .65; }
.rfid-rings i:nth-child(3) { width: 116px; height: 116px; opacity: .35; }
.rfid-card { position: relative; z-index: 1; width: 111px; height: 70px; border: 1px solid rgba(255,255,255,.8); border-radius: 12px; padding: 12px; color: #075d91; background: linear-gradient(145deg, #fff, #b7eaff); box-shadow: 0 14px 30px rgba(7, 93, 145, .18); transform: rotate(-4deg); }
.rfid-card b, .rfid-card span { display: block; }
.rfid-card b { font-size: 10px; letter-spacing: -.3px; }
.rfid-card span { margin-top: 2px; font-size: 5px; font-weight: 850; letter-spacing: 1.2px; }
.rfid-card small { position: absolute; right: 10px; bottom: 10px; font-size: 6px; font-weight: 850; }
.rfid-reader-visual.reading .rfid-card { animation: rfid-card-read 1s ease-in-out infinite alternate; }
.rfid-reader-visual.reading .rfid-rings i { animation: rfid-ring-read 1.2s ease-out infinite; }
.rfid-reader-visual.reading .rfid-rings i:nth-child(2) { animation-delay: .18s; }
.rfid-reader-visual.reading .rfid-rings i:nth-child(3) { animation-delay: .36s; }
@keyframes rfid-card-read { to { transform: translateY(-7px) rotate(1deg); } }
@keyframes rfid-ring-read { from { opacity: .7; transform: scale(.55); } to { opacity: 0; transform: scale(1.12); } }
.rfid-result { display: grid; grid-template-columns: 1fr auto; border-top: 1px solid #dcebf2; padding-top: 12px; }
.rfid-result span { color: #718892; font-size: 8px; font-weight: 750; text-transform: uppercase; }
.rfid-result strong { color: #075d91; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.rfid-result small { grid-column: 1 / -1; margin-top: 4px; color: #7d9098; font-size: 8px; }
.rfid-read { width: 100%; margin-top: 12px; }
.rfid-security-note { display: flex; align-items: flex-start; gap: 10px; margin-top: 16px; border: 1px solid #cce8f4; border-radius: 13px; padding: 11px 13px; color: #527387; background: #f0faff; }
.rfid-security-note > span { display: grid; flex: 0 0 auto; width: 20px; height: 20px; place-items: center; border-radius: 50%; color: #fff; background: #138bbd; font-size: 10px; font-weight: 900; }
.rfid-security-note p { margin: 1px 0 0; font-size: 9px; line-height: 1.5; }
.rfid-security-note b { color: #24566f; }
@media (max-width: 1060px) { .rfid-settings-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 920px) { .admin-shell { grid-template-columns: minmax(0, 1fr); } .sidebar, .sidebar nav, .admin-shell main { min-width: 0; max-width: 100vw; } }
@media (max-width: 540px) { .rfid-settings-panel { padding: 17px; } .rfid-connection { grid-template-columns: 42px 1fr; padding: 14px; } .rfid-device-icon { width: 42px; height: 42px; } .rfid-connection-actions { flex-direction: column; } }
@media (prefers-reduced-motion: reduce) { .rfid-reader-visual.reading .rfid-card, .rfid-reader-visual.reading .rfid-rings i { animation: none; } }
