.admin-shell,.admin-login{--admin-blue:#007aff;--admin-muted:#636366;--admin-line:#e5e5ea;color:#1c1c1e;background:#f2f2f7;min-height:100dvh}.admin-shell .button,.admin-login .button,.admin-dialog .button{border-radius:999px;min-height:42px;padding:10px 17px;font-size:13px;font-weight:600}:is(.admin-shell,.admin-login,.admin-dialog) .button.primary{color:#fff;background:linear-gradient(155deg,#2591ff,#007aff 75%);border:1px solid #3d9aff;box-shadow:inset 0 1px 1px #ffffff70,0 3px 10px #007aff16}:is(.admin-shell,.admin-login,.admin-dialog) .button.primary:hover:not(:disabled){background:#006de8}:is(.admin-shell,.admin-login,.admin-dialog) .button.primary:disabled{color:#8e8e93;box-shadow:none;background:#e5e5ea;border-color:#e5e5ea}:is(.admin-shell,.admin-dialog) .button.outline{color:#007aff;background:#fff;border:1px solid #ffffffd9;box-shadow:0 2px 8px #1c263506,inset 0 1px 1px #fff}:is(.admin-shell,.admin-dialog) .button.outline:hover{background:#edf3ff}:is(.admin-shell,.admin-dialog) .button.outline:not(:focus-visible){outline:none}:is(.admin-shell,.admin-login,.admin-dialog) :is(button,a,input,select,textarea):focus-visible{outline-color:#007aff}:is(.admin-shell,.admin-dialog) .icon-button{color:#636366;background:#ffffffb3;border:1px solid #ffffffad;border-radius:50%;justify-content:center;align-items:center;width:40px;min-width:40px;height:40px;display:inline-flex}:is(.admin-shell,.admin-dialog) .icon-button:hover{color:#007aff;background:#e9effc}.admin-topbar{z-index:20;-webkit-backdrop-filter:blur(24px)saturate(1.8);backdrop-filter:blur(24px)saturate(1.8);background:linear-gradient(165deg,#ffffffd6,#ffffff91);border:1px solid #ffffffdb;border-radius:999px;justify-content:space-between;align-items:center;gap:16px;width:min(1120px,100% - 48px);height:58px;margin:12px auto 23px;padding:8px 10px 8px 16px;display:flex;position:sticky;top:12px;box-shadow:0 5px 22px #1c263508,inset 0 1px 1px #fff}.admin-topbar nav{align-items:center;gap:15px;display:flex}.admin-topbar .brand{gap:9px}.admin-topbar .brand img{border-radius:9px;width:30px;height:30px}.admin-topbar .brand>span{font-size:15px}.admin-visitor-link{color:#636366;align-items:center;gap:5px;min-height:40px;font-size:12px;display:inline-flex}.admin-main{width:min(1120px,100% - 64px);margin:0 auto;padding-bottom:50px}.admin-title-row{justify-content:space-between;align-items:center;gap:20px;margin:0 3px 18px;display:flex}.admin-title-row h1{letter-spacing:-1.1px;font-size:33px;font-weight:700;line-height:1.3}.admin-top-actions{align-items:center;gap:8px;display:flex}.booking-summary{color:#636366;align-items:center;gap:24px;margin:0 3px 17px;font-size:12px;display:flex}.booking-summary>span{align-items:baseline;gap:8px;display:flex}.booking-summary strong{color:#1c1c1e;font-variant-numeric:tabular-nums;font-size:18px;font-weight:600}.booking-summary small{color:#8e8e93;font-size:12px;font-weight:400}.booking-switch{color:#636366;background:#ffffffb3;border:1px solid #fffc;border-radius:999px;align-items:center;gap:7px;min-height:33px;margin-left:auto;padding:6px 11px;font-size:11px;display:inline-flex;box-shadow:inset 0 1px 1px #fff}.booking-switch:hover{background:#e9eef8}.live-dot{background:#34c759;border-radius:50%;width:5px;height:5px}.live-dot.paused{background:#ff9f0a}.admin-reservations{background:#fff;border:1px solid #fff;border-radius:26px;overflow:hidden}.schedule-board{padding:17px 20px 8px}.schedule-head,.schedule-row{grid-template-columns:96px minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.schedule-head{color:#636366;align-items:center;padding:6px 0 16px;font-size:12px}.schedule-head>span:not(:first-child){align-items:center;gap:7px;display:flex}.device-tag{background:#f2f2f7;border-radius:8px;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:600;display:inline-flex}.schedule-row{border-top:1px solid #eeeef3;align-items:stretch;padding:7px 0}.schedule-time{font-variant-numeric:tabular-nums;padding-top:9px}.schedule-time strong{letter-spacing:-.5px;font-size:21px;font-weight:550;line-height:1.2;display:block}.schedule-time>span{color:#8e8e93;margin-top:6px;font-size:11px;display:block}.empty-seat{color:#8e8e93;background:#f7f7fa;border:1px dashed #e0e1e8;border-radius:19px;justify-content:center;align-items:center;gap:7px;min-height:58px;font-size:12px;display:flex}.empty-seat:hover{color:#007aff;background:#eef4ff;border-color:#96beff}.seat-card{background:#f7f9fe;border:1px solid #e9ecf5;border-radius:19px;grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid;overflow:hidden}.seat-content{text-align:left;flex:1;width:100%;padding:11px 13px 9px;display:block}.seat-person{overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:5px;font-size:15px;font-weight:600;display:flex}.seat-person>strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:inherit;font-weight:600;overflow:hidden}.seat-code{color:#777984;overflow-wrap:break-word;justify-content:space-between;align-items:center;gap:5px;margin-top:4px;font-size:10px;display:flex}.seat-code svg{flex-shrink:0}.admin-shell .status{border-radius:999px;padding:4px 9px;font-size:10px}.admin-shell .status-reserved{color:#0069dd;background:#e3edff}.admin-shell .status-arrived{color:#258d42;background:#e2f4e7}.admin-shell .status-experiencing{color:#7053b8;background:#e6e3fc}.admin-shell .status-completed{color:#636366;background:#ededf2}.admin-shell .status-cancelled,.admin-shell .status-no_show{color:#bd5348;background:#ffebe8}.seat-actions{border-left:1px solid #e9ecf5;justify-content:flex-end;align-items:center;gap:5px;padding:7px 9px;display:flex}.seat-actions>button{color:#007aff;background:#e9f1ff;border-radius:999px;justify-content:center;align-items:center;gap:4px;min-height:36px;padding:5px 9px;font-size:11px;display:inline-flex}.seat-actions>button:hover{background:#dfeaff}.seat-experiencing{background:#f5f3ff;border-color:#e6e0fa}.seat-completed{background:#f9f9fb}.admin-shell .success-message{color:#278442;background:#e9f5ed;border:1px solid #dcefe3;border-radius:15px;align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:12px;display:flex}.success-message>button{border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;margin-left:auto;display:flex}.admin-shell .error-message{border-radius:15px;margin:0 0 16px;font-size:12px}.admin-dialog{color:#1c1c1e;background:#fff;border:1px solid #fff;border-radius:29px;width:min(460px,100% - 40px);max-width:none;max-height:calc(100dvh - 48px);margin:auto;padding:0;position:fixed;inset:0;overflow:auto;box-shadow:0 24px 90px #17172530}.admin-dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#17172538}.edit-sheet{padding:25px}.sheet-heading{justify-content:space-between;align-items:center;gap:15px;margin-bottom:26px;display:flex}.sheet-heading h2{letter-spacing:-.7px;font-size:25px;font-weight:700}.admin-dialog .icon-button{background:#f2f2f7;border-color:#f2f2f7}.edit-sheet form>label,.edit-sheet .field-row{margin-bottom:20px}.edit-sheet label{font-size:12px;font-weight:600}.edit-sheet input,.edit-sheet select,.edit-sheet textarea{background:#f2f2f7;border:1px solid #0000;border-radius:14px;min-height:46px;padding:12px 14px;font-size:14px}.edit-sheet :is(input,select,textarea):focus{border-color:#007aff}.edit-sheet .optional{color:#8e8e93;font-size:10px;font-weight:400}.sheet-actions{background:#fff;gap:10px;padding-top:16px;display:flex;position:sticky;bottom:0}.sheet-actions .button{flex:1;min-height:46px}.sheet-actions .button.outline{box-shadow:none;background:#f2f2f7;border-color:#f2f2f7}.new-booking-link{background:#f5f7fd;border-radius:17px;margin-bottom:20px;padding:14px}.new-booking-link input{background:#fff;margin:9px 0 10px;font-size:11px}.new-booking-link .button{min-height:36px;font-size:11px}.admin-dialog .error-message{border-radius:14px;margin:12px 0;font-size:12px}.qr-dialog{width:min(380px,100% - 40px)}.qr-modal{text-align:center;padding:30px 24px 25px;position:relative}.qr-modal .modal-close{width:34px;min-width:34px;height:34px;position:absolute;top:12px;right:12px}.qr-modal h2{letter-spacing:-.7px;font-size:25px;font-weight:700}.qr-modal>img{border-radius:16px;margin:16px auto 0}.qr-url{color:#636366;overflow-wrap:anywhere;margin:0 0 20px;font-size:11px}.qr-modal>div:last-child{justify-content:center;align-items:center;gap:9px;display:flex}.admin-login{flex-direction:column;justify-content:center;align-items:center;gap:25px;padding:30px 20px;display:flex}.admin-login>.brand img{border-radius:9px;width:32px;height:32px}.admin-login-card{text-align:center;background:#fff;border:1px solid #fff;border-radius:29px;width:min(380px,100%);padding:32px 28px}.login-lock{color:#007aff;background:#eaf2ff;border-radius:18px;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 17px;display:flex}.admin-login h1{letter-spacing:-.8px;font-size:28px;font-weight:700}.admin-login p{color:#b75148;margin-top:12px;font-size:12px}.admin-login .button{width:100%;min-height:48px;margin-top:29px;display:flex}.admin-login .back-link{color:#007aff;min-height:40px;margin-top:16px;font-size:12px}@media (max-width:800px){.admin-main{width:calc(100% - 40px)}.schedule-head,.schedule-row{grid-template-columns:76px minmax(0,1fr) minmax(0,1fr);gap:11px}.admin-title-row h1{font-size:30px}}@media (max-width:550px){.admin-topbar{gap:8px;width:calc(100% - 24px);height:58px;margin:12px auto 26px;padding-left:12px;top:10px}.admin-topbar .brand img{border-radius:8px;width:27px;height:27px}.admin-topbar .brand>span{font-size:13px}.admin-topbar nav{gap:8px}.admin-visitor-link{gap:4px;font-size:11px}.admin-topbar .icon-button{width:36px;min-width:36px;height:36px}.admin-main{width:calc(100% - 32px);padding-bottom:30px}.booking-summary{gap:15px;margin-bottom:16px;font-size:11px}.booking-summary>span{gap:5px}.booking-summary strong{font-size:16px}.booking-summary small{font-size:11px}.booking-switch{gap:5px;min-height:32px;padding:6px 9px;font-size:10px}.admin-top-actions .button.outline span{display:none}.admin-title-row{align-items:flex-start;gap:10px;margin:0 2px 21px}.admin-title-row h1{font-size:28px}.admin-top-actions{gap:5px;padding-top:1px}.admin-top-actions .button{gap:4px;min-height:38px;padding:9px 12px;font-size:12px}.admin-top-actions .button.outline{width:38px;padding:9px}.admin-top-actions .icon-button{width:35px;min-width:35px;height:38px}.admin-reservations{border-radius:23px}.schedule-board{padding:13px 11px 6px}.schedule-head,.schedule-row{grid-template-columns:53px minmax(0,1fr) minmax(0,1fr);gap:8px}.schedule-head{padding:1px 0 12px;font-size:10px}.schedule-head>span:not(:first-child){gap:5px}.device-tag{border-radius:6px;width:20px;height:20px;font-size:10px}.schedule-row{padding:10px 0}.schedule-time{padding-top:8px}.schedule-time strong{font-size:18px}.schedule-time>span{margin-top:5px;font-size:10px}.empty-seat{border-radius:15px;gap:4px;min-height:110px;font-size:11px}.empty-seat svg{width:15px}.seat-card{border-radius:15px;flex-direction:column;display:flex}.seat-content{padding:10px 9px}.seat-person{flex-direction:column;align-items:flex-start;gap:5px;font-size:13px}.seat-person>strong{max-width:100%}.seat-code{margin:5px 0 0;font-size:9px}.admin-shell .status{padding:4px 7px;font-size:9px}.seat-actions{border-top:1px solid #e9ecf5;border-left:0;gap:2px;padding:4px}.seat-actions>button{gap:3px;width:100%;min-height:30px;padding:5px 7px;font-size:11px}.seat-actions>button svg{display:none}.admin-dialog:not(.qr-dialog){border-radius:28px 28px 0 0;width:100%;max-height:92dvh;margin:0 auto;inset:auto 0 0}.edit-sheet{padding:24px 21px max(24px, env(safe-area-inset-bottom))}.edit-sheet:before{content:"";background:#d1d1d6;border-radius:4px;width:34px;height:4px;margin:-13px auto 20px;display:block}.sheet-heading{margin-bottom:23px}.sheet-heading h2{font-size:24px}.edit-sheet :is(input,select,textarea){font-size:16px}}@media (max-width:359px){.admin-visitor-link{font-size:10px}.admin-title-row h1{font-size:25px}.admin-top-actions{gap:3px}.admin-top-actions .button.primary{padding:9px 10px}.schedule-head,.schedule-row{grid-template-columns:46px minmax(0,1fr) minmax(0,1fr);gap:6px}.schedule-head{font-size:9px}.schedule-head>span:not(:first-child){gap:3px}.schedule-time strong{font-size:16px}.seat-content{padding:9px 7px}.seat-code{font-size:8px}}@media (prefers-reduced-transparency:reduce){.admin-topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}.admin-dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#17172580}}
