/* iFAS TOUCH SERIES */
:root{
    --touch-primary:#0f766e;
    --touch-primary-dark:#115e59;
    --touch-primary-soft:#ccfbf1;
    --touch-success:#15803d;
    --touch-bg:#f1f5f9;
    --touch-card:#fff;
    --touch-border:#dbe4ee;
    --touch-text:#0f172a;
    --touch-muted:#64748b;
    --touch-radius:22px;
    --touch-shadow:0 12px 30px rgba(15,23,42,.08);
}
.touch-pos-page{min-height:calc(100vh - 20px);padding:18px;background:radial-gradient(circle at top left,rgba(15,118,110,.10),transparent 30%),var(--touch-bg);color:var(--touch-text)}
.touch-pos-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:18px 22px;border:1px solid var(--touch-border);border-radius:var(--touch-radius);background:rgba(255,255,255,.94);box-shadow:var(--touch-shadow)}
.touch-brand,.touch-section-step{color:var(--touch-primary);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.touch-pos-header h1{margin:2px 0 0;font-size:clamp(26px,2.4vw,38px);font-weight:850}
.touch-subtitle{margin-top:3px;color:var(--touch-muted)}
.touch-header-actions{display:flex;align-items:center;gap:10px}
.touch-operator{display:flex;flex-direction:column;min-width:130px;padding:10px 14px;border-radius:16px;background:#f8fafc}
.touch-operator-label{color:var(--touch-muted);font-size:12px}
.touch-header-button{min-height:54px;padding:0 18px;border:1px solid var(--touch-border);border-radius:16px;background:#fff;color:var(--touch-text);font-weight:750}
.touch-header-button.primary{border-color:var(--touch-primary);background:var(--touch-primary);color:#fff}
.touch-header-button:active,.touch-ticket-card:active,.touch-payment-card:active,.touch-pay-button:active,.touch-qty-button:active,.touch-qty-shortcut:active{transform:scale(.97)}
.touch-pos-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(350px,.85fr);gap:16px}
.touch-panel{border:1px solid var(--touch-border);border-radius:var(--touch-radius);background:var(--touch-card);box-shadow:var(--touch-shadow)}
.touch-ticket-panel{padding:20px}.touch-summary-panel{position:sticky;top:14px;align-self:start;padding:18px}
.touch-section-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}
.touch-section-header h2,.touch-summary-block h3{margin:2px 0 0;font-weight:850}
.touch-ticket-count{padding:8px 12px;border-radius:999px;background:var(--touch-primary-soft);color:var(--touch-primary-dark);font-weight:750}
.touch-ticket-grid{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:14px}
.touch-ticket-card{position:relative;min-height:175px;padding:18px;border:2px solid var(--touch-border);border-radius:20px;background:#fff;color:var(--touch-text);text-align:left;cursor:pointer;transition:.15s}
.touch-ticket-card:hover{transform:translateY(-2px);border-color:#94a3b8;box-shadow:0 14px 25px rgba(15,23,42,.08)}
.touch-ticket-card.selected{border-color:var(--touch-primary);background:linear-gradient(145deg,#fff,var(--touch-primary-soft));box-shadow:0 12px 24px rgba(15,118,110,.16)}
.touch-ticket-icon{font-size:38px}.touch-ticket-name{margin-top:12px;font-size:18px;font-weight:850;line-height:1.2}.touch-ticket-price{margin-top:8px;color:var(--touch-primary-dark);font-size:20px;font-weight:850}
.touch-selected-mark{position:absolute;top:12px;right:12px;padding:5px 9px;border-radius:999px;background:var(--touch-primary);color:#fff;font-size:11px;font-weight:800}
.touch-reference-row{display:flex;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--touch-border)}
.touch-reference-row div{display:flex;flex-direction:column}.touch-reference-row span,.touch-today-summary span,.touch-history-row span{color:var(--touch-muted);font-size:12px}
.touch-summary-ticket,.touch-summary-block{margin-top:16px;padding:16px;border:1px solid var(--touch-border);border-radius:18px;background:#f8fafc}
.touch-selected-ticket-name{margin-top:6px;font-size:22px;font-weight:850}.touch-selected-ticket-price{color:var(--touch-primary-dark);font-size:17px;font-weight:750}.touch-not-selected{margin-top:8px;color:var(--touch-muted)}
.touch-quantity{display:grid;grid-template-columns:72px 1fr 72px;align-items:center;gap:12px;margin-top:12px}
.touch-qty-button{height:70px;border:0;border-radius:18px;background:var(--touch-primary);color:#fff;font-size:36px;font-weight:700}.touch-qty-button:disabled{opacity:.35}
.touch-qty-value{display:flex;align-items:center;justify-content:center;min-height:70px;border:2px solid var(--touch-border);border-radius:18px;background:#fff;font-size:36px;font-weight:900}
.touch-qty-shortcuts{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-top:10px}.touch-qty-shortcut{min-height:42px;border:1px solid var(--touch-border);border-radius:12px;background:#fff;font-weight:800}.touch-qty-shortcut.selected{border-color:var(--touch-primary);background:var(--touch-primary-soft);color:var(--touch-primary-dark)}
.touch-payment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:12px}.touch-payment-card{position:relative;min-height:92px;border:2px solid var(--touch-border);border-radius:17px;background:#fff;color:var(--touch-text)}.touch-payment-card.selected{border-color:var(--touch-primary);background:var(--touch-primary-soft)}.touch-payment-icon{font-size:27px}.touch-payment-name{margin-top:3px;font-weight:850}.touch-payment-check{position:absolute;top:7px;right:9px;color:var(--touch-primary);font-weight:900}
.touch-total-box{margin-top:16px;padding:18px;border-radius:20px;background:linear-gradient(145deg,var(--touch-primary),var(--touch-primary-dark));color:#fff;text-align:center}.touch-total-label{font-size:12px;font-weight:800;letter-spacing:.14em}.touch-total-value{margin-top:2px;font-size:clamp(32px,3.2vw,48px);font-weight:900;line-height:1.1}.touch-total-info{margin-top:6px;opacity:.88}
.touch-pay-button{display:flex;align-items:center;justify-content:center;gap:13px;width:100%;min-height:82px;margin-top:12px;border:0;border-radius:20px;background:var(--touch-success);color:#fff;box-shadow:0 12px 24px rgba(21,128,61,.22)}.touch-pay-button:disabled{background:#94a3b8;box-shadow:none}.touch-pay-button span:last-child{display:flex;flex-direction:column}.touch-pay-button strong{font-size:18px}.touch-pay-button small{opacity:.9}.touch-pay-icon{font-size:28px}
.touch-today-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.touch-today-summary>div{display:flex;flex-direction:column;padding:12px;border:1px solid var(--touch-border);border-radius:15px;background:#f8fafc}
.touch-modal-backdrop,.touch-overlay{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.64);backdrop-filter:blur(5px)}
.touch-history-modal{width:min(920px,96vw);max-height:88vh;overflow:hidden;border-radius:24px;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.25)}
.touch-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--touch-border)}.touch-modal-header h2{margin:2px 0 0}.touch-modal-close{width:48px;height:48px;border:0;border-radius:50%;background:#e2e8f0;font-size:28px}.touch-modal-close.floating{position:absolute;top:15px;right:15px}
.touch-history-search{padding:14px 18px}.touch-history-search input{width:100%;min-height:52px;padding:0 15px;border:1px solid var(--touch-border);border-radius:14px;font-size:17px}
.touch-history-list{max-height:60vh;overflow-y:auto;padding:0 18px 18px}.touch-history-row{display:grid;grid-template-columns:1fr 90px 170px;align-items:center;width:100%;margin-top:8px;padding:14px;border:1px solid var(--touch-border);border-radius:15px;background:#fff;text-align:left}.touch-history-row div{display:flex;flex-direction:column}
.touch-loaded-modal{position:relative;width:min(520px,94vw);padding:34px;border-radius:26px;background:#fff;text-align:center}.touch-loaded-ref{color:var(--touch-muted);font-weight:750}.touch-loaded-name{margin-top:10px;font-size:23px;font-weight:850}.touch-loaded-total{margin-top:8px;color:var(--touch-primary-dark);font-size:38px;font-weight:900}.touch-loaded-detail{margin-top:5px;color:var(--touch-muted)}.touch-reprint-button{width:100%;min-height:62px;margin-top:20px;border:0;border-radius:16px;background:var(--touch-text);color:#fff;font-weight:850}
.touch-overlay-card{min-width:min(430px,92vw);padding:34px;border-radius:25px;background:#fff;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.25)}.touch-spinner{width:70px;height:70px;margin:0 auto 20px;border:7px solid #dbe4ee;border-top-color:var(--touch-primary);border-radius:50%;animation:touch-spin .85s linear infinite}@keyframes touch-spin{to{transform:rotate(360deg)}}.touch-success-icon{display:flex;align-items:center;justify-content:center;width:92px;height:92px;margin:0 auto 18px;border-radius:50%;background:#dcfce7;color:var(--touch-success);font-size:58px;font-weight:900}.touch-success-icon.small{width:74px;height:74px;font-size:44px}.touch-overlay-title{font-size:24px;font-weight:900}.touch-overlay-message{margin-top:8px;color:var(--touch-muted);font-size:16px}
.touch-empty-state{padding:60px 20px;color:var(--touch-muted);text-align:center}.touch-empty-state.compact{padding:30px}.touch-empty-icon{font-size:50px}
@media(max-width:1250px){.touch-ticket-grid{grid-template-columns:repeat(2,minmax(165px,1fr))}.touch-pos-layout{grid-template-columns:minmax(0,1.35fr) minmax(330px,.85fr)}}
@media(max-width:900px){.touch-pos-page{padding:10px}.touch-pos-header{align-items:flex-start;flex-direction:column}.touch-header-actions{width:100%}.touch-operator{flex:1}.touch-pos-layout{grid-template-columns:1fr}.touch-summary-panel{position:static}.touch-ticket-grid{grid-template-columns:repeat(2,minmax(145px,1fr))}}
@media(max-width:560px){.touch-ticket-grid{grid-template-columns:1fr}.touch-header-actions{flex-wrap:wrap}.touch-header-button{flex:1}.touch-payment-grid{grid-template-columns:1fr}.touch-qty-shortcuts{grid-template-columns:repeat(3,1fr)}.touch-today-summary{grid-template-columns:1fr}.touch-history-row{grid-template-columns:1fr;gap:8px}.touch-history-row .text-center,.touch-history-row .text-end{text-align:left!important}}
