.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);background-color:#f1f5f9}.login-box{width:100%;max-width:480px;background-color:#fff;border-radius:16px;padding:var(--spacing-xl) var(--spacing-xl);box-shadow:var(--shadow-lg)}.login-logo{display:block;width:250px;height:auto;margin:0 auto var(--spacing-lg) auto}.login-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-label{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text)}.form-input{padding:var(--spacing-md) 1.25rem;font-size:var(--font-size-lg);font-family:inherit;border:2px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb33}.form-input:disabled{background-color:#f1f5f9;cursor:not-allowed}.form-input::placeholder{color:#94a3b8}.login-error{padding:var(--spacing-md);background-color:#fef2f2;border:2px solid #fecaca;border-radius:var(--radius-md);color:#b91c1c;font-size:var(--font-size-base);text-align:center}.login-button{padding:1.25rem;font-size:var(--font-size-lg);font-weight:600;font-family:inherit;color:#fff;background-color:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-normal);margin-top:var(--spacing-sm)}.login-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.login-button:focus{outline:3px solid #93c5fd;outline-offset:2px}.login-button:disabled{background-color:#94a3b8;cursor:not-allowed}@media(max-width:768px){.login-box{padding:var(--spacing-xl) var(--spacing-lg)}.login-logo{width:220px}.form-label{font-size:var(--font-size-base)}.form-input{padding:.875rem var(--spacing-md);font-size:var(--font-size-base)}.login-button{padding:var(--spacing-md);font-size:var(--font-size-base)}}@media(max-width:640px){.login-container{padding:var(--spacing-sm)}.login-box{padding:var(--spacing-lg) var(--spacing-md);border-radius:var(--radius-lg)}.login-logo{width:180px;margin-bottom:var(--spacing-md)}.login-form{gap:var(--spacing-md)}.form-label{font-size:var(--font-size-sm)}.form-input{padding:.75rem var(--spacing-md);font-size:var(--font-size-sm)}.login-error{font-size:var(--font-size-sm);padding:.75rem}.login-button{padding:.875rem;font-size:var(--font-size-sm)}}.header{background-color:#fff;border-bottom:2px solid var(--color-border);padding:var(--spacing-md) var(--spacing-lg);position:sticky;top:0;z-index:100}.header-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-md)}.header-left{display:flex;flex-direction:row;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.header-logo{width:212px;height:auto}.header-updated{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.header-right{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.header-user{font-size:var(--font-size-base);font-weight:600;color:var(--color-text)}.header-button{padding:.75rem 1.25rem;font-size:var(--font-size-base);font-weight:600;font-family:inherit;border:2px solid;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal)}.refresh-button{color:#fff;background-color:var(--color-primary);border-color:var(--color-primary)}.refresh-button:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.refresh-button:disabled{background-color:#94a3b8;border-color:#94a3b8;cursor:not-allowed}.logout-button{color:var(--color-text);background-color:#fff;border-color:var(--color-border)}.logout-button:hover{background-color:#f1f5f9;border-color:#cbd5e1}.header-button:focus{outline:3px solid #93c5fd;outline-offset:2px}.sort-controls{display:flex;align-items:center;gap:var(--spacing-sm)}.sort-select{padding:.75rem var(--spacing-md);font-size:var(--font-size-base);font-family:inherit;border:2px solid var(--color-border);border-radius:var(--radius-md);background-color:#fff;color:var(--color-text);cursor:pointer;transition:all var(--transition-normal);min-width:140px}.sort-select:hover{border-color:#cbd5e1}.sort-select:focus{outline:3px solid #93c5fd;outline-offset:2px;border-color:var(--color-primary)}.sort-direction-button{padding:.75rem;font-size:var(--font-size-base);font-family:inherit;border:2px solid var(--color-border);border-radius:var(--radius-md);background-color:#fff;color:var(--color-text);cursor:pointer;transition:all var(--transition-normal);line-height:1}.sort-direction-button:hover{background-color:#f1f5f9;border-color:#cbd5e1}.sort-direction-button:focus{outline:3px solid #93c5fd;outline-offset:2px}@media(max-width:768px){.header{padding:var(--spacing-md)}.header-content{gap:var(--spacing-sm)}.header-logo{width:180px}.header-updated{font-size:var(--font-size-sm)}.header-button{padding:.625rem var(--spacing-md);font-size:var(--font-size-sm)}.sort-select{min-width:120px;padding:.625rem .75rem;font-size:var(--font-size-sm)}.sort-direction-button{padding:.625rem;font-size:var(--font-size-sm)}}@media(max-width:640px){.header{padding:var(--spacing-md)}.header-content{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.header-left{justify-content:space-between;width:100%}.header-logo{width:160px}.header-updated{font-size:var(--font-size-xs);text-align:right}.header-right{width:100%;flex-direction:column;gap:var(--spacing-sm)}.sort-controls{order:-1;width:100%}.sort-select{flex:1;min-width:0}.header-user{display:none}.header-button{flex:1;text-align:center}.header-right{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:var(--spacing-sm)}.sort-controls{grid-column:1 / -1}.refresh-button{grid-column:1}.logout-button{grid-column:2}}@media(max-width:380px){.header-logo{width:140px}.header-button{padding:.5rem .75rem;font-size:var(--font-size-xs)}.sort-select,.sort-direction-button{padding:.5rem;font-size:var(--font-size-xs)}}.statistics-panel{margin:var(--spacing-md);background-color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg)}.statistics-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text);margin-bottom:var(--spacing-md)}.statistics-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.statistics-table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.statistics-table th,.statistics-table td{padding:var(--spacing-md) 1.25rem;text-align:left;border-bottom:1px solid var(--color-border)}.statistics-table th{background-color:#f8fafc;font-weight:700;color:var(--color-text);white-space:nowrap}.statistics-table tbody tr{cursor:pointer;transition:background-color var(--transition-fast)}.statistics-table tbody tr:hover{background-color:#f1f5f9}.statistics-table tbody tr.selected-row{background-color:#dbeafe}.statistics-table tbody tr.selected-row:hover{background-color:#bfdbfe}.statistics-table .checkbox-cell{width:48px;text-align:center;padding:.75rem}.statistics-table .checkbox-cell input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.statistics-table .count-cell{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}.statistics-table .sales-cell,.statistics-table .profit-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.statistics-table tfoot .total-row{background-color:#eff6ff;border-top:2px solid var(--color-primary)}.statistics-table tfoot .total-row td{border-bottom:none;color:var(--color-primary)}.filter-info{display:flex;align-items:center;gap:.75rem;margin-top:var(--spacing-md);padding:.75rem var(--spacing-md);background-color:#eff6ff;border-radius:var(--radius-md);border:1px solid #bfdbfe}.filter-badge{font-size:var(--font-size-sm);color:var(--color-primary);font-weight:600}.clear-filter-btn{padding:.375rem .75rem;font-size:var(--font-size-sm);color:#64748b;background-color:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.clear-filter-btn:hover{background-color:#f1f5f9;border-color:#cbd5e1}@media(max-width:768px){.statistics-panel{margin:var(--spacing-sm);padding:var(--spacing-md)}.statistics-table th,.statistics-table td{padding:.75rem .875rem;font-size:var(--font-size-sm)}.statistics-table .checkbox-cell{width:40px;padding:var(--spacing-sm)}.statistics-table .checkbox-cell input[type=checkbox]{width:16px;height:16px}}@media(max-width:640px){.statistics-panel{margin:var(--spacing-sm);padding:var(--spacing-md)}.statistics-title{font-size:var(--font-size-base);margin-bottom:.75rem}.statistics-table,.statistics-table thead,.statistics-table tbody,.statistics-table tfoot,.statistics-table th,.statistics-table td,.statistics-table tr{display:block}.statistics-table thead{position:absolute;top:-9999px;left:-9999px}.statistics-table tbody tr{margin-bottom:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm);background-color:#fff;box-shadow:var(--shadow-sm)}.statistics-table tbody tr.selected-row{border-color:var(--color-primary);border-width:2px}.statistics-table td{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-bottom:1px solid #f1f5f9;text-align:right}.statistics-table td:last-child{border-bottom:none}.statistics-table td:before{content:attr(data-label);font-weight:600;color:var(--color-text-secondary);font-size:var(--font-size-sm);flex-shrink:0;margin-right:var(--spacing-sm)}.statistics-table .checkbox-cell{width:100%;justify-content:flex-start;padding:.5rem .75rem;background-color:#f8fafc;border-radius:calc(var(--radius-md) - 1px) calc(var(--radius-md) - 1px) 0 0;margin:calc(var(--spacing-sm) * -1) calc(var(--spacing-sm) * -1) .5rem calc(var(--spacing-sm) * -1);width:calc(100% + var(--spacing-sm) * 2)}.statistics-table .checkbox-cell:before{content:"선택"}.statistics-table .count-cell,.statistics-table .sales-cell,.statistics-table .profit-cell{text-align:right}.statistics-table tfoot .total-row{margin-top:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);border:2px solid var(--color-primary)}.statistics-table tfoot .total-row td{padding:.5rem 0;border-bottom:1px solid #dbeafe}.statistics-table tfoot .total-row td:first-child{display:none}.statistics-table tfoot .total-row td:last-child{border-bottom:none}.filter-info{flex-direction:column;gap:var(--spacing-sm);text-align:center}.clear-filter-btn{width:100%}}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--spacing-md);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.data-table{width:100%;border-collapse:collapse;background-color:#fff;font-size:var(--font-size-base)}.data-table th,.data-table td{padding:var(--spacing-md) 1.25rem;text-align:left;border-bottom:1px solid var(--color-border)}.data-table th{background-color:#f8fafc;font-weight:700;color:var(--color-text);white-space:nowrap;position:sticky;top:0;z-index:10}.data-table tbody tr{transition:background-color var(--transition-fast)}.data-table tbody tr:hover{background-color:#f1f5f9}.data-table tbody tr:last-child td{border-bottom:none}.data-table td{color:var(--color-text);line-height:var(--line-height)}.data-table td[data-label=구분],.data-table td[data-label=영업방식],.data-table td[data-label=업체명],.data-table td[data-label=매출],.data-table td[data-label="매출이익(원)"],.data-table td[data-label="매출이익(%)"]{white-space:nowrap}.data-table td[data-label=구분]{min-width:100px}.data-table td[data-label=영업방식]{min-width:90px}.data-table td[data-label=업체명]{min-width:120px}.data-table td[data-label=매출],.data-table td[data-label="매출이익(원)"]{min-width:110px}.data-table td[data-label="매출이익(%)"]{min-width:100px}.table-empty{padding:var(--spacing-xl);text-align:center;background-color:#fff;border-radius:var(--radius-lg);margin:var(--spacing-md)}.table-empty p{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin:0}@media(min-width:769px)and (max-width:1024px){.data-table th,.data-table td{padding:.875rem var(--spacing-md);font-size:var(--font-size-sm)}}@media(max-width:768px){.table-container{margin:var(--spacing-sm);box-shadow:none;border-radius:0;overflow:visible}.data-table,.data-table thead,.data-table tbody,.data-table th,.data-table td,.data-table tr{display:block}.data-table thead{position:absolute;top:-9999px;left:-9999px}.data-table tbody tr{margin-bottom:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-sm);background-color:#fff;box-shadow:var(--shadow-md)}.data-table tbody tr:hover{background-color:#fff;border-color:var(--color-primary)}.data-table td{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem var(--spacing-md);border-bottom:1px solid #f1f5f9;gap:var(--spacing-md)}.data-table td:last-child{border-bottom:none}.data-table td:before{content:attr(data-label);font-weight:700;color:var(--color-text);flex-shrink:0;min-width:90px;font-size:var(--font-size-sm)}.data-table td{text-align:right;word-break:break-word}.data-table td:first-child{background-color:#f8fafc;border-radius:var(--radius-md) var(--radius-md) 0 0;margin:calc(var(--spacing-sm) * -1) calc(var(--spacing-sm) * -1) var(--spacing-sm);padding:var(--spacing-md);width:calc(100% + var(--spacing-md));font-weight:600}.data-table td:first-child:before{color:var(--color-text-secondary)}}@media(max-width:480px){.data-table td{padding:.625rem .75rem}.data-table td:before{min-width:80px;font-size:var(--font-size-xs)}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-lg)}.loading-spinner{width:60px;height:60px;border:5px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-message{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin:0}@media(max-width:640px){.loading-container{padding:var(--spacing-lg);gap:var(--spacing-md)}.loading-spinner{width:48px;height:48px;border-width:4px}.loading-message{font-size:var(--font-size-base)}}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-lg);background-color:#fef2f2;border:2px solid #fecaca;border-radius:var(--radius-lg);margin:var(--spacing-md)}.error-icon{width:60px;height:60px;background-color:#ef4444;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700}.error-message{font-size:var(--font-size-lg);color:#b91c1c;text-align:center;margin:0;line-height:var(--line-height)}.retry-button{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-base);font-weight:600;color:#fff;background-color:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-normal)}.retry-button:hover{background-color:var(--color-primary-hover)}.retry-button:focus{outline:3px solid #93c5fd;outline-offset:2px}@media(max-width:640px){.error-container{padding:var(--spacing-lg);gap:var(--spacing-md);margin:var(--spacing-sm)}.error-icon{width:48px;height:48px;font-size:1.5rem}.error-message{font-size:var(--font-size-base)}.retry-button{padding:.75rem var(--spacing-lg);font-size:var(--font-size-sm);width:100%}}:root{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;--font-size-xs: 14px;--font-size-sm: 16px;--font-size-base: 20px;--font-size-lg: 24px;--font-size-xl: 32px;--font-size-2xl: 40px;--line-height: 1.7;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-text: #1e293b;--color-text-secondary: #64748b;--color-bg: #f8fafc;--color-border: #e2e8f0;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 1px 3px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 6px rgba(0, 0, 0, .1);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--transition-fast: .15s ease;--transition-normal: .2s ease}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-size:var(--font-size-base);line-height:var(--line-height);color:var(--color-text);background-color:var(--color-bg);min-height:100vh}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}button{font-family:inherit;cursor:pointer}input{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#f1f5f9;border-radius:5px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}::selection{background-color:#bfdbfe;color:var(--color-text)}@media(max-width:640px){:root{--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 24px;--font-size-2xl: 28px}}@media(min-width:641px)and (max-width:768px){:root{--font-size-xs: 13px;--font-size-sm: 15px;--font-size-base: 18px;--font-size-lg: 21px;--font-size-xl: 28px;--font-size-2xl: 32px}}
