: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:hidden}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.app-root{min-width:720px;min-height:500px;height:100vh;overflow:hidden;background:#f5f7fb}.app-root.floating-widget-root{min-width:0;min-height:0;width:100vw;height:100vh;padding:0;background:transparent}.window-titlebar{height:38px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dbe1ea;background:#fff;-webkit-app-region:drag}.window-titlebar-brand{display:flex;align-items:center;gap:8px;padding-left:12px;color:#111827;font-size:13px;font-weight:900}.window-titlebar .brand-mark{gap:0}.window-titlebar .brand-logo{width:24px;height:24px}.window-titlebar-controls{height:100%;display:flex;-webkit-app-region:no-drag}.window-titlebar-controls button{width:46px;height:100%;display:grid;place-items:center;border:0;background:transparent;color:#374151}.window-titlebar-controls button:hover{background:#eef2f7}.window-titlebar-controls button.close:hover{background:#dc2626;color:#fff}.dev-banner{position:relative;height:42px;display:flex;align-items:center;justify-content:center;gap:12px;border-bottom:1px solid #d97706;background:#f59e0b;color:#1f2937;font-size:14px;font-weight:700;padding:0 72px 0 24px;text-align:center}.dev-banner span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dev-banner button{position:absolute;right:14px;top:50%;height:28px;transform:translateY(-50%);border:1px solid rgba(120,53,15,.35);border-radius:999px;background:#ffffff29;color:#78350f;padding:0 12px;font-size:12px;font-weight:900}.pos-shell{position:relative;height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,32vw);min-height:0}.pos-shell.splash-shell{grid-template-columns:1fr}.pos-shell.keypad-bottom{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.pos-shell.keypad-bottom .main-pane{border-right:0;border-bottom:1px solid #dbe1ea}.dev-banner+.pos-shell{height:calc(100vh - 42px)}.window-titlebar+.dev-banner+.pos-shell{height:calc(100vh - 80px)}.window-titlebar+.pos-shell{height:calc(100vh - 38px)}.main-pane{position:relative;min-width:0;min-height:0;overflow:hidden;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{min-width:0;display:flex;flex-direction:column;gap:2px}.session-bar strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px}.session-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6b7280;font-size:13px}.session-actions{flex-shrink:0;display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important}.main-stage{height:100%;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:clamp(72px,10vh,96px) clamp(24px,4vw,48px) clamp(28px,6vh,48px)}.pos-shell.screen-otp .main-stage{padding:clamp(28px,6vh,52px) clamp(20px,4vw,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-copy.strong-copy{color:#111827;font-size:22px;font-weight:900}.screen-icon{color:#2563eb}.screen-icon.success{color:#059669}.screen-icon.warning{color:#d97706}.brand-mark{display:flex;align-items:center;gap:16px}.brand-mark.compact{gap:0}.brand-logo{width:128px;height:128px;object-fit:contain}.brand-mark strong{display:block;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;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px 24px;border:1px solid #d1d5db;border-radius:8px;background:#fff;text-align:center}.display-input.input-button{cursor:pointer}.display-input.input-button.selected{border-color:#2563eb;background:#eff6ff}.display-input.empty{justify-content:center;text-align:center}.display-input span{flex-shrink:0;color:#6b7280;font-size:15px;font-weight:700}.display-input.empty span{flex-shrink:1;font-size:22px}.display-input.empty strong{display:none}.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{display:inline-flex;align-items:center;justify-content:center;gap:8px;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}.primary-button.success{background:#059669}.secondary-button{min-width:180px;min-height:56px;padding:0 24px;border:1px solid #d1d5db;background:#fff;color:#111827;font-size:18px}.ghost-button{min-height:38px;padding:0 12px;border:1px solid #d1d5db;background:#fff;color:#374151}.button-row{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.button-row.result-actions{display:grid;grid-template-columns:repeat(2,minmax(180px,220px));width:min(452px,100%)}.button-row.result-actions .primary-button,.button-row.result-actions .secondary-button{width:100%;min-width:0}.summary-grid,.compact-summary,.voucher-detail{width:100%;display:grid;gap:10px}.summary-grid{grid-template-columns:repeat(3,1fr)}.summary-grid.session-summary{grid-template-columns:1fr;width:min(520px,100%)}.compact-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.voucher-detail{grid-template-columns:repeat(3,minmax(0,1fr))}.voucher-detail>div,.voucher-detail-button,.info-item{min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:inherit;text-align:center}.voucher-detail-button{cursor:pointer}.voucher-detail-button:hover{border-color:#2563eb;background:#eff6ff}.voucher-detail span,.voucher-detail-button span,.info-item span{color:#6b7280;font-size:13px;font-weight:700}.voucher-detail strong,.voucher-detail-button 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;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:22px 24px;border-radius:8px;background:#eff6ff;color:#1d4ed8;text-align:center}.balance-panel span{font-weight:800}.balance-panel strong{font-size:34px}.text-edit-field{width:100%;min-height:86px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px 20px;border:1px solid #d1d5db;border-radius:8px;background:#fff;text-align:center}.text-edit-field.selected{border-color:#2563eb;background:#eff6ff}.text-edit-field span{color:#6b7280;font-size:14px;font-weight:800}.text-edit-field input{width:100%;border:0;outline:0;background:transparent;color:#111827;font-size:26px;font-weight:900;text-align:center}.quick-grid{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.amount-screen{gap:12px}.amount-screen h1{font-size:30px}.amount-screen .balance-panel{min-height:86px;padding:14px 18px}.amount-screen .balance-panel strong{font-size:30px}.amount-screen .display-input{min-height:74px;padding:12px 18px}.amount-screen .display-input strong{font-size:26px}.amount-screen .quick-grid button,.amount-screen .primary-button,.amount-screen .secondary-button{min-height:48px}.amount-screen .helper-text,.amount-screen .error-text{font-size:15px}.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:center;justify-content:center;gap:4px;padding:0 18px;text-align:center}.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}.status-badge.suspended{background:#fffbeb;color:#b45309}.warning-card{color:#92400e}.helper-text,.error-text{margin:0;font-size:16px;font-weight:800}.helper-text{color:#2563eb}.helper-text.muted{color:#6b7280}.error-text{color:#dc2626}.keypad-panel{min-width:0;min-height:0;display:flex;flex-direction:column;justify-content:space-between;gap:14px;overflow:auto;padding:clamp(14px,2.5vh,24px);background:#f8fafc}.keypad-main{display:flex;flex-direction:column;justify-content:center;gap:12px;min-height:0;flex:1;padding-bottom:14px}.keypad-status{min-height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px;border:1px solid #dbe1ea;border-radius:8px;background:#fff;text-align:center}.keypad-status span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6b7280;font-size:14px;font-weight:800}.keypad-status strong{width:100%;min-height:34px;overflow:hidden;text-overflow:ellipsis;color:#111827;font-size:28px;line-height:1.2;text-align:center}.loading-inline,.empty-panel{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:28px;border:1px solid #e5e7eb;border-radius:8px;background:#f8fafc;color:#4b5563;font-weight:800}.loading-inline svg{animation:spin 1.2s linear infinite}.empty-panel{flex-direction:column}.empty-panel p{margin:0}.voucher-history-list{width:100%;max-height:min(42vh,360px);overflow:auto;display:grid;gap:10px;padding-right:4px}.voucher-history-list article{display:grid;grid-template-columns:170px minmax(0,1fr);gap:16px;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;text-align:center}.history-title,.history-body{min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px}.history-title strong{font-size:18px}.history-title span,.history-body span{color:#6b7280;font-size:13px;font-weight:700}.history-body strong{font-size:22px}.history-body strong.positive{color:#2563eb}.history-body strong.negative,.voided{color:#dc2626!important}.settings-screen{width:min(840px,100%)}.settings-grid{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.settings-panel{min-width:0;display:flex;flex-direction:column;gap:14px;padding:18px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;text-align:left}.settings-panel-title{display:flex;align-items:center;gap:8px;color:#2563eb}.settings-panel-title h2{margin:0;color:#111827;font-size:18px}.segmented-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.segmented-buttons button,.setting-row button{min-height:42px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#111827;font-weight:900}.segmented-buttons button.selected{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.setting-row{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #f3f4f6;border-radius:8px;background:#f8fafc}.setting-row>div{min-width:0;display:flex;flex-direction:column;gap:4px}.setting-row span{color:#6b7280;font-size:12px;font-weight:800}.setting-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;color:#111827;font-size:15px}.setting-row button{min-width:74px;padding:0 12px}.settings-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.settings-actions .secondary-button{width:100%;min-width:0;min-height:54px;padding:0 10px;white-space:normal;line-height:1.2;text-align:center}.settings-actions .secondary-button span{line-height:1.2}.transfer-notice{width:100%;margin:0;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1d4ed8;padding:12px 14px;font-size:14px;font-weight:900;line-height:1.35}.secondary-button.danger-outline{border-color:#fecaca;color:#b91c1c}.floating-mini-widget{width:100vw;height:100vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid #dbe1ea;border-radius:10px;background:#fff;box-shadow:0 14px 40px #0f172a2e}.floating-mini-header{height:38px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px 0 10px;border-bottom:1px solid #e5e7eb;background:#f8fafc;-webkit-app-region:drag}.floating-mini-brand{min-width:0;display:flex;align-items:center;gap:6px;color:#111827;font-size:12px;font-weight:900}.floating-mini-brand .brand-logo{width:22px;height:22px}.floating-mini-brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.floating-mini-body{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:12px 14px 8px;text-align:center}.floating-mini-body strong{color:#111827;font-size:20px;line-height:1.15}.floating-mini-body p{margin:0;color:#4b5563;font-size:13px;font-weight:800;line-height:1.35}.floating-mini-summary{display:grid;grid-template-columns:1fr;gap:2px;margin:0 12px 8px;padding:8px 10px;border-radius:8px;background:#eff6ff;text-align:center}.floating-mini-summary span{color:#4b5563;font-size:11px;font-weight:800}.floating-mini-summary strong{color:#1d4ed8;font-size:19px}.floating-mini-actions{flex-shrink:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 10px 10px}.floating-mini-actions .primary-button,.floating-mini-actions .secondary-button{min-width:0;min-height:38px;padding:0 8px;font-size:13px;border-radius:8px}.floating-mini-actions .secondary-button:only-child{grid-column:1 / -1}.keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.keypad-button{height:clamp(50px,8vh,72px);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:8px;margin-top:auto}.keypad-action,.keypad-confirm{min-height:clamp(46px,7vh,56px);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}.pos-shell.keypad-bottom .keypad-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.62fr);align-items:stretch;gap:12px;padding:14px 18px}.pos-shell.keypad-bottom .keypad-main{display:grid;grid-template-columns:minmax(190px,.72fr) minmax(0,1.4fr);align-items:stretch;gap:12px;padding-bottom:0}.pos-shell.keypad-bottom .keypad-status{min-height:0;height:100%}.pos-shell.keypad-bottom .keypad-grid{grid-template-columns:repeat(6,minmax(48px,1fr))}.pos-shell.keypad-bottom .keypad-button{height:clamp(48px,9vh,62px)}.pos-shell.keypad-bottom .keypad-actions{margin-top:0}.pos-shell.keypad-bottom .keypad-action,.pos-shell.keypad-bottom .keypad-confirm{min-height:44px}.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{height:100vh;overflow:auto;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:24px;margin:0 auto;padding:36px 0 12px}.updates-hero .brand-logo{width:120px;height:120px}.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-height:640px),(max-width:900px){.pos-shell.keypad-right{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.pos-shell.keypad-right .main-pane{border-right:0;border-bottom:1px solid #dbe1ea}.pos-shell.keypad-right .keypad-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.62fr);align-items:stretch;gap:12px;padding:14px 18px}.pos-shell.keypad-right .keypad-main{display:grid;grid-template-columns:minmax(190px,.72fr) minmax(0,1.4fr);align-items:stretch;gap:12px;padding-bottom:0}.pos-shell.keypad-right .keypad-status{min-height:0;height:100%}.pos-shell.keypad-right .keypad-grid{grid-template-columns:repeat(6,minmax(48px,1fr))}.pos-shell.keypad-right .keypad-button{height:clamp(42px,8vh,56px)}.pos-shell.keypad-right .keypad-actions{margin-top:0}.pos-shell.keypad-right .keypad-action,.pos-shell.keypad-right .keypad-confirm{min-height:44px}.main-stage{padding:clamp(64px,8vh,82px) 24px 24px}.session-bar{height:60px;padding:0 18px}.session-actions .ghost-button{min-width:42px;width:42px;padding:0;overflow:hidden;font-size:0}.session-actions .ghost-button svg{flex-shrink:0}.screen-card{gap:12px}.screen-card h1{font-size:28px}.screen-copy{font-size:16px}.otp-boxes span{height:50px}.primary-button,.secondary-button{min-height:48px}}@media(max-height:560px){.pos-shell.keypad-bottom .keypad-panel,.pos-shell.keypad-right .keypad-panel{padding:10px 14px}.pos-shell.keypad-bottom .keypad-button,.pos-shell.keypad-right .keypad-button{height:42px;font-size:24px}.pos-shell.keypad-bottom .keypad-action,.pos-shell.keypad-bottom .keypad-confirm,.pos-shell.keypad-right .keypad-action,.pos-shell.keypad-right .keypad-confirm{min-height:38px;font-size:16px}.screen-icon{width:34px;height:34px}.otp-boxes{width:min(420px,100%)}.otp-boxes span{height:46px;font-size:24px}}@media(max-width:760px){.app-root{min-width:0}.pos-shell.keypad-right .keypad-panel,.pos-shell.keypad-bottom .keypad-panel,.pos-shell.keypad-right .keypad-main,.pos-shell.keypad-bottom .keypad-main{grid-template-columns:1fr}.pos-shell.keypad-right .keypad-grid,.pos-shell.keypad-bottom .keypad-grid{grid-template-columns:repeat(3,1fr)}}@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}}
