:root{color:#20252c;font-synthesis:none;--primary:#f16b35;--primary-soft:#fff2e9;--surface:#f5f6f8;--muted:#737985;--border:#e9ebef;--positive:#228354;--danger:#b6382c;background:#f4f5f7;font-family:Noto Sans SC,Microsoft YaHei,system-ui,sans-serif;font-size:14px;font-weight:400;line-height:1.6}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #ffb996}button:disabled{cursor:not-allowed;opacity:.5}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2{font-size:24px;font-weight:600;line-height:1.4}h3{font-size:16px;font-weight:600;line-height:1.5}p+p{margin-top:8px}.app{background:#fff;max-width:480px;min-height:100dvh;margin:0 auto}.page-header{z-index:20;background:#fff;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:8px;height:76px;padding:16px;display:flex;position:sticky;top:0}.page-header h1{font-size:16px}.header-space{width:44px}.icon-button{background:0 0;border:0;border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.brand{letter-spacing:-1px;white-space:nowrap;font-size:24px;font-weight:600}.brand span{color:var(--primary)}.avatar-link{background:var(--surface);border-radius:50%;flex-shrink:0;place-items:center;width:40px;height:40px;display:inline-grid}.page{flex-direction:column;gap:20px;padding:0 16px 112px;display:flex}.bottom-nav{width:min(100%,480px);height:calc(72px + env(safe-area-inset-bottom));padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);z-index:30;background:#fffffffa;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav a{min-height:48px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12px;display:flex}.bottom-nav a.active{color:var(--primary);font-weight:600}.button{border:1px solid var(--primary);background:var(--primary);color:#fff;text-align:center;border-radius:12px;justify-content:center;align-items:center;width:100%;min-height:48px;padding:12px 16px;font-weight:600;transition:background .16s;display:flex}.button:hover:not(:disabled){background:#dc5d28}.button.secondary{border-color:var(--border);color:#414854;background:#fff}.button.secondary:hover:not(:disabled){background:var(--surface)}.text-link{min-height:32px;color:var(--primary);text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}.accent{color:var(--primary)}.positive{color:var(--positive)}.break{word-break:break-all}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}.row>*{min-width:0}.section{border-top:1px solid var(--border);flex-direction:column;gap:12px;padding-top:20px;display:flex}.hero{background-color:var(--primary-soft);background-image:url(/api/v1/shop/media/catalog-strip.png);background-position:0;background-size:300%;border-radius:16px;flex-direction:column;justify-content:center;height:136px;min-height:136px;padding:24px 16px;display:flex;overflow:hidden}.hero h1{letter-spacing:-.5px;color:var(--primary);text-shadow:0 1px 1px #fff;font-size:24px}.hero p{color:#535a63;margin-top:8px;font-size:16px}.balance-strip{background:var(--surface);border-radius:16px;grid-template-columns:repeat(3,1fr);padding:20px 0;display:grid}.balance-strip a{border-right:1px solid #e1e4e9;flex-direction:column;gap:8px;min-width:0;padding:0 12px;display:flex}.balance-strip a:last-child{border:0}.balance-strip span{color:var(--muted);font-size:12px}.balance-strip strong{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:24px;font-weight:600;line-height:1.3;overflow:hidden}.segmented{background:var(--surface);border-radius:12px;gap:4px;padding:4px;display:flex}.segmented button{color:#20252c;background:0 0;border:0;border-radius:10px;flex:1;min-height:44px;font-weight:600}.segmented button.selected{background:var(--primary);color:#fff}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.product-tile{border:1px solid var(--border);border-radius:14px;overflow:hidden}.catalog-photo,.product-image{aspect-ratio:1;object-fit:cover;background-image:url(/api/v1/shop/media/catalog-strip.png);background-repeat:no-repeat;background-size:300% 100%;background-color:var(--primary-soft);width:100%}.course-photo{background-position:50%}.goods-photo{background-position:100%}.product-copy{flex-direction:column;gap:8px;padding:12px;display:flex}.product-copy h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:48px;font-size:16px;line-height:1.5;display:-webkit-box;overflow:hidden}.product-copy .small{line-height:1.5}.product-copy p{margin:0}.price{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.price strong{color:var(--primary);font-variant-numeric:tabular-nums;font-size:24px;font-weight:600}.price span{color:var(--muted);font-size:12px}.tile-action{min-height:44px;margin-top:8px;padding:10px 8px}.shipping-notice{background:var(--surface);border-radius:16px;align-items:center;gap:16px;padding:20px 16px;display:flex}.shipping-icon,.soft-icon{background:var(--primary-soft);width:48px;height:48px;color:var(--primary);border-radius:50%;flex-shrink:0;place-items:center;display:inline-grid}.shipping-notice strong{font-size:14px}.shipping-notice p{color:var(--muted);margin-top:6px;font-size:12px}.home-links{grid-template-columns:1fr 1fr;gap:16px;display:grid}.home-links a{align-items:center;gap:8px;min-height:44px;font-size:12px;display:flex}.home-links a svg:last-child{margin-left:auto}.product-detail{flex-direction:column;gap:12px;display:flex}.product-detail>.catalog-photo,.product-detail>.product-image{border-radius:16px;max-height:400px}.product-detail h2{font-size:24px}.prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9}.sticky-action{background:#fff;padding:12px 0;position:sticky;bottom:80px}.notice{background:var(--primary-soft);color:#78513b;border-radius:12px;padding:16px;font-size:12px;line-height:1.8}.notice.error{color:var(--danger);background:#fff1ee;border:1px solid #f6d2ca}.notice p+button{margin-top:8px}.form-stack{flex-direction:column;gap:20px;display:flex}.field{flex-direction:column;gap:8px;font-size:14px;font-weight:600;display:flex}.field input,.field textarea,.field select{color:#20252c;background:#fff;border:1px solid #dfe2e7;border-radius:10px;width:100%;min-height:48px;padding:12px;font-size:16px;font-weight:400}.field textarea{resize:vertical;min-height:96px}.field .error-text{color:var(--danger);font-size:12px;font-weight:400}.auth-intro{flex-direction:column;gap:12px;padding:12px 0 8px;display:flex}.auth-intro p{color:var(--muted)}.captcha-row{align-items:center;gap:12px;display:flex}.captcha-row input{flex:1;min-width:0}.captcha{background:var(--primary-soft);border:0;border-radius:8px;min-width:130px;height:48px;padding:0;overflow:hidden}.captcha img{width:130px;height:48px}.loading{color:var(--muted);place-items:center;padding:48px 16px;font-size:14px;display:grid}.empty{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:180px;padding:48px 12px;display:flex}.empty svg{color:#c6cbd3}.task-heading{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:16px 0;display:flex}.task-heading p{color:var(--muted)}.progress-list{grid-template-columns:1fr 1fr;gap:16px;display:grid}.progress-list>div{background:var(--surface);border-radius:12px;grid-template-columns:24px 1fr;gap:6px 8px;padding:16px 12px;display:grid}.progress-list svg{color:var(--primary);grid-row:span 2;width:20px;margin-top:2px}.progress-list span{color:var(--muted);font-size:12px}.progress-list strong{font-weight:600}.progress-track{background:var(--surface);border-radius:8px;height:8px;overflow:hidden}.progress-track span{background:var(--primary);border-radius:8px;height:100%;display:block}.order-summary{background:var(--surface);border-radius:16px;flex-direction:column;gap:8px;padding:20px;display:flex}.order-summary h2{font-size:16px}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.slot{background:var(--surface);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:16px 8px;display:flex;overflow:hidden}.slot svg{color:var(--primary);margin-bottom:4px}.slot strong{text-overflow:ellipsis;max-width:100%;font-size:14px;overflow:hidden}.slot span,.slot small{color:var(--muted);font-size:12px}.checkbox-line{color:var(--muted);align-items:flex-start;gap:10px;font-size:12px;display:flex}.checkbox-line input{width:20px;height:20px;accent-color:var(--primary);flex-shrink:0;margin:0}.scroll-tabs{scrollbar-width:none;gap:8px;display:flex;overflow:auto}.scroll-tabs button{white-space:nowrap;background:var(--surface);min-height:44px;color:var(--muted);border:0;border-radius:8px;padding:10px 16px}.scroll-tabs button.selected{color:var(--primary);background:var(--primary-soft);font-weight:600}.order-tile{border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;padding:20px 16px;display:flex}.order-tile strong{font-weight:600}.order-tile>.row>strong:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.order-status{background:var(--primary-soft);border-radius:16px;padding:24px 20px}.order-status h2{color:var(--primary)}.order-status p{color:var(--muted);margin-top:8px;font-size:12px}.detail-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}summary{cursor:pointer;padding:12px 0}.member-heading{align-items:center;gap:12px;padding:16px 0;display:flex}.member-heading h2{font-size:16px}.member-heading p{margin-top:4px;font-size:12px}.member-heading>.text-link{flex-shrink:0;margin-left:auto}.member-heading>img,.avatar-large{object-fit:cover;background:var(--primary-soft);width:64px;height:64px;color:var(--primary);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.menu-section{padding-top:0}.menu-link{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:16px 0;display:flex}.menu-link:last-child{border:0}.menu-link span{flex-direction:column;gap:4px;display:flex}.menu-link small{color:var(--muted);font-size:12px}.menu-link svg{color:var(--muted)}.ledger-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:16px 0;display:flex}.ledger-row>div{flex:1;min-width:0}.ledger-row strong{overflow-wrap:anywhere;font-size:12px;font-weight:600;display:block}.ledger-row p{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.5}.ledger-row b{font-variant-numeric:tabular-nums;white-space:nowrap}.small-icon{width:36px;height:36px}.compact-select{border:1px solid var(--border);width:auto;max-width:144px;min-height:44px;color:var(--muted);background:#fff;border-radius:8px;padding:6px 12px}.team-stats{background:var(--surface);border-radius:16px;grid-template-columns:1fr 1fr;padding:24px;display:grid}.team-stats div{text-align:center;flex-direction:column;gap:8px;display:flex}.team-stats span{color:var(--muted);font-size:12px}.team-stats strong{font-size:24px}.team-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 0;display:flex}.team-row>div{flex:1;min-width:0}.team-row strong{font-size:14px}.team-row p{margin-top:4px}.invite-poster{background:var(--primary-soft);text-align:center;border-radius:20px;flex-direction:column;align-items:center;gap:16px;padding:32px 20px;display:flex}.invite-poster h2{font-size:24px}.invite-qr{background:#fff;border-radius:12px;width:240px;max-width:100%;padding:8px}.pagination{justify-content:space-between;align-items:center;gap:12px;padding-top:16px;display:flex}.pagination .button{width:auto;min-height:44px;font-size:12px}.pagination span{color:var(--muted);white-space:nowrap;font-size:12px}.instructions{color:var(--muted);flex-direction:column;gap:16px;padding-left:20px;display:flex}.instructions svg{vertical-align:middle;margin-right:8px;display:inline-block}.modal-backdrop{z-index:50;background:#20252c70;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:20px;flex-direction:column;gap:16px;width:min(100%,400px);max-height:85dvh;padding:24px;display:flex;overflow:auto}.modal h2{font-size:16px}.modal img{border-radius:12px}@media (width>=768px){.app{border:1px solid var(--border);min-height:calc(100dvh - 64px);margin:32px auto}.page-header{top:0}.bottom-nav{border-left:1px solid var(--border);border-right:1px solid var(--border)}}@media (width<=360px){.balance-strip strong{font-size:16px}.hero h1{font-size:22px}.product-copy{padding:10px}.price strong{font-size:22px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.profile-preview{object-fit:cover;border-radius:50%;width:96px;height:96px}.hero h1{max-width:220px;font-size:22px;line-height:1.45}.hero p{font-size:14px}.product-grid.single{grid-template-columns:1fr}.product-grid.single .product-tile>a{grid-template-columns:44% 56%;min-height:240px;display:grid}.product-grid.single .catalog-photo,.product-grid.single .product-image{aspect-ratio:auto;object-fit:cover;background-size:300% 100%;height:100%}.product-grid.single .product-copy{gap:10px;padding:16px}.product-grid.single .product-copy h3{min-height:0}.product-grid.single .tile-action{margin-top:auto}dialog.modal{border:0;max-width:min(90vw,420px);margin:auto}dialog.modal::backdrop{background:#1f171173}
