:root{--brand: #0f3d56;--brand-2: #16608a;--accent: #22c1a3;--accent-dark: #157a66;--bg: #eef4f8;--card: #ffffff;--text: #14212b;--muted: #5b7183;--danger: #d64545;--warn: #b7791f;--radius: 18px;--shadow: 0 8px 28px rgba(15, 61, 86, .12)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:Sarabun,Noto Sans Thai,Leelawadee UI,Tahoma,sans-serif;background:var(--bg);color:var(--text);overscroll-behavior:none;user-select:none;-webkit-user-select:none;touch-action:manipulation}.kiosk-shell{min-height:100%;display:flex;flex-direction:column;background:linear-gradient(160deg,#0f3d56,#16608a 45%,#eef4f8 45.01%)}.kiosk-bar{display:flex;align-items:center;justify-content:space-between;padding:18px 28px 6px;color:#fff}.kiosk-bar .logo{font-size:26px;font-weight:800;letter-spacing:.5px}.kiosk-bar .clock{font-size:20px;font-variant-numeric:tabular-nums;opacity:.9}.screen{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px 24px 28px}.panel{width:min(760px,100%);background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px}.screen-title{text-align:center;font-size:30px;font-weight:800;color:var(--brand);margin:6px 0 4px}.screen-sub{text-align:center;color:var(--muted);font-size:18px;margin:0 0 24px}.id-row{display:flex;gap:14px;align-items:center;justify-content:center;margin-bottom:8px}.id-display{flex:1;max-width:380px;text-align:center;font-size:38px;font-weight:700;letter-spacing:6px;padding:14px 8px;border:3px solid var(--brand-2);border-radius:14px;background:#f6fafc;min-height:72px}.id-display.filled{border-color:var(--accent-dark);background:#ecfbf7}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:460px;margin:22px auto 10px}.keypad .kb{font-size:30px;font-weight:700;padding:22px 0;border:none;border-radius:14px;background:#e8eff4;color:var(--brand)}.keypad .kb:active{background:var(--brand);color:#fff}.keypad .kb.util{font-size:20px;background:#fbe9e9;color:var(--danger)}.actions{display:flex;gap:16px;justify-content:center;margin-top:26px;flex-wrap:wrap}.btn{border:none;border-radius:14px;padding:20px 34px;font-size:22px;font-weight:800;cursor:pointer}.btn.primary{background:var(--accent);color:#04322b}.btn.primary:disabled{background:#c9d6dd;color:#8a9aa5}.btn.secondary{background:#e8eff4;color:var(--brand)}.btn.danger{background:#fbe9e9;color:var(--danger)}.banner{margin-top:18px;padding:14px 18px;border-radius:12px;font-size:18px;text-align:center;font-weight:600}.banner.error{background:#fdecec;color:var(--danger)}.banner.info{background:#e8f1fb;color:var(--brand-2)}.priv-picker{margin-top:14px;display:flex;flex-direction:column;gap:10px}.priv-picker-title{font-size:16px;font-weight:700;color:var(--brand)}.priv-none{font-size:17px;font-weight:600;color:var(--danger)}.priv-chip{display:flex;align-items:center;gap:12px;border:2px solid #d7e3ea;background:#fff;color:#22333f;border-radius:14px;padding:12px 16px;font-size:19px;cursor:pointer;text-align:left}.priv-chip.selected{border-color:var(--accent);background:#eafaf5}.priv-chip:disabled{opacity:.6;cursor:default}.priv-type{font-weight:800;color:var(--brand-2);white-space:nowrap}.priv-name{flex:1}.priv-end{font-size:15px;color:#7d8b96}.priv-check{font-size:20px}.scan-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f3d56ed;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;z-index:50}.scan-overlay .pulse{width:120px;height:120px;border-radius:50%;background:#22c1a340;border:4px solid var(--accent);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(.9)}50%{transform:scale(1.1)}}.spinner{width:44px;height:44px;border:5px solid #d6e2ea;border-top-color:var(--brand-2);border-radius:50%;animation:spin .9s linear infinite;margin:22px auto}@keyframes spin{to{transform:rotate(360deg)}}.patient-card{display:flex;align-items:center;gap:18px;padding:18px 22px;background:var(--brand);color:#fff;border-radius:var(--radius);margin-bottom:18px;width:min(760px,100%)}.patient-card .avatar{width:64px;height:64px;border-radius:50%;background:#fff;color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800}.patient-card .pname{font-size:24px;font-weight:800}.patient-card .pmeta{font-size:16px;opacity:.85}.appt-list{display:flex;flex-direction:column;gap:14px}.appt-card{border:2px solid #dde8ef;border-radius:14px;padding:18px 20px;display:flex;align-items:center;gap:16px;cursor:pointer}.appt-card:active{border-color:var(--accent-dark);background:#f4fbf9}.appt-card .time-badge{min-width:110px;text-align:center;background:var(--brand);color:#fff;border-radius:12px;padding:12px 8px;font-weight:800;font-size:18px;font-variant-numeric:tabular-nums}.appt-card .appt-main{flex:1}.appt-card .dept{font-size:20px;font-weight:800;color:var(--brand)}.appt-card .doc,.appt-card .note{font-size:16px;color:var(--muted)}.appt-card .chev{font-size:30px;color:var(--muted)}.empty{text-align:center;padding:40px 10px;color:var(--muted);font-size:20px}.summary{border:2px solid #dde8ef;border-radius:14px;padding:20px 24px;margin:18px 0}.summary .row{display:flex;justify-content:space-between;padding:8px 0;font-size:18px;border-bottom:1px dashed #e3ebf0}.summary .row:last-child{border-bottom:none}.summary .row .k{color:var(--muted)}.summary .row .v{font-weight:700}.success-hero{text-align:center;padding:24px 0 8px}.success-hero .big{font-size:72px;line-height:1}.success-hero h2{color:var(--accent-dark);font-size:28px;margin:10px 0 6px}.muted-note{color:var(--muted);font-size:17px;text-align:center}
