:root{--ink:#20332e;--muted:#78827c;--paper:#f7f5f0;--surface:#fffefa;--line:#e8e5dc;--green:#174b42;--green-soft:#e6efea;--tomato:#c35d42;--gold:#d6a54d}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:ui-sans-serif,Avenir Next,Thonburi,sans-serif;font-size:15px}button,input{font:inherit}button{color:inherit}.pos-shell{min-height:100dvh;display:flex;flex-direction:column}.topbar{height:68px;padding:0 4.2vw;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:var(--surface)}.topbar-actions,.topbar-brand{display:flex;align-items:center;gap:13px}.topbar-brand{font-size:15px;letter-spacing:0}.topbar-brand b{color:var(--green);font-weight:700}.brand-mark,.brand-mini{display:grid;place-items:center;background:var(--green);color:#fff;font-family:Georgia,serif}.brand-mini{width:34px;height:34px;border-radius:50%;font-size:19px}.topbar-actions{gap:22px;font-size:13px}.connection{display:inline-flex;align-items:center;gap:7px;color:var(--muted)}.connection i,.status-dot{width:7px;height:7px;border-radius:50%;background:#559b70}.is-offline i{background:var(--tomato)}.operator-name{border-left:1px solid var(--line);padding-left:20px}.sync-button,.text-button{border:0;background:transparent;cursor:pointer}.text-button{color:var(--muted);padding:10px 0}.pos-main{flex:1 1;width:min(1440px,100%);margin:0 auto;padding:34px 4.2vw 40px;display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,370px);grid-gap:42px;gap:42px}.order-heading,.section-heading{display:flex;align-items:end;justify-content:space-between}.eyebrow{margin:0 0 8px;color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:700;letter-spacing:1.1px}h1,h2,p{margin-top:0}.order-heading h2,.section-heading h1{margin:0;font-family:Georgia,Thonburi,serif;font-weight:500}.section-heading h1{font-size:30px}.order-heading h2{font-size:24px}.sync-button{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:4px;color:var(--green);font-size:12px}.sync-button span{font-size:18px;line-height:12px}.sync-button:disabled{opacity:.5;cursor:wait}.menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px;margin-top:23px}.product-tile{position:relative;min-width:0;border:1px solid var(--line);border-radius:5px;background:var(--surface);padding:10px;text-align:left;cursor:pointer;transition:border-color .15s ease,transform .15s ease;animation:rise-in .32s both}.product-tile:nth-child(2){animation-delay:40ms}.product-tile:nth-child(3){animation-delay:80ms}.product-tile:nth-child(4){animation-delay:.12s}.product-tile:nth-child(5){animation-delay:.16s}.product-tile:hover{border-color:#8ca99c;transform:translateY(-2px)}.dish-art{display:grid;place-items:center;height:clamp(88px,12vw,145px);border-radius:3px;overflow:hidden;background:#e9ddc4}.dish-art span{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fff5da 0 26%,#eac779 27% 59%,#c5753e 60%);color:#71542f;font-family:Georgia,serif;font-size:25px;box-shadow:0 8px 16px #705a3540}.dish-art-1{background:#e8d9c5}.dish-art-1 span{background:radial-gradient(circle at 35% 30%,#fffce5 0 25%,#edd89a 26% 60%,#d89e56 61%)}.dish-art-2{background:#dfe5d5}.dish-art-2 span{background:radial-gradient(circle at 40% 30%,#fff4d3 0 25%,#8da66c 26% 60%,#496449 61%);color:#fff4d3}.dish-art-3{background:#e8dfce}.dish-art-3 span{background:radial-gradient(circle at 40% 30%,#fff3c8 0 25%,#86a65d 26% 60%,#517047 61%);color:#fff3c8}.dish-art-4{background:#ebdfd5}.dish-art-4 span{background:radial-gradient(circle at 40% 30%,#f4c77b 0 25%,#b86438 26% 60%,#753d2a 61%);color:#fff2d7}.product-info{display:flex;flex-direction:column;gap:6px;padding:12px 2px 3px}.product-info b{overflow:hidden;color:var(--ink);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.product-info strong{color:var(--green);font-size:13px}.add-mark{position:absolute;right:12px;bottom:13px;color:var(--muted);font-size:18px}.empty-menu{grid-column:1/-1;padding:36px 16px;color:var(--muted);text-align:center}.order-panel{align-self:start;min-height:480px;padding:24px;border:1px solid var(--line);border-radius:5px;background:var(--surface);display:flex;flex-direction:column}.order-heading{padding-bottom:19px;border-bottom:1px solid var(--line);align-items:center}.order-heading .eyebrow{margin-bottom:5px}.item-count{color:var(--muted);font-size:12px}.order-lines{flex:1 1;min-height:220px}.empty-cart{height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#a2a8a1}.empty-cart span{font-family:Georgia,serif;font-size:38px}.empty-cart p{margin:10px 0 0;font-size:12px}.order-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid #eeece6}.line-description{min-width:0;display:flex;flex-direction:column;gap:6px}.line-description b{font-size:13px}.line-description span{color:var(--muted);font-size:12px}.quantity-control{display:flex;align-items:center;gap:9px}.quantity-control button{width:31px;height:31px;border:1px solid var(--line);border-radius:3px;background:#fff;cursor:pointer;font-size:17px}.quantity-control span{min-width:14px;text-align:center;font-size:13px}.order-summary{display:flex;justify-content:space-between;align-items:baseline;padding:19px 0;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.order-summary strong{color:var(--ink);font-family:Georgia,serif;font-size:23px;font-weight:500}.primary-button{min-height:48px;border:none;border-radius:3px;background:var(--green);color:#fff;cursor:pointer;font-weight:700}.primary-button:hover:not(:disabled){background:#216255}.primary-button:disabled{cursor:not-allowed;opacity:.45}.checkout-button{display:flex;align-items:center;justify-content:space-between;padding:0 16px}.checkout-button span{font-size:19px;font-weight:400}.payment-note{margin:11px 0 0;color:var(--muted);font-size:10px;text-align:center}.statusbar{min-height:36px;display:flex;align-items:center;gap:8px;padding:0 4.2vw;border-top:1px solid var(--line);background:#f1efe8;color:var(--muted);font-size:11px}.pending-status{margin-left:auto}.login-page{min-height:100dvh;display:grid;grid-template-columns:1.05fr .95fr;background:var(--surface)}.login-brand{padding:10vh 8vw;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:var(--green);color:#fff;position:relative;overflow:hidden}.login-brand:after{content:"";position:absolute;width:420px;height:420px;right:-130px;bottom:-180px;border:1px solid #ffffff25;border-radius:50%;box-shadow:0 0 0 45px #ffffff0a,0 0 0 90px #ffffff08}.brand-mark{width:54px;height:54px;border:1px solid #ffffff8a;border-radius:50%;background:transparent;font-size:28px}.login-brand .eyebrow{margin:38px 0 15px;color:#b7d3c4}.login-brand h1{margin:0;font-family:Georgia,Thonburi,serif;font-size:clamp(37px,4vw,58px);line-height:1.25;font-weight:500}.brand-note{margin:18px 0 0;color:#d1dfd6;font-size:13px}.login-form{width:min(390px,80%);margin:auto;display:flex;flex-direction:column;gap:21px}.login-form .eyebrow{color:var(--tomato)}.login-form h2{margin:0;font-family:Georgia,Thonburi,serif;font-size:29px;font-weight:500}.login-form label{display:flex;flex-direction:column;gap:8px;color:#59675f;font-size:12px;font-weight:600}.login-form input{height:46px;padding:0 12px;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--ink);outline-color:var(--green)}.login-submit{margin-top:2px}.form-error,.login-footnote{margin:-8px 0 0;color:var(--muted);font-size:11px}.form-error{color:#a83f32}.admin-page{width:min(1000px,100%);margin:0 auto;padding:36px 28px}.admin-header{display:flex;align-items:end;justify-content:space-between;margin-bottom:25px}.admin-header h1{margin:0;font-family:Georgia,Thonburi,serif;font-size:30px;font-weight:500}.back-link{color:var(--green);text-decoration:none;font-size:13px}.admin-products{overflow:hidden;border:1px solid var(--line);border-radius:4px;background:var(--surface)}.admin-product-row,.admin-table-head{display:grid;grid-template-columns:minmax(170px,1fr) minmax(120px,.8fr) 150px 90px;align-items:center;grid-gap:15px;gap:15px;padding:13px 18px}.admin-table-head{background:#f0eee8;color:var(--muted);font-size:11px}.admin-product-row{min-height:65px;border-top:1px solid var(--line);font-size:13px}.admin-sku{color:var(--muted);font-size:11px}.price-input input{width:100%;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:3px;background:#fff;text-align:right}.save-price{min-height:36px;border:0;border-radius:3px;background:var(--green-soft);color:var(--green);cursor:pointer;font-size:12px;font-weight:700}.admin-message{min-height:22px;margin:12px 18px;color:var(--muted);font-size:12px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@keyframes rise-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media (max-width:850px){.pos-main{grid-template-columns:minmax(0,1fr) 300px;gap:20px;padding-inline:22px}.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-tile:nth-child(3){animation-delay:80ms}}@media (max-width:650px){.topbar{height:58px;padding:0 15px}.topbar-brand{font-size:13px}.topbar-actions{gap:11px}.operator-name{display:none}.text-button{font-size:11px}.pos-main{display:flex;flex-direction:column;gap:23px;padding:24px 15px 110px}.section-heading h1{font-size:27px}.menu-grid{gap:9px;margin-top:16px}.dish-art{height:100px}.product-tile{padding:7px}.product-info{padding-top:9px}.product-info b,.product-info strong{font-size:12px}.add-mark{right:9px;bottom:9px}.order-panel{min-height:0;padding:17px}.order-lines{min-height:92px}.empty-cart{height:92px}.statusbar{position:fixed;z-index:2;bottom:0;width:100%;min-height:34px;padding:0 14px}.login-page{display:flex;flex-direction:column}.login-brand{min-height:36vh;padding:34px 9vw}.brand-mark{width:42px;height:42px;font-size:23px}.login-brand .eyebrow{margin:20px 0 9px}.login-brand h1{font-size:36px}.brand-note{margin-top:8px}.login-form{width:min(380px,84%);margin:35px auto 45px;gap:17px}}@media (max-width:600px){.admin-page{padding:26px 15px}.admin-header h1{font-size:24px}.admin-product-row,.admin-table-head{grid-template-columns:minmax(105px,1fr) minmax(80px,100px) 76px;gap:8px;padding:11px 9px}.admin-sku,.admin-table-head span:nth-child(2){display:none}.price-input input{height:36px;padding:0 5px}.save-price{min-height:34px;font-size:11px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}