@import"https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@500;700;800&family=Noto+Sans+JP:wght@400;600;700&display=swap";:root{font-family:Noto Sans JP,sans-serif;color:#173042;background:#eef4f3;font-synthesis:none}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}body{overflow-x:hidden}button,input{font:inherit}button{cursor:pointer}.loading{display:grid;place-items:center;height:100vh;font-size:2rem}.kiosk{position:relative;width:100vw;height:100vh;min-height:600px;overflow:hidden;background:#dff2ee var(--screen-background) center / cover no-repeat;font-family:"M PLUS Rounded 1c",sans-serif}.kiosk-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#05233224,#ffffff14)}.kiosk-content{position:relative;z-index:1;width:100%;height:100%;display:grid;place-items:center;padding:clamp(30px,4vh,72px) clamp(40px,5vw,100px)}.center-panel,.quiz-panel,.feedback-panel{width:min(88vw,1660px);text-align:center;background:#ffffffed;border:clamp(4px,.35vw,7px) solid rgb(255 255 255 / .9);border-radius:3vw;padding:clamp(34px,5vh,80px);box-shadow:0 2.5vh 5vh #0f354233;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.center-panel h1{font-size:clamp(48px,5vw,96px);line-height:1.25;margin:.3em 0}.center-panel p{font-size:clamp(26px,2.2vw,44px);margin:.4em 0}.eyebrow{color:#167d78;font-weight:800;letter-spacing:.08em}.rfid-icon{width:clamp(130px,12vw,230px);height:clamp(130px,12vw,230px);display:grid;place-items:center;margin:1vh auto;border-radius:50%;background:#13a89e;color:#fff;font-size:clamp(80px,8vw,150px);box-shadow:0 0 0 1.2vw #13a89e29;animation:pulse 1.8s infinite}@keyframes pulse{50%{transform:scale(1.04);box-shadow:0 0 0 2vw #13a89e0d}}.network-status{position:fixed;z-index:3;right:2vw;bottom:2vh;display:flex;gap:.5em;align-items:center;padding:.5em .8em;border-radius:99px;color:#fff;background:#142832ad;font-size:clamp(14px,1vw,20px)}.network-dot{width:.7em;height:.7em;border-radius:50%;background:#52e38a}.hidden-settings{position:fixed;z-index:4;left:0;bottom:0;opacity:.03;width:80px;height:80px}.reception-panel{max-height:96vh;padding:2.5vh 4vw}.reception-panel h1{font-size:clamp(36px,3.2vw,62px)}.selection{margin:1.5vh 0}.selection h2{font-size:clamp(25px,2vw,38px);margin:.5vh 0}.touch-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(12px,1vw,22px)}.touch-grid button{min-width:9vw;min-height:clamp(60px,7vh,85px);padding:.4em 1em;border:3px solid #b7d2d0;border-radius:18px;background:#fff;color:#284954;font-size:clamp(22px,1.6vw,32px);font-weight:800}.touch-grid button.selected{color:#fff;background:#167d78;border-color:#075b58;transform:translateY(-3px);box-shadow:0 8px #075b58}.form-actions{display:flex;justify-content:center;gap:2vw;margin-top:2vh}.form-actions button,.setup-card button,.admin-login button{min-width:240px;padding:.65em 1.5em;border:0;border-radius:18px;background:#e95c36;color:#fff;font-size:clamp(22px,1.6vw,32px);font-weight:800}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:#d8e4e3;color:#294b53}.success-mark{width:1.4em;height:1.4em;margin:auto;border-radius:50%;display:grid;place-items:center;color:#fff;background:#17a271;font-size:clamp(80px,8vw,150px)}.quiz-panel{display:flex;height:min(84vh,900px);flex-direction:column;justify-content:space-between;padding:5vh 5vw}.question-header{display:flex;justify-content:space-between;align-items:center;gap:2vw}.question-number{margin:0;color:#197a75;font-size:clamp(26px,2vw,40px);font-weight:800}.answer-countdown{min-width:5.5em;margin:0;padding:.25em .65em;border-radius:99px;color:#fff;background:#d94728;font-size:clamp(24px,2vw,38px);font-weight:800;text-align:center}.answer-countdown strong{font-size:1.35em}.quiz-panel h1{font-size:clamp(48px,4.4vw,84px);line-height:1.35;margin:.4em 0}.answer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2vw}.answer-grid button{min-height:24vh;border:0;border-radius:2vw;background:#fff;color:#173042;font-size:clamp(30px,2.5vw,50px);font-weight:800;box-shadow:0 1.2vh #bdd5d1,0 2vh 4vh #14323c24;transition:transform .1s}.answer-grid button:active{transform:translateY(1vh);box-shadow:0 .3vh #bdd5d1}.answer-grid button span{display:grid;place-items:center;width:clamp(65px,5vw,95px);height:clamp(65px,5vw,95px);margin:0 auto .35em;border-radius:50%;background:#167d78;color:#fff}.feedback-panel h1{font-size:clamp(42px,4vw,78px);line-height:1.4}.verdict{margin:0;font-size:clamp(75px,7vw,135px);font-weight:800}.verdict.correct{color:#0b9871}.verdict.incorrect{color:#d94b37}.correct-answer{font-size:clamp(25px,2vw,40px);padding:.7em;border-radius:16px;background:#eef7f5}.advance-button{margin-top:3vh;padding:.7em 2em;border:0;border-radius:99px;color:#fff;background:#167d78;font-size:clamp(22px,1.7vw,34px)}.goal-panel h1{color:#d94728;font-size:clamp(70px,7vw,140px)}.missing-booths{display:flex;justify-content:center;flex-wrap:wrap;gap:1vw}.missing-booths span{padding:.4em .8em;border-radius:99px;color:#fff;background:#e2613c;font-size:clamp(28px,2.2vw,44px)}.setup-page,.admin-login{min-height:100vh;display:grid;place-items:center;padding:30px;background:linear-gradient(140deg,#d9efeb,#f8eddb)}.setup-card,.admin-login form{width:min(600px,92vw);padding:45px;border-radius:24px;background:#fff;box-shadow:0 20px 60px #1e3c462e}.setup-card label,.admin-login label,.simulator label{display:grid;gap:8px;margin:20px 0;font-weight:700}.setup-card input,.admin-login input,.simulator input{width:100%;padding:14px;border:2px solid #bdd0d0;border-radius:10px;font-size:18px}.error-banner{padding:12px 16px;border-radius:8px;color:#8d251b;background:#ffe8e4}.admin-page{min-height:100vh;padding:35px max(24px,4vw);background:#edf2f1;color:#1b343c}.admin-page header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.admin-page h1{margin:0;font-size:36px}.admin-page h2{margin-top:0}.admin-actions{display:flex;gap:12px}.admin-actions button,.button-link{padding:11px 18px;border:0;border-radius:9px;text-decoration:none;font-weight:700}.button-link{color:#fff;background:#157b75}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.metric,.admin-card{padding:24px;border-radius:16px;background:#fff;box-shadow:0 6px 25px #213c4212}.metric strong{margin-left:auto;font-size:42px}.metric{display:flex;gap:8px;align-items:baseline}.metric span{font-weight:700}.admin-card{margin-top:20px}.device-monitoring-groups{display:grid;gap:24px}.device-group h3{margin:0 0 12px;color:#126761}.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:12px}.device-grid article{display:grid;gap:4px;padding:15px;border:1px solid #d8e2e0;border-radius:10px}.status{width:fit-content;padding:3px 8px;border-radius:99px;font-size:11px;font-weight:800}.status.online{color:#09613d;background:#d9f7e8}.status.offline{color:#8d2d25;background:#ffe3df}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px;border-bottom:1px solid #dfe7e5;text-align:left;white-space:nowrap}.pill{padding:4px 8px;border-radius:6px;background:#e5eceb;font-size:12px}.danger-small{padding:7px 10px;border:1px solid #d95145;border-radius:7px;color:#a72d25;background:#fff}.detail-small{padding:7px 10px;border:1px solid #167d78;border-radius:7px;color:#126761;background:#fff}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:18px}.pagination button{padding:8px 16px}.modal-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:30px;background:#0a1e238c}.detail-modal{width:min(850px,96vw);max-height:88vh;overflow:auto;padding:28px;border-radius:16px;background:#fff}.modal-close{float:right;padding:8px 14px}.detail-modal dl{display:grid;grid-template-columns:150px 1fr}.detail-modal dt{font-weight:700}.detail-modal pre{padding:16px;overflow:auto;border-radius:8px;color:#e9fffa;background:#183841}.simulator{max-width:1100px;margin:40px auto;padding:25px}.simulator>label{max-width:500px}.sim-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:15px}.sim-grid form{display:grid;gap:10px;padding:20px;border-radius:14px;background:#fff;box-shadow:0 5px 18px #14323c1a}.sim-grid code{overflow:hidden}.sim-grid button{padding:10px;border:0;border-radius:8px;color:#fff;background:#167d78}.simulator output{display:block;margin-top:20px;padding:15px;border-radius:8px;background:#183841;color:#fff}.terminal-links{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}@media (max-aspect-ratio: 4/3){.answer-grid{gap:1vw}.center-panel{width:95vw}.metric-grid{grid-template-columns:repeat(2,1fr)}}
