body,h1,h2,h3,h4,h5,h6,#app{font-family:"Titillium Web",sans-serif}body,html{height:100%;width:100%}body{margin:0;padding:0;color:#fff;background-color:#191919}svg{width:100px;height:100px;margin:20px;display:inline-block}.credentials-error{text-align:center}#single-room__meeting-title_next{font-size:1.8v}#wlanDetailsTable{border:none;margin:0 auto;width:auto}#wlanDetailsTable td{border:none !important;font-size:2.3vw !important;padding:0 5px !important}#wlanDetailsTable tr{border:none !important}#fb__spinner-wrap{text-align:center}#fb__spinner-wrap #fb__spinner{width:100px;height:100px;margin:20px}.row{max-width:99%}.title-bar{background:#333;padding:0;border-bottom:1px solid #474747}.fb__nav-menu i,.fb__nav-menu-right i{font-size:24px;padding-right:8px}.fb__nav-menu a{color:#fff}.fb__nav-menu li{text-transform:uppercase;font-size:1.3vw;line-height:2;color:#fff;padding:8px 30px}.fb__nav-menu img{max-height:70px}.fb__nav-menu .fb__dropdown{margin-top:0px}.fb__nav-menu .fb__dropdown li{line-height:normal;padding:8px 30px;font-size:1.3vw}.fb__nav-menu-right li{text-transform:uppercase;padding:8px 30px;border-left:1px solid #474747;color:#fff;font-size:28px;line-height:2}.fb__nav-menu-right li:first-child{border:0}.fb__nav-menu-right li:first-child:hover{background:#333}.fb__nav-menu li:hover,.fb__nav-menu-right li:hover{background-color:rgba(69,89,117,.1)}.row-padder{padding:2px 0}.tracker-wrap{padding-top:15px}*,*::before,*::after{box-sizing:border-box}ul,ol{margin:0;padding:0;list-style:none}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1rem;line-height:1.5;color:#fff;background:linear-gradient(135deg, #111827 0%, #1f2937 100%);min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;font-weight:700;line-height:1.25;margin:0}h1{font-size:3rem}h2{font-size:2.25rem}h3{font-size:1.875rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1.125rem}p{margin:0 0 1rem 0}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 1rem}@media(max-width: 768px){html{font-size:14px}.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}}#page-wrap{height:100vh;overflow:hidden;background:#111827;display:flex;flex-direction:column}#title-bar-wrap{position:sticky;top:0;z-index:1020;box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}#title-bar-wrap .title-bar{background:linear-gradient(135deg, #1f2937 0%, #111827 100%);border-bottom:2px solid #627d98;padding:clamp(.75rem,2vw,1rem) clamp(1rem,3vw,1.5rem);display:flex;justify-content:space-between;align-items:center}#title-bar-wrap .title-bar .title-bar-left,#title-bar-wrap .title-bar .title-bar-right{display:flex;align-items:center}#title-bar-wrap .title-bar .fb__nav-menu{display:flex;align-items:center;gap:clamp(.75rem,3vw,1.5rem);margin:0}#title-bar-wrap .title-bar .fb__nav-menu li{padding:clamp(.25rem,1vw,.5rem) clamp(.5rem,2vw,1rem);font-size:clamp(.875rem,1.3vw,1.25rem);font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.05em;transition:all 200ms cubic-bezier(0.4, 0, 0.2, 1);border-radius:.5rem}#title-bar-wrap .title-bar .fb__nav-menu li:hover{background:hsla(0,0%,100%,.1)}#title-bar-wrap .title-bar .fb__nav-menu img{max-height:clamp(40px,6vh,60px);height:auto}#title-bar-wrap .title-bar .fb__nav-menu #fb__navbar-title{font-size:clamp(1.1rem,1.7vw,2rem);font-weight:700;color:#fff}#title-bar-wrap .title-bar .fb__nav-menu-right li{padding:clamp(.25rem,1vw,.5rem) clamp(.75rem,3vw,1.5rem);border-left:2px solid hsla(0,0%,100%,.2);color:#fff}#title-bar-wrap .title-bar .fb__nav-menu-right li:first-child{border-left:none}#title-bar-wrap .title-bar .fb__nav-menu-right li #clock{display:flex;align-items:center;gap:clamp(.5rem,1vw,1rem);font-size:clamp(1.3rem,2vw,2.5rem);font-weight:300}#title-bar-wrap .title-bar .fb__nav-menu-right li #clock span{white-space:nowrap}.tracker-wrap{padding:clamp(.75rem,2.5vw,1.25rem) clamp(.75rem,1.5vw,1rem);width:100%;flex:1;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box;--fb-grid: clamp(95px, 8.5vw, 135px) clamp(220px, 27vw, 420px) 1fr 0.72fr}.fb-header-row{display:grid;grid-template-columns:var(--fb-grid);gap:0 clamp(.75rem,2.2vw,1.5rem);padding:clamp(.25rem,.5vh,.5rem) clamp(1rem,2.5vw,2rem);margin-bottom:clamp(.3rem,.5vh,.6rem)}.fb-header-row>div{font-size:clamp(.55rem,.7vw,.85rem);font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:hsla(0,0%,100%,.28)}.meeting-room__row{flex:0 1 auto;min-height:0;margin-bottom:clamp(.25rem,.35vh,.5rem);animation:fadeIn 200ms cubic-bezier(0.4, 0, 0.2, 1) ease-out;width:100%}.meeting-room{display:grid;grid-template-columns:var(--fb-grid);align-items:center;gap:0 clamp(.75rem,2.2vw,1.5rem);background:#1f2937;border-radius:.75rem;border-left:clamp(9px,.75vw,13px) solid #22c55e;padding:clamp(.75rem,1.8vh,1.25rem) clamp(1rem,2.5vw,2rem);transition:border-left-color .5s ease-in-out,background .5s ease-in-out,box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);min-height:clamp(72px,9vh,115px);overflow:hidden}.meeting-room:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.meeting-room.meeting-room--busy{border-left-color:#ef4444;background:linear-gradient(90deg, rgba(239, 68, 68, 0.13) 0%, #1f2937 8%)}.meeting-room.meeting-room--upcoming{border-left-color:#f59e0b;background:linear-gradient(90deg, rgba(245, 158, 11, 0.13) 0%, #1f2937 8%)}.meeting-room.meeting-room--error{border-left-color:#f59e0b;background:linear-gradient(90deg, rgba(245, 158, 11, 0.13) 0%, #1f2937 8%)}.fb-cell{min-width:0;overflow:hidden}.fb-status{display:inline-flex;align-items:center;gap:clamp(.28rem,.4vw,.52rem);padding:clamp(.28rem,.5vh,.55rem) clamp(.45rem,.7vw,.88rem);border-radius:9999px;font-size:clamp(.75rem,1.05vw,1.35rem);font-weight:700;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}.fb-status .fb-status__dot{width:clamp(7px,.6vw,10px);height:clamp(7px,.6vw,10px);border-radius:9999px;flex-shrink:0;animation:pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite}.fb-status.fb-status--available{background:rgba(34,197,94,.14);color:#4ade80}.fb-status.fb-status--available .fb-status__dot{background:#4ade80}.fb-status.fb-status--busy{background:rgba(239,68,68,.18);color:#f87171}.fb-status.fb-status--busy .fb-status__dot{background:#f87171}.fb-status.fb-status--upcoming{background:rgba(245,158,11,.18);color:#fbbf24}.fb-status.fb-status--upcoming .fb-status__dot{background:#fbbf24}.fb-status.fb-status--error{background:rgba(245,158,11,.18);color:#fbbf24}.fb-status.fb-status--error .fb-status__dot{background:#fbbf24}.meeting-room__name{font-size:clamp(1.15rem,1.9vw,2.4rem);font-weight:700;color:#fff;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fb-room__capacity{display:flex;align-items:center;gap:clamp(.2rem,.28vw,.38rem);margin-top:clamp(.18rem,.28vh,.38rem)}.fb-room__capacity .fb-capacity__icon{width:clamp(11px,.95vw,15px);height:clamp(11px,.95vw,15px);color:hsla(0,0%,100%,.4);flex-shrink:0}.fb-room__capacity .fb-capacity__number{font-size:clamp(.65rem,.85vw,1.05rem);font-weight:500;color:hsla(0,0%,100%,.4)}.fb-meeting__label{font-size:clamp(.55rem,.7vw,.85rem);font-weight:600;color:hsla(0,0%,100%,.36);text-transform:uppercase;letter-spacing:.12em;margin-bottom:clamp(.08rem,.15vh,.25rem)}.fb-meeting__organizer{font-size:clamp(.9rem,1.45vw,1.85rem);font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}.fb-meeting__time{font-size:clamp(.8rem,1.25vw,1.6rem);font-weight:300;color:hsla(0,0%,100%,.7);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:clamp(.05rem,.1vh,.15rem)}.fb-next__label{font-size:clamp(.55rem,.7vw,.85rem);font-weight:600;color:hsla(0,0%,100%,.36);text-transform:uppercase;letter-spacing:.12em;margin-bottom:clamp(.08rem,.15vh,.25rem)}.fb-next__organizer{font-size:clamp(.75rem,1.05vw,1.35rem);font-weight:500;color:hsla(0,0%,100%,.54);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}.fb-next__time{font-size:clamp(.7rem,.98vw,1.25rem);font-weight:300;color:hsla(0,0%,100%,.4);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:clamp(.05rem,.1vh,.15rem)}#fb__spinner-wrap{display:flex;justify-content:center;align-items:center;min-height:50vh}#fb__spinner-wrap #fb__spinner{width:clamp(60px,8vw,80px);height:clamp(60px,8vw,80px)}.credentials-error{text-align:center;padding:clamp(1.5rem,4vw,2rem);font-size:clamp(1rem,1.5vw,1.5rem);color:#ef4444;background:rgba(239,68,68,.1);border-radius:.75rem;margin:clamp(1rem,3vw,1.5rem)}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideUp{from{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.booking-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease-in;padding:16px}.booking-modal{background:#fff;border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.2);max-width:500px;width:100%;max-height:calc(100vh - 32px);overflow-y:auto;animation:slideUp .3s ease-out}.booking-modal-body{padding:24px}.booking-modal-body .error-message{font-size:1.125rem;margin-bottom:1.5rem;color:#333}.booking-error{background-color:#fee;border:1px solid #fcc;color:#c33;padding:12px 16px;border-radius:4px;margin-bottom:20px;font-size:14px}.quick-book-section{margin-bottom:24px}.quick-book-label{margin-bottom:12px;font-size:14px;font-weight:600;color:#334155}.quick-book-buttons{display:grid;grid-template-columns:repeat(2, 1fr);gap:12px}.custom-duration-section{margin-bottom:24px}.custom-duration-section label{display:flex;justify-content:space-between;align-items:center;font-weight:600;margin-bottom:16px;color:#333;font-size:15px}.custom-duration-section label .duration-value{font-size:18px;color:#334155;font-weight:700}.custom-duration-section .duration-slider{width:100%;height:24px;border-radius:4px;outline:none;appearance:none;background:rgba(0,0,0,0);cursor:pointer;margin-bottom:8px}.custom-duration-section .duration-slider::-webkit-slider-thumb{appearance:none;width:24px;height:24px;border-radius:50%;background:var(--booking-button-color, #334155);cursor:pointer;box-shadow:0 2px 6px color-mix(in srgb, var(--booking-button-color, #334155) 40%, transparent);transition:all .2s;margin-top:-8px}.custom-duration-section .duration-slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 3px 10px color-mix(in srgb, var(--booking-button-color, #334155) 60%, transparent)}.custom-duration-section .duration-slider::-webkit-slider-thumb:active{transform:scale(1.1)}.custom-duration-section .duration-slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--booking-button-color, #334155);cursor:pointer;border:none;box-shadow:0 2px 6px color-mix(in srgb, var(--booking-button-color, #334155) 40%, transparent);transition:all .2s}.custom-duration-section .duration-slider::-moz-range-thumb:hover{transform:scale(1.2);box-shadow:0 3px 10px color-mix(in srgb, var(--booking-button-color, #334155) 60%, transparent)}.custom-duration-section .duration-slider::-moz-range-thumb:active{transform:scale(1.1)}.custom-duration-section .duration-slider::-webkit-slider-runnable-track{width:100%;height:8px;border-radius:4px;background:#e5e7eb}.custom-duration-section .duration-slider::-moz-range-track{width:100%;height:8px;border-radius:4px;background:#e5e7eb}.custom-duration-section .slider-labels{display:flex;justify-content:space-between;font-size:12px;color:#888}.quick-book-btn{padding:16px 20px;border:2px solid var(--booking-button-color, #334155);background-color:#fff;color:var(--booking-button-color, #334155);border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.quick-book-btn:hover{background-color:var(--booking-button-color, #334155);color:var(--booking-button-text, white);transform:translateY(-2px);box-shadow:0 4px 12px color-mix(in srgb, var(--booking-button-color, #334155) 40%, transparent)}.quick-book-btn:active{transform:translateY(0)}.quick-book-btn.active{background-color:var(--booking-button-color, #334155);border-color:var(--booking-button-color, #334155);color:var(--booking-button-text, white)}.booking-modal-actions{display:flex;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid #e0e0e0}.btn-cancel,.btn-end-meeting,.btn-book{flex:1;padding:12px 24px;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel:disabled,.btn-end-meeting:disabled,.btn-book:disabled{opacity:.6;cursor:not-allowed}.btn-cancel{background-color:#f3f4f6;color:#6b7280}.btn-cancel:hover:not(:disabled){background-color:#e5e7eb}.btn-book{background-color:var(--booking-button-color, #334155);color:var(--booking-button-text, white)}.btn-book:hover:not(:disabled){background-color:color-mix(in srgb, var(--booking-button-color, #334155) 80%, black);transform:translateY(-2px);box-shadow:0 4px 12px color-mix(in srgb, var(--booking-button-color, #334155) 40%, transparent)}.btn-book:active:not(:disabled){transform:translateY(0)}.btn-end-meeting{background-color:#dc2626;color:#fff}.btn-end-meeting:hover:not(:disabled){background-color:#b91c1c;transform:translateY(-2px);box-shadow:0 4px 12px rgba(220,38,38,.35)}.btn-end-meeting:active:not(:disabled){transform:translateY(0)}@media(max-width: 768px){.booking-modal{max-width:100%}.booking-modal-header h2{font-size:20px}.quick-book-buttons{grid-template-columns:repeat(2, 1fr);gap:10px}.quick-book-btn{padding:14px 12px;font-size:15px}}@media(max-width: 480px){.booking-modal-overlay{padding:8px}.booking-modal{border-radius:6px;max-height:calc(100vh - 16px)}.booking-modal-header{padding:16px 20px}.booking-modal-header h2{font-size:18px}.booking-modal-body{padding:20px}.quick-book-buttons{grid-template-columns:1fr 1fr;gap:8px}.quick-book-btn{padding:12px 8px;font-size:13px}.booking-modal-actions{flex-direction:column;gap:10px}.btn-cancel,.btn-end-meeting,.btn-book{width:100%;padding:14px 24px}.form-group input[type=text],.form-group input[type=datetime-local]{font-size:16px}}@media(max-width: 360px){.booking-modal-header{padding:12px 16px}.booking-modal-body{padding:16px}.quick-book-buttons{grid-template-columns:1fr}.quick-book-btn{padding:12px 16px}}@media(max-height: 600px)and (orientation: landscape){.booking-modal{max-height:calc(100vh - 16px)}.booking-modal-header{padding:12px 20px}.booking-modal-body{padding:16px 20px}.form-group{margin-bottom:12px}.booking-modal-actions{margin-top:16px;padding-top:12px}}.booking-modal-overlay.minimal-display{background-color:rgba(0,0,0,.92)}.minimal-display .booking-modal,.booking-modal.minimal-display{background:#1e1e1e;color:#e0e0e0}.minimal-display .booking-error,.booking-modal.minimal-display .booking-error{background-color:#3a1a1a;border-color:#5a2a2a;color:#ff6b6b}.minimal-display .custom-duration-section label{color:#e0e0e0}.minimal-display .custom-duration-section label .duration-value{color:#7d8da1}.minimal-display .custom-duration-section .duration-slider::-webkit-slider-runnable-track{background:#374151}.minimal-display .custom-duration-section .duration-slider::-moz-range-track{background:#374151}.minimal-display .custom-duration-section .duration-slider::-webkit-slider-thumb{background:var(--booking-button-color, #7d8da1);box-shadow:0 2px 6px color-mix(in srgb, var(--booking-button-color, #7d8da1) 40%, transparent)}.minimal-display .custom-duration-section .duration-slider::-webkit-slider-thumb:hover{box-shadow:0 3px 10px color-mix(in srgb, var(--booking-button-color, #7d8da1) 60%, transparent)}.minimal-display .custom-duration-section .duration-slider::-moz-range-thumb{background:var(--booking-button-color, #7d8da1);box-shadow:0 2px 6px color-mix(in srgb, var(--booking-button-color, #7d8da1) 40%, transparent)}.minimal-display .custom-duration-section .duration-slider::-moz-range-thumb:hover{box-shadow:0 3px 10px color-mix(in srgb, var(--booking-button-color, #7d8da1) 60%, transparent)}.minimal-display .custom-duration-section .slider-labels{color:#888}.minimal-display .quick-book-label{color:#e0e0e0}.minimal-display .quick-book-btn{background-color:#1e1e1e;border-color:var(--booking-button-color, #7d8da1);color:#cbd5e1}.minimal-display .quick-book-btn:hover{background-color:var(--booking-button-color, #7d8da1);color:var(--booking-button-text, white);box-shadow:0 4px 12px color-mix(in srgb, var(--booking-button-color, #7d8da1) 40%, transparent)}.minimal-display .quick-book-btn.active{background-color:var(--booking-button-color, #7d8da1);border-color:#7d8da1;color:var(--booking-button-text, white)}.minimal-display .booking-modal-actions{border-top-color:#333}.minimal-display .btn-cancel{background-color:#374151;color:#9ca3af}.minimal-display .btn-cancel:hover:not(:disabled){background-color:#4b5563}.wifi-page{font-family:"Titillium Web",sans-serif;background:#1a1d29;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;color:#fff}.wifi-page h1{text-align:center;font-size:2rem;font-weight:700;margin-bottom:2rem;color:#fff;text-transform:uppercase;letter-spacing:.05em}.wifi-page .wifi-details{background:#1a1d29;border-radius:.75rem;padding:2rem;margin-bottom:2rem;border:1px solid hsla(0,0%,100%,.1)}.wifi-page .wifi-row{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid hsla(0,0%,100%,.1)}.wifi-page .wifi-row:last-child{border-bottom:none}.wifi-page .wifi-label{font-size:1.125rem;font-weight:600;color:hsla(0,0%,100%,.7);text-transform:uppercase;letter-spacing:.05em}.wifi-page .wifi-value{font-size:1.5rem;font-weight:600;color:#fff;word-break:break-all;text-align:right;max-width:60%}.wifi-container{background:#2d3142;border-radius:1rem;box-shadow:0 8px 24px rgba(0,0,0,.3);max-width:600px;width:100%;padding:3rem}.wifi-logo{text-align:center;margin-bottom:2rem}.wifi-logo img{max-width:200px;height:auto}.wifi-qr-container{text-align:center;padding:2rem;background:#fff;border-radius:.75rem;margin-top:2rem;display:flex;align-items:center;justify-content:center}.wifi-qr-container img{width:300px;height:300px;object-fit:contain;border-radius:.5rem}.wifi-loading{text-align:center;padding:2rem;color:hsla(0,0%,100%,.7);font-size:1.125rem}.wifi-error{background:rgba(239,68,68,.1);border:2px solid #ef4444;color:#fca5a5;padding:1rem;border-radius:.5rem;text-align:center;margin-top:1rem}@media(max-width: 640px){.wifi-container{padding:2rem}.wifi-page h1{font-size:1.5rem}.wifi-page .wifi-row{flex-direction:column;align-items:flex-start;gap:.5rem}.wifi-page .wifi-value{text-align:left;max-width:100%}.wifi-qr-container img,.wifi-qr-preview img{width:250px;height:250px}}.admin-page{font-family:"Titillium Web",sans-serif;background:#0f1117;min-height:100vh;color:#fff}.admin-header{background:linear-gradient(135deg, #0d1117 0%, #161b27 50%, #1a2035 100%);padding:0;box-shadow:0 2px 24px rgba(0,0,0,.5);border-bottom:1px solid rgba(59,130,246,.25);position:sticky;top:0;z-index:100}.admin-header .admin-header-content{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:.875rem 2rem}.admin-header .admin-header-brand{display:flex;align-items:center;gap:.875rem}.admin-header .admin-logo img{height:36px;width:auto;object-fit:contain;filter:drop-shadow(0 0 8px rgba(59, 130, 246, 0.3))}.admin-container{max-width:1200px;margin:0 auto;padding:2rem}.admin-token-banner{background:linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);border-radius:1rem;padding:1.5rem;margin-bottom:2rem;box-shadow:0 8px 24px rgba(59,130,246,.3)}.admin-token-banner .admin-token-content{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.admin-token-banner .admin-token-content .token-input-wrapper{flex:1;min-width:250px}.admin-token-banner .admin-token-content .token-input-wrapper label{display:block;margin-bottom:.5rem;color:hsla(0,0%,100%,.9);font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.admin-token-banner .admin-token-content .token-input-wrapper input{width:100%;padding:.75rem 1rem;background:hsla(0,0%,100%,.15);border:2px solid hsla(0,0%,100%,.3);border-radius:.5rem;font-size:1rem;color:#fff;font-family:"Titillium Web",sans-serif;transition:all .3s ease}.admin-token-banner .admin-token-content .token-input-wrapper input:focus{outline:none;border-color:hsla(0,0%,100%,.6);background:hsla(0,0%,100%,.2)}.admin-token-banner .admin-token-content .token-input-wrapper input::placeholder{color:hsla(0,0%,100%,.5)}.admin-token-banner .admin-token-content .token-input-wrapper small{display:block;margin-top:.375rem;color:hsla(0,0%,100%,.8);font-size:.8rem}.admin-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem;border-bottom:2px solid hsla(0,0%,100%,.1);overflow-x:visible}.admin-tabs::-webkit-scrollbar{height:4px}.admin-tabs::-webkit-scrollbar-track{background:hsla(0,0%,100%,.05)}.admin-tabs::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2);border-radius:2px}.admin-section-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem;padding-bottom:.25rem;border-bottom:2px solid hsla(0,0%,100%,.1);overflow-x:visible}.admin-section-tabs::-webkit-scrollbar{height:4px}.admin-section-tabs::-webkit-scrollbar-track{background:hsla(0,0%,100%,.05)}.admin-section-tabs::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2);border-radius:2px}.admin-section-tab{padding:.75rem 1rem;border:none;border-bottom:3px solid rgba(0,0,0,0);background:rgba(0,0,0,0);color:hsla(0,0%,100%,.6);font-size:.875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:all .3s ease;white-space:nowrap;font-family:"Titillium Web",sans-serif;display:flex;align-items:center;gap:.5rem}.admin-section-tab:hover{color:hsla(0,0%,100%,.9);background:hsla(0,0%,100%,.05)}.admin-section-tab.active{color:#3b82f6;border-bottom-color:#3b82f6;background:rgba(59,130,246,.1)}.admin-tab{padding:.75rem 1rem;background:rgba(0,0,0,0);border:none;border-bottom:3px solid rgba(0,0,0,0);color:hsla(0,0%,100%,.6);font-size:.875rem;font-weight:600;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;transition:all .3s ease;font-family:"Titillium Web",sans-serif;white-space:nowrap;display:flex;align-items:center;gap:.5rem}.admin-tab:hover{color:hsla(0,0%,100%,.9);background:hsla(0,0%,100%,.05)}.admin-tab.active{color:#3b82f6;border-bottom-color:#3b82f6;background:rgba(59,130,246,.1)}.admin-tab-content{display:none;animation:fadeIn .3s ease-in}.admin-tab-content.active{display:block}.admin-submenu-tabs{margin-bottom:1.25rem}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.admin-section{background:#1a1d29;border-radius:1rem;padding:2rem;box-shadow:0 4px 16px rgba(0,0,0,.3);border:1px solid hsla(0,0%,100%,.1)}.admin-section h2{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;color:#fff;text-transform:uppercase;letter-spacing:.05em}.admin-section h3{font-size:1.125rem;font-weight:600;margin-bottom:1rem;color:hsla(0,0%,100%,.9);text-transform:uppercase;letter-spacing:.05em}.admin-card{background:#2d3142;border-radius:.75rem;padding:1.5rem;margin-bottom:1.5rem;border:1px solid hsla(0,0%,100%,.1)}.admin-card:last-child{margin-bottom:0}.admin-current-config{background:#0f1117;border-radius:.75rem;padding:1.5rem;margin-bottom:2rem;border:1px solid rgba(59,130,246,.3)}.admin-current-config h3{margin-bottom:1rem;color:#3b82f6}.admin-current-config .config-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:1rem}.admin-current-config .config-item{display:flex;flex-direction:column;gap:.25rem}.admin-current-config .config-item .config-label{color:hsla(0,0%,100%,.6);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.admin-current-config .config-item .config-value{color:#fff;font-size:1rem;font-weight:500}.admin-current-config p{margin-bottom:.75rem;color:hsla(0,0%,100%,.7);font-size:.95rem}.admin-current-config p:last-child{margin-bottom:0}.admin-current-config strong{color:#fff;font-weight:600}.admin-form-group{margin-bottom:1.5rem}.admin-form-group label{display:block;margin-bottom:.5rem;color:hsla(0,0%,100%,.9);font-weight:600;font-size:.95rem;text-transform:uppercase;letter-spacing:.05em}.admin-form-group label.inline-label{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:1rem 1.25rem;background:#2d3142;border:2px solid hsla(0,0%,100%,.1);border-radius:.5rem;transition:all .3s ease}.admin-form-group label.inline-label:hover{background:#353849;border-color:rgba(59,130,246,.3);transform:translateX(4px)}.admin-form-group label.inline-label input[type=radio],.admin-form-group label.inline-label input[type=checkbox]{width:auto;margin:0;cursor:pointer;transform:scale(1.4);accent-color:#3b82f6}.admin-form-group label.inline-label .label-text{flex:1;margin:0;text-transform:none;letter-spacing:normal;font-weight:500;font-size:1rem}.admin-form-group input[type=text],.admin-form-group input[type=password],.admin-form-group input[type=number],.admin-form-group input[type=time],.admin-form-group select,.admin-form-group textarea{width:100%;padding:.875rem 1rem;background:#2d3142;border:2px solid hsla(0,0%,100%,.1);border-radius:.5rem;font-size:1rem;color:#fff;font-family:"Titillium Web",sans-serif;transition:all .3s ease}.admin-form-group input[type=text]:focus,.admin-form-group input[type=password]:focus,.admin-form-group input[type=number]:focus,.admin-form-group input[type=time]:focus,.admin-form-group select:focus,.admin-form-group textarea:focus{outline:none;border-color:#3b82f6;background:#353849;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.admin-form-group input[type=text]::placeholder,.admin-form-group input[type=password]::placeholder,.admin-form-group input[type=number]::placeholder,.admin-form-group input[type=time]::placeholder,.admin-form-group select::placeholder,.admin-form-group textarea::placeholder{color:hsla(0,0%,100%,.4)}.admin-form-group select{appearance:auto;-webkit-appearance:menulist;-moz-appearance:menulist;background-image:none;padding:.35rem .6rem !important;padding-right:.6rem !important;line-height:1.2;text-indent:0;color:#fff !important}.admin-form-group select option{background:#2d3142;color:#fff}.admin-form-group textarea{min-height:120px;resize:vertical;line-height:1.4}.admin-form-group small{display:block;margin-top:.375rem;color:hsla(0,0%,100%,.5);font-size:.875rem}.admin-form-divider{margin:2rem 0;border:none;border-top:2px solid hsla(0,0%,100%,.1)}#translationLanguage,#maintenanceBodyInput{width:100%;padding:.875rem 1rem;background:#2d3142;border:2px solid hsla(0,0%,100%,.1);border-radius:.5rem;font-size:1rem;color:#fff;font-family:"Titillium Web",sans-serif;transition:all .3s ease}#translationLanguage:focus,#maintenanceBodyInput:focus{outline:none;border-color:#3b82f6;background:#353849;box-shadow:0 0 0 3px rgba(59,130,246,.1)}#checkInEarlyMinutes,#checkInWindowMinutes{appearance:textfield;-moz-appearance:textfield;-webkit-appearance:none;background:#2d3142;color:#fff;border:2px solid hsla(0,0%,100%,.1)}#checkInEarlyMinutes::-webkit-outer-spin-button,#checkInEarlyMinutes::-webkit-inner-spin-button,#checkInWindowMinutes::-webkit-outer-spin-button,#checkInWindowMinutes::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}#translationLanguage{appearance:auto;-webkit-appearance:menulist;-moz-appearance:menulist;background-image:none;padding:.25rem .5rem !important;padding-right:.5rem !important;line-height:1.2;text-indent:0;color:#fff !important}#translationLanguage option{background:#2d3142;color:#fff}#maintenanceBodyInput{min-height:120px;resize:vertical;line-height:1.4}.admin-upload-mode{display:flex;gap:1rem;margin-bottom:1.5rem;background:#2d3142;border-radius:.5rem;padding:.5rem}.admin-mode-button{flex:1;padding:.75rem 1.5rem;background:rgba(0,0,0,0);border:none;color:hsla(0,0%,100%,.6);font-size:1rem;font-weight:600;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;transition:all .3s ease;font-family:"Titillium Web",sans-serif;border-radius:.375rem}.admin-mode-button:hover{color:hsla(0,0%,100%,.9);background:hsla(0,0%,100%,.05)}.admin-mode-button.active{color:#fff;background:linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);box-shadow:0 2px 8px rgba(59,130,246,.3)}.admin-file-input{width:100%;padding:.875rem 1rem;background:#2d3142;border:2px dashed hsla(0,0%,100%,.3);border-radius:.5rem;font-size:1rem;color:#fff;font-family:"Titillium Web",sans-serif;cursor:pointer;transition:all .3s ease}.admin-file-input:hover{border-color:#3b82f6;background:#353849}.admin-file-input:focus{outline:none;border-color:#3b82f6;border-style:solid}.admin-file-input::file-selector-button{padding:.5rem 1rem;margin-right:1rem;background:linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);border:none;border-radius:.375rem;color:#fff;font-weight:600;cursor:pointer;transition:all .3s ease}.admin-file-input::file-selector-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(59,130,246,.3)}.admin-file-preview{margin-top:.75rem;padding:.75rem;background:rgba(59,130,246,.1);border:1px solid #3b82f6;border-radius:.375rem;color:#86b7fe;font-size:.875rem}.admin-submit-button{width:100%;background:linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);color:#fff;padding:1rem 2rem;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;transition:all .3s ease;font-family:"Titillium Web",sans-serif;box-shadow:0 4px 12px rgba(59,130,246,.3)}.admin-submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px rgba(59,130,246,.4)}.admin-submit-button:active:not(:disabled){transform:translateY(0)}.admin-submit-button:disabled{opacity:.5;cursor:not-allowed}.admin-login-button{margin-top:1rem;background:#fff;color:#1d4ed8;border:2px solid #fff;box-shadow:0 6px 18px rgba(15,23,42,.35)}.admin-login-button:hover:not(:disabled){background:hsla(0,0%,100%,.95);color:#1e40af;box-shadow:0 8px 22px rgba(15,23,42,.45)}.admin-secondary-button{background:hsla(0,0%,100%,.1);color:#fff;padding:.5rem 1rem;border:1px solid hsla(0,0%,100%,.3);border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;text-transform:none;letter-spacing:.025em;transition:all .3s ease;font-family:"Titillium Web",sans-serif;white-space:nowrap;height:40px;display:flex;align-items:center;justify-content:center}.admin-secondary-button:hover:not(:disabled){background:hsla(0,0%,100%,.2);border-color:hsla(0,0%,100%,.5);transform:translateY(-1px)}.admin-secondary-button:active:not(:disabled){transform:translateY(0)}.admin-secondary-button:disabled{opacity:.5;cursor:not-allowed}.admin-message{padding:1rem 1.25rem;margin-top:1.5rem;border-radius:.5rem;font-weight:500}.admin-message-success{background:rgba(34,197,94,.15);color:#86efac;border:2px solid #22c55e}.admin-message-error{background:rgba(239,68,68,.15);color:#fca5a5;border:2px solid #ef4444}.admin-message-warning{background:rgba(245,158,11,.15);color:#fcd34d;border:2px solid #f59e0b}.admin-message-info{background:rgba(59,130,246,.15);color:#93c5fd;border:2px solid #3b82f6}.admin-json-pre{margin:0;white-space:pre-wrap;word-break:break-word;max-height:420px;overflow:auto;background:#2d3142;border:1px solid hsla(0,0%,100%,.1);border-radius:.5rem;padding:1rem;color:hsla(0,0%,100%,.9);font-size:.85rem}.admin-qr-preview{text-align:center;margin-top:2rem;padding:2rem;background:#fff;border-radius:.75rem;display:flex;align-items:center;justify-content:center}.admin-qr-preview img{width:300px;height:300px;object-fit:contain;border-radius:.5rem;display:block;margin:0 auto}.admin-logo-preview{text-align:center;margin-top:2rem;padding:2rem;background:#0f1117;border-radius:.75rem;border:1px solid hsla(0,0%,100%,.1)}.admin-logo-preview h3{margin-bottom:1.5rem}.admin-logo-preview .preview-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:2rem}.admin-logo-preview .preview-item p{margin-bottom:.75rem;color:hsla(0,0%,100%,.7);font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.admin-logo-preview .preview-item img{max-width:100%;max-height:150px;object-fit:contain;display:block;margin:0 auto}.admin-locked-message{background:rgba(251,191,36,.15);border:2px solid #fbbf24;border-radius:.75rem;padding:1.5rem;text-align:center}.admin-locked-message p{color:#fde68a;font-size:1rem;font-weight:500;margin:0}.admin-card .admin-displays-table-wrapper{background:#0f1117 !important;border-radius:.75rem;padding:1.5rem;margin-top:1rem;border:1px solid rgba(59,130,246,.3);overflow-x:auto}.admin-card .admin-displays-table-wrapper table{width:100% !important;border-collapse:collapse !important;min-width:600px;background:rgba(0,0,0,0) !important;border:none !important}.admin-card .admin-displays-table-wrapper table thead{background:rgba(0,0,0,0) !important;border:none !important}.admin-card .admin-displays-table-wrapper table thead tr{border-bottom:2px solid rgba(59,130,246,.5) !important;background:rgba(0,0,0,0) !important}.admin-card .admin-displays-table-wrapper table thead tr th{padding:.75rem !important;text-align:left !important;color:#3b82f6 !important;font-weight:600 !important;font-size:.875rem !important;text-transform:uppercase !important;letter-spacing:.05em !important;background:rgba(0,0,0,0) !important;background-color:rgba(0,0,0,0) !important;border:none !important}.admin-card .admin-displays-table-wrapper table tbody{background:rgba(0,0,0,0) !important;background-color:rgba(0,0,0,0) !important;border:none !important}.admin-card .admin-displays-table-wrapper table tbody tr{border-bottom:1px solid hsla(0,0%,100%,.1) !important;background:rgba(0,0,0,0) !important;background-color:rgba(0,0,0,0) !important}.admin-card .admin-displays-table-wrapper table tbody tr:nth-child(even){background:rgba(0,0,0,0) !important;background-color:rgba(0,0,0,0) !important}.admin-card .admin-displays-table-wrapper table tbody tr td{padding:.75rem !important;color:hsla(0,0%,100%,.9) !important;font-size:.95rem !important;background:rgba(0,0,0,0) !important;background-color:rgba(0,0,0,0) !important;border:none !important;vertical-align:middle !important;height:3.5rem !important}.admin-card .admin-displays-table-wrapper table tbody tr td.status-cell{white-space:nowrap}.admin-card .admin-displays-table-wrapper table tbody tr td.status-cell>span{display:inline-flex;align-items:center;vertical-align:middle}.admin-card .admin-displays-table-wrapper table tbody tr td.client-id{font-family:monospace !important;font-size:.85rem !important;color:hsla(0,0%,100%,.6) !important}.admin-card .admin-displays-table-wrapper table tbody tr td.timestamp{font-size:.85rem !important;color:hsla(0,0%,100%,.7) !important}.admin-card .admin-displays-table-wrapper table tfoot{background:rgba(0,0,0,0) !important;background-color:rgba(0,0,0,0) !important;border:none !important}@media(max-width: 768px){.admin-header{padding:1.5rem 1rem}.admin-header .admin-header-content{flex-direction:column;text-align:center}.admin-header h1{font-size:1.5rem}.admin-container{padding:1rem}.admin-tabs{gap:.25rem}.admin-section-tabs{gap:.35rem}.admin-section-tab{padding:.65rem .85rem;font-size:.8rem}.admin-tab{padding:.75rem 1rem;font-size:.875rem}.admin-section{padding:1.5rem}.admin-section h2{font-size:1.25rem}.admin-token-banner{padding:1rem}.admin-token-banner .admin-token-content{flex-direction:column}.admin-current-config .config-grid{grid-template-columns:1fr}.admin-qr-preview img{width:250px;height:250px}}.admin-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.admin-modal{background:#1e293b;border-radius:8px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px rgba(0,0,0,.3)}.admin-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid hsla(0,0%,100%,.1)}.admin-modal-header h3{margin:0;color:#f1f5f9;font-size:1.25rem}.admin-modal-close{background:none;border:none;color:#94a3b8;font-size:2rem;line-height:1;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.admin-modal-close:hover{background-color:hsla(0,0%,100%,.1);color:#f1f5f9}.admin-modal-body{padding:1.5rem}.admin-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1.5rem;border-top:1px solid hsla(0,0%,100%,.1)}.admin-primary-button{background-color:#3b82f6;color:#fff;border:none;padding:.625rem 1.25rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.admin-primary-button:hover{background-color:#2563eb}.admin-primary-button:disabled{background-color:#475569;cursor:not-allowed;opacity:.5}.admin-radio-group{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.admin-radio-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.admin-radio-label input[type=radio]{margin:0;margin-right:.5rem;cursor:pointer}.admin-radio-label span{color:#e2e8f0}.admin-help-text{display:block;margin-top:.5rem;color:hsla(0,0%,100%,.6);font-size:.875rem}.touchkio-modal-content{width:950px;max-width:95vw;max-height:90vh;overflow-y:auto;background:#1e293b;border-radius:12px;border:1px solid hsla(0,0%,100%,.1)}.touchkio-modal-header{border-bottom:1px solid hsla(0,0%,100%,.1);padding:1.5rem}.touchkio-modal-header h3{margin:0;color:#f1f5f9;font-size:1.25rem}.touchkio-modal-body{padding:1.5rem}.touchkio-modal-footer{border-top:1px solid hsla(0,0%,100%,.1);padding:1.5rem;display:flex;justify-content:flex-end}.touchkio-hw-warning{margin-bottom:1.5rem;padding:1rem;background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.3);border-radius:8px;display:flex;align-items:start;gap:.75rem}.touchkio-hw-warning .touchkio-hw-warning-icon{font-size:1.25rem}.touchkio-hw-warning .touchkio-hw-warning-title{font-size:.875rem;font-weight:600;color:#fbbf24;margin-bottom:.25rem}.touchkio-hw-warning .touchkio-hw-warning-text{font-size:.8rem;color:#fcd34d}.touchkio-status-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:1rem;margin-bottom:2rem}.touchkio-status-card{padding:1rem;background:#2d3142;border-radius:8px;border:1px solid hsla(0,0%,100%,.1)}.touchkio-status-label{font-size:.7rem;color:#94a3b8;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.touchkio-power-value{font-size:1.5rem;font-weight:bold;margin-bottom:.25rem}.touchkio-power-value--on{color:#22c55e}.touchkio-power-value--off{color:#ef4444}.touchkio-power-value--unsupported{color:#94a3b8}.touchkio-status-detail{font-size:.8rem;color:#cbd5e1}.touchkio-status-detail strong{color:#f1f5f9}.touchkio-status-details{font-size:.8rem;color:#cbd5e1;display:flex;flex-direction:column;gap:.25rem}.touchkio-status-details strong{color:#f1f5f9}.touchkio-network-address{font-size:.75rem;color:#cbd5e1;word-break:break-all;margin-bottom:.5rem}.touchkio-section{margin-bottom:2rem;padding:1.25rem;background:#2d3142;border-radius:8px;border:1px solid hsla(0,0%,100%,.1)}.touchkio-section-label{font-size:.75rem;color:#94a3b8;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.touchkio-url-display{display:flex;align-items:center;gap:.75rem}.touchkio-url-text{flex:1;font-size:.875rem;word-break:break-all;padding:.5rem;background:#1e293b;border-radius:4px;border:1px solid hsla(0,0%,100%,.05)}.touchkio-url-text--empty{color:#94a3b8;font-style:italic}.touchkio-url-text--filled{color:#cbd5e1}.touchkio-url-input{width:100%;padding:.625rem;font-size:.875rem;background:#1e293b !important;border:1px solid hsla(0,0%,100%,.1);border-radius:4px;color:#f1f5f9;margin-bottom:.75rem}.touchkio-url-actions{display:flex;gap:.5rem}.touchkio-controls-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.touchkio-control-section{margin-bottom:1.5rem;padding:1.25rem;background:#2d3142;border:1px solid hsla(0,0%,100%,.1);border-radius:8px}.touchkio-control-title{margin:0 0 1rem 0;font-size:.875rem;color:#f1f5f9;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.touchkio-toggle-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding:.75rem;background:#1e293b;border-radius:6px}.touchkio-toggle-row--disabled{opacity:.5}.touchkio-toggle-label{font-size:.875rem;color:#f1f5f9;font-weight:600;margin-bottom:.25rem}.touchkio-toggle-unsupported{font-size:.7rem;color:#94a3b8}.touchkio-toggle-status{font-size:.75rem}.touchkio-toggle-status--on{color:#22c55e}.touchkio-toggle-status--off{color:#ef4444}.touchkio-toggle-status--na{color:#94a3b8}.touchkio-toggle-status--info{color:#3b82f6}.touchkio-toggle-switch{position:relative;display:inline-block;width:52px;height:28px}.touchkio-toggle-switch input{opacity:0;width:0;height:0}.touchkio-toggle-track{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:28px;transition:background-color .3s}.touchkio-toggle-track--on{background-color:#22c55e;box-shadow:0 0 8px rgba(34,197,94,.4)}.touchkio-toggle-track--off{background-color:#475569}.touchkio-toggle-track--dark{background-color:#1e293b;border:2px solid #475569}.touchkio-toggle-track--light{background-color:#fbbf24;border:2px solid #f59e0b}.touchkio-toggle-thumb,.touchkio-toggle-thumb-theme{position:absolute;content:"";height:20px;width:20px;bottom:4px;background-color:#fff;border-radius:50%;transition:left .3s;box-shadow:0 2px 4px rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;font-size:.7rem}.touchkio-toggle-thumb--on{left:28px}.touchkio-toggle-thumb--off{left:4px}.touchkio-toggle-thumb-theme{bottom:2px}.touchkio-slider-group{margin-bottom:1rem}.touchkio-slider-group--disabled{opacity:.5}.touchkio-slider-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.touchkio-slider-label{font-size:.8rem;color:#cbd5e1}.touchkio-slider-value{font-size:.8rem;font-weight:bold;color:#3b82f6}.touchkio-slider{width:100%;height:6px;border-radius:3px;background:hsla(0,0%,100%,.2);outline:none;cursor:pointer}.touchkio-slider:disabled{cursor:not-allowed}.touchkio-kiosk-current{font-size:.75rem;color:#94a3b8;margin-bottom:.75rem}.touchkio-kiosk-current span{color:#3b82f6;font-weight:600}.touchkio-kiosk-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.touchkio-kiosk-button{width:100%;font-size:.8rem;padding:.5rem}.touchkio-kiosk-button--active{box-shadow:0 0 8px rgba(59,130,246,.4)}.touchkio-danger-section{padding:1.25rem;background:rgba(239,68,68,.1);border:2px solid rgba(239,68,68,.3);border-radius:8px}.touchkio-danger-title{margin:0 0 1rem 0;font-size:.875rem;color:#fca5a5;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.touchkio-reboot-button{width:100%;margin-bottom:.5rem;background:rgba(251,191,36,.2);border-color:rgba(251,191,36,.5);color:#fbbf24;font-weight:600;font-size:.875rem;padding:.625rem}.touchkio-shutdown-button{width:100%;background:rgba(239,68,68,.2);border-color:rgba(239,68,68,.5);color:#ef4444;font-weight:600;font-size:.875rem;padding:.625rem}.touchkio-update-info{font-size:.8rem;color:hsla(0,0%,100%,.7);margin-bottom:.75rem}.touchkio-update-available{color:#22c55e;font-weight:600}.touchkio-update-current{color:hsla(0,0%,100%,.4)}.touchkio-update-progress{color:#f59e0b}.touchkio-update-button{width:100%;margin-bottom:.75rem;background:rgba(34,197,94,.15);border-color:rgba(34,197,94,.5);color:#22c55e;font-weight:600;font-size:.875rem;padding:.625rem}.touchkio-update-button--current{background:hsla(0,0%,100%,.05);border-color:hsla(0,0%,100%,.2);color:hsla(0,0%,100%,.5)}.touchkio-errors-section{margin-top:2rem;padding:1.25rem;background:rgba(239,68,68,.1);border-radius:8px;border:1px solid rgba(239,68,68,.3)}.touchkio-errors-title{font-size:.75rem;color:#fca5a5;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.touchkio-errors-list{max-height:200px;overflow-y:auto}.touchkio-error-entry{font-size:.75rem;color:#fca5a5;margin-bottom:.75rem;padding-left:.5rem;border-left:2px solid #ef4444;font-family:monospace;white-space:pre-wrap;word-break:break-word}.touchkio-error-timestamp{color:#94a3b8;margin-bottom:.25rem}.devices-action-bar{margin-bottom:1rem;display:flex;gap:.75rem;flex-wrap:wrap}.devices-refresh-all-button{background:rgba(59,130,246,.2);border-color:rgba(59,130,246,.5);color:#3b82f6}.devices-reboot-all-button{background:rgba(251,191,36,.2);border-color:rgba(251,191,36,.5);color:#fbbf24}.devices-update-all-button{background:rgba(34,197,94,.15);border-color:rgba(34,197,94,.5);color:#22c55e}.devices-status-dot{display:inline-block;width:10px;height:10px;border-radius:50%}.devices-name-cell{overflow:hidden;text-overflow:ellipsis}.devices-name-cell strong{font-size:.875rem}.devices-sub-info{font-size:.7rem;color:#94a3b8;margin-top:.125rem}.devices-type-cell{font-size:.8rem;overflow:hidden;text-overflow:ellipsis}.devices-connection-cell{font-size:.75rem;display:flex;flex-direction:column;gap:.125rem}.devices-badge{display:inline-block;padding:.125rem .5rem;border-radius:4px;font-size:.75rem;white-space:nowrap}.devices-badge--socketio{background-color:rgba(59,130,246,.2);color:#3b82f6;margin-right:.25rem}.devices-badge--mqtt{background-color:rgba(34,197,94,.2);color:#22c55e}.devices-badge--new{background-color:rgba(168,85,247,.2);color:#a855f7}.devices-badge--update{background-color:rgba(245,158,11,.2);color:#f59e0b}.devices-metrics-cell{font-size:.75rem;color:#94a3b8;line-height:1.3}.devices-timestamp{font-size:.7rem}.devices-actions-cell{display:flex;gap:.25rem;align-items:center;flex-wrap:wrap}.devices-icon-button{padding:.375rem .5rem;font-size:.875rem;min-width:32px;height:32px}.devices-details-button{padding:.375rem .75rem;font-size:.8rem;height:32px}.devices-delete-button{padding:.375rem .5rem;font-size:.8rem;background-color:#ef4444;color:#fff;height:32px}.color-preset-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;margin-bottom:12px}.color-preset-button{width:45px;height:45px;border-radius:4px;cursor:pointer;padding:0}.color-preset-button--selected{border:3px solid #000}.color-preset-button--unselected{border:2px solid #999}.color-swatch-inline{display:inline-block;width:20px;height:20px;border:1px solid #ddd;border-radius:4px}.color-value-display{display:flex;align-items:center;gap:8px}.color-input-row{display:flex;align-items:stretch;gap:10px;margin-top:8px}.color-input-picker{width:60px;height:40px;cursor:pointer;border:2px solid #ddd;border-radius:4px;flex-shrink:0}.color-input-text{flex:1;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-family:monospace;font-size:14px}.booking-override-select-wrapper{margin-top:.5rem;margin-bottom:.75rem}.booking-override-select{min-height:2.25rem}.booking-override-add-row{display:flex;gap:.75rem;margin-top:.5rem;margin-bottom:.75rem}.booking-override-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:.75rem;align-items:center;margin-bottom:.75rem}.booking-permission-status{color:#f59e0b}.display-input-narrow{width:120px}.display-time-input{width:150px}.mqtt-status-running{color:#28a745}.mqtt-status-stopped{color:#dc3545}.admin-mb-1{margin-bottom:1rem}.admin-mb-15{margin-bottom:1.5rem}.admin-mb-2{margin-bottom:2rem}.admin-mt-05{margin-top:.5rem}.admin-w-full{width:100%}.admin-btn-sm{font-size:.875rem;padding:.5rem 1rem}.admin-btn-nowrap{white-space:nowrap}.backup-actions{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.audit-actions{margin-bottom:1rem}.android-toolbar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.android-device-card{margin-bottom:.75rem;padding:.875rem 1rem}.android-card-header{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.android-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;display:inline-block}.android-device-id{font-size:.875rem;font-weight:600}.android-device-model{font-size:.75rem;color:#9ca3af}.android-device-info{margin-left:auto;font-size:.75rem;color:#6b7280}.android-current-url{font-size:.75rem;color:#6b7280;margin-top:.375rem;word-break:break-all}.android-feedback{margin-top:.375rem;padding:.25rem .625rem;border-radius:.25rem;font-size:.75rem}.android-feedback--success{background:#d1fae5;color:#065f46}.android-feedback--error{background:#fee2e2;color:#991b1b}.android-action-row{display:flex;gap:.375rem;flex-wrap:wrap;margin-top:.625rem}.android-expanded{margin-top:.75rem;border-top:1px solid #e5e7eb;padding-top:.75rem;display:flex;flex-direction:column;gap:.625rem}.android-field-row{display:flex;gap:.375rem;align-items:center;flex-wrap:wrap}.android-input{flex:1;min-width:200px;padding:.3125rem .5rem;font-size:.8125rem;border:1px solid #d1d5db;border-radius:.25rem}.android-label{font-size:.75rem;white-space:nowrap}.android-meta{font-size:.6875rem;color:#9ca3af}.android-btn-sm{font-size:.75rem;padding:.25rem .625rem}.android-btn-sm--danger{color:#dc2626}.android-bulk-card{background:#f9fafb;margin-bottom:1rem;padding:.75rem .875rem}.android-bulk-title{margin:0 0 .625rem;font-size:.8125rem;font-weight:600}.android-bulk-input{flex:1;min-width:220px;padding:.3125rem .5rem;font-size:.8125rem;border:1px solid #d1d5db;border-radius:.25rem}.android-empty{font-size:.8125rem;color:#9ca3af;padding:1.25rem 0;text-align:center}.android-description{font-size:.8125rem;color:#6b7280;margin-bottom:1rem}.android-input--narrow{width:70px;flex:none;min-width:unset}.android-action-row--mb{margin-bottom:.625rem}.admin-header-right{display:flex;align-items:center;gap:1rem}.admin-header-logout{display:flex;align-items:center;gap:.5rem;padding:.45rem 1.1rem;background:rgba(0,0,0,0);border:1px solid hsla(0,0%,100%,.15);border-radius:6px;color:hsla(0,0%,100%,.7);font-size:.8rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:all .2s;font-family:inherit}.admin-header-logout:hover{background:rgba(239,68,68,.15);border-color:rgba(239,68,68,.4);color:#ef4444}.admin-login-wrapper{display:flex;justify-content:center;padding-top:4rem}.admin-login-wrapper .admin-token-banner{width:100%;max-width:480px;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.4)}.admin-button-group{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.admin-btn-danger{background-color:#dc2626}.admin-btn-danger:hover:not(:disabled){background-color:#b91c1c}.admin-btn-xs{font-size:.75rem;padding:.25rem .5rem;line-height:1}.admin-textarea{width:100%;padding:.625rem .75rem;background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.2);border-radius:.5rem;color:#f1f5f9;font-size:.875rem;font-family:inherit;resize:vertical}.admin-textarea:focus{outline:none;border-color:#3b82f6}.admin-monospace-input,.admin-value-mono{font-family:"SF Mono",SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace}.admin-value-mono{font-size:.8125rem;word-break:break-all}.admin-maintenance-banner-inner{display:flex;align-items:center;gap:.5rem}.admin-maintenance-banner-icon{flex-shrink:0;font-size:1.125rem}.touchkio-section-label--row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.touchkio-control-title--compact{margin-bottom:.5rem}.touchkio-muted-text{color:#94a3b8;font-size:.8125rem;padding:.5rem 0}.touchkio-screenshot-container{position:relative;cursor:pointer;border-radius:8px;overflow:hidden;border:1px solid hsla(0,0%,100%,.1);background:#0f172a}.touchkio-screenshot-img{display:block;width:100%;max-height:220px;object-fit:contain;transition:max-height .25s ease}.touchkio-screenshot-img--expanded{max-height:70vh}.touchkio-screenshot-hint{position:absolute;bottom:0;left:0;right:0;padding:.25rem .5rem;background:rgba(15,23,42,.75);color:#94a3b8;font-size:.6875rem;text-align:center}.connection-status{position:fixed;bottom:20px;right:20px;z-index:10000;padding:8px 12px;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.1);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell",sans-serif;font-size:12px;font-weight:500;animation:connectionFadeIn .3s ease-out;max-width:280px;opacity:.85;transition:opacity .2s ease}.connection-status:hover{opacity:1}.connection-status.offline{background-color:#fef3c7;color:#92400e;border:1px solid #fbbf24}.connection-status.online{background-color:#d1fae5;color:#065f46;border:1px solid #34d399}@keyframes connectionFadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:.85;transform:translateY(0)}}.connection-status-content{display:flex;align-items:center;gap:6px}.connection-icon{font-size:14px;line-height:1}.connection-text{line-height:1.4;font-size:11px}@media(max-width: 768px){.connection-status{bottom:10px;right:10px;padding:6px 10px;font-size:11px}.connection-text{font-size:10px}}.rd-page{position:relative;width:100vw;height:100vh;background:#070b14;overflow:hidden;font-family:"Segoe UI","Inter",system-ui,sans-serif;display:flex;flex-direction:column}.rd-strip{height:6px;flex-shrink:0;transition:background .5s}.rd-glow{position:absolute;inset:0;pointer-events:none;transition:background .8s}.rd-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.55}.rd-mascot{position:absolute;right:-2%;bottom:-5%;height:95%;width:auto;aspect-ratio:1675/4565;background-size:contain;background-repeat:no-repeat;background-position:bottom right;pointer-events:none;z-index:0;filter:grayscale(100%) brightness(4)}.rd-content{position:relative;z-index:1;flex:1;display:flex;align-items:stretch;padding:clamp(.8rem,2vw,1.8rem);gap:clamp(.8rem,1.5vw,1.5rem);min-height:0}.rd-card{width:clamp(260px,32%,420px);background:rgba(8,15,35,.82);backdrop-filter:blur(16px);border:1px solid hsla(0,0%,100%,.07);border-radius:16px;padding:clamp(1rem,2vw,1.6rem);display:flex;flex-direction:column;gap:6px;flex-shrink:0;overflow:hidden}.rd-card__prev{opacity:.35;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid hsla(0,0%,100%,.06)}.rd-card__prev-label{font-size:clamp(.55rem,.9vw,.7rem);color:hsla(0,0%,100%,.4);text-transform:uppercase;letter-spacing:1px}.rd-card__prev-name{font-size:clamp(.7rem,1.2vw,.85rem);color:hsla(0,0%,100%,.5);font-weight:500}.rd-card__label{font-size:clamp(.6rem,1vw,.78rem);color:hsla(0,0%,100%,.45);text-transform:uppercase;letter-spacing:2px;font-weight:600}.rd-card__status{font-size:clamp(1.2rem,2.8vw,2rem);font-weight:800;line-height:1.1;letter-spacing:-0.02em;transition:color .5s}.rd-card__organizer{margin-top:4px;font-size:clamp(.8rem,1.4vw,1rem);color:#fff;font-weight:700}.rd-card__time{font-size:clamp(.68rem,1.1vw,.82rem);color:hsla(0,0%,100%,.5)}.rd-card__msg{margin-top:4px;font-size:clamp(.6rem,1vw,.75rem);color:hsla(0,0%,100%,.4);font-weight:600;text-transform:uppercase;letter-spacing:1px}.rd-upcoming{padding-top:10px;border-top:1px solid hsla(0,0%,100%,.07);margin-top:4px;display:flex;flex-direction:column;gap:6px}.rd-upcoming__label{font-size:clamp(.55rem,.9vw,.68rem);color:hsla(0,0%,100%,.35);text-transform:uppercase;letter-spacing:1px}.rd-upcoming__item-name{font-size:clamp(.68rem,1.2vw,.85rem);color:hsla(0,0%,100%,.72);font-weight:600}.rd-upcoming__item-time{font-size:clamp(.6rem,1vw,.74rem);color:hsla(0,0%,100%,.4)}.rd-upcoming__subject{font-size:clamp(.62rem,1vw,.75rem);color:hsla(0,0%,100%,.45);font-style:italic}.rd-wifi{border-top:1px solid hsla(0,0%,100%,.07);padding-top:12px;margin-top:auto}.rd-wifi__label{font-size:clamp(.55rem,.9vw,.7rem);color:hsla(0,0%,100%,.38);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:8px}.rd-wifi__row{display:flex;align-items:center;gap:10px}.rd-wifi__qr{width:54px;height:54px;border-radius:6px;flex-shrink:0}.rd-wifi__ssid{font-size:clamp(.65rem,1.1vw,.8rem);color:hsla(0,0%,100%,.75);font-weight:600}.rd-wifi__password{font-size:clamp(.6rem,1vw,.72rem);color:hsla(0,0%,100%,.4)}.rd-panel{flex:1;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;overflow:hidden}.rd-panel__top{text-align:right}.rd-panel__logo-row{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-bottom:10px}.rd-panel__logo{height:28px;width:auto;object-fit:contain}.rd-panel__room-name{font-size:clamp(1.2rem,3.5vw,2.6rem);font-weight:800;color:#fff;line-height:1.1;margin-bottom:8px;text-shadow:0 4px 20px rgba(0,0,0,.5);letter-spacing:-0.02em}.rd-panel__status-row{display:flex;align-items:center;justify-content:flex-end;gap:8px}.rd-panel__status-dot{width:9px;height:9px;border-radius:50%;animation:rd-pulse 2s infinite}.rd-panel__status-label{font-size:clamp(.9rem,2.2vw,1.6rem);font-weight:800;letter-spacing:.06em;text-transform:uppercase;transition:color .5s}.rd-panel__bottom{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.rd-book-btn{display:inline-block;padding:10px 24px;background:rgba(var(--rd-btn-rgb, 34, 197, 94), 0.15);border:1px solid rgba(var(--rd-btn-rgb, 34, 197, 94), 0.4);border-radius:10px;color:var(--rd-btn-color, #22c55e);font-weight:700;font-size:clamp(.75rem,1.3vw,.95rem);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;backdrop-filter:blur(8px);transition:background .2s;font-family:inherit}.rd-book-btn:hover{background:rgba(var(--rd-btn-rgb, 34, 197, 94), 0.25)}.rd-clock{text-align:right}.rd-clock__time{font-size:clamp(2.4rem,5.5vw,4.5rem);font-weight:800;color:#fff;line-height:1;letter-spacing:-0.03em}.rd-clock__date{font-size:clamp(.75rem,1.4vw,1rem);color:hsla(0,0%,100%,.55);font-weight:600;margin-top:4px}.rd-loading{background:#070b14;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center}.rd-loading__text{color:hsla(0,0%,100%,.3);font-size:1.1rem}@keyframes rd-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(0.8)}}.rd-brand-text{font-size:clamp(.8rem,1.4vw,1rem);font-weight:700;color:hsla(0,0%,100%,.7);letter-spacing:1px}/*# sourceMappingURL=styles.css.map */
