:root{--ink:#17342f;--muted:#647a74;--primary:#087d63;--primary-deep:#075d4e;--accent:#f2b94b;--bg:#f3f8f6;--surface:#fff;--line:#dfeae6;--danger:#bd3b43;--success:#087d63;--shadow:0 12px 34px rgba(25,67,56,.1);--radius:22px;font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#e7f4ef 0,#f3f8f6 300px);min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.skip{position:fixed;z-index:30;top:8px;left:8px;translate:0 -150%;background:#fff;padding:10px;border-radius:8px}.skip:focus{translate:0}.user-shell{width:min(100%,520px);min-height:100vh;margin:auto;position:relative;padding-bottom:92px}.user-header{height:82px;padding:calc(14px + env(safe-area-inset-top)) 20px 10px;display:flex;align-items:center;justify-content:space-between}.location{border:0;background:transparent;text-align:left;padding:5px 0;min-height:48px;color:var(--ink)}.eyebrow{display:block;color:var(--muted);font-size:12px;margin-bottom:3px}.location strong{font-size:16px}.icon-button{width:46px;height:46px;border:1px solid rgba(255,255,255,.8);border-radius:15px;background:rgba(255,255,255,.76);display:grid;place-items:center;color:var(--ink);box-shadow:0 5px 16px rgba(25,67,56,.07)}.icon-button svg,.bottom-nav svg,.service-icon svg,.mini-icon svg,.row-icon svg,.empty svg{width:22px;height:22px;stroke-width:1.8}.unread{position:relative}.unread:after{content:"";position:absolute;right:10px;top:9px;width:7px;height:7px;border-radius:50%;background:#e35555;border:2px solid #fff}main{padding:4px 18px 24px}.hero{background:linear-gradient(140deg,#0b725c,#0aa177);border-radius:28px;padding:24px 22px;color:#fff;box-shadow:0 20px 40px rgba(8,125,99,.2);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:160px;height:160px;border:28px solid rgba(255,255,255,.08);border-radius:50%;right:-65px;top:-74px}.hero .eyebrow{color:#c9f7e9}.hero h1{font-size:27px;line-height:1.2;margin:7px 0}.hero p{font-size:13px;color:#d7fff2;margin:0 0 20px}.scan-button{min-height:50px;border:0;border-radius:15px;background:#fff;color:var(--primary-deep);font-weight:700;padding:0 18px;display:inline-flex;gap:10px;align-items:center;position:relative;z-index:1}.scan-button svg{width:20px}.section-head{display:flex;justify-content:space-between;align-items:center;margin:26px 2px 12px}.section-head h2{font-size:17px;margin:0}.text-button{border:0;background:transparent;color:var(--primary);min-height:44px;padding:0 4px;font-size:13px}.active-card{background:#173f39;color:#fff;border-radius:22px;padding:18px;box-shadow:var(--shadow)}.active-top,.active-bottom,.card-row,.site-row,.reservation-top,.profile-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.active-card small{color:#bdd6cf}.active-card h2{font:700 31px/1.1 ui-monospace,monospace;margin:9px 0}.active-meta{display:flex;gap:20px}.active-meta strong,.active-meta small{display:block}.active-meta strong{margin-top:3px}.solid-button,.outline-button,.danger-button{min-height:46px;border-radius:14px;padding:0 17px;font-weight:650}.solid-button{border:0;background:var(--primary);color:#fff}.active-card .solid-button{background:#40d1a5;color:#083f34}.outline-button{border:1px solid var(--line);background:#fff;color:var(--ink)}.danger-button{border:1px solid #f0c9cc;background:#fff6f6;color:var(--danger)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.service-card{border:1px solid #e4eeea;background:var(--surface);border-radius:19px;padding:16px 8px;text-align:center;min-height:132px;color:var(--ink);transition:.2s ease}.service-card:active,.site-card:active{filter:brightness(.96)}.service-icon{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 10px;border-radius:15px;background:#e4f5ef;color:var(--primary)}.service-card:nth-child(2) .service-icon{background:#eaf1fb;color:#3b6fa7}.service-card:nth-child(3) .service-icon{background:#fff3de;color:#a96810}.service-card strong,.service-card small{display:block}.service-card strong{font-size:14px}.service-card small{font-size:11px;color:var(--muted);margin-top:5px}.site-card,.list-card,.profile-card{display:block;width:100%;border:1px solid #e2ece8;background:var(--surface);border-radius:19px;padding:15px;margin-bottom:10px;text-align:left;color:var(--ink)}.mini-icon,.row-icon{width:44px;height:44px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:#edf6f3;color:var(--primary)}.site-copy{flex:1;min-width:0}.site-copy strong,.site-copy small{display:block}.site-copy strong{font-size:14px}.site-copy small{font-size:11px;color:var(--muted);margin-top:4px}.stock{text-align:right}.stock b,.stock small{display:block}.stock b{font:700 13px ui-monospace;color:var(--primary)}.stock small{font-size:10px;color:var(--muted);margin-top:3px}.chips{display:flex;gap:8px;overflow:auto;padding:2px 0 14px;scrollbar-width:none}.chip{white-space:nowrap;min-height:40px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--muted);padding:0 15px}.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.page-title{margin:5px 2px 18px}.page-title .eyebrow{color:var(--primary)}.page-title h1{font-size:26px;margin:4px 0}.page-title p{color:var(--muted);font-size:13px;margin:0}.map-card{height:205px;border-radius:24px;background:linear-gradient(135deg,#dcece6,#eef5f2);position:relative;margin-bottom:16px;overflow:hidden;border:1px solid #dce8e3}.map-card:before,.map-card:after{content:"";position:absolute;background:#c9ddd6}.map-card:before{width:130%;height:18px;left:-20px;top:90px;rotate:-18deg}.map-card:after{width:18px;height:130%;left:55%;top:-20px;rotate:22deg}.pin{position:absolute;z-index:2;width:34px;height:34px;border:4px solid #fff;border-radius:50% 50% 50% 0;background:var(--primary);rotate:-45deg;box-shadow:0 7px 12px rgba(17,75,61,.22)}.pin:nth-child(1){left:20%;top:32%}.pin:nth-child(2){left:57%;top:55%;background:#3b6fa7}.pin:nth-child(3){right:16%;top:24%;background:#d19331}.form-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px}.form-field{display:block;margin-bottom:15px}.form-field span{display:block;font-size:13px;font-weight:650;margin-bottom:7px}.field{width:100%;height:48px;border:1px solid #d7e5df;border-radius:13px;background:#fbfdfc;color:var(--ink);padding:0 13px;font-size:16px}.field:focus{outline:3px solid rgba(8,125,99,.16);border-color:var(--primary)}.helper{font-size:11px;color:var(--muted);margin:-7px 0 16px}.full{width:100%}.segmented{display:grid;grid-template-columns:repeat(2,1fr);background:#e8efec;border-radius:13px;padding:4px;margin-bottom:16px}.segmented button{min-height:42px;border:0;border-radius:10px;background:transparent;color:var(--muted)}.segmented button.active{background:#fff;color:var(--ink);font-weight:650;box-shadow:0 3px 10px rgba(20,60,51,.08)}.badge{padding:5px 9px;border-radius:999px;background:#e5f5ef;color:var(--primary);font-size:11px;font-weight:650}.badge.warning{background:#fff1d7;color:#96620f}.badge.neutral{background:#eef1f0;color:#61706c}.list-card h3{font-size:15px;margin:13px 0 5px}.list-card p{font-size:12px;color:var(--muted);margin:0}.list-card .card-row+div{border-top:1px solid var(--line);margin-top:13px;padding-top:13px}.empty{text-align:center;padding:55px 20px;color:var(--muted)}.empty span{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:#e7f1ed;color:var(--primary);margin:auto}.empty h2{color:var(--ink);font-size:18px}.profile-top{align-items:flex-start}.avatar{width:58px;height:58px;border-radius:20px;background:linear-gradient(145deg,#0a8569,#38bd96);color:#fff;display:grid;place-items:center;font-weight:700;font-size:20px}.profile-name{flex:1}.profile-name h2{margin:4px 0}.profile-name p{color:var(--muted);font-size:12px;margin:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);margin:18px 0 3px;border-top:1px solid var(--line);padding-top:16px;text-align:center}.stats b,.stats small{display:block}.stats b{font-size:18px}.stats small{font-size:10px;color:var(--muted);margin-top:3px}.menu-row{min-height:58px;display:flex;align-items:center;gap:12px;border:0;background:#fff;width:100%;padding:7px 3px;color:var(--ink);text-align:left}.menu-row+.menu-row{border-top:1px solid var(--line)}.menu-row span:nth-child(2){flex:1}.bottom-nav{position:fixed;z-index:10;bottom:0;left:50%;translate:-50%;width:min(100%,520px);height:calc(76px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-top:1px solid rgba(211,226,220,.8);display:grid;grid-template-columns:1fr 1fr 76px 1fr 1fr;padding:7px 12px env(safe-area-inset-bottom)}.bottom-nav button{border:0;background:transparent;color:#778984;font-size:10px;min-width:48px;min-height:48px}.bottom-nav button>span{display:grid;place-items:center;margin:auto auto 3px}.bottom-nav button.active{color:var(--primary);font-weight:650}.bottom-nav .scan-tab{width:62px;height:62px;min-height:62px;border-radius:21px;background:var(--primary);color:#fff;translate:7px -21px;box-shadow:0 10px 24px rgba(8,125,99,.3)}.bottom-nav .scan-tab span{margin:0}.bottom-nav .scan-tab svg{width:27px;height:27px}.sheet-layer{position:fixed;z-index:20;inset:0;background:rgba(9,30,25,.5);display:none;align-items:flex-end;justify-content:center;padding:12px}.sheet-layer.open{display:flex}.sheet{width:min(100%,500px);max-height:90dvh;overflow:auto;background:#fff;border-radius:28px 28px 18px 18px;padding:12px 20px calc(22px + env(safe-area-inset-bottom));animation:sheetIn .24s ease}.sheet-handle{width:42px;height:5px;border-radius:9px;background:#d5dfdb;margin:0 auto 18px}.sheet-head{display:flex;align-items:center;justify-content:space-between}.sheet-head h2{font-size:20px;margin:0}.scan-visual{height:240px;border-radius:24px;background:#102e29;color:#69e5be;display:grid;place-items:center;margin:20px 0;position:relative;overflow:hidden}.scan-visual svg{width:105px;height:105px}.scan-line{position:absolute;width:74%;height:2px;background:#72e9c3;box-shadow:0 0 14px #72e9c3;animation:scan 1.7s ease-in-out infinite}.receipt{background:#f4f8f6;border-radius:17px;padding:14px;margin:16px 0}.receipt div{display:flex;justify-content:space-between;padding:8px 0;font-size:13px}.receipt div+div{border-top:1px dashed #ceddd7}.toast-region{position:fixed;z-index:40;top:calc(14px + env(safe-area-inset-top));left:50%;translate:-50%;width:min(90%,440px)}.toast{background:#173f39;color:#fff;padding:13px 15px;border-radius:14px;box-shadow:var(--shadow);font-size:13px;margin-bottom:8px;animation:toastIn .22s ease}.skeleton{height:82px;border-radius:18px;background:linear-gradient(90deg,#e7efec 25%,#f4f8f6 45%,#e7efec 65%);background-size:300% 100%;animation:shimmer 1.2s infinite}.desktop-back{display:none}
main:focus{outline:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(8,125,99,.3);outline-offset:2px}button:disabled{opacity:.55;cursor:not-allowed}@keyframes scan{0%,100%{translate:0 -75px}50%{translate:0 75px}}@keyframes sheetIn{from{translate:0 30px;opacity:0}}@keyframes toastIn{from{translate:0 -12px;opacity:0}}@keyframes shimmer{to{background-position:-300% 0}}@media(min-width:760px){body{padding:28px}.user-shell{min-height:calc(100vh - 56px);border-radius:34px;background:var(--bg);box-shadow:0 25px 70px rgba(18,58,49,.15);overflow:hidden}.bottom-nav{bottom:28px;border-radius:0 0 34px 34px}.desktop-back{display:block;position:fixed;left:24px;top:24px;color:var(--ink);text-decoration:none;background:#fff;padding:12px 15px;border-radius:13px;box-shadow:var(--shadow);font-size:13px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
