@charset "UTF-8";:root{font-family:Microsoft JhengHei,PingFang TC,Noto Sans TC,sans-serif;color:#233b40;background:#f5faf9;font-synthesis:none;font-weight:500;--sea:#087f8c;--deep:#164b52;--foam:#e8f7f6;--sun:#fff1b8;--line:#dce9e8}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;min-height:44px;border:1px solid var(--line);background:#fff;color:var(--deep);border-radius:10px;padding:9px 14px;font-weight:700;touch-action:manipulation}button:hover{background:var(--foam)}button:active{transform:translateY(1px)}button:disabled{opacity:.48;cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #e3b729;outline-offset:3px}input,textarea,select{width:100%;min-width:0;min-height:44px;border:1px solid #b8cfce;border-radius:8px;background:#fff;padding:10px;color:#233b40}textarea{resize:vertical}input[type=date]{max-width:100%;padding:8px 5px;font-size:13px}label{display:block;font-size:14px;font-weight:700;line-height:1.65}label>input,label>textarea,label>select{display:block;margin-top:5px}h1,h2,h3,p{margin-top:0}h1{font-size:25px;line-height:1.45;margin-bottom:20px;font-weight:800;letter-spacing:.02em}h2{font-size:19px;margin-bottom:14px}h3{font-size:16px;margin:24px 0 12px}p{line-height:1.8;font-size:14px}small{display:block;font-size:12px;color:#5d7478;line-height:1.6}.amount{font-variant-numeric:tabular-nums;white-space:nowrap}.primary{background:var(--sea);color:#fff;border-color:var(--sea)}.primary:hover{background:#066d78}.secondary{background:var(--foam);border-color:#b2ded9;color:#076773}.danger{background:#fff3f1;color:#a43d32;border-color:#edc9c3}.text-button{border:0;background:transparent;padding:6px 8px;color:var(--sea)}.icon-button{font-size:25px;width:46px;padding:4px;flex-shrink:0;border-color:transparent}.stack{display:flex;flex-direction:column;gap:16px}.muted{color:#536b70;font-size:12px}.error{padding:12px;background:#fff0eb;border-left:3px solid #cc5437;border-radius:4px;color:#943321;line-height:1.65;font-size:14px;margin:12px 0}.error button{display:block;margin-top:8px}.success{background:var(--foam);padding:12px;color:#096357}.empty{padding:35px 12px;color:#667f83;text-align:center;font-size:14px;line-height:1.8}.note{padding:14px;border-radius:8px;background:#fff8d9}.required{color:#b9392b}.center{text-align:center}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;min-width:0}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.inline-field{display:flex;align-items:center;gap:10px;justify-content:space-between}.inline-field input{width:100px;margin:0}.selected{background:var(--foam)!important;border-color:var(--sea)!important;color:#066575!important}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand img{width:44px;height:44px}.brand strong{display:block;font-size:21px;letter-spacing:.08em;color:var(--deep);font-weight:800;line-height:1.3}.brand small{font-size:10px;letter-spacing:.18em;color:#54767b;margin-top:3px}.app-header{height:76px;padding:calc(env(safe-area-inset-top) + 10px) 20px 10px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.header-right{display:flex;gap:12px;align-items:center}.business-label{color:#536f74;font-size:12px}.pos-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;height:calc(100dvh - 76px);max-width:1440px;margin:auto}.menu-section{min-width:0;overflow-y:auto;padding:22px 22px 35px;background:#f5faf9}.categories{display:flex;gap:10px}.categories button{min-width:124px;padding:12px 20px;text-align:left;border-radius:12px;position:relative}.categories strong{font-size:18px;display:block}.categories small{margin-top:3px}.categories .active{background:var(--sea);border-color:var(--sea);color:#fff}.categories .active small{color:#e2f7f3}.menu-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:28px 0 18px}.menu-heading h1{font-size:20px;margin:0}.menu-heading>span{font-size:12px;color:#496a70;white-space:nowrap}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;align-items:start}.product-card{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;box-shadow:0 2px #e4efed}.product-card.chosen{border:2px solid var(--sea)}.product-add{border:0;border-radius:0;display:flex;flex-direction:column;align-items:flex-start;gap:10px;width:100%;min-height:157px;padding:16px 14px;text-align:left}.product-add strong{font-size:17px;line-height:1.55;overflow-wrap:anywhere}.product-add .amount{color:var(--sea);font-size:20px;font-weight:800;margin-top:auto}.dish-mark{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--foam);color:var(--sea);font-size:13px}.quantity{display:flex;align-items:center;gap:7px;justify-content:space-between}.quantity b{font-size:15px;min-width:16px;text-align:center;font-variant-numeric:tabular-nums}.quantity button{min-width:36px;min-height:36px;padding:4px 8px;font-size:20px}.product-card>.quantity{padding:8px;background:var(--foam)}.desktop-cart{background:#fff;border-left:1px solid var(--line);min-width:0;overflow-y:auto}.cart{padding:18px 16px;display:flex;flex-direction:column;gap:13px;min-height:100%}.cart-title{display:flex;align-items:center;justify-content:space-between}.cart-title h2{margin:0}.cart-fields{display:grid;grid-template-columns:minmax(0,1fr) 75px;gap:10px}.cart-fields label{font-size:12px}.cart-lines{min-height:100px;flex:1}.cart-line{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}.cart-line>div:first-child{min-width:0;flex:1}.cart-line strong{font-size:14px;overflow-wrap:anywhere}.cart-line .quantity{gap:4px}.cart-bottom{display:flex;flex-direction:column;gap:13px}.cart-bottom textarea{font-size:13px}.member-strip{padding:8px 10px;background:var(--foam);border-radius:8px;display:flex;justify-content:space-between;align-items:center}.member-strip strong{font-size:14px}.member-strip .text-button{text-align:left}.payment-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.payment-grid button{font-size:12px;padding:8px 4px}.payment-grid button:last-child{grid-column:span 2}.total-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px;background:var(--sun);border-radius:8px;margin:6px 0}.total-row>strong,.total-row>.amount{font-size:27px;font-weight:800;letter-spacing:-.02em}.checkout-button{min-height:50px;font-size:17px}.mobile-checkout,.mobile-only{display:none}.modal{width:calc(100% - 32px);max-width:480px;max-height:calc(100dvh - 32px);overflow-y:auto;border:0;border-radius:18px;padding:24px;background:#fff;color:inherit;box-shadow:0 20px 90px #163b4260}.modal::backdrop{background:#153b427d}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.modal-heading h2{margin:0}.modal>.primary,.modal>.danger,.modal>.secondary{width:100%;margin-top:12px}.modal .cart{padding:0}.modal .cart-title{display:none}.nav-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.nav-grid button{min-height:65px;font-size:16px}.menu-footer{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.done-mark{margin:12px auto 20px;width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:var(--foam);color:var(--sea);font-size:38px}.done-total{text-align:center;font-size:42px;font-weight:800;color:var(--deep);margin:22px 0;letter-spacing:.03em}.change{display:block;margin:12px 0;font-size:21px;font-weight:800;color:var(--sea)}.update-banner{position:fixed;bottom:12px;left:12px;right:12px;z-index:90;max-width:600px;margin:auto;padding:12px;background:var(--deep);color:#fff;border-radius:10px;display:flex;align-items:center;gap:12px;font-size:13px;box-shadow:0 6px 30px #164b5240}.update-banner button{flex-shrink:0}.management{max-width:1180px;margin:0 auto;padding:20px 24px 50px;min-width:0}.management>.text-button{margin-bottom:12px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0 18px;flex-wrap:wrap}.toolbar h1{margin:0}.toolbar select{width:auto;max-width:180px}.management-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}.detail{padding:22px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;border-bottom:1px solid var(--line);border-radius:0;width:100%;padding:17px 16px;text-align:left;min-width:0}.list-row>div{min-width:0}.list-row strong{font-size:14px;overflow-wrap:anywhere}.list-row small{margin-top:5px}.list-row>.amount{color:var(--sea);font-weight:800}.detail-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.detail-line>span:first-child,.detail-line>div{min-width:0;overflow-wrap:anywhere}.date-filter{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:8px 0 24px}.segments{display:flex;gap:4px;padding:4px;background:#e8f1ef;border-radius:10px}.segments button{background:transparent;border:1px solid transparent;min-height:38px;padding:7px 11px;white-space:nowrap;font-size:13px}.segments .selected{background:#fff!important;border-color:transparent!important;box-shadow:0 1px 4px #23404710}.date-inputs{display:flex;gap:9px;align-items:center;max-width:100%}.date-inputs>label{min-width:0;width:145px;font-size:12px}.date-inputs>span{padding-top:22px;font-size:13px}.kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 18px;display:flex;flex-direction:column;gap:14px}.kpi:nth-child(3){background:var(--sea);color:#fff;border-color:var(--sea)}.kpi:nth-child(4){background:var(--sun);border-color:#eee1a9}.kpi span{font-size:13px}.kpi strong{font-size:28px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.report-panel{padding:20px;margin-bottom:20px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;font-variant-numeric:tabular-nums}th,td{padding:12px 7px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left}th{color:#536f73;font-weight:600}.report-panel>p{margin-top:18px;margin-bottom:0}.bars{height:166px;display:flex;gap:9px;align-items:stretch;overflow-x:auto;padding-bottom:5px}.bar-column{flex:1;min-width:24px;display:flex;flex-direction:column;align-items:center;gap:5px}.bar-value{font-size:9px;height:15px;white-space:nowrap}.bar-track{height:115px;width:100%;max-width:30px;display:flex;align-items:flex-end;background:#f4f8f7;border-radius:3px;overflow:hidden}.bar-track i{width:100%;display:block;background:#34a7aa;border-radius:3px 3px 0 0}.bar-column small{font-size:10px}.ranking{margin-top:20px;padding:0 18px}.ranking-row{display:flex;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}.ranking-row>div:nth-child(2){flex:1;min-width:0}.ranking-row>div:last-child{text-align:right}.rank{width:34px;height:34px;display:grid;place-items:center;font-size:17px;background:#f1f6f5;color:#527278;border-radius:50%;flex-shrink:0}.rank-0{background:var(--sun);color:#7d6117}.rank-1{background:var(--foam);color:var(--sea)}.sortable-row{display:flex;align-items:center;gap:0;background:#fff;min-width:0}.sortable-row .list-row{flex:1}.drag-handle{touch-action:none;cursor:grab;border:0;font-size:26px;background:transparent}.category-editor{padding:14px;background:#f2f8f7;border-radius:8px;display:flex;flex-direction:column;gap:8px}.settings-form{padding:25px;max-width:580px}.settings-form .inline-field input{width:135px}.search-bar{display:flex;gap:8px;margin-bottom:18px}.search-bar button{flex-shrink:0}.balance-summary{background:var(--foam);border-radius:10px;padding:20px;display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.balance-summary>span{font-size:13px}.balance-summary>strong{font-size:28px;color:#086b73}.member-number{background:var(--sun);padding:14px;border-radius:8px;font-size:13px;margin-bottom:18px;display:flex;justify-content:space-between;gap:10px}.member-number strong{font-size:17px;letter-spacing:.04em}.login-page{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;gap:28px;background:#ecf8f6}.login-form{width:100%;max-width:390px;padding:30px}.login-form h1{margin-bottom:0}.login-form p{margin-bottom:0;color:#527278}.member-app{min-height:100dvh;background:#f2faf8;display:flex;flex-direction:column}.member-app>header{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;padding:18px 22px;border-bottom:1px solid var(--line)}.member-app>header>span{font-size:12px;color:#5c797d}.member-app>main{width:100%;max-width:520px;margin:0 auto;flex:1;padding:25px 22px 45px}.member-welcome{padding:35px 12px 30px}.member-welcome>img{width:86px;height:86px;margin-bottom:24px}.member-welcome h1{font-size:32px;line-height:1.6;letter-spacing:.04em;color:var(--deep)}.member-welcome p{color:#53747a;font-size:14px}.member-actions{display:flex;flex-direction:column;gap:14px}.member-actions button{min-height:58px;font-size:17px}.member-footnote{text-align:center;margin-top:24px;font-size:12px;color:#59797c}.member-app .panel{padding:24px}.member-app main>.text-button{margin-bottom:20px}.member-detail{margin-top:22px}.member-app>footer{text-align:center;padding:20px 20px calc(20px + env(safe-area-inset-bottom));font-size:12px;color:#5b797c}@media (min-width:1100px){.pos-layout{grid-template-columns:minmax(0,1fr) 360px}.menu-section{padding:28px 34px}.product-add{min-height:178px;padding:20px}.product-add strong{font-size:20px}.product-grid{gap:18px}.cart{padding:22px}}@media (max-width:767px){.app-header{height:70px;padding:12px 14px}.brand{gap:8px}.brand img{width:38px;height:38px}.brand strong{font-size:19px}.business-label{font-size:11px}.header-right{gap:5px}.pos-layout{display:block;height:calc(100dvh - 70px)}.menu-section{height:100%;padding:16px 14px calc(120px + env(safe-area-inset-bottom))}.categories{gap:9px}.categories button{flex:1;min-width:0;padding:11px 14px}.categories strong{font-size:16px}.categories small{font-size:11px}.menu-heading{margin:24px 0 15px}.menu-heading h1{font-size:18px}.menu-heading>span{font-size:11px}.product-grid{gap:9px}.product-add{padding:12px 10px;gap:9px;min-height:159px}.product-add strong{font-size:15px;line-height:1.65;letter-spacing:0}.product-add .amount{font-size:19px}.product-card>.quantity{padding:5px;gap:0}.product-card .quantity button{padding:4px;min-width:32px;min-height:40px}.product-card .quantity b{font-size:14px}.desktop-cart{display:none}.mobile-checkout{display:flex;position:fixed;bottom:0;left:0;right:0;align-items:center;gap:12px;padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #c9dfdc;box-shadow:0 -5px 20px #164b5207;z-index:5}.cart-peek{border:0;padding:0;flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:5px}.cart-peek>span{font-size:12px;font-weight:500;color:#56747b}.cart-peek strong{font-size:27px;color:var(--deep)}.mobile-checkout>.primary{min-height:51px;padding:12px 16px;font-size:15px}.mobile-only{display:block}.mobile-hidden{display:none!important}.modal{width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:20px 18px}.modal .cart-lines{min-height:0}.management{padding:16px 14px 35px}.management-split{display:block}.management-split>section{margin-bottom:20px}.toolbar{gap:10px}.toolbar h1{font-size:23px}.toolbar>.primary{font-size:13px;padding:8px 10px}.date-filter{gap:10px;align-items:stretch;margin-bottom:22px}.date-inputs{width:100%;justify-content:space-between}.date-inputs>label{flex:1}.date-filter>.segments{width:100%}.date-filter>.segments button{flex:1}.detail{padding:18px}.kpi{padding:17px 15px}.kpi strong{font-size:27px}.report-panel{padding:17px}.settings-form{padding:20px}.settings-form .inline-field input{width:115px}.ranking{padding:0 12px}.ranking-row{gap:10px}.ranking-row strong{font-size:14px}.ranking-row small{font-size:11px}.list-row{padding:16px 12px}.list-row strong{font-size:14px}.member-number{font-size:12px}.member-app>header{padding:14px 18px}.member-app>main{padding:22px 18px 35px}.member-welcome{padding-top:22px}.member-welcome h1{font-size:29px}.member-app .panel{padding:20px}.update-banner{bottom:94px}.update-banner button{font-size:12px;padding:8px}.login-form{padding:25px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
