:root{--blue:#119dcb;--blue-dark:#08789e;--blue-soft:#eaf7fc;--ink:#193744;--muted:#6c7d86;--line:#e3eaee;--bg:#f6f9fb;--white:#fff;--good:#277252;--bad:#b84343;--radius:16px;--shadow:0 3px 18px rgba(26,57,76,.035)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}a{color:var(--blue-dark);text-decoration:none}a:hover{color:var(--blue)}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a,button,input,select,textarea{outline-offset:4px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #73cbea}h1,h2,h3,p{margin-top:0}h1{font-size:29px;line-height:1.25;letter-spacing:-.75px;margin-bottom:8px;font-weight:700}h2{font-size:19px;letter-spacing:-.3px;line-height:1.35;margin-bottom:8px}h3{font-size:15px;margin-bottom:8px}p{color:var(--muted);margin-bottom:16px}small,.small{font-size:12px}.muted{color:var(--muted)}.text-danger{color:var(--bad)}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}.icon{display:inline-block;vertical-align:middle;flex-shrink:0}hr{border:0;border-top:1px solid var(--line);margin:24px 0}strong{font-weight:650}.inline{display:inline-flex;margin:0}.stack{display:grid;gap:18px}.stack-sm{display:grid;gap:10px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{display:flex;align-items:center;justify-content:space-between;gap:16px}.wrap{flex-wrap:wrap}.mt{margin-top:24px}.mb{margin-bottom:24px}.no-margin{margin:0}.right{text-align:right}.grow{flex:1}.hidden,[hidden]{display:none!important}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:11px 18px;border:1px solid var(--blue);border-radius:10px;background:var(--blue);color:#fff;font-weight:600;line-height:1.35;text-align:center;transition:background .15s,border-color .15s,transform .15s}.button:hover{background:var(--blue-dark);border-color:var(--blue-dark);color:#fff}.button.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.button.secondary:hover{background:var(--blue-soft);border-color:#c3e5f0;color:var(--blue-dark)}.button.danger{background:#fff;color:var(--bad);border-color:#ecd0d0}.button.small{min-height:38px;font-size:13px;padding:8px 12px}.button.wide{width:100%}.button.link{padding-left:0;padding-right:0;border-color:transparent;background:none;color:var(--blue-dark)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);flex-shrink:0}.icon-button:hover{background:var(--blue-soft);color:var(--blue-dark)}.small-link{display:inline-flex;gap:6px;align-items:center;font-size:13px}.button .icon{width:18px;height:18px}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;min-width:0}.field>span,.field>label{font-size:13px;font-weight:600;color:var(--ink)}.field input,.field select,.field textarea,input.input,select.input{width:100%;min-height:44px;border:1px solid #dce5ea;border-radius:9px;padding:11px 12px;background:#fff;color:var(--ink);transition:border-color .15s}.field textarea{resize:vertical;min-height:86px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue)}.field input[readonly]{background:var(--bg);color:var(--muted)}.field small{color:var(--muted)}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.check-field{display:flex;align-items:flex-start;gap:10px;margin:12px 0 18px;color:var(--muted);font-size:13px;cursor:pointer}.check-field input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--blue);flex-shrink:0}.check-inline{display:inline-flex;gap:7px;align-items:center;margin:4px 12px 4px 0;font-size:13px}.check-inline input{accent-color:var(--blue);width:17px;height:17px}.hint{font-size:12px;color:var(--muted);margin:8px 0 0}.field-row .field{margin-bottom:12px}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);min-width:0}.card-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.card-head h2{margin:0}.card-head p{margin:4px 0 0}.notice{padding:14px 17px;border:1px solid #cfe5ef;border-radius:10px;background:var(--blue-soft);color:#316175;font-size:13px;margin-bottom:20px}.notice.success{background:#f1faf6;border-color:#d6e9df;color:var(--good)}.notice.error{background:#fff5f4;border-color:#efd6d3;color:var(--bad)}.notice a{font-weight:600}.notice p:last-child{margin-bottom:0}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:6px;font-size:11px;font-weight:600;line-height:1.4;white-space:normal;background:var(--blue-soft);color:var(--blue-dark)}.badge.good{background:#ecf7f1;color:var(--good)}.badge.bad{background:#fff0ee;color:var(--bad)}.status-dot{width:7px;height:7px;display:inline-block;background:#4f9777;border-radius:50%;margin-right:6px}.stat-value{display:block;color:var(--ink);font-size:26px;letter-spacing:-.5px;font-weight:700;line-height:1.3;margin-top:6px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0}.stat{padding:21px 22px;background:#fff;border:1px solid var(--line);border-radius:12px}.stat>span:first-child{font-size:12px;color:var(--muted)}.stat small{display:block;color:var(--muted);margin-top:5px}.stat-value small{display:inline;font-size:13px;font-weight:400;margin-left:4px}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.brand{display:flex;align-items:center;gap:11px;color:var(--ink)}.brand:hover{color:var(--ink)}.brand img{object-fit:contain}.brand strong{display:block;font-size:18px;letter-spacing:-.3px;font-weight:720}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:.25px}.customer-top{background:#fff;border-bottom:1px solid var(--line)}.top-inner{max-width:1160px;margin:auto;min-height:84px;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:14px 28px}.desktop-nav{display:flex;gap:28px}.desktop-nav a{color:var(--muted);font-size:13px;padding:10px 0}.desktop-nav a.active{color:var(--blue-dark);font-weight:650}.customer-content{max-width:1160px;padding:40px 28px 28px;margin:auto}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:28px}.page-heading p{margin:0;font-size:14px}.eyebrow{display:block;color:var(--blue-dark);font-size:11px;font-weight:700;letter-spacing:1.25px;text-transform:uppercase;margin-bottom:12px}.welcome{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.welcome h1{font-size:34px;letter-spacing:-1px;margin:5px 0 10px}.welcome p{max-width:520px;margin:0;font-size:14px}.welcome .badge{margin-top:12px}.home-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(285px,1fr);gap:22px;align-items:start}.order-grid{display:grid;grid-template-columns:minmax(150px,.85fr) minmax(0,1.2fr);gap:24px;align-items:start}.order-grid .field:last-child{margin-bottom:0}.quantity-area{text-align:center;padding:14px 0 0}.quantity-label{font-size:12px;color:var(--muted)}.quantity-controls{display:flex;align-items:center;justify-content:center;gap:8px;margin:16px 0 4px}.qty-button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--blue-dark);font-size:23px;line-height:1;flex-shrink:0}.qty-button:hover{background:var(--blue-soft)}.drop-button{position:relative;width:115px;height:155px;appearance:none;background:none;border:0;outline-offset:1px;padding:0;color:var(--blue);flex-shrink:0}.drop-svg{width:100%;height:100%;display:block;filter:drop-shadow(0 6px 7px rgba(17,157,203,.11))}.drop-count{position:absolute;top:62px;left:0;right:0;color:#fff;text-align:center;pointer-events:none}.drop-count strong{display:block;line-height:1.2;font-size:34px;font-weight:650}.drop-count small{font-size:11px}.drop-button::after{content:"";position:absolute;bottom:4px;left:25px;right:25px;border:1px solid #bce6f3;border-radius:50%;height:9px;opacity:0}.drop-button.pulse .drop-svg{animation:drop-tap .32s ease-out}.drop-button.pulse::after{animation:drop-ripple .42s ease-out}.quantity-help{font-size:10px;color:var(--muted);margin-top:8px}.qty-hidden{position:absolute!important;width:1px!important;height:1px!important;clip-path:inset(50%);overflow:hidden}.quantity-noscript{width:70px}.unit-price{display:inline-block;margin-top:15px;font-size:12px;color:var(--muted)}.unit-price strong{color:var(--ink)}@keyframes drop-tap{0%{transform:scale(1)}35%{transform:scale(.95,1.03)}70%{transform:scale(1.035,.98)}100%{transform:scale(1)}}@keyframes drop-ripple{0%{opacity:.65;transform:scale(.8)}100%{opacity:0;transform:scale(1.65)}}.estimate{border-top:1px solid var(--line);padding-top:17px;margin-top:19px;display:flex;align-items:center;justify-content:space-between;gap:12px}.estimate span{font-size:12px;color:var(--muted)}.estimate strong{font-size:23px;letter-spacing:-.5px}.estimate-lines{font-size:12px;color:var(--muted);padding:10px 0 15px;display:grid;gap:3px}.estimate-lines div{display:flex;justify-content:space-between;gap:12px}.cod-note{display:flex;gap:7px;justify-content:center;align-items:center;font-size:10px;color:var(--muted);margin-top:11px}.cod-note svg{width:14px;height:14px}.fold{margin:14px 0;border:1px solid var(--line);border-radius:10px;padding:12px 14px}.fold summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--muted)}.fold[open] summary{margin-bottom:14px}.fold .field:last-child{margin-bottom:0}.order-no{font-size:12px;letter-spacing:.35px;color:var(--muted)}.active-order h3{font-size:17px;margin:5px 0 10px}.progress-steps{padding:0;margin:25px 0;display:flex;list-style:none}.progress-steps li{position:relative;flex:1;text-align:center;color:#97a4ad;min-width:0}.progress-steps li:before{content:"";position:absolute;top:13px;left:-50%;right:50%;height:1px;background:var(--line)}.progress-steps li:first-child:before{display:none}.progress-steps li>span{position:relative;z-index:1;display:flex;width:28px;height:28px;align-items:center;justify-content:center;margin:0 auto 8px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:11px}.progress-steps small{font-size:10px}.progress-steps .current>span{border-color:var(--blue);background:var(--blue);color:#fff}.progress-steps .current small{color:var(--blue-dark);font-weight:650}.progress-steps .done>span{border-color:#c5e6f1;background:var(--blue-soft);color:var(--blue-dark)}.progress-steps .done:before{background:#b8deeb}.progress-steps .icon{width:14px;height:14px}.mini-order{padding:15px 0;display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line)}.mini-order:first-child{border-top:0}.mini-order strong{font-size:13px;display:block}.mini-order small{color:var(--muted);display:block;font-size:11px}.mini-order .badge{font-size:10px}.subtle-panel{padding:19px 20px;background:var(--blue-soft);border:1px solid #d9edf5;border-radius:var(--radius);font-size:12px;color:#597885}.subtle-panel p{font-size:12px;margin:5px 0 14px}.subtle-panel h3{font-size:14px;color:var(--ink);margin:0}.service-steps{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:11px;margin-top:26px}.service-steps .icon{width:14px;height:14px}.service-steps .step-arrow{margin:0 3px;color:#b7c6cd}
.sidebar{position:fixed;top:0;left:0;bottom:0;width:224px;border-right:1px solid var(--line);background:#fff;padding:28px 18px 18px;display:flex;flex-direction:column;z-index:30;overflow-y:auto}.sidebar .brand{padding:0 10px 28px}.sidebar nav{display:grid;gap:3px}.nav-item{display:flex;align-items:center;gap:11px;padding:12px 13px;border-radius:9px;color:var(--muted);font-size:13px}.nav-item .icon{width:18px;height:18px}.nav-item:hover{background:var(--bg);color:var(--ink)}.nav-item.active{background:var(--blue-soft);color:var(--blue-dark);font-weight:650}.sidebar-foot{margin-top:auto;padding:30px 13px 2px;display:grid;gap:10px}.sidebar-foot a{font-size:11px;color:var(--muted)}.sidebar-foot small{font-size:10px;color:#97a5ad;line-height:1.5}.admin-main{margin-left:224px}.admin-top{height:74px;background:#fff;border-bottom:1px solid var(--line);padding:0 34px;display:flex;justify-content:space-between;align-items:center;gap:15px}.top-date{font-size:12px}.separator{margin:0 8px;color:#c1cbd0}.top-actions{display:flex;gap:18px;align-items:center}.user-link{color:var(--ink);font-size:12px;display:flex;gap:9px;align-items:center}.avatar{display:inline-flex;align-items:center;justify-content:center;width:31px;height:31px;border-radius:50%;background:var(--blue-soft);color:var(--blue-dark);font-size:12px;font-weight:600}.admin-content{max-width:1520px;margin:auto;padding:32px 34px 36px}.menu-toggle{display:none}.admin-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(275px,1fr);gap:22px;align-items:start}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}.wide-narrow{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:22px;align-items:start}.filters{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin:0 0 24px}.filters .field{margin:0;min-width:150px}.filters .field.search{flex:1;min-width:200px}.filters .button{margin:0}.tabs{display:flex;gap:6px;margin:0 0 20px;overflow:auto}.tabs a{padding:9px 14px;white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:8px;font-size:12px;color:var(--muted)}.tabs a.active{color:var(--blue-dark);background:var(--blue-soft);border-color:#cce7f1}.table-wrap{overflow-x:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{padding:12px 14px;font-size:10px;font-weight:600;letter-spacing:.45px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;background:#fbfcfd}td{padding:16px 14px;border-bottom:1px solid #edf1f4;vertical-align:middle}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}tbody tr:last-child td{border-bottom:0}td small{display:block;font-size:10px;color:var(--muted);margin-top:4px}td .badge{max-width:155px}td form{margin:0}.strong-link{color:var(--ink);font-weight:600;font-size:12px;white-space:nowrap}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:20px 0 0;font-size:12px;color:var(--muted)}.queue-summary{display:flex;align-items:center;gap:16px;padding:15px 0;border-top:1px solid var(--line)}.queue-summary:first-child{border-top:0}.queue-summary strong{font-size:22px;min-width:28px}.queue-summary span{font-size:12px;color:var(--muted);flex:1}.queue-summary .icon{color:var(--blue-dark)}.detail-list{margin:0;display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,1.3fr);gap:12px 22px;font-size:12px}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;overflow-wrap:anywhere}.detail-list dd.amount{font-size:20px;font-weight:650}.timeline{list-style:none;padding:0;margin:0}.timeline li{position:relative;padding:0 0 22px 25px;margin:0;font-size:12px}.timeline li:before{content:"";position:absolute;left:4px;top:7px;bottom:-6px;width:1px;background:var(--line)}.timeline li:after{content:"";position:absolute;left:0;top:5px;width:9px;height:9px;border-radius:50%;background:#b5dfee;border:2px solid #fff}.timeline li:last-child{padding-bottom:0}.timeline li:last-child:before{display:none}.timeline small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.timeline p{font-size:11px;margin:4px 0 0}.audit-json{max-width:450px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:10px}.quantity-records{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.quantity-record{padding:13px;background:var(--bg);border-radius:10px}.quantity-record small{font-size:10px;display:block;color:var(--muted)}.quantity-record strong{font-size:21px}.action-block{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--line)}.action-block:last-child{border:0;margin:0;padding:0}.action-block h3{margin-bottom:13px}.alert-outline{border-color:#ecd9c0;background:#fffaf4}.order-address{font-size:13px;line-height:1.7;color:var(--muted)}.order-address strong{color:var(--ink);font-size:14px}.order-address .mono{font-size:11px}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:140px;padding:28px 15px;text-align:center;color:var(--muted)}.empty>.icon{color:#a1c8d8;width:28px;height:28px;margin-bottom:12px}.empty strong{font-size:13px;color:var(--ink);font-weight:600}.empty p{font-size:12px;max-width:280px;margin:6px 0 0}.courier-card{display:flex;align-items:center;gap:12px;background:#fafdfe;border:1px solid var(--line);padding:16px 19px;border-radius:12px;margin-bottom:24px}.courier-card .icon{color:var(--blue-dark)}.courier-card strong{font-size:13px}.courier-card small{display:block;color:var(--muted);font-size:11px}.courier-card .button{margin-left:auto}
.auth-shell{max-width:1100px;margin:0 auto;min-height:calc(100vh - 160px);padding:70px 28px 45px;display:flex;flex-direction:column;justify-content:center}.auth-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:95px;align-items:center}.auth-copy .auth-logo{width:70px;height:75px;object-fit:contain;margin-bottom:26px}.auth-copy h1{font-size:42px;letter-spacing:-1.4px;line-height:1.2;max-width:420px}.auth-copy p{max-width:390px;font-size:14px;line-height:1.8}.auth-card{padding:32px}.auth-card h2{font-size:24px;margin-bottom:6px}.auth-card>p{font-size:13px;margin-bottom:26px}.auth-after{font-size:12px;text-align:center;margin-top:22px;color:var(--muted)}.auth-after a{font-weight:650}.auth-note{font-size:11px;margin-top:28px;color:var(--muted)}.form-narrow{width:min(100%,620px);margin:0 auto}.form-narrow .page-heading{margin-bottom:20px}.inline-info{padding:15px 17px;border:1px solid var(--line);border-radius:10px;background:#fcfdfe;font-size:12px;color:var(--muted)}.profile-card{display:flex;gap:16px;align-items:center}.profile-card .avatar{width:55px;height:55px;font-size:20px}.profile-card h2{margin-bottom:3px}.profile-card p{font-size:12px;margin-bottom:0}.address-card{border:1px solid var(--line);border-radius:12px;padding:19px;margin-top:14px}.address-card p{font-size:12px;margin:7px 0 10px}.ticket-balance{font-size:46px;line-height:1.2;font-weight:700;letter-spacing:-1.6px;color:var(--blue-dark);margin:16px 0 8px}.ticket-balance span{font-size:15px;font-weight:500;letter-spacing:0;color:var(--muted);margin-left:8px}.spin-area{text-align:center;padding:14px 0}.spin-wheel-wrap{position:relative;width:210px;height:210px;margin:12px auto 25px}.spin-wheel-wrap:before{content:"";position:absolute;top:-9px;left:94px;border-left:11px solid transparent;border-right:11px solid transparent;border-top:19px solid var(--ink);z-index:2}.spin-wheel{position:relative;border-radius:50%;width:210px;height:210px;background:var(--blue-soft);border:6px solid #f4f9fc;box-shadow:0 0 0 1px var(--line);transition:transform 3.4s cubic-bezier(.12,.68,.12,1)}.spin-wheel:after{content:"";position:absolute;inset:74px;border-radius:50%;background:#fff;border:1px solid var(--line)}.spin-result{font-size:15px;font-weight:600;margin-top:15px;min-height:25px;color:var(--blue-dark)}.reward-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.reward-card{border:1px solid var(--line);padding:18px;border-radius:12px}.reward-card h3{margin:8px 0;font-size:14px}.reward-card p{font-size:11px;margin:4px 0}.reward-row{border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:16px;background:#fcfdfe}.reward-row .field-row{gap:12px}.reward-row h3{font-size:13px;margin-bottom:15px}.weight-total{font-size:14px;font-weight:650}.claim-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;letter-spacing:.5px}.qr-box{width:260px;margin:20px auto;padding:15px;border:1px solid var(--line);border-radius:12px;background:white}.qr-box svg{width:100%;height:auto;display:block}.install-instructions{font-size:13px;line-height:1.8}.install-instructions h3{margin-top:22px}.subheading{font-size:13px;color:var(--muted);font-weight:600;margin:27px 0 12px;text-transform:uppercase;letter-spacing:.6px}.report-total{padding:18px 0;border-top:1px solid var(--line)}
.page-footer{font-size:10px;color:#92a0a8;text-align:center;max-width:1160px;padding:28px;margin:0 auto;line-height:1.7}.page-footer span{margin:0 5px}.page-footer a{margin-left:10px;color:var(--muted)}.admin-footer{margin-left:224px;max-width:none}.bottom-nav{display:none}.offline-banner{background:#fff2db;color:#866028;font-size:12px;text-align:center;padding:10px 18px;position:sticky;top:0;z-index:60}.confirm-dialog{border:1px solid var(--line);border-radius:18px;padding:28px;width:min(440px,calc(100% - 32px));box-shadow:0 24px 80px rgba(17,42,60,.18);color:var(--ink)}.confirm-dialog::backdrop{background:rgba(22,43,55,.35)}.confirm-dialog h2{font-size:21px}.confirm-dialog p{font-size:14px;white-space:pre-line;margin-top:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);background:#193744;color:white;border-radius:12px;box-shadow:var(--shadow);padding:12px 20px;font-size:13px;z-index:100;max-width:calc(100% - 32px);min-width:220px;text-align:center}.skip-link{position:fixed;top:-100px;left:15px;z-index:1000;background:#fff;padding:12px}.skip-link:focus{top:10px}.setup-steps{font-size:13px;color:var(--muted);padding-left:23px;line-height:1.9}.setup-steps code{font-size:12px;color:var(--ink)}.print-only{display:none}.receipt{max-width:690px;margin:35px auto;background:#fff;padding:40px;border:1px solid var(--line);border-radius:14px}.receipt h1{font-size:25px}.receipt .brand{margin-bottom:30px}.receipt-note{font-size:11px;color:var(--muted);margin-top:24px}
@media(min-width:1500px){.order-grid{grid-template-columns:.85fr 1.2fr}}@media(max-width:1200px){.home-grid{grid-template-columns:1.4fr 1fr}.order-grid{grid-template-columns:1fr}.quantity-area{padding-top:0}.quantity-controls{margin-top:2px}.quantity-help{margin:0}.unit-price{margin-top:4px}.admin-grid,.wide-narrow{grid-template-columns:1fr}.auth-grid{gap:55px}.stats .stat-value{font-size:23px}.stats{gap:12px}}
@media(max-width:980px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:translateX(0);box-shadow:10px 0 40px rgba(20,50,70,.1)}.admin-main{margin-left:0}.admin-footer{margin-left:0}.menu-toggle{display:inline-flex}.admin-top{padding:0 24px;height:68px}.admin-content{padding:26px 24px}.top-date{margin-right:auto}.desktop-nav{gap:18px}.top-inner{gap:18px}.auth-grid{gap:38px}.auth-copy h1{font-size:35px}.customer-top .install-trigger{display:none}.customer-content{padding-top:32px}.order-grid{gap:18px}.home-grid{grid-template-columns:1.2fr 1fr}.card{padding:23px}}
@media(max-width:720px){h1{font-size:25px}h2{font-size:18px}.top-inner{padding:12px 20px;min-height:75px}.brand strong{font-size:17px}.brand img{width:26px;height:36px}.customer-content{padding:25px 18px 16px}.welcome h1{font-size:29px}.welcome p{font-size:12px}.welcome{display:block}.welcome .badge{margin-top:15px}.desktop-nav{display:none}.home-grid,.two-col,.auth-grid,.wide-narrow{grid-template-columns:1fr}.home-grid{gap:18px}.order-grid{grid-template-columns:minmax(140px,.8fr) minmax(0,1.2fr);gap:20px}.card{padding:22px}.card-head{margin-bottom:20px}.quantity-controls{gap:5px}.drop-button{width:102px;height:143px}.drop-count{top:59px}.drop-count strong{font-size:31px}.qty-button{width:31px;height:31px;font-size:22px}.unit-price{font-size:11px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));margin:22px 0;gap:10px}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{padding:16px}.stat-value,.stats .stat-value{font-size:23px}.stat>span:first-child{font-size:11px}.stat small{font-size:10px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:10px 6px max(10px,env(safe-area-inset-bottom));z-index:20}.bottom-nav a{min-width:65px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;color:var(--muted)}.bottom-nav a.active{color:var(--blue-dark);font-weight:600}.bottom-nav svg{width:20px;height:20px}.customer-body .page-footer{padding-bottom:98px}.page-heading{margin-bottom:22px;align-items:flex-start;flex-wrap:wrap}.page-heading p{font-size:12px}.auth-shell{padding:34px 20px;min-height:calc(100vh - 155px)}.auth-copy{display:none}.auth-card{padding:26px}.auth-grid{max-width:450px;width:100%;margin:auto}.auth-card h2{font-size:25px}.admin-top{padding:0 18px}.admin-content{padding:26px 18px}.top-actions{gap:10px}.top-actions .user-link>span:last-child{display:none}.top-date{font-size:11px}.filters{gap:10px}.filters .field{flex:1;min-width:130px}.filters .button{flex:0 1 auto}.field-row.three{grid-template-columns:1fr}.reward-grid{grid-template-columns:1fr}.detail-list{gap:12px 15px}.table-wrap table{min-width:610px}.table-wrap.compact table{min-width:430px}.reward-row{padding:17px}.service-steps{margin-top:14px}.receipt{border:0;margin:0;padding:24px}.courier-card{align-items:flex-start;flex-wrap:wrap}.courier-card .button{margin-left:0}.field input,.field select,.field textarea{font-size:16px}.stats.three .stat{padding:14px 10px}.stats.three .stat-value{font-size:21px}.stats.three .stat>span:first-child{font-size:10px}}
@media(max-width:480px){.order-grid{grid-template-columns:1fr;gap:20px}.quantity-controls{gap:17px;margin-top:5px}.drop-button{width:108px;height:143px}.drop-count{top:60px}.qty-button{width:40px;height:40px}.quantity-area{border-bottom:1px solid var(--line);padding-bottom:20px}.unit-price{margin-top:8px}.quantity-help{font-size:10px}.card{padding:21px}.field-row{grid-template-columns:1fr;gap:0}.stats .stat-value{font-size:21px}.page-heading .button{font-size:12px}.brand small{font-size:9px}.badge{font-size:10px}.estimate{padding-top:18px}.top-inner .small-link{font-size:11px}.quantity-records{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.quantity-record{padding:11px}.quantity-record small{font-size:9px}.quantity-record strong{font-size:19px}.confirm-dialog{padding:24px}.pagination .button{font-size:11px;padding:8px 10px}.tabs a{font-size:11px;padding:8px 11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media print{body{background:#fff;font-size:12px}.customer-top,.admin-top,.sidebar,.bottom-nav,.page-footer,.button,.icon-button,.notice,.filters,.no-print{display:none!important}.admin-main,.admin-footer{margin:0}.admin-content,.customer-content{padding:0;max-width:none}.card,.receipt{box-shadow:none;border:0;padding:12px 0;margin:0}.receipt{max-width:100%}.print-only{display:block}.table-wrap{overflow:visible}.table-wrap table{min-width:0}.two-col,.wide-narrow,.admin-grid{display:block}.page-heading{margin:15px 0}a{color:inherit}.stats{break-inside:avoid}td,th{padding:8px}.card{break-inside:avoid}}

/* Bali Water 1.1 - practical customer checkout and vivid integrated spin */
.customer-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 28px;margin-bottom:18px;background:linear-gradient(110deg,#e5f9ff 0%,#f7fdff 60%,#ecfffa 100%);border:1px solid #ccecf4;border-radius:22px}.customer-hero h1{font-size:29px;margin:0 0 8px}.customer-hero p{font-size:13px;max-width:540px;margin:0}.customer-hero .eyebrow{margin-bottom:9px}.hero-identity{background:#fff;min-width:142px;padding:13px 17px;border:1px solid #d5eff5;border-radius:16px;text-align:center;box-shadow:0 8px 25px rgba(15,140,180,.07)}.hero-identity span{display:block;font-size:9px;color:#65818d;letter-spacing:1px;font-weight:800}.hero-identity strong{display:block;font-size:32px;letter-spacing:1.2px;color:#0a789c;line-height:1.35}.hero-identity small{font-size:10px;color:#78909b}.fresh-home{grid-template-columns:minmax(0,1.32fr) minmax(290px,.8fr)}.order-main-card{border-color:#d0e7f0;box-shadow:0 14px 45px rgba(25,93,128,.055)}.order-main-card .card-head{margin-bottom:12px}.order-header-icon{background:#ecfaff;color:#169cca;padding:12px;border-radius:13px}.order-header-icon svg{width:25px;height:25px}.order-main-card .eyebrow{margin-bottom:6px}.drop-order{text-align:center;padding:7px 0 19px}.drop-order .quantity-controls{margin:0 auto 4px;gap:23px}.drop-order .hero-drop{width:157px;height:195px;color:#08a1cb}.drop-order .drop-count{top:79px}.drop-order .drop-count strong{font-size:49px;font-weight:800}.drop-order .drop-count small{font-size:13px}.drop-order .qty-button{width:49px;height:49px;font-size:27px;border:1px solid #c7e7f1;color:#068eae}.drop-order .quantity-help{font-size:11px;margin:4px}.drop-order .unit-price{margin-top:4px;font-size:13px}.order-address-strip{display:flex;align-items:center;gap:10px;background:#f4fbfd;border:1px solid #e1f0f4;border-radius:13px;padding:12px 14px}.order-address-strip strong{font-size:12px}.order-address-strip p{margin:3px 0 0;font-size:12px}.address-strip-icon{color:#14a4ca;display:flex}.order-address-strip a{margin-left:auto;font-size:11px;font-weight:700;white-space:nowrap}.voucher-toggle{display:block;cursor:pointer;border-radius:13px;background:#effcf7;border:1px solid #b8e9d5;margin:12px 0;padding:12px 14px}.voucher-toggle input{margin:0 10px 0 0;vertical-align:middle;accent-color:#0d987b}.voucher-toggle>span{display:inline-flex;gap:7px;align-items:center;flex-wrap:wrap;vertical-align:middle}.voucher-toggle strong{font-size:12px;color:#087c67}.voucher-toggle small{font-size:11px;color:#568678}.voucher-toggle svg{width:18px;height:18px}.checkout-open,.spin-action{font-weight:800;letter-spacing:.2px;min-height:54px;font-size:15px}.checkout-open{background:linear-gradient(100deg,#0c98c0,#12b5c0);border-color:transparent}.welcome-voucher{display:flex;align-items:center;gap:14px;border:1px solid #e4cf79;background:linear-gradient(95deg,#fffae4,#fff 68%,#e9fbf5);padding:17px 21px;border-radius:18px;margin-bottom:22px;box-shadow:0 12px 30px rgba(140,113,28,.05)}.welcome-voucher .eyebrow{font-size:10px;color:#8f6a21;margin-bottom:6px}.welcome-voucher h2{font-size:17px;margin:0 0 5px}.welcome-voucher p{margin:0;font-size:12px}.voucher-glyph{display:flex;align-items:center;justify-content:center;width:49px;height:49px;border-radius:15px;background:#ffdd73;color:#875b17;flex-shrink:0}.voucher-glyph svg{height:25px;width:25px}.voucher-chip{margin-left:auto;background:#fff0ba;color:#856114;border-radius:99px;font-size:11px;font-weight:750;padding:7px 12px;white-space:nowrap}.checkout-dialog{border:1px solid #d5ecf1;border-radius:22px;box-shadow:0 30px 85px rgba(6,52,71,.23);padding:25px;width:min(510px,calc(100vw - 26px));max-height:90vh;overflow-y:auto;color:var(--ink)}.checkout-dialog::backdrop{background:rgba(14,40,55,.55)}.dialog-top{display:flex;align-items:center;justify-content:space-between}.dialog-top .eyebrow{margin:0}.checkout-dialog h2{margin:7px 0 6px;font-size:24px}.checkout-summary{display:grid;gap:13px;padding:16px;margin:20px 0;background:#f2fafc;border-radius:13px}.checkout-summary>div{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:12px}.checkout-summary span{color:var(--muted)}.checkout-summary strong{max-width:65%;text-align:right;font-size:13px}.checkout-total{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;border-top:1px solid var(--line);padding:18px 0 8px;font-size:13px}.checkout-total strong{font-size:28px}.checkout-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:18px}.checkout-actions .button:last-child{flex:1}.spin-home-card{background:linear-gradient(145deg,#fff,#f2fcff 70%,#fff8e9);border-color:#cfeaf2}.spin-ticket{background:#e6f8fd;border-radius:11px;padding:10px 15px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#296477}.spin-ticket strong{color:#097aa0;font-size:23px}.vibrant-wheel{width:252px;height:252px;margin:20px auto 19px}.vibrant-wheel:before{left:calc(50% - 13px);top:-10px;border-left:13px solid transparent;border-right:13px solid transparent;border-top:23px solid #ef9140;filter:drop-shadow(0 1px 2px #b79b73)}.vibrant-wheel .spin-wheel{width:252px;height:252px;border:9px solid #f7ce6b;box-shadow:0 0 0 3px #fff,0 13px 28px rgba(24,117,150,.19);background:conic-gradient(#07a2cb 0 12.5%,#ffd166 12.5% 25%,#0fbaa8 25% 37.5%,#ffedaa 37.5% 50%,#3184c2 50% 62.5%,#ffad69 62.5% 75%,#59cbd9 75% 87.5%,#e8bb50 87.5% 100%)}.vibrant-wheel .spin-wheel:after{display:none}.wheel-sector-label{position:absolute;top:50%;left:50%;width:79px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-85px) rotate(var(--counter));font-size:9px;font-weight:850;color:#17475b;text-align:center;pointer-events:none;text-shadow:0 1px 1px #ffffffc0}.wheel-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:5px solid #e0aa42;background:white;color:#0b82a7;border-radius:50%;width:62px;height:62px;display:flex;justify-content:center;align-items:center;font-weight:900;font-size:17px;box-shadow:0 2px 10px #183b4a28}.spin-action{background:linear-gradient(100deg,#0e9dc0,#18b0b9);margin-top:9px}.spin-home-card .small-link{margin-top:7px}.bonus-options{margin:10px 0}.spin-home-card .spin-area{padding-bottom:4px}
@media(max-width:720px){.customer-hero{padding:17px}.customer-hero h1{font-size:25px}.fresh-home{grid-template-columns:1fr}.welcome-voucher{flex-wrap:wrap}.voucher-chip{margin-left:63px}.drop-order .hero-drop{width:150px;height:190px}.drop-order .drop-count{top:75px}.checkout-actions .button{padding:11px 10px}.customer-content{padding-top:18px}.vibrant-wheel{margin-left:auto;margin-right:auto}}
@media(max-width:480px){.customer-hero{align-items:flex-start}.hero-identity{min-width:99px;padding:9px}.hero-identity strong{font-size:24px}.customer-hero h1{font-size:22px}.customer-hero p{font-size:11px}.drop-order .quantity-controls{gap:15px}.drop-order .qty-button{width:44px;height:44px}.welcome-voucher{padding:16px;gap:10px}.welcome-voucher h2{font-size:15px}.welcome-voucher p{font-size:11px}.voucher-chip{margin-left:0}.checkout-dialog{padding:20px}.checkout-dialog h2{font-size:21px}}

/* Operational dashboard - scan-first, short actions, no analytics CDN */
.admin-modern-stats .stat{background:linear-gradient(155deg,#fff,#f5fcff)}.admin-modern-stats .stat:first-child{border-color:#b8e6f3}.revenue-stat{background:linear-gradient(145deg,#e7fcf7,#fff)!important;border-color:#b5ecdb!important}.chart-card{margin-bottom:22px}.chart-card .card-head{align-items:flex-start}.metric-switch{display:inline-flex;gap:5px;background:#edf6f9;padding:5px;border-radius:12px}.metric-switch button{border:0;background:transparent;padding:9px 12px;font-size:12px;border-radius:9px;color:#557786;cursor:pointer}.metric-switch button.active{background:#fff;box-shadow:0 2px 8px #09446014;color:#087f9e;font-weight:800}.sales-chart{display:flex;gap:9px;align-items:flex-end;width:100%;height:215px;overflow-x:auto;border-bottom:1px solid #e6eff2;padding-top:14px;padding-bottom:0}.sales-column{display:flex;flex-direction:column;align-items:center;flex:1;min-width:28px;height:100%;gap:7px;cursor:help}.sales-column small{color:#8ca0ab;font-size:10px;min-height:17px}.bar-track{height:100%;width:100%;display:flex;align-items:flex-end;justify-content:center;flex:1}.bar-fill{background:linear-gradient(180deg,#15bdc1,#087ea8);border-radius:6px 6px 0 0;width:65%;min-width:12px;max-width:32px;transition:height .35s ease}.sales-column:hover .bar-fill{background:linear-gradient(180deg,#ffcf62,#f7a851)}.chart-footnote{font-size:11px;margin:10px 0 0;color:var(--muted)}.admin-order-card{padding:14px 0;border-top:1px solid var(--line)}.admin-order-card:first-of-type{border-top:0}.admin-order-head,.admin-order-foot{display:flex;align-items:center;gap:11px}.admin-order-head>div:nth-child(2){flex:1;min-width:0}.admin-order-head strong,.admin-order-foot strong{font-size:13px}.admin-order-head small,.admin-order-foot small{display:block;font-size:11px;color:var(--muted);margin-top:3px;line-height:1.5}.admin-order-foot{margin-top:11px;justify-content:space-between;padding-left:58px}.admin-order-foot .button{flex-shrink:0}.queue-pill{flex-shrink:0;width:45px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#d7f3fb;color:#0c82a7;font-size:14px;font-weight:800}.dashboard-quick-links{display:grid;gap:5px;margin-top:14px}.dashboard-quick-links a{display:flex;gap:10px;align-items:center;padding:11px;border-radius:10px;font-size:13px;color:#285b71;background:#f6fbfd}.dashboard-quick-links a svg:last-child{margin-left:auto}.dashboard-quick-links a:hover{background:#e5f7fd}.slot-list-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.slot-list-item strong{font-size:14px}.slot-list-item small{font-size:11px;display:block;color:var(--muted)}.quick-day-switch{display:flex;gap:8px;margin-bottom:17px}.quick-day-switch .button{flex:1}.cancel-request-panel{border:1px solid #f1cb8f;padding:14px;border-radius:12px;background:#fffaef}.cancel-request-panel h3{font-size:14px}.cancel-request-panel p{margin-top:3px}.queue-highlight{display:inline-flex;gap:7px;align-items:center;color:#087b9b;font-weight:850;background:#e8f8fc;border-radius:99px;padding:8px 13px;font-size:13px}
@media(max-width:980px){.admin-modern-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-card .card-head{flex-direction:column}.sales-column{min-width:30px}}
@media(max-width:480px){.metric-switch{width:100%;justify-content:space-between}.metric-switch button{flex:1}.admin-order-head{flex-wrap:wrap}.admin-order-foot{padding-left:0}.admin-order-head .badge{margin-left:55px}.admin-order-head>div:nth-child(2){flex:1}.sales-chart{gap:5px}.sales-column{min-width:24px}}

.quick-operate{display:flex;align-items:center;gap:11px;background:#edf9fc;border:1px solid #d7eef6;border-radius:11px;padding:13px;margin:14px 0}.quick-operate strong{font-size:22px;color:#0784a7}.quick-operate span{font-size:11px;color:var(--muted)}

/* Admin manual sales: isolated styles */
.manual-sale-card{max-width:690px;margin-inline:auto}.manual-drop-controls{display:flex;align-items:center;justify-content:center;gap:20px;padding:16px 0}.manual-drop{border:0;background:transparent;position:relative;width:170px;height:195px;cursor:pointer;display:grid;place-items:center}.manual-drop svg{width:100%;height:100%;filter:drop-shadow(0 8px 14px rgba(0,126,174,.2))}.manual-drop-number{position:absolute;top:51%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:56px;font-weight:800;pointer-events:none}.manual-step{width:48px;height:48px;border-radius:50%;border:1px solid #cbdfea;background:#effaff;color:#086d93;font-weight:800;font-size:24px;cursor:pointer}.manual-sale-total{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;background:#f0faff;border-radius:14px;padding:16px}.manual-sale-total span{display:flex;flex-direction:column;gap:6px}.manual-sale-total strong{font-size:1.25rem;color:#0b729d}@keyframes manualDropPop{0%{transform:scale(1)}45%{transform:scale(1.08)}100%{transform:scale(1)}}.manual-drop.manual-pop{animation:manualDropPop .25s ease-out}@media(prefers-reduced-motion:reduce){.manual-drop.manual-pop{animation:none}}
