@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=DM+Mono:wght@400;500&family=Inter:wght@500;600;700&display=swap');
:root{--ink:#0d151b;--body:#1c2931;--top:#0b1115;--panel:#f1f4f5;--paper:#fafafa;--blue:#1595c5;--cyan:#31bedb;--green:#2bbf6a;--red:#ef5b57;--yellow:#f2c94c;--orange:#f08b3e;--purple:#8b6ae7;--pink:#dd6e9b;--lime:#94c936;--muted:#71808a;--line:#d5dce0;--mono:'DM Mono',monospace;--display:'Barlow Condensed',sans-serif;--bodyfont:'Inter',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--body);color:#142027;font-family:var(--bodyfont);font-size:13px}button,input{font:inherit}button{cursor:pointer;border:0}button:active{transform:scale(.98)}.hidden{display:none!important}.app{min-height:100vh;display:flex;flex-direction:column;background:#dce2e5}.topbar{height:61px;display:flex;align-items:center;gap:36px;padding:0 20px;color:#e9f0f2;background:var(--top);box-shadow:0 2px 8px #0005}.brand{display:flex;align-items:center;gap:10px;min-width:260px}.brand-symbol{width:35px;height:35px;display:grid;place-items:center;color:#fff;background:#197b9f;border:2px solid #40c8e1;border-radius:5px;font:700 23px var(--display)}.brand strong{display:block;font:700 17px var(--display);letter-spacing:.08em}.brand small{display:block;margin-top:2px;color:#8fa1a9;font:500 8px var(--mono);letter-spacing:.1em}.top-meta{display:flex;align-items:center;gap:10px;color:#d1dce0;font-size:12px}.top-meta>span:not(.live-dot):not(.pill){color:#6e7d85}.live-dot,.scan-led{width:8px;height:8px;display:inline-block;border-radius:50%;background:#39d66e;box-shadow:0 0 0 3px #39d66e22}.pill{padding:5px 8px;border-radius:3px;font:500 9px var(--mono)}.pill.open{margin-left:15px;color:#69e58b;background:#154b2a;border:1px solid #2a874b}.top-user{display:flex;align-items:center;gap:13px;margin-left:auto;color:#d9e4e7;font-size:11px}.top-user span:nth-child(2){color:#78909a;font-size:10px}.top-btn{padding:8px 10px;color:#8da2aa;background:#202d35;border:1px solid #41515a;border-radius:3px;font:500 9px var(--mono)}.terminal-strip{height:35px;display:flex;align-items:center;gap:19px;padding:0 20px;color:#84959d;background:#17232a;border-bottom:1px solid #0d1419;font:500 10px var(--mono)}.mode-label{color:#52c7e0}.terminal-strip .strip-right{margin-left:auto;color:#687982}.register{display:grid;grid-template-columns:minmax(430px,1.03fr) minmax(630px,1.5fr);gap:14px;flex:1;padding:14px;min-height:700px}.receipt-zone,.operation-zone{min-width:0;display:flex;flex-direction:column;gap:12px}.receipt-screen{display:flex;flex-direction:column;min-height:600px;flex:1;overflow:hidden;border:1px solid #aebbc1;border-radius:3px;background:var(--paper);box-shadow:inset 0 0 0 3px #e3e8ea,0 2px 4px #0002}.receipt-head{display:flex;justify-content:space-between;padding:17px 20px 12px;border-bottom:1px solid #b9c4c8}.caption{display:block;color:#70818a;font:500 10px var(--mono);letter-spacing:.08em}.receipt-head h1{margin:5px 0 0;font:600 27px var(--display);letter-spacing:.01em}.receipt-id{color:#74848b;font:500 10px var(--mono);line-height:1.5;text-align:right}.receipt-id strong{color:#183a44}.receipt-columns{display:grid;grid-template-columns:55px 1fr 80px 87px;padding:8px 20px;color:#6e7d84;background:#e6ebed;border-bottom:1px solid #c7d0d4;font:500 9px var(--mono)}.receipt-columns span:nth-child(n+3){text-align:right}.cart-lines{flex:1;overflow:auto;background:#fff}.cart-line{display:grid;grid-template-columns:55px minmax(100px,1fr) 80px 87px 20px;gap:6px;align-items:center;padding:11px 20px;border-bottom:1px solid #e0e5e7;color:#21343b}.cart-line.selected{background:#e7f5f8;box-shadow:inset 4px 0 var(--cyan)}.qty{color:#355867;font:600 15px var(--display)}.line-name{min-width:0}.line-name strong,.line-name small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-name strong{font-size:12px}.line-name small{margin-top:4px;color:#839199;font:400 9px var(--mono)}.line-price,.line-total{font:500 12px var(--mono);text-align:right}.line-remove{width:19px;height:24px;color:#9ba8ad;background:transparent;font-size:18px}.line-remove:hover{color:var(--red)}.empty-receipt{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;height:220px;color:#98a6ac}.empty-receipt span{font:600 16px var(--display)}.empty-receipt small{font-size:10px}.receipt-bottom{padding:12px 20px 16px;border-top:1px solid #aebbc1;background:#f4f6f6}.price-row{display:flex;justify-content:space-between;padding:5px 0;color:#667a83;font-size:12px}.price-row strong{color:#394c54;font:500 12px var(--mono)}.price-row.vat{font-size:10px;color:#95a2a7}.grand-total{display:flex;align-items:baseline;justify-content:space-between;margin-top:9px;padding-top:12px;border-top:2px solid #344850;color:#1d3138;font:700 17px var(--display)}.grand-total strong{color:#0e7796;font:700 30px var(--display)}.left-functions{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.fn,.function{min-height:55px;color:#fff;border:2px solid #ffffff55;border-radius:3px;box-shadow:0 2px 2px #0003;font:700 12px var(--display);letter-spacing:.02em}.fn small{font:500 9px var(--mono)}.fn.yellow{color:#473900;background:var(--yellow)}.fn.blue{background:var(--blue)}.fn.red{background:var(--red)}.fn.grey{color:#26363d;background:#b5c1c5}.operation-zone{min-width:0}.scan-row{display:flex;gap:9px;align-items:center;padding:11px;background:#f2f5f6;border:1px solid #aab9c0;border-radius:3px}.scan-status{display:flex;align-items:center;gap:8px;min-width:130px;color:#1e5867;font:500 9px var(--mono)}.scan-status .error-text{color:#b13d38}.scan-form{display:flex;flex:1;height:41px;border:2px solid #51bcd5;border-radius:3px;background:#fff}.scan-form input{width:100%;min-width:0;padding:0 12px;border:0;outline:0;color:#1b3741;font-size:13px}.scan-form input::placeholder{color:#92a0a6}.scan-form button{width:47px;color:#fff;background:#27a9c6;font:600 22px var(--display)}.last-item{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#1a2a32;border:1px solid #334b55;border-radius:3px;color:#eaf2f4}.last-item .caption{color:#8da2aa}.last-item strong:nth-of-type(1){overflow:hidden;flex:1;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.last-item strong:nth-of-type(2){color:#63dbec;font:600 17px var(--mono)}.function-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:7px}.function{min-height:61px;padding:3px;color:#fff}.function.green{background:var(--green)}.function.red{background:#ea5853}.function.cyan{background:#29aac6}.function.orange{color:#48290b;background:var(--orange)}.function.purple{background:var(--purple)}.function.pink{background:var(--pink)}.function.teal{background:#35aab1}.function.lime{color:#32470c;background:var(--lime)}.catalog{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-height:250px;overflow:auto;padding:6px;background:#cbd5d8;border:1px solid #aab8be;border-radius:3px}.catalog-item{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;min-height:61px;padding:8px;background:#f7f9f9;border:1px solid #b4c0c4;border-radius:3px;text-align:left}.catalog-item:hover{background:#dff4f7;border-color:#4dbbd0}.catalog-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:3px;background:#e1e7e8;font-size:18px}.catalog-item>span:nth-child(2){min-width:0}.catalog-item strong,.catalog-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-item strong{font-size:10px}.catalog-item small{margin-top:4px;color:#778990;font:500 8px var(--mono)}.catalog-item b{position:absolute;right:6px;bottom:5px;color:#147d98;font:500 10px var(--mono)}.keypad-area{display:grid;grid-template-columns:1fr 185px;gap:9px;margin-top:auto}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.keypad button{min-height:61px;color:#18323a;background:#eef2f3;border:1px solid #a9b6bb;border-radius:3px;box-shadow:0 2px 1px #0002;font:600 25px var(--display)}.keypad button:hover{background:#d9eef2}.keypad button.clear{color:#fff;background:#dd615d}.pay-stack{display:grid;grid-template-rows:repeat(3,1fr);gap:6px}.pay{color:#fff;border:2px solid #ffffff66;border-radius:3px;box-shadow:0 2px 2px #0003;font:700 15px var(--display)}.pay small{font:500 9px var(--mono)}.pay.cash{background:#2bbf6a}.pay.card{background:#497ccc}.pay.mobile{background:#9a63da}.status-footer{height:31px;display:flex;gap:25px;align-items:center;padding:0 20px;color:#aab9be;background:#111d23;font:500 9px var(--mono)}.status-footer span:first-child{color:#62db84}.status-footer span:first-child .live-dot{margin-right:6px;width:6px;height:6px}.status-footer span:last-child{margin-left:auto}.modal-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:20px;background:#071116b9;backdrop-filter:blur(4px)}.modal{width:min(100%,440px);padding:27px;border:1px solid #627b85;border-radius:4px;background:#f6f8f8;box-shadow:0 18px 45px #0008;animation:pop .18s ease-out}.modal h2{margin:7px 0 9px;color:#183640;font:600 27px var(--display)}.modal p{margin:0 0 17px;color:#657981;font-size:12px;line-height:1.55}.login-modal{width:min(100%,390px);text-align:center}.login-brand{margin-bottom:19px;color:#147c9b;font:700 25px var(--display);letter-spacing:.06em}.login-brand span{margin-left:7px;color:#1b2d34;font-size:15px}.modal label{display:block;margin:13px 0;color:#526870;text-align:left;font-size:11px;font-weight:600}.modal input{display:block;width:100%;height:44px;margin-top:6px;padding:0 12px;border:1px solid #adbbc0;border-radius:3px;outline:none;background:#fff;color:#19353e;font:500 15px var(--mono)}.modal input:focus{border-color:#2daec8;box-shadow:0 0 0 2px #2daec833}.modal-primary,.modal-secondary{min-height:43px;padding:0 15px;border-radius:3px;font:700 12px var(--display)}.modal-primary{color:#fff;background:#128aaa}.modal-primary span{margin-left:12px}.modal-primary:hover{background:#0f7693}.modal-secondary{color:#4c626b;background:#dce4e6;border:1px solid #becace}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:23px}.form-error{min-height:18px;margin-top:7px;color:#c54843;font-size:11px}.demo-hint{display:block;margin-top:16px;color:#8a999f;font:500 9px var(--mono)}.alert-symbol,.manager-symbol,.payment-symbol{width:52px;height:52px;display:grid;place-items:center;margin-bottom:15px;color:#fff;background:#e25f56;border-radius:3px;font:700 29px var(--display)}.manager-symbol{background:#8e6bdc}.payment-symbol{background:#2aa9c3}.age-guide{padding:12px;margin-top:17px;color:#81520a;background:#fff1c7;border:1px solid #e4c565;border-radius:3px;font-size:11px}.age-guide strong{display:block;margin-top:3px;font:600 14px var(--mono)}.manager-modal p{padding:11px;color:#6d5664;background:#f0eaf5;border-left:3px solid #8e6bdc}.payment-total{padding:14px;margin:14px 0;color:#137894;background:#e2f5f8;border:1px solid #86cfda;border-radius:3px;font:700 28px var(--display);text-align:center}.change-row{display:flex;justify-content:space-between;padding:13px 0;color:#647780;border-top:1px solid #d4dfe2}.change-row strong{color:#128b65;font:600 18px var(--mono)}.terminal-animation{padding:19px;margin:16px 0;color:#0b6e87;background:#e3f5f7;border:1px dashed #66c4d5;border-radius:3px;font:600 19px var(--mono);text-align:center}.receipt-modal{width:min(100%,350px);padding:20px;background:#edf2f3;border:1px solid #82969d;border-radius:3px;box-shadow:0 18px 45px #0008}.receipt-paper{padding:19px 18px;color:#1c292d;background:#fff;box-shadow:0 2px 7px #0002;font-family:var(--mono);font-size:10px}.paper-brand{text-align:center;font:700 21px var(--display);letter-spacing:.1em}.paper-sub{margin:3px 0 14px;color:#67777c;text-align:center;font-size:8px}.paper-row{display:flex;justify-content:space-between;gap:10px;padding:4px 0}.paper-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-row b{white-space:nowrap;font-weight:500}.receipt-paper hr{border:0;border-top:1px dashed #99a5a8}.paper-meta{margin-top:14px;line-height:1.7;text-align:center}.paper-code{margin-top:19px;color:#1d3036;text-align:center;font-size:19px;letter-spacing:-3px}.paper-code small{display:block;margin-top:3px;color:#829095;font-size:7px;letter-spacing:0}.toast{position:fixed;right:17px;bottom:45px;z-index:80;max-width:380px;padding:12px 15px;color:#fff;background:#132e37;border-left:4px solid #31bedb;border-radius:3px;box-shadow:0 5px 18px #0005;opacity:0;pointer-events:none;transform:translateY(10px);transition:.2s}.toast.show{opacity:1;transform:none}.toast.error{border-left-color:#ef5b57;background:#492a2c}@keyframes pop{from{opacity:0;transform:scale(.97) translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:1000px){.top-meta{gap:6px}.brand{min-width:190px}.register{grid-template-columns:1fr}.receipt-screen{min-height:420px}.function-grid{grid-template-columns:repeat(4,1fr)}.catalog{max-height:220px}.keypad-area{margin-top:0}.top-user span{display:none}}
@media(max-width:600px){body{font-size:12px}.topbar{height:54px;padding:0 9px;gap:10px}.brand{min-width:auto}.brand strong{font-size:14px}.brand small,.top-meta,.top-btn{display:none}.top-user{gap:0}.terminal-strip{padding:0 9px}.terminal-strip .strip-right{display:none}.register{padding:8px;gap:8px}.receipt-head{padding:12px}.receipt-columns,.cart-line{grid-template-columns:42px minmax(80px,1fr) 63px 70px 16px;padding-left:12px;padding-right:12px}.receipt-columns{padding-top:7px;padding-bottom:7px;font-size:8px}.line-name strong{font-size:10px}.line-price,.line-total{font-size:10px}.grand-total strong{font-size:25px}.left-functions{gap:4px}.fn{font-size:10px}.scan-row{display:block;padding:8px}.scan-status{margin-bottom:6px}.function-grid{gap:4px}.function{min-height:52px;font-size:10px}.catalog{grid-template-columns:repeat(2,1fr);gap:4px}.keypad-area{grid-template-columns:1fr 125px;gap:5px}.keypad{gap:4px}.keypad button{min-height:50px;font-size:22px}.pay{font-size:12px}.status-footer{padding:0 9px;gap:8px}.status-footer span:nth-child(2){display:none}.modal{padding:21px}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}}
@media print{body{background:#fff}.app,.modal-backdrop>*:not(.receipt-modal){display:none!important}.modal-backdrop{position:static;background:#fff}.receipt-modal{box-shadow:none;width:80mm}.receipt-paper{box-shadow:none}}
