:root{font-family:Inter,Pretendard,Apple SD Gothic Neo,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#111827;background:#f5f7fb;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:0;min-height:100vh;overflow:auto}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.app-root{min-width:1120px;min-height:720px;height:100vh;overflow:hidden;background:#f5f7fb}.dev-banner{height:42px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #d97706;background:#f59e0b;color:#1f2937;font-size:14px;font-weight:700}.pos-shell{height:100vh;display:grid;grid-template-columns:minmax(0,1fr) 360px}.pos-shell.splash-shell{grid-template-columns:1fr}.dev-banner+.pos-shell{height:calc(100vh - 42px)}.main-pane{position:relative;min-width:0;background:#fff;border-right:1px solid #dbe1ea}.session-bar{position:absolute;inset:0 0 auto;z-index:2;height:68px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 28px;border-bottom:1px solid #e5e7eb;background:#fffffff0}.session-bar div{display:flex;flex-direction:column;gap:2px}.session-bar strong{font-size:16px}.session-bar span{color:#6b7280;font-size:13px}.main-stage{min-height:100%;display:flex;align-items:center;justify-content:center;padding:96px 48px 48px}.screen-card{width:min(580px,100%);display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}.screen-card.wide{width:min(760px,100%)}.screen-card.logo-only{width:auto;justify-content:center}.screen-card h1{margin:0;font-size:34px;line-height:1.2;letter-spacing:0}.screen-copy{margin:0;color:#6b7280;font-size:18px}.screen-icon{color:#2563eb}.screen-icon.success{color:#059669}.screen-icon.warning{color:#d97706}.brand-mark{display:flex;align-items:center;gap:18px}.brand-icon{width:104px;height:104px;display:grid;place-items:center;border-radius:24px;background:#2563eb;color:#fff;box-shadow:0 18px 42px #2563eb3d}.brand-icon span{font-size:34px;font-weight:900}.brand-mark p{margin:0;color:#2563eb;font-size:26px;font-weight:800;text-align:left}.brand-mark strong{display:block;margin-top:2px;color:#111827;font-size:42px;line-height:1;text-align:left}.otp-boxes{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;width:min(460px,100%)}.otp-boxes span{height:68px;display:grid;place-items:center;border:1px solid #d1d5db;border-radius:8px;background:#fff;font-size:30px;font-weight:800}.otp-boxes span.filled{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.display-input{width:100%;min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 24px;border:1px solid #d1d5db;border-radius:8px;background:#fff;text-align:left}.display-input span{flex-shrink:0;color:#6b7280;font-size:15px;font-weight:700}.display-input strong{min-width:0;overflow:hidden;text-overflow:ellipsis;color:#111827;font-size:28px;line-height:1.2}.primary-button,.secondary-button,.ghost-button{border:0;border-radius:8px;font-weight:800}.primary-button{min-width:220px;min-height:56px;padding:0 26px;background:#2563eb;color:#fff;font-size:18px}.primary-button.danger{background:#dc2626}.secondary-button{min-width:180px;min-height:56px;padding:0 24px;border:1px solid #d1d5db;background:#fff;color:#111827;font-size:18px}.ghost-button{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 12px;border:1px solid #d1d5db;background:#fff;color:#374151}.button-row{display:flex;justify-content:center;gap:12px}.summary-grid,.compact-summary,.voucher-detail{width:100%;display:grid;gap:10px}.summary-grid{grid-template-columns:repeat(3,1fr)}.compact-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.voucher-detail{grid-template-columns:repeat(3,minmax(0,1fr))}.voucher-detail>div,.info-item{min-width:0;display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;text-align:left}.voucher-detail span,.info-item span{color:#6b7280;font-size:13px;font-weight:700}.voucher-detail strong,.info-item strong{min-width:0;overflow:hidden;text-overflow:ellipsis;color:#111827;font-size:20px}.balance{color:#2563eb!important}.balance-panel{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;border-radius:8px;background:#eff6ff;color:#1d4ed8}.balance-panel span{font-weight:800}.balance-panel strong{font-size:34px}.quick-grid{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quick-grid button,.employee-list button{min-height:58px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#111827;font-weight:800}.employee-list{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.employee-list button{min-height:72px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:0 18px;text-align:left}.employee-list button.selected{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.employee-list span{color:#6b7280;font-size:13px}.status-badge{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;font-size:13px;font-weight:800}.status-badge.active{background:#ecfdf5;color:#047857}.status-badge.expired,.status-badge.empty,.status-badge.transferred{background:#f3f4f6;color:#4b5563}.status-badge.voided{background:#fef2f2;color:#b91c1c}.warning-card{color:#92400e}.helper-text,.error-text{margin:0;font-size:16px;font-weight:800}.helper-text{color:#2563eb}.error-text{color:#dc2626}.keypad-panel{min-width:0;display:flex;flex-direction:column;gap:18px;padding:24px;background:#f8fafc}.keypad-status{min-height:92px;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:16px;border:1px solid #dbe1ea;border-radius:8px;background:#fff}.keypad-status span{color:#6b7280;font-size:14px;font-weight:800}.keypad-status strong{min-height:34px;overflow:hidden;text-overflow:ellipsis;color:#111827;font-size:28px;line-height:1.2}.keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.keypad-button{height:78px;display:grid;place-items:center;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#111827;font-size:30px;font-weight:900}.keypad-button:active,.quick-grid button:active,.employee-list button:active{transform:translateY(1px)}.keypad-button-icon{color:#4b5563}.keypad-actions{display:grid;gap:10px;margin-top:auto}.keypad-action,.keypad-confirm{min-height:58px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;font-size:18px;font-weight:900}.keypad-action{border:1px solid #d1d5db;background:#fff;color:#111827}.keypad-confirm{border:0;background:#2563eb;color:#fff}.update-gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:40px;background:#f5f7fbf5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.update-panel{width:min(620px,100%);display:flex;flex-direction:column;align-items:center;gap:16px;padding:44px;border:1px solid #dbe1ea;border-radius:8px;background:#fff;text-align:center;box-shadow:0 24px 70px #0f172a24}.update-panel .brand-mark{transform:scale(.72);transform-origin:center;margin-bottom:-18px}.update-icon{width:72px;height:72px;display:grid;place-items:center;border-radius:50%;background:#eff6ff;color:#2563eb}.update-icon svg{animation:spin 1.2s linear infinite}.update-panel h1{margin:0;font-size:30px}.update-panel p{margin:0;color:#4b5563;font-size:17px}.update-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.update-meta span{min-height:30px;display:inline-flex;align-items:center;border-radius:999px;background:#f3f4f6;padding:0 12px;color:#374151;font-size:13px;font-weight:800}.progress-track{width:100%;height:12px;overflow:hidden;border-radius:999px;background:#e5e7eb}.progress-track span{display:block;height:100%;border-radius:inherit;background:#2563eb;transition:width .18s ease}.update-message{color:#6b7280!important;font-size:14px!important}.update-panel .primary-button,.download-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.updates-page{min-height:100vh;display:flex;flex-direction:column;gap:24px;padding:48px clamp(20px,5vw,72px);background:#f5f7fb}.updates-hero{width:min(1080px,100%);display:flex;align-items:center;gap:28px;margin:0 auto;padding:36px 0 12px}.updates-hero h1,.updates-card h2{margin:0;letter-spacing:0}.updates-hero h1{font-size:clamp(34px,5vw,56px);line-height:1.05}.updates-hero p{margin:8px 0 0;color:#4b5563;font-size:18px}.eyebrow{margin:0 0 8px!important;color:#2563eb!important;font-size:13px!important;font-weight:900;text-transform:uppercase}.updates-card{width:min(1080px,100%);margin:0 auto;padding:28px;border:1px solid #dbe1ea;border-radius:8px;background:#fff;box-shadow:0 16px 50px #0f172a0f}.updates-card.warning,.updates-card.loading{display:flex;align-items:center;gap:12px;color:#92400e;font-weight:800}.updates-card.loading svg{animation:spin 1.2s linear infinite}.release-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.release-header.compact{align-items:center}.release-header h2{font-size:34px}.release-header span{display:inline-block;margin-top:8px;color:#6b7280;font-size:14px;font-weight:700}.release-notes,.history-list ul{margin:18px 0 0;padding-left:20px;color:#374151;line-height:1.7}.download-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px}.download-button{min-height:68px;flex-direction:column;padding:14px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-weight:900;text-decoration:none}.download-button small{color:#4b5563;font-size:12px;font-weight:700}.history-list{display:grid;gap:14px;margin-top:20px}.history-list article{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#f8fafc}.history-list article>div{display:flex;flex-direction:column;gap:4px}.history-list strong{font-size:18px}.history-list span{color:#6b7280;font-size:13px;font-weight:700}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:760px){.updates-page{padding:28px 16px}.updates-hero{align-items:flex-start;flex-direction:column}.updates-hero .brand-mark{transform:scale(.76);transform-origin:left center;margin-bottom:-18px}.download-grid,.history-list article{grid-template-columns:1fr}.updates-card{padding:22px}}
