:root{--bg:#fff;--surface:#f6f6f7;--ink:#121214;--ink-soft:#6b6b70;--line:#e4e4e7;--accent:#e0182d;--accent-ink:#fff;--radius:8px;--mono:"SF Mono","Roboto Mono",ui-monospace,Menlo,Consolas,monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Pretendard,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;--cat-ftw:#2a78d6;--cat-app:#008300;--cat-acc:#e87ba4;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--text-xs:11px;--text-sm:12.5px;--text-base:14px;--text-lg:16px;--text-xl:20px;--text-2xl:26px;--bp-mobile:480px;--bp-tablet:1024px}*{box-sizing:border-box}body,html{padding:0;margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.shell{min-height:100vh}.topbar{background:var(--ink);color:#fff;height:54px;padding:0 20px;gap:2px;overflow-x:auto;position:-webkit-sticky;position:sticky;top:0;z-index:40}.brand,.topbar{display:flex;align-items:center}.brand{font-weight:800;font-size:16px;margin-right:20px;white-space:nowrap}.topbar-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:var(--accent);color:#fff;font-size:12.5px;font-weight:700;margin-right:14px;white-space:nowrap}.topbar-btn:hover{background:#b8142a}.topbar-store-name{font-size:12px;color:hsla(0,0%,100%,.85);background:hsla(0,0%,100%,.12);padding:5px 10px;border-radius:999px;margin-right:16px}.nav-link,.topbar-store-name{font-weight:700;white-space:nowrap}.nav-link{padding:0 15px;height:54px;display:flex;align-items:center;border-radius:0;font-size:14.5px;color:hsla(0,0%,100%,.7);border-bottom:3px solid transparent;transition:color .15s ease}.nav-link.active,.nav-link:hover{color:#fff;background:transparent}.nav-link.active{border-bottom-color:var(--accent)}.main{padding:var(--space-6) var(--space-6) var(--space-7);max-width:1180px;margin:0 auto}h1{font-size:var(--text-2xl);font-weight:800;letter-spacing:-.01em;margin:0 0 var(--space-1)}.subtitle{color:var(--ink-soft);font-size:var(--text-base);margin:0 0 var(--space-6)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-5) var(--space-5);overflow-x:auto}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-3);gap:var(--space-3);margin-bottom:var(--space-6)}.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-4) var(--space-5)}.stat-label{font-size:var(--text-xs);color:var(--ink-soft);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-2)}.stat-value{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:var(--text-2xl);font-weight:700}.stat-card.sm{padding:12px 14px}.stat-card.sm .stat-label{font-size:11px;margin-bottom:4px}.stat-card.sm .stat-value{font-size:17px}.stat-line-grid{display:grid;grid-gap:8px;gap:8px;margin-bottom:10px}.stat-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.stat-line-label{font-size:12.5px;color:var(--ink-soft);font-weight:600}.stat-line-value{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--ink);color:#fff;border:none;border-radius:var(--radius);padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:background .15s ease}.btn:hover{background:#000}.btn.accent{background:var(--accent)}.btn.accent:hover{background:#b8142a}.btn:disabled{opacity:.5;cursor:not-allowed}input[type=file],input[type=number],input[type=password],input[type=text]{font-family:var(--sans);font-size:14px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--line);background:#fff;color:var(--ink)}table{width:100%;border-collapse:collapse;font-size:13.5px}thead th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);padding:10px 12px;font-weight:700}tbody td,thead th{border-bottom:1px solid var(--line)}tbody td{padding:11px 12px}tbody tr:hover{background:var(--surface)}.num{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.ranking-table{table-layout:fixed}.ranking-table .col-rank{width:48px}.ranking-table .col-code{width:160px;white-space:nowrap}.ranking-table .col-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-table .col-qty{width:80px}.ranking-table .col-amount{width:130px}.ranking-table tbody tr{cursor:pointer}.ranking-code-color{color:var(--ink-soft);font-family:var(--mono)}.tag{display:inline-block;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--ink-soft)}.tag.new{background:rgba(224,24,45,.08);border-color:rgba(224,24,45,.25);color:var(--accent)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--ink-soft);cursor:pointer}.icon-btn:hover{background:#fdecec;color:var(--accent);border-color:rgba(224,24,45,.3)}.receipt-edit{cursor:pointer;border-bottom:1px dashed var(--line)}.receipt-edit:hover{color:var(--accent);border-bottom-color:var(--accent)}.upload-box{border:1.5px dashed var(--line);border-radius:var(--radius);padding:32px;text-align:center;background:var(--surface)}.summary-line{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--line);font-size:14px}.summary-line:last-child{border-bottom:none}.error-box{background:#fdecec;border:1px solid rgba(224,24,45,.3);color:var(--accent);padding:12px 16px;border-radius:var(--radius);font-size:14px;margin-top:16px}.row{display:flex;align-items:center;gap:8px}.row.wrap{flex-wrap:wrap}.grow{flex:1 1}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:340px;background:var(--ink);border-color:var(--ink);color:#fff}.login-card .field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.login-card .field label{font-size:12.5px;color:hsla(0,0%,100%,.65);font-weight:600}.login-card input{width:100%}.view-store-banner{background:var(--ink);color:#fff;font-size:13px;padding:8px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.view-store-banner a{color:hsla(0,0%,100%,.75);font-weight:600}.view-store-banner a:hover{color:#fff}.btn.ghost{background:transparent;color:var(--ink-soft);border:1px solid var(--line)}.btn.ghost:hover{background:var(--surface);color:var(--ink)}.btn.sm{padding:6px 12px;font-size:12.5px}input[type=date],input[type=month],select,textarea{font-family:var(--sans);font-size:14px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--line);background:#fff;color:var(--ink)}.diff-ok{color:#1a8a4c}.diff-bad{color:var(--accent)}.pos-layout{display:flex;gap:16px;align-items:stretch}.pos-order{flex:1 1;min-width:0}.pos-order,.pos-panel{display:flex;flex-direction:column}.pos-panel{width:280px;flex-shrink:0}.panel-header{background:var(--ink);color:#fff;font-weight:700;font-size:13px;padding:10px 16px;border-radius:var(--radius) var(--radius) 0 0}.panel-body{border:1px solid var(--line);border-top:none;border-radius:0 0 var(--radius) var(--radius);background:#fff;padding:14px 16px}.pos-order-body{flex:1 1;overflow-y:auto}.item-code-box{background:#f0f0f0;border-radius:var(--radius);padding:12px}.item-code-box input{width:100%;background:transparent;border:none;font-size:17px;font-weight:700;padding:4px 2px}.item-code-box input:focus{outline:none}.keypad{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px;gap:6px;margin:12px 0}.keypad button{padding:13px 0;font-size:15px;font-weight:700;border:1px solid var(--line);background:#f2f2f4;border-radius:var(--radius);cursor:pointer}.keypad button:hover{background:var(--surface)}.keypad button.clear{background:#fdecec;color:var(--accent);border-color:rgba(224,24,45,.3)}.taxfree-box{border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.taxfree-box .tf-title{font-weight:700;font-size:13px}.region-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:6px;gap:6px;margin-top:8px}.region-btn{padding:9px 0;text-align:center;font-size:12.5px;font-weight:600;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink);cursor:pointer}.region-btn:hover{background:var(--surface)}.region-btn.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.rate-grid{display:flex;gap:6px}.rate-btn{flex:1 1;padding:8px 0;text-align:center;font-size:12.5px;font-weight:700;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink);cursor:pointer}.rate-btn:hover{background:var(--surface)}.rate-btn.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.mini-keypad{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:4px;gap:4px;margin-top:8px}.mini-keypad button{padding:8px 0;font-size:12.5px;font-weight:700;border:1px solid var(--line);border-radius:6px;background:#f2f2f4;cursor:pointer}.size-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:6px;gap:6px;margin-top:8px}.size-btn{padding:10px 0;text-align:center;font-size:12.5px;font-weight:700;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink);cursor:pointer}.size-btn:hover{background:var(--surface)}.size-btn.selected{background:var(--ink);color:#fff;border-color:var(--ink)}.pay-row{display:flex;gap:6px}.pay-btn{flex:1 1;min-width:0;padding:12px 0;font-size:12.5px;font-weight:700;border-radius:var(--radius);cursor:pointer;text-align:center;box-sizing:border-box}.pay-btn.cash{background:#fff;color:var(--ink);border:2px solid var(--ink)}.pay-btn.receipt-cash{background:#fff;color:var(--ink);border:2px dashed var(--ink)}.pay-btn.card{background:#000;color:#fff;border:2px solid #000}.pay-btn.cancel{background:var(--accent);color:#fff;border:2px solid var(--accent)}.pay-btn:disabled{opacity:.4;cursor:not-allowed}.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:12.5px}.bar-label{width:90px;flex-shrink:0;color:var(--ink-soft)}.bar-track{flex:1 1;height:16px;background:var(--surface);border-radius:4px;overflow:hidden}.bar-fill{height:100%;background:var(--accent)}.bar-value{width:130px;text-align:right;font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:#fff;border-radius:10px;padding:20px;width:380px;max-width:92vw}.staff-type-toggle{display:flex;background:var(--surface);border-radius:10px;padding:3px}.staff-type-btn{padding:9px 18px;font-size:13px;font-weight:700;border-radius:8px;cursor:pointer;color:var(--ink-soft);-webkit-user-select:none;-moz-user-select:none;user-select:none}.staff-type-btn.active{background:var(--ink);color:#fff}.color-swatch{width:34px;height:34px;border-radius:50%;cursor:pointer;flex-shrink:0;border:none}.color-swatch.selected{outline:3px solid #c7c7cc;outline-offset:3px}.staff-avatar{width:44px;height:44px;border-radius:50%;justify-content:center;color:#fff;font-weight:800;font-size:15px;flex-shrink:0}.staff-avatar,.staff-card-row{display:flex;align-items:center}.staff-card-row{gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:#fff}.worker-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:14px;transition:opacity .15s}.worker-avatar.inactive{opacity:.22;filter:grayscale(35%)}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.hamburger-btn{display:none;flex-direction:column;justify-content:center;gap:4px;width:36px;height:36px;padding:0;border:none;background:transparent;cursor:pointer;margin-left:auto;flex-shrink:0}.hamburger-btn span{display:block;width:100%;height:2px;background:#fff;border-radius:2px}.mobile-menu{position:relative;display:contents}.mobile-menu-panel{position:fixed;top:54px;left:0;right:0;bottom:0;background:var(--ink);z-index:60;overflow-y:auto;padding:var(--space-2) 0}.mobile-menu-link{display:block;padding:14px 20px;font-size:15px;font-weight:700;color:hsla(0,0%,100%,.85);border-bottom:1px solid hsla(0,0%,100%,.08)}.mobile-menu-link:hover{color:#fff}.card-list{display:none}.card-list-item{border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2);background:#fff}.card-list-row{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm);padding:3px 0}.card-list-row .k{color:var(--ink-soft);flex-shrink:0}.card-list-row .v{text-align:right;font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.card-list-title{font-weight:700;font-size:var(--text-base);margin-bottom:6px}.chart-tooltip{position:absolute;top:0;transform:translateX(-50%);background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 14px rgba(0,0,0,.12);padding:var(--space-2) var(--space-3);pointer-events:none;z-index:5;min-width:140px}.chart-tooltip-date{font-size:var(--text-xs);color:var(--ink-soft);font-weight:700;margin-bottom:4px}.chart-tooltip-row{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);padding:2px 0}.chart-tooltip-swatch{width:8px;height:8px;border-radius:2px;flex-shrink:0;display:inline-block}.chart-tooltip-label{color:var(--ink-soft)}.chart-tooltip-val{margin-left:auto;font-family:var(--mono);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.desktop-actions,.desktop-nav{display:contents}.mobile-menu-storename{padding:14px 20px 6px;font-size:12px;font-weight:700;color:hsla(0,0%,100%,.5);text-transform:uppercase;letter-spacing:.04em}@media (max-width:1024px){.desktop-actions,.desktop-nav{display:none}.hamburger-btn{display:flex}.topbar-store-name{margin-right:auto;margin-left:4px}}@media (max-width:768px){.main{padding:var(--space-4) var(--space-3) var(--space-6)}h1{font-size:21px}.stat-grid{grid-template-columns:repeat(2,1fr)!important}.stat-line-grid{grid-template-columns:repeat(1,1fr)!important}.btn,.btn.sm,.icon-btn,.keypad button,input,select,textarea{min-height:40px}input[type=date],input[type=month],input[type=number],input[type=password],input[type=text],select{font-size:16px}.responsive-table-wrap table{display:none}.responsive-table-wrap .card-list{display:block}.pos-layout{flex-direction:column}.pos-panel{width:100%}}