:root{
  --bg:#f4f7f5;--card:#fff;--text:#17211d;--muted:#66736d;--line:#dfe7e2;
  --brand:#0b5d3b;--brand-2:#148458;--danger:#b42318;--warn:#a15c00;--ok:#067647;
  --shadow:0 8px 28px rgba(24,53,40,.08);--r:18px;
}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
a{color:var(--brand)}
#app{min-height:100vh}.boot-card{width:min(420px,calc(100% - 32px));margin:14vh auto;padding:32px;background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);text-align:center}.spinner{width:30px;height:30px;border:3px solid #dfe7e2;border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 12px}@keyframes spin{to{transform:rotate(360deg)}}
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:22px}.auth-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:26px}.brand-row{display:flex;gap:14px;align-items:center;margin-bottom:22px}.brand-mark{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--brand),var(--brand-2));display:grid;place-items:center;color:#fff;font-weight:800;font-size:22px}.brand-row h1{font-size:20px;margin:0 0 4px}.brand-row p{margin:0;color:var(--muted);font-size:13px}.tabs{display:flex;background:#edf3ef;border-radius:12px;padding:4px;margin-bottom:16px}.tabs button{flex:1;border:0;background:transparent;padding:10px;border-radius:9px;color:var(--muted);font-weight:700}.tabs button.active{background:#fff;color:var(--brand);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.field{margin:12px 0}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid #cfdad4;border-radius:12px;background:#fff;padding:11px 12px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(11,93,59,.1)}.field textarea{min-height:76px;resize:vertical}.hint{font-size:12px;color:var(--muted);line-height:1.45}.btn{border:0;border-radius:12px;padding:11px 14px;font-weight:800}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:#08492f}.btn-soft{background:#e9f4ee;color:var(--brand)}.btn-danger{background:#fff0ee;color:var(--danger)}.btn-block{width:100%}.btn-sm{padding:8px 10px;font-size:12px;border-radius:10px}.btn:disabled{opacity:.5;cursor:not-allowed}
.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1180px;margin:auto;padding:13px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px}.topbar-title{display:flex;gap:11px;align-items:center}.mini-logo{width:38px;height:38px;border-radius:12px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:900}.topbar-title strong{display:block;font-size:14px}.topbar-title small{display:block;color:var(--muted);font-size:11px}.userbox{display:flex;gap:10px;align-items:center}.userbox .name{text-align:right}.userbox .name strong{font-size:13px;display:block}.userbox .name small{font-size:11px;color:var(--muted)}
.layout{max-width:1180px;margin:0 auto;padding:20px 18px 90px;display:grid;grid-template-columns:210px minmax(0,1fr);gap:22px}.sidebar{position:sticky;top:82px;height:max-content}.nav{display:grid;gap:8px}.nav button{border:0;background:transparent;text-align:left;padding:11px 12px;border-radius:12px;color:#46534d;font-weight:700}.nav button.active{background:#dff0e7;color:var(--brand)}.content{min-width:0}.page-head{margin-bottom:16px}.page-head h2{margin:0 0 5px;font-size:24px}.page-head p{margin:0;color:var(--muted);font-size:13px}.grid{display:grid;gap:14px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:0 2px 10px rgba(24,53,40,.025)}.card h3{margin:0 0 12px;font-size:16px}.metric{padding:16px}.metric .label{font-size:12px;color:var(--muted);font-weight:700}.metric .value{font-size:24px;font-weight:850;margin-top:4px;letter-spacing:-.02em}.metric .sub{font-size:11px;color:var(--muted);margin-top:4px}.metric.positive .value{color:var(--ok)}.metric.negative .value{color:var(--danger)}
.cutoff-row{display:flex;gap:12px;flex-wrap:wrap}.cutoff{flex:1;min-width:200px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#fafcfb}.cutoff .top{display:flex;justify-content:space-between;gap:8px}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.badge-ok{background:#e7f6ec;color:var(--ok)}.badge-danger{background:#fff0ee;color:var(--danger)}.badge-warn{background:#fff7e6;color:var(--warn)}.badge-neutral{background:#eef2f0;color:#536059}.cutoff strong{font-size:13px}.cutoff p{font-size:11px;margin:6px 0 0;color:var(--muted)}
.order-builder{display:grid;grid-template-columns:1fr 1fr;gap:12px}.order-builder .span-2{grid-column:1/-1}.price-box{display:flex;justify-content:space-between;align-items:center;background:#f0f7f3;border:1px solid #d8e9df;padding:13px 14px;border-radius:14px}.price-box strong{font-size:18px}.empty{padding:28px 14px;text-align:center;color:var(--muted);font-size:13px;border:1px dashed #cfdad4;border-radius:14px;background:#fbfcfb}.list{display:grid;gap:10px}.order-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:13px;border:1px solid var(--line);border-radius:14px}.order-main{min-width:0}.order-main strong{display:block;font-size:14px}.order-main .meta{color:var(--muted);font-size:11px;margin-top:4px;line-height:1.45}.order-side{text-align:right}.order-side strong{font-size:13px}.money-state{font-size:11px;font-weight:800;margin-top:5px}.money-state.under{color:var(--danger)}.money-state.over{color:var(--ok)}.money-state.equal{color:var(--ok)}
.restaurant-group{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.restaurant-head{padding:14px 16px;background:#f5faf7;display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.restaurant-head h4{margin:0;font-size:15px}.restaurant-head p{margin:4px 0 0;color:var(--muted);font-size:11px}.restaurant-total{text-align:right;white-space:nowrap}.restaurant-total strong{display:block;font-size:16px}.group-summary{padding:12px 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap}.chip{background:#edf4f0;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:700}.group-lines{padding:0 16px}.group-line{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:11px 0;border-bottom:1px solid #eef2f0;font-size:12px}.group-line:last-child{border-bottom:0}.group-line .person{color:var(--muted);margin-top:3px;font-size:11px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.table{width:100%;border-collapse:collapse;min-width:760px;background:#fff}.table th,.table td{padding:11px 12px;border-bottom:1px solid #edf1ef;text-align:left;font-size:12px;vertical-align:middle}.table th{background:#f7faf8;color:#55615b;font-size:11px;position:sticky;top:0}.table tr:last-child td{border-bottom:0}.amount-input{width:120px;border:1px solid #cfdad4;border-radius:9px;padding:8px 9px}.select-sm{border:1px solid #cfdad4;border-radius:9px;padding:8px 9px;background:#fff}.actions{display:flex;gap:7px;flex-wrap:wrap}.toolbar{display:flex;gap:10px;align-items:end;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap}.toolbar .field{margin:0}.toolbar-right{display:flex;gap:8px;flex-wrap:wrap}
.restaurant-card{display:grid;gap:10px}.restaurant-card .rhead{display:flex;justify-content:space-between;gap:12px}.restaurant-card h4{margin:0}.restaurant-card p{margin:4px 0 0;color:var(--muted);font-size:11px}.menu-list{display:grid;gap:7px}.menu-item{display:flex;justify-content:space-between;gap:10px;background:#f8faf9;padding:9px 10px;border-radius:10px;font-size:12px}.menu-item span:last-child{font-weight:800;white-space:nowrap}.section-divider{height:1px;background:var(--line);margin:14px 0}.inline-form{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end}.inline-form .field{margin:0}
.toast{position:fixed;right:18px;bottom:18px;z-index:100;max-width:min(420px,calc(100% - 36px));padding:12px 14px;border-radius:12px;background:#17211d;color:#fff;box-shadow:var(--shadow);font-size:12px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#8f1d14}.toast.success{background:#075b3a}
.mobile-nav{display:none}.notice{padding:12px 14px;border-radius:12px;font-size:12px;line-height:1.5;background:#fff7e6;color:#744300;border:1px solid #f5d99f}.danger-note{background:#fff1ef;color:#8f1d14;border-color:#f2c2bd}.loading-line{height:3px;background:linear-gradient(90deg,transparent,var(--brand),transparent);background-size:200% 100%;animation:move 1s linear infinite;border-radius:999px}@keyframes move{to{background-position:-200% 0}}
@media(max-width:900px){.layout{grid-template-columns:1fr;padding-bottom:110px}.sidebar{display:none}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;z-index:40;background:#fff;border-top:1px solid var(--line);padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));box-shadow:0 -5px 20px rgba(0,0,0,.05)}.mobile-nav button{border:0;background:transparent;padding:9px 5px;border-radius:10px;font-size:10px;font-weight:800;color:#68736e}.mobile-nav button.active{background:#e6f2eb;color:var(--brand)}}
@media(max-width:640px){.topbar-inner{padding:11px 13px}.userbox .name{display:none}.layout{padding:15px 12px 100px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.page-head h2{font-size:21px}.card{padding:14px;border-radius:15px}.order-builder{grid-template-columns:1fr}.order-builder .span-2{grid-column:auto}.restaurant-head{flex-direction:column}.restaurant-total{text-align:left}.inline-form{grid-template-columns:1fr}.auth-card{padding:20px}.topbar-title strong{font-size:12px}.topbar-title small{font-size:10px}}
.order-tabs{margin-bottom:14px}.payment-form{display:grid;grid-template-columns:1.3fr .8fr 1fr 1.4fr auto;gap:10px;align-items:end}.payment-form .field{margin:0}.payment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px}.payment-row .meta{font-size:11px;color:var(--muted);margin-top:3px}.line-price{text-align:right}.line-actions{display:flex;gap:6px;align-items:center;margin-top:7px;justify-content:flex-end;flex-wrap:wrap}.amount-input.compact{width:105px;padding:7px 8px}.group-line-edit{gap:14px;align-items:center}.positive-text{color:var(--ok)}.negative-text{color:var(--danger)}
@media(max-width:900px){.payment-form{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-form .btn{align-self:end}}
@media(max-width:640px){.payment-form{grid-template-columns:1fr}.group-line-edit{grid-template-columns:1fr}.line-price{text-align:left}.line-actions{justify-content:flex-start}.mobile-nav button{font-size:9px}}

/* === UI refresh: lebih modern, ramah HP, dan identitas akun lebih jelas === */
:root{
  --bg:#f3f7fb;--card:#ffffff;--text:#172033;--muted:#667085;--line:#e2e8f0;
  --brand:#075985;--brand-2:#0284c7;--brand-soft:#eaf6fc;--danger:#b42318;--warn:#9a6700;--ok:#087443;
  --shadow:0 12px 32px rgba(15,44,70,.08);--shadow-soft:0 4px 14px rgba(15,44,70,.05);--r:20px;
}
body{background:linear-gradient(180deg,#f8fbfd 0,#f3f7fb 180px,#f3f7fb 100%);font-size:15px;line-height:1.5}
button,input,select,textarea{min-height:44px}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(2,132,199,.22);outline-offset:2px}
.topbar{background:rgba(255,255,255,.94);border-bottom-color:#e7edf3;box-shadow:0 2px 12px rgba(15,44,70,.035)}
.topbar-inner{min-height:72px}
.mini-logo{background:linear-gradient(135deg,var(--brand),var(--brand-2));box-shadow:0 8px 18px rgba(2,132,199,.22)}
.topbar-title strong{font-size:14px;letter-spacing:-.01em}.topbar-title small{font-size:11px;margin-top:2px}
.userbox{padding:5px 7px 5px 5px;border:1px solid var(--line);background:#fff;border-radius:16px;box-shadow:var(--shadow-soft)}
.user-avatar{width:36px;height:36px;flex:0 0 36px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,#e0f2fe,#bae6fd);color:var(--brand);font-weight:900}
.user-avatar.large{width:44px;height:44px;flex-basis:44px;border-radius:14px;font-size:16px}
.userbox .name strong{font-size:13px;line-height:1.25}.userbox .name small{margin-top:2px;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.logout-btn{min-height:36px}
.layout{grid-template-columns:230px minmax(0,1fr);gap:24px;padding-top:24px}
.sidebar{top:94px}.sidebar-card{background:#fff;border:1px solid var(--line);padding:10px;border-radius:20px;box-shadow:var(--shadow-soft)}
.sidebar-user{display:flex;align-items:center;gap:10px;padding:10px 9px 14px;margin-bottom:6px;border-bottom:1px solid #edf2f7;min-width:0}.sidebar-user>div:last-child{min-width:0}.sidebar-user strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.nav{gap:5px}.nav button{display:flex;align-items:center;gap:10px;padding:11px 10px;min-height:44px;border-radius:12px;color:#52606d;transition:.16s ease}.nav button:hover{background:#f5f9fc;color:var(--brand)}.nav button.active{background:var(--brand-soft);color:var(--brand);box-shadow:inset 0 0 0 1px #cbe8f7}.nav-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:8px;background:#f4f7fa;font-size:12px;font-weight:900}.nav button.active .nav-icon{background:#d8effa}
.content{max-width:100%}.page-head{margin-bottom:18px}.page-head-spaced{margin-top:24px}.page-head h2{font-size:25px;letter-spacing:-.025em}.page-head p{font-size:13px;max-width:760px}
.card{border-color:#e5ebf1;border-radius:20px;padding:19px;box-shadow:var(--shadow-soft)}.card:hover{border-color:#d9e3ec}.card h3{font-size:16px;letter-spacing:-.015em}
.welcome-banner{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,310px);gap:24px;align-items:center;padding:24px 26px;border-radius:24px;background:linear-gradient(130deg,#073b5c 0%,#075985 50%,#0284c7 100%);color:#fff;box-shadow:0 18px 40px rgba(7,89,133,.18)}
.welcome-banner:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-65px;top:-105px;background:rgba(255,255,255,.09)}
.welcome-copy{position:relative;z-index:1}.eyebrow{display:inline-flex;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.14);font-size:10px;font-weight:900;letter-spacing:.08em}.welcome-copy h1{font-size:27px;line-height:1.2;margin:10px 0 7px;letter-spacing:-.03em}.welcome-copy p{margin:0;color:rgba(255,255,255,.82);font-size:13px;max-width:610px}
.welcome-balance{position:relative;z-index:1;padding:15px 16px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.11);backdrop-filter:blur(8px);border-radius:17px}.welcome-balance span,.welcome-balance small{display:block;color:rgba(255,255,255,.76);font-size:11px}.welcome-balance strong{display:block;margin:4px 0;font-size:18px;line-height:1.25}.welcome-balance.over strong{color:#d1fae5}.welcome-balance.under strong{color:#fee2e2}
.btn{min-height:44px;border-radius:13px;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand-2));box-shadow:0 7px 16px rgba(2,132,199,.18)}.btn-primary:hover{background:linear-gradient(135deg,#064d73,#0278b5)}.btn-soft{background:#edf7fc;color:var(--brand)}.btn-sm{min-height:36px}
.field label{font-size:12px;margin-bottom:7px}.field input,.field select,.field textarea{border-color:#d6e0e8;border-radius:13px;padding:11px 12px;background:#fff}.field input:hover,.field select:hover,.field textarea:hover{border-color:#becbd6}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand-2);box-shadow:0 0 0 4px rgba(2,132,199,.10)}
.tabs{background:#eef4f8;border:1px solid #e2ebf1}.tabs button{min-height:40px}.tabs button.active{color:var(--brand);box-shadow:0 2px 8px rgba(15,44,70,.07)}
.cutoff{background:#fbfdff;border-color:#dce7ef}.cutoff .top{align-items:center}.badge{padding:5px 9px}.badge-ok{background:#e8f7ee}.badge-warn{background:#fff7df}.badge-neutral{background:#eff3f6}
.price-box{background:#eef8fd;border-color:#d6edf8}.price-box strong{color:var(--brand);font-size:20px}
.notice{background:#fff9e8;border-color:#f1dda8;border-radius:14px}.empty{background:#fbfdfe;border-color:#cfdae3;border-radius:15px;padding:30px 16px}
.metric{min-height:120px}.metric .label{font-size:11px;text-transform:uppercase;letter-spacing:.03em}.metric .value{font-size:25px}.metric .sub{font-size:11px;line-height:1.4}
.order-row,.payment-row{border-color:#e1e8ee;border-radius:15px;background:#fff}.order-row:hover,.payment-row:hover{background:#fcfdff}.order-main .meta{font-size:11px;line-height:1.55}.order-side strong{font-size:14px}
.restaurant-group{border-color:#dfe7ed;border-radius:18px;box-shadow:var(--shadow-soft)}.restaurant-head{background:#f4f9fc}.chip{background:#eaf5fa;color:#315a70}.group-line{border-bottom-color:#edf2f5}
.table-wrap{border-color:#dce5ec;border-radius:16px;box-shadow:var(--shadow-soft)}.table th{background:#f3f7fa;color:#536473}.table tbody tr:hover{background:#fbfdfe}
.mobile-nav{box-shadow:0 -10px 28px rgba(15,44,70,.09)}.mobile-nav button{min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.mobile-icon{font-size:14px;font-weight:900;line-height:1}.mobile-nav button.active{background:#e8f5fb;color:var(--brand)}

@media(max-width:900px){
  .layout{padding-top:18px}.welcome-banner{grid-template-columns:1fr}.welcome-balance{max-width:420px}.sidebar{display:none}
}
@media(max-width:640px){
  body{font-size:14px}.topbar-inner{min-height:64px;padding:9px 10px}.topbar-title>div:last-child{display:none}.mini-logo{width:36px;height:36px}.userbox{margin-left:auto;padding:4px}.userbox .name{display:block;text-align:left;max-width:150px}.userbox .name strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.userbox .name small{display:none}.user-avatar{width:34px;height:34px;flex-basis:34px}.logout-btn{padding:7px 8px;font-size:11px}.layout{padding:14px 11px 104px}.welcome-banner{padding:19px 18px;border-radius:20px;gap:15px}.welcome-copy h1{font-size:23px}.welcome-copy p{font-size:12px}.welcome-balance{padding:12px 13px}.page-head-spaced{margin-top:20px}.page-head h2{font-size:22px}.card{padding:15px;border-radius:17px}.metric{min-height:auto}.order-row{grid-template-columns:1fr}.order-side{text-align:left;padding-top:8px;border-top:1px dashed #e3e9ee}.cutoff-row{display:grid;grid-template-columns:1fr;width:100%}.cutoff{min-width:0}.tabs button{padding:9px 7px;font-size:12px}.mobile-nav{padding-top:6px}.mobile-nav button{font-size:9px}.mobile-icon{font-size:13px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* === To, Laper To v4.0 — full brand + PWA UI === */
:root{
  --bg:#fffaf0;--card:#ffffff;--text:#18362a;--muted:#6c746f;--line:#e6eadf;
  --brand:#0b6b45;--brand-2:#35a853;--brand-3:#ff8a00;--brand-4:#ffb21c;
  --brand-soft:#eff9ef;--brand-warm:#fff2d9;--danger:#b42318;--warn:#a35b00;--ok:#16834f;
  --shadow:0 14px 38px rgba(16,92,57,.10);--shadow-soft:0 5px 18px rgba(16,92,57,.065);
}
body{background:radial-gradient(circle at 10% 0,#fff1ce 0,transparent 29%),radial-gradient(circle at 90% 2%,#e7f8df 0,transparent 28%),linear-gradient(180deg,#fffdf7 0,#fffaf0 230px,#f7fbf3 100%);color:var(--text)}
a{color:var(--brand)}
.spinner{border-color:#e8eddf;border-top-color:var(--brand-3)}
.boot-branded{margin-top:8vh;background:rgba(255,255,255,.96);border:1px solid var(--line)}
.boot-logo{width:min(210px,72%);height:auto;display:block;margin:0 auto 8px}.boot-branded p{color:var(--muted);font-weight:700}
.auth-wrap{background:linear-gradient(145deg,rgba(255,242,217,.68),rgba(234,250,228,.78))}
.auth-card{border-color:#e8ebdf;background:rgba(255,255,255,.96);box-shadow:0 24px 64px rgba(38,104,58,.14)}
.brand-row-logo{align-items:center;gap:16px}.brand-logo{width:92px;height:92px;object-fit:contain;flex:0 0 92px}.brand-row-logo h1{font-size:27px;color:#0c5d3c;letter-spacing:-.035em}.brand-row-logo p{max-width:270px}
.tabs{background:#f1f7ed;border-color:#e2eadb}.tabs button.active{color:var(--brand);background:#fff}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#49aa59;box-shadow:0 0 0 4px rgba(53,168,83,.12)}
.btn-primary{background:linear-gradient(135deg,#0b6b45 0%,#31a34f 68%,#5cbc51 100%);box-shadow:0 8px 18px rgba(11,107,69,.20)}
.btn-primary:hover{background:linear-gradient(135deg,#075737,#278d43 68%,#4da945 100%)}
.btn-soft{background:#eff9ef;color:#0b6b45}.btn-danger{background:#fff0ed}
.btn-install{background:linear-gradient(135deg,#fff1d6,#ffe2ad);color:#8a4b00;border:1px solid #ffd18b;box-shadow:none;margin-top:11px}.btn-install:hover{background:#ffe7b8}.btn-install[hidden]{display:none!important}
.topbar{background:rgba(255,253,247,.94);border-bottom-color:#e5eadf}.topbar-inner{max-width:1220px}.topbar-actions{display:flex;align-items:center;gap:10px}.install-topbar{margin:0;white-space:nowrap}
.mini-logo-img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 4px 7px rgba(29,104,53,.12))}.topbar-title strong{color:#0b5c3a;font-size:16px}.topbar-title small{color:#7b756b}
.userbox{border-color:#e5e9dc}.user-avatar{background:linear-gradient(135deg,#eaf8e3,#d2efc8);color:#0b6b45}
.sidebar-card{border-color:#e3e8da;background:rgba(255,255,255,.95)}.nav button:hover{background:#f5faef;color:var(--brand)}.nav button.active{background:#eaf7e6;color:#0b6b45;box-shadow:inset 0 0 0 1px #cfe9c6}.nav button.active .nav-icon{background:#d9f0d1}.nav-icon{background:#f5f7ef}
.welcome-banner{background:linear-gradient(128deg,#075a3b 0%,#0e7d4a 46%,#5dad46 100%);box-shadow:0 18px 42px rgba(11,107,69,.20)}.welcome-banner:before{content:"";position:absolute;inset:auto 15% -65px auto;width:180px;height:180px;border-radius:50%;background:rgba(255,159,16,.18)}
.welcome-balance{border-color:rgba(255,230,185,.30);background:rgba(255,255,255,.13)}
.notice{background:#fff4dc;border-color:#ffd79a;color:#784400}.cutoff{background:#fffdf7;border-color:#e8e7d8}.badge-ok{background:#e8f7e5;color:#176b3e}.badge-warn{background:#fff0cc;color:#8d5500}.badge-neutral{background:#f0f3eb}
.price-box{background:#f0f9e9;border-color:#d9edcf}.price-box strong{color:#0d7747}.restaurant-head{background:linear-gradient(90deg,#f0f9e9,#fff8e8)}.chip{background:#eef8e8;color:#356441}
.table th{background:#f3f8ed;color:#526658}.table tbody tr:hover{background:#fffaf0}.table-wrap{border-color:#e1e7d9}
.mobile-nav{background:rgba(255,255,255,.97);border-top-color:#e1e7d9}.mobile-nav button.active{background:#eaf7e6;color:#0b6b45}
.pwa-toast{position:fixed;left:50%;bottom:22px;z-index:1000;transform:translate(-50%,130%);opacity:0;background:#143e2e;color:#fff;padding:11px 15px;border-radius:14px;font-size:13px;font-weight:700;box-shadow:0 10px 30px rgba(0,0,0,.18);transition:.2s ease;max-width:calc(100% - 30px);text-align:center}.pwa-toast.show{transform:translate(-50%,0);opacity:1}
.pwa-modal[hidden]{display:none}.pwa-modal{position:fixed;inset:0;z-index:999;background:rgba(14,37,28,.52);backdrop-filter:blur(5px);display:grid;place-items:center;padding:18px}.pwa-modal-card{position:relative;width:min(430px,100%);background:#fffef9;border:1px solid #e8eadf;border-radius:25px;padding:26px;box-shadow:0 28px 80px rgba(0,0,0,.24)}.pwa-modal-icon{width:92px;height:92px;border-radius:22px;display:block;margin:0 auto 8px}.pwa-modal-card h2{text-align:center;margin:8px 0 13px;color:#0b5e3b}.pwa-help-text{color:#5d665f;line-height:1.65;font-size:14px}.pwa-help-text ol{padding-left:22px}.pwa-modal-close{position:absolute;right:13px;top:10px;width:38px;height:38px;border:0;border-radius:50%;background:#f1f4ec;color:#526056;font-size:24px;line-height:1}.pwa-modal-open{overflow:hidden}
@media(max-width:640px){
  .brand-row-logo{align-items:flex-start}.brand-logo{width:78px;height:78px;flex-basis:78px}.brand-row-logo h1{font-size:23px}.brand-row-logo p{font-size:12px}
  .mini-logo-img{width:42px;height:42px}.topbar-title>div:last-child{display:block}.topbar-title strong{font-size:13px}.topbar-title small{display:none}.topbar-actions{gap:5px}.install-topbar{min-width:38px;padding:6px 8px}.install-topbar .install-label{display:none}.userbox{max-width:210px}.logout-btn{min-width:44px}
}
@media(max-width:390px){.userbox .name{max-width:105px}.mini-logo-img{width:38px;height:38px}.topbar-title strong{font-size:12px}}
\n\n/* === v4.3 Mobile Balanced & Readable Branding === */\n/* Install/download app controls intentionally removed from the website UI. */\n.btn-install,.install-topbar,.pwa-toast,.pwa-modal{display:none!important}\n\n.boot-card{width:min(480px,calc(100% - 32px));margin:8vh auto;padding:30px 24px}\n.boot-logo{width:min(290px,88%);max-height:250px;object-fit:contain;margin:0 auto 12px}\n\n.brand-row-logo{display:flex;align-items:center;gap:20px}\n.brand-logo{width:126px;height:126px;flex:0 0 126px;object-fit:contain}\n.brand-row-logo>div{min-width:0}\n.brand-row-logo h1{font-size:30px;line-height:1.12;margin:0 0 7px}\n.brand-row-logo p{max-width:300px;line-height:1.5}\n\n.topbar-inner{width:100%;max-width:1220px}\n.topbar-title{min-width:0;display:flex;align-items:center;gap:10px}\n.brand-symbol{width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(135deg,#0b6b45,#4fc45c);color:#fff7e8;border:2px solid rgba(255,255,255,.75);box-shadow:0 7px 18px rgba(11,107,69,.18);font-size:12px;font-weight:950;letter-spacing:-.04em}\n.topbar-brand-copy{min-width:0}\n.topbar-brand-copy strong{display:block;color:#0b5c3a;font-size:16px;line-height:1.15;white-space:nowrap}\n.topbar-brand-copy small{display:block;color:#7b756b;font-size:11px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.topbar-actions{margin-left:auto;min-width:0}\n\n.layout{width:100%;max-width:1220px;margin-inline:auto}\n.content{width:100%;max-width:100%;margin-inline:auto}\n.content>*{max-width:100%;margin-left:auto;margin-right:auto}\n.toolbar{width:100%}\n\n.mobile-nav button{line-height:1.15;text-align:center}\n.mobile-nav .mobile-icon{min-height:20px;display:grid;place-items:center;font-size:16px}\n\n@media(max-width:900px){\n  .layout{display:block;max-width:760px;margin-inline:auto;padding-left:18px;padding-right:18px;padding-bottom:112px}\n  .content{width:100%;margin-inline:auto}\n  .mobile-nav{grid-template-columns:repeat(var(--mobile-count,4),minmax(0,1fr));align-items:stretch}\n}\n\n@media(max-width:640px){\n  html,body{width:100%;max-width:100%;overflow-x:hidden}\n  .auth-wrap{padding:18px 14px;place-items:center}\n  .auth-card{width:min(100%,460px);margin-inline:auto;padding:22px 18px;border-radius:22px}\n  .brand-row-logo{flex-direction:column;align-items:center;text-align:center;gap:10px;margin-bottom:20px}\n  .brand-logo{width:148px;height:148px;flex-basis:148px}\n  .brand-row-logo h1{font-size:28px}\n  .brand-row-logo p{max-width:320px;margin-inline:auto;font-size:12.5px}\n  .tabs{width:100%}\n\n  .topbar-inner{min-height:66px;padding:8px 14px;gap:10px}\n  .brand-symbol{width:42px;height:42px;flex-basis:42px;border-radius:13px;font-size:11px}\n  .topbar-brand-copy{display:block!important}\n  .topbar-brand-copy strong{font-size:13.5px}\n  .topbar-brand-copy small{display:none}\n  .userbox{margin-left:auto;padding:3px;border-radius:13px;box-shadow:none}\n  .userbox .user-avatar,.userbox .name{display:none}\n  .logout-btn{min-height:38px;min-width:62px;padding:7px 10px;font-size:11px}\n\n  .layout{width:100%;max-width:640px;margin-inline:auto;padding:16px 16px calc(104px + env(safe-area-inset-bottom))}\n  .content{width:100%;margin-inline:auto}\n  .content>*{width:100%;margin-left:auto;margin-right:auto}\n  .page-head{text-align:center;margin-inline:auto}\n  .page-head p{margin-inline:auto}\n  .welcome-banner{width:100%;text-align:center;padding:20px 17px;gap:14px}\n  .welcome-copy p{margin-inline:auto}\n  .welcome-balance{width:100%;max-width:360px;margin-inline:auto;text-align:center}\n  .cutoff-row{width:100%;gap:10px}\n  .cutoff{text-align:center;padding:14px 13px}\n  .cutoff .top{justify-content:center;flex-wrap:wrap}\n  .card{width:100%;margin-inline:auto;padding:16px}\n  .order-builder,.payment-form,.inline-form{width:100%}\n  .order-builder>.btn,.payment-form>.btn,.inline-form>.btn{width:100%}\n  .price-box{width:100%;text-align:left}\n  .toolbar{display:grid;grid-template-columns:1fr;gap:10px;align-items:stretch}\n  .toolbar>.field,.toolbar>button,.toolbar-right{width:100%;max-width:none}\n  .toolbar-right{display:grid;grid-template-columns:1fr;gap:8px}\n  .toolbar-right .btn{width:100%}\n  .actions{justify-content:center;width:100%}\n  .actions .btn{min-width:104px}\n  .restaurant-card .rhead,.restaurant-head{align-items:center;text-align:center}\n  .restaurant-total{text-align:center}\n  .menu-item{align-items:center}\n  .order-row,.payment-row{width:100%;text-align:left}\n  .empty{text-align:center}\n  .notice{text-align:center}\n  .table-wrap{width:100%;margin-inline:auto}\n\n  .mobile-nav{left:0;right:0;width:100%;padding:7px 6px calc(7px + env(safe-area-inset-bottom));gap:3px}\n  .mobile-nav button{min-width:0;min-height:58px;padding:7px 2px;border-radius:12px;font-size:10px;overflow:hidden}\n  .mobile-nav button span:last-child{display:block;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n  .mobile-icon{font-size:16px}\n}\n\n@media(max-width:390px){\n  .layout{padding-left:14px;padding-right:14px}\n  .topbar-inner{padding-left:12px;padding-right:12px}\n  .brand-symbol{width:40px;height:40px;flex-basis:40px}\n  .topbar-brand-copy strong{font-size:13px}\n  .logout-btn{min-width:58px;padding-inline:8px}\n  .mobile-nav button{font-size:9.5px}\n}\n

/* === v4.4 Solid Logo Background === */
/* Logo images no longer rely on transparent PNG rendering. */
.boot-logo,.brand-logo{
  background:#fffdf7;
  border:1px solid #e7eadf;
  border-radius:24px;
  padding:8px;
  box-shadow:0 8px 22px rgba(11,107,69,.10);
}
.boot-logo{aspect-ratio:1/1;object-fit:contain}
.brand-logo{object-fit:contain}
@media(max-width:640px){
  .boot-logo,.brand-logo{border-radius:22px;padding:7px}
}
