:root{--ink:#31453d;--muted:#718079;--green:#5f9c7f;--light:#eef7f1;--cream:#fffaf0;--red:#c63f3f;--line:#dfe9e2}*{box-sizing:border-box}body{color:var(--ink);background:#f8fbf8;margin:0;font-family:Yu Gothic,Hiragino Kaku Gothic ProN,system-ui,sans-serif}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.kiosk{background:radial-gradient(circle at 30% 10%,#fff6dc 0,#0000 34%),linear-gradient(145deg,#eff8f1,#fffaf3);min-height:100vh}.kiosk>header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffb;border-bottom:1px solid #e8eee9;align-items:center;gap:12px;height:84px;padding:0 max(22px,5vw);display:flex}.brandMark{color:#448368;background:#dff1e6;border-radius:50%;place-items:center;width:44px;height:44px;font-size:24px;display:grid}.kiosk header div{flex-direction:column;font-size:18px;display:flex}.kiosk header small{color:var(--muted);font-size:12px}.kiosk header a{color:#6c7e75;margin-left:auto;font-size:13px}.talkCard{text-align:center;background:#fffffff2;border:1px solid #e6eee8;border-radius:34px;width:min(760px,100% - 28px);margin:38px auto;padding:42px;box-shadow:0 24px 70px #5573611b}.avatar{background:#eed2b3;border-radius:48% 48% 46% 46%;width:168px;height:168px;margin:auto;position:relative;overflow:hidden;box-shadow:0 10px #e6f0e8,0 18px 35px #5a695d27}.hair{z-index:2;background:#3e332d;border-radius:50% 50% 36% 36%;position:absolute;inset:-10px 0 50%}.hair:after{content:"";background:#3e332d;border-radius:50%;width:110px;height:62px;position:absolute;bottom:-28px;left:28px;transform:rotate(-8deg)}.face{z-index:3;background:#f2d4b9;border-radius:45%;position:absolute;inset:56px 20px 10px}.face i{background:#4d433e;border-radius:50%;width:10px;height:12px;position:absolute;top:38px}.face i:first-child{left:30px}.face i:nth-child(2){right:30px}.face span{border-bottom:4px solid #b85f65;border-radius:50%;width:30px;height:14px;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.name{color:#4e826b;background:#e8f4ec;border-radius:999px;margin-top:20px;padding:7px 20px;font-weight:700;display:inline-block}.talkCard h1{margin:22px 0 10px;font-size:clamp(25px,4vw,38px);line-height:1.45}.talkCard p{color:var(--muted);font-size:17px}.mainButton{background:var(--green);color:#fff;border:0;border-radius:18px;margin-top:22px;padding:18px 48px;font-size:21px;font-weight:700;box-shadow:0 9px #42745c}.mainButton:active{transform:translateY(4px);box-shadow:0 5px #42745c}.mainButton:disabled{opacity:.6}.talkCard.caution,.talkCard.urgent{background:#fff8f8;border:3px solid #e05a5a}.alert{color:#a62929;background:#feeaea;border-radius:16px;flex-direction:column;gap:5px;max-width:520px;margin:22px auto;padding:18px;display:flex}.kiosk>footer{text-align:center;color:#78847e;padding:20px;font-size:12px}.login{background:linear-gradient(135deg,#edf8f1,#fff7e9);place-items:center;min-height:100vh;display:grid}.login form{border:1px solid var(--line);text-align:center;background:#fff;border-radius:28px;flex-direction:column;gap:15px;width:min(430px,100% - 32px);padding:42px;display:flex;box-shadow:0 25px 70px #4b685a1e}.login .brandMark{margin:auto}.login input,.inlineForm input,.generated input,.panelHead input{background:#fbfdfb;border:1px solid #d9e5dd;border-radius:13px;padding:14px}.login button,.inlineForm button,.device button,.generated button{background:var(--green);color:#fff;border:0;border-radius:13px;padding:14px 20px;font-weight:700}.login em{color:var(--red);font-style:normal}.admin{grid-template-columns:245px 1fr;min-height:100vh;display:grid}.admin aside{color:#fff;background:#314a40;flex-direction:column;gap:9px;padding:30px 20px;display:flex}.adminBrand{align-items:center;gap:12px;margin-bottom:10px;display:flex}.adminBrand span{font-size:28px}.admin aside small{color:#cbdcd3;margin:0 8px 22px}.admin aside button{color:#d7e5de;text-align:left;background:0 0;border:0;border-radius:12px;padding:14px 17px}.admin aside button.active{color:#fff;background:#ffffff18;font-weight:700}.content{padding:34px;overflow:hidden}.content>header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.content header small{color:var(--muted)}.content h1{margin:4px 0;font-size:30px}.content header a{border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 17px}.stats{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.stats article,.panel,.notice{border:1px solid var(--line);background:#fff;border-radius:18px;padding:22px}.stats article span{color:var(--muted);display:block}.stats article b{margin-right:5px;font-size:36px}.stats article b.red{color:var(--red)}.panel{overflow:auto}.panelHead{justify-content:space-between;align-items:center;display:flex}.inlineForm{background:#edf6f0;border-radius:18px;gap:10px;margin-bottom:20px;padding:18px;display:flex}.inlineForm input{flex:1;min-width:0}.table{min-width:680px}.tr{border-bottom:1px solid #edf1ee;grid-template-columns:1.2fr 1.2fr .7fr .7fr;align-items:center;gap:12px;padding:14px 10px;display:grid}.tr.three{grid-template-columns:1fr 1.5fr .7fr}.tr.history{grid-template-columns:1fr .7fr .65fr 1.5fr}.tr.head{color:var(--muted);font-size:12px;font-weight:700}.tr.caution,.tr.urgent{border-left:5px solid var(--red);background:#fff1f1}.tr strong{color:#3f8062}.tr.caution strong,.tr.urgent strong{color:var(--red)}.toggle{color:var(--ink);background:#fff;border:1px solid #cddbd2;border-radius:999px;justify-self:start;padding:8px 11px}.notice{background:#fff9e9;margin-bottom:14px}.device{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 0;display:flex}.generated{gap:8px;margin-top:18px;display:flex}.generated input{flex:1}.empty{text-align:center;color:var(--muted);padding:30px}.toast{color:#fff;background:#713535;border-radius:12px;padding:15px;position:fixed;bottom:25px;right:25px}.loading{padding:50px}.red{color:var(--red)}@media (max-width:850px){.admin{grid-template-columns:1fr}.admin aside{z-index:5;flex-direction:row;padding:12px;position:sticky;top:0;overflow:auto}.adminBrand,.admin aside small{display:none}.admin aside button{white-space:nowrap}.content{padding:20px}.stats{grid-template-columns:1fr 1fr}.inlineForm{flex-direction:column}.kiosk>header{height:72px}.talkCard{padding:28px 20px}.avatar{width:140px;height:140px}.face{inset:46px 18px 8px}}
