:root{--bg:#f6f7fb;--accent:#1976d2}body{font-family:Inter,system-ui,Arial,sans-serif;background:var(--bg);margin:0}.app-root{max-width:960px;margin:2rem auto;padding:1rem}.app-header h1{margin:0 0 1rem}.status{padding:12px;border-radius:6px;margin-bottom:12px}.status-ok{background:#e6f4ea;color:#0a7a3f}.status-error{background:#fff0f0;color:#a00}.upload input{display:block;margin-bottom:8px}.error{color:#a00}.success{color:green}.visually-hidden{position:absolute!important;height:1px;width:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.focusable:focus{position:static!important;height:auto;width:auto;margin:0;overflow:visible;clip:auto;white-space:normal}button:focus,input:focus,a:focus{outline:3px solid rgba(25,118,210,.6);outline-offset:2px}.muted{color:#666;font-size:.9rem;margin-bottom:8px}.upload,.results{width:100%;box-sizing:border-box}pre{background:#fff;padding:12px;border-radius:6px;overflow:auto}@media (max-width:600px){.app-root{margin:1rem;padding:.5rem}pre{font-size:.9rem}.upload input{width:100%}}.admin-page{max-width:800px;margin:0 auto;padding:2rem}.admin-page h2{color:#d32f2f;margin-bottom:2rem;text-align:center}.admin-page h3{color:#1976d2;margin-bottom:1rem}.stats-cards{display:flex;gap:2rem;justify-content:center;margin-bottom:2rem}.stat-card{background:#fff;border-radius:12px;padding:2rem;text-align:center;box-shadow:0 2px 8px #0000001a;min-width:150px}.stat-icon{font-size:2.5rem;margin-bottom:.5rem}.stat-value{font-size:2.5rem;font-weight:700;color:#1976d2;margin-bottom:.5rem}.stat-label{color:#666;font-size:.9rem}.last-update{text-align:center;color:#666;font-size:.9rem;margin-bottom:2rem}.upload-section{background:#fff;border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:0 2px 8px #0000001a}.upload-section h3{margin-top:0}.upload-section .hint{color:#666;font-size:.9rem;margin-bottom:1rem}.clear-section{margin-top:2rem;display:flex;gap:1rem;justify-content:center}.clear-button{background:#d32f2f;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:700}.clear-button:disabled{background:#ccc;cursor:not-allowed}.clear-button:hover:not(:disabled){background:#b71c1c}.refresh-button{background:#1976d2;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer}.refresh-button:disabled{background:#ccc;cursor:not-allowed}.refresh-button:hover:not(:disabled){background:#1565c0}.status-card{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:8px;margin-bottom:1rem}.status-card.success{background:#e6f4ea;color:#0a7a3f;border-left:4px solid #0a7a3f}.status-card.error{background:#fff0f0;color:#a00;border-left:4px solid #a00}.status-card.processing{background:#e3f2fd;color:#1976d2;border-left:4px solid #1976d2}.spinner{width:20px;height:20px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.status-icon{font-size:1.2rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.maintenance-message{text-align:center;padding:3rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.maintenance-icon{font-size:4rem;margin-bottom:1rem}.maintenance-message h3{color:#f57c00;margin-bottom:1rem}.maintenance-message p{color:#666}.debug-stats{margin-top:2rem;background:#f5f5f5;border-radius:6px;padding:1rem}.debug-stats summary{cursor:pointer;font-weight:700;margin-bottom:.5rem}.upload-admin{margin-top:1rem}.upload-label{display:block;margin-bottom:.5rem;font-weight:700;color:#333}.file-input{display:block;width:100%;padding:.75rem;border:2px dashed #ccc;border-radius:6px;background:#fafafa;margin-bottom:.5rem;cursor:pointer}.file-input:hover{border-color:#1976d2;background:#f0f7ff}.upload-help{color:#666;font-size:.9rem;margin-bottom:1rem}.upload-progress{margin-top:1rem}.progress-bar{width:100%;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:#1976d2;border-radius:4px;transition:width .3s ease}.progress-text{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;color:#666}.cancel-button{background:#d32f2f;color:#fff;border:none;padding:.25rem .75rem;border-radius:4px;font-size:.8rem;cursor:pointer}.cancel-button:hover{background:#b71c1c}@media (max-width: 768px){.admin-page{padding:1rem}.stats-cards{flex-direction:column;gap:1rem}.stat-card{padding:1.5rem}.clear-section{flex-direction:column}.upload-section{padding:1.5rem}}.login-page{max-width:600px;margin:0 auto;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.login-page h2{color:#1976d2;text-align:center;margin-bottom:2rem}.customer-name{font-size:1.2rem;font-weight:700;color:#333;margin-bottom:1.5rem}.enter-pin-button{background:#1976d2;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:700}.loading-customer{display:flex;align-items:center;justify-content:center;gap:1rem;padding:2rem;color:#666}.login-page{max-width:calc(100% - 2rem);margin:1rem auto;padding:1.5rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;box-sizing:border-box}.login-page h2{color:#1976d2;text-align:center;margin-bottom:1.5rem;font-size:1.5rem}.customer-info{text-align:center}.customer-name{font-size:1.2rem;font-weight:700;color:#333;margin-bottom:1.5rem;word-break:break-word}.pin-entry-section{margin-top:1rem}.enter-pin-button{background:#1976d2;color:#fff;border:none;padding:1rem;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:700;width:100%;min-height:44px;transition:background-color .2s}.enter-pin-button:hover{background:#1565c0}.loading-customer{display:flex;align-items:center;justify-content:center;gap:1rem;padding:2rem;color:#666;font-size:1rem}.loading-customer .spinner{width:20px;height:20px;border:2px solid transparent;border-top:2px solid #1976d2;border-radius:50%;animation:spin 1s linear infinite}@media (min-width: 375px){.login-page{padding:1.75rem}.login-page h2{font-size:1.6rem}.customer-name{font-size:1.3rem}}@media (min-width: 414px){.login-page{padding:2rem;max-width:500px}.login-page h2{font-size:1.7rem}.customer-name{font-size:1.4rem}.enter-pin-button{width:auto;min-width:200px;padding:1rem 2rem}}@media (min-width: 600px){.login-page{max-width:600px;padding:2.5rem}.login-page h2{font-size:1.8rem;margin-bottom:2rem}.customer-name{font-size:1.5rem;margin-bottom:2rem}}@media (min-width: 768px){.login-page{padding:3rem}.login-page h2{font-size:2rem}}.status-card.error{background:#fff0f0;color:#a00;border-left:4px solid #a00;padding:1rem;border-radius:8px;margin:1rem 0}.maintenance-icon{font-size:3rem;margin-bottom:1rem}.maintenance-message h3{color:#f57c00;margin-bottom:1rem;font-size:1.3rem}.maintenance-message p{color:#666;font-size:1rem}@media (min-width: 600px){.maintenance-message{padding:3rem}.maintenance-icon{font-size:4rem}.maintenance-message h3{font-size:1.5rem}}.orders-page{max-width:1000px;margin:0 auto;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.orders-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #e0e0e0}.customer-name{color:#1976d2;margin:0;font-size:1.5rem}.button-group{display:flex;gap:1rem}.refresh-button{background:#1976d2;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:700}.logout-button{background:#d32f2f;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:700}.orders-section{margin-top:1rem}.orders-count{font-size:1.1rem;margin-bottom:1rem;color:#666}.orders-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.orders-table th{background:#f5f5f5;padding:1rem;text-align:left;font-weight:700;color:#333;border-bottom:2px solid #e0e0e0}.orders-table td{padding:1rem;border-bottom:1px solid #f0f0f0;color:#555}.orders-table tr:hover{background:#f8f9fa}.orders-table tr:last-child td{border-bottom:none}.balance-section{background:#f8f9fa;padding:1.5rem;border-radius:8px;border-left:4px solid #1976d2}.balance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.balance-info{font-size:1.2rem;font-weight:700;color:#1976d2}.details-button{background:transparent;color:#1976d2;border:1px solid #1976d2;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem}.balance-details{background:#fff;padding:1rem;border-radius:4px;border:1px solid #e0e0e0}.balance-details div{margin-bottom:.5rem;color:#666}.loading{display:flex;align-items:center;justify-content:center;padding:3rem;color:#666;font-size:1.1rem}.orders-page{padding:1rem;margin:.5rem;max-width:calc(100% - 1rem);box-sizing:border-box}.orders-header{display:flex;flex-direction:column;gap:1rem;text-align:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e0e0e0}.customer-name{font-size:1.3rem;margin:0;color:#1976d2;word-break:break-word}.button-group{display:flex;flex-direction:column;gap:.75rem;width:100%}.refresh-button,.logout-button{width:100%;padding:1rem;font-size:1rem;min-height:44px;border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s}.refresh-button{background:#1976d2;color:#fff}.refresh-button:hover{background:#1565c0}.logout-button{background:#d32f2f;color:#fff}.logout-button:hover{background:#b71c1c}.table-container{overflow-x:auto;margin-bottom:2rem}.orders-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a;display:none}.orders-cards{display:block}.order-card{background:#fff;border-radius:8px;padding:1rem;margin-bottom:1rem;box-shadow:0 1px 3px #0000001a;border-left:4px solid #1976d2}.order-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.order-product{font-weight:700;font-size:1.1rem;color:#333;margin:0;flex:1}.order-price{font-size:1.1rem;font-weight:700;color:#1976d2;margin:0;min-width:80px;text-align:right}.order-details{display:grid;gap:.5rem}.order-detail{display:flex;justify-content:space-between;font-size:.9rem;color:#666}.order-detail-label{font-weight:500}.order-detail-value{text-align:right}.balance-section{background:#f8f9fa;padding:1.25rem;border-radius:8px;border-left:4px solid #1976d2;margin-top:1rem}.balance-header{display:flex;flex-direction:column;gap:1rem;text-align:center;margin-bottom:1rem}.balance-info{font-size:1.2rem;font-weight:700;color:#1976d2;margin:0}.details-button{background:transparent;color:#1976d2;border:1px solid #1976d2;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-size:.9rem;min-height:44px;transition:all .2s}.details-button:hover{background:#1976d2;color:#fff}.balance-details{background:#fff;padding:1rem;border-radius:4px;border:1px solid #e0e0e0;margin-top:1rem}.balance-details div{margin-bottom:.5rem;color:#666;font-size:.9rem}.balance-details div:last-child{margin-bottom:0}@media (min-width: 375px){.orders-page{padding:1.25rem;margin:.75rem}.customer-name{font-size:1.4rem}}@media (min-width: 414px){.orders-page{padding:1.5rem;margin:1rem}.button-group{flex-direction:row;gap:1rem}.refresh-button,.logout-button{width:auto;flex:1}}@media (min-width: 600px){.orders-page{max-width:90%;margin:1rem auto}.orders-header{flex-direction:row;justify-content:space-between;align-items:center;text-align:left}.button-group{width:auto;flex-direction:row}.refresh-button,.logout-button{width:auto;padding:.75rem 1.5rem}.balance-header{flex-direction:row;justify-content:space-between;align-items:center;text-align:left}}@media (min-width: 768px){.orders-page{max-width:1000px;padding:2rem}.orders-cards{display:none}.orders-table{display:table}.orders-table th,.orders-table td{padding:1rem;font-size:.95rem}.customer-name{font-size:1.5rem}}@media (min-width: 1024px){.orders-table th,.orders-table td{padding:1rem;font-size:1rem}}.loading{display:flex;align-items:center;justify-content:center;padding:3rem;color:#666;font-size:1.1rem;min-height:200px}.maintenance-message{text-align:center;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin:1rem}.maintenance-message .button-group{margin-top:1.5rem;flex-direction:column;gap:1rem}@media (min-width: 600px){.maintenance-message .button-group{flex-direction:row;justify-content:center}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:.5rem}.modal-dialog{width:100%;max-width:100%;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;overflow:hidden;margin:.5rem}.modal-content{display:flex;flex-direction:column}.modal-header{padding:1.25rem 1.25rem 1rem;border-bottom:1px solid #e0e0e0}.modal-title{margin:0;color:#1976d2;font-size:1.2rem;font-weight:700;text-align:center;word-break:break-word}.modal-body{padding:1.25rem}.modal-footer{padding:1rem 1.25rem 1.25rem;border-top:1px solid #e0e0e0;display:flex;flex-direction:column;gap:.75rem}.pin-input{width:100%;padding:1rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1.2rem;text-align:center;letter-spacing:.5rem;font-family:monospace;background:#fafafa;min-height:44px;box-sizing:border-box}.pin-input:focus{outline:none;border-color:#1976d2;background:#fff}.pin-input:disabled{background:#f5f5f5;color:#999;cursor:not-allowed}.button{border:none;padding:1rem;border-radius:8px;cursor:pointer;font-weight:700;font-size:1rem;transition:background-color .2s;min-height:44px;display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;box-sizing:border-box}.button:disabled{background:#ccc;color:#666;cursor:not-allowed}.button-primary{background:#1976d2;color:#fff}.button-primary:hover:not(:disabled){background:#1565c0}.button-secondary{background:#f5f5f5;color:#333;border:1px solid #ddd}.button-secondary:hover:not(:disabled){background:#e0e0e0}@media (min-width: 375px){.modal-dialog{max-width:350px;margin:1rem}.modal-header{padding:1.5rem 1.5rem 1rem}.modal-body{padding:1.5rem}.modal-footer{padding:1rem 1.5rem 1.5rem}.modal-title{font-size:1.25rem}}@media (min-width: 414px){.modal-dialog{max-width:380px}.modal-title,.pin-input{font-size:1.3rem}}@media (min-width: 600px){.modal-overlay{padding:1rem}.modal-dialog{max-width:400px;margin:0}.modal-footer{flex-direction:row;gap:1rem}.button{width:auto;min-width:100px;padding:.75rem 1.5rem}.modal-title{font-size:1.4rem}}@media (min-width: 768px){.modal-dialog{max-width:450px}.modal-title{font-size:1.5rem}.pin-input{font-size:1.4rem;padding:1rem 1.5rem}}@media (max-width: 480px){.modal-overlay{padding:.5rem}.modal-dialog{max-width:100%}.modal-header,.modal-body,.modal-footer{padding:1rem}.modal-footer{flex-direction:column}.button{width:100%}}
