:root{font-family:system-ui,sans-serif;color:#142b45;background:#f0f4f9}*{box-sizing:border-box}body{margin:0}header{height:90px;display:flex;align-items:center;gap:18px;background:#fff;padding:10px 28px;border-bottom:1px solid #dce5ee}header img{width:105px;height:70px;object-fit:contain}header strong{font-size:25px}header span{color:#087dcc}header small{margin-left:auto;font-size:16px}.notice{background:#fff0ca;color:#755009;text-align:center;padding:9px;font-size:13px}main{padding:20px}nav{display:flex;gap:10px;margin-bottom:22px;flex-wrap:wrap}button,input,select{font:inherit;min-height:50px;border-radius:12px;padding:12px;border:1px solid #d2dde9}button{cursor:pointer;background:#fff;color:#17364c;font-weight:600}button:disabled{opacity:.5;cursor:wait}button.primary,.selected{background:#087bc1;color:#fff;border-color:#087bc1}.panel{background:#fff;border:1px solid #e0e7ef;border-radius:18px;padding:24px}.login{max-width:430px;margin:60px auto}.login button{width:100%;margin-top:15px}label{display:block;margin:12px 0}input,select{width:100%;background:#fff}h1,h2{margin-top:0}.sale{display:grid;grid-template-columns:1fr 350px;gap:20px}.categories{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px}.product{min-height:125px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;border-left:5px solid #13a9d5}.product b{font-size:23px;color:#087bc1}.cartline{display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid #eee;padding:12px 0}.cartline button{padding:6px;min-width:40px}.total{display:flex;justify-content:space-between;font-size:28px;font-weight:700;padding:22px 0}.pay{display:grid;gap:10px}.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:20px 0}.stats div{background:#eef7fe;border-radius:12px;padding:20px}.stats b{display:block;font-size:25px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:14px;border-bottom:1px solid #e5eaf1}dialog{border:0;border-radius:18px;max-width:620px;width:90%;max-height:90vh;overflow:auto}dialog::backdrop{background:#102a4666}pre{white-space:pre-wrap;font:14px monospace}#message{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#163654;color:white;padding:14px 22px;border-radius:12px;display:none;max-width:90%}[hidden]{display:none!important}@media(max-width:800px){.sale{grid-template-columns:1fr}.formgrid,.stats{grid-template-columns:1fr}header{padding:8px;height:75px}header small{display:none}main{padding:12px}}@media print{header,.notice,main,#modalclose,#message,.printbutton{display:none!important}dialog{display:block;position:static;width:80mm;max-height:none}dialog::backdrop{display:none}}

/* Pantalla de acceso MCECA POS */
body:has(#app[hidden]){background:#063766}
body:has(#app[hidden])>header{display:none}
body:has(#app[hidden])>.notice{position:relative;z-index:1}
.login-screen{min-height:calc(100dvh - 36px);display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:70px;padding:65px max(5vw,24px);background:radial-gradient(ellipse at 5% 10%,#06b9ed66,transparent 55%),linear-gradient(130deg,#061c3d 0%,#064b8a 52%,#02a9d9 100%)}
.login-brand{max-width:620px;color:#fff;padding:15px}
.brand-logo{width:280px;max-width:100%;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 16px 45px #001e4938}
.brand-logo img{display:block;width:100%;height:175px;object-fit:cover}
.brand-name{font-size:28px;font-weight:750;letter-spacing:2px;margin:28px 0 18px}.brand-name span{color:#62ddff}
.login-brand h1{font-size:clamp(32px,4vw,54px);line-height:1.12;letter-spacing:-1.2px;max-width:600px;margin:0 0 24px}.brand-description{font-size:19px;line-height:1.7;color:#d2eaff;margin:0}
.login-access{width:100%;max-width:460px;justify-self:end}
.login-access .login{width:100%;max-width:none;margin:0;padding:38px;border:1px solid #ffffff80;border-radius:24px;box-shadow:0 24px 70px #00204f44}
.access-label{font-size:11px;letter-spacing:1.5px;font-weight:750;color:#087bc1}.login-access h2{font-size:32px;margin:16px 0 8px}.login-access form>p{color:#607389;margin:0 0 28px}.login-access label{font-size:14px;font-weight:600;margin:18px 0}.login-access input{margin-top:8px;min-height:54px;background:#f7faff}.login-access input:focus{outline:3px solid #0ba3df33;border-color:#088ccd}.login-access button{min-height:56px;background:linear-gradient(100deg,#055995,#059ddd);border:0}.login-access .login-footer{font-size:12px;text-align:center;margin:24px 0 0;color:#7b8ba0}
@media(max-width:800px){.login-screen{grid-template-columns:1fr;gap:24px;padding:28px 20px;align-content:center}.login-brand{padding:0;max-width:460px;justify-self:center;text-align:center}.brand-logo{width:190px;margin:auto;border-radius:14px}.brand-logo img{height:120px}.brand-name{font-size:21px;margin:15px 0 10px}.login-brand h1{font-size:29px;letter-spacing:-.5px;margin-bottom:10px}.brand-description{font-size:15px}.login-access{justify-self:center}.login-access .login{padding:26px}.login-access h2{font-size:27px}}

/* Alineación fija de las líneas del ticket */
.cartline{display:grid;grid-template-columns:minmax(0,1fr) 48px 48px;align-items:center;column-gap:10px;min-height:76px}
.cartline>span{min-width:0;overflow-wrap:anywhere;line-height:1.4;text-align:left}
.cartline>button{width:48px;min-width:48px;height:48px;min-height:48px;padding:0;display:flex;align-items:center;justify-content:center}
.article-table{overflow-x:auto}

/* Evitar que una tabla ensanche toda la pantalla */
html,body{width:100%;max-width:100%;margin:0}
main,#app,#content,.panel,.sale,.sale>*,.formgrid>*{min-width:0;max-width:100%}
header{max-width:100%;min-width:0}header strong{white-space:nowrap}.notice{overflow-wrap:anywhere}
input,select{min-width:0;max-width:100%}.panel h1,.panel h2{overflow-wrap:anywhere}
.panel{overflow-x:auto}.article-table{width:100%;max-width:100%;overflow-x:auto}
.history-table td{overflow-wrap:anywhere}
@media(max-width:600px){
 header{gap:8px;padding:8px 12px;height:auto;min-height:70px}
 header img{width:64px;height:48px;flex-shrink:0}
 header strong{font-size:20px}header #logout{margin-left:auto;min-height:44px;padding:8px 12px}
 .notice{font-size:11px;line-height:1.5;padding:8px 12px}
 main{padding:12px}nav{gap:8px;margin-bottom:16px}nav button{font-size:13px;min-height:44px;padding:10px}
 .panel{padding:16px;border-radius:16px}.panel h1{font-size:25px}.panel h2{font-size:22px}
 .history-table,.history-table tbody{display:block;width:100%}
 .history-table thead{display:none}
 .history-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;background:#f7faff;border:1px solid #dce6f0;border-radius:12px;margin-bottom:12px;padding:14px}
 .history-table td{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;border:0;padding:0;font-size:14px;min-width:0;white-space:normal;overflow-wrap:anywhere}
 .history-table td[data-label]::before{content:attr(data-label);font-weight:650;color:#607389}
 .history-table td.history-action{display:block;padding-top:4px}.history-action button{width:100%;min-height:46px}
 .history-table td[colspan]{display:block}
 dialog{padding:18px;max-width:calc(100vw - 24px)}
 .cartline{grid-template-columns:minmax(0,1fr) 44px 44px;gap:8px}.cartline>button{width:44px;min-width:44px;height:44px;min-height:44px}
}
