:root{color-scheme:light;--ink:#202c25;--muted:#59665c;--accent:#255b45;--accent-soft:#e9efe9;--paper:#f7f8f6;--line:#dce2d9;--danger:#9c352c;--white:#fff;--radius:14px;--space:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-size:15px;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,a{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:10px;min-height:44px;padding:10px 18px;background:var(--white);color:var(--ink);font-weight:600;transition:background .15s ease-out}button:hover{background:var(--accent-soft)}button:disabled{cursor:not-allowed;color:#667167;background:#e8ece5;border-color:#e8ece5}button.primary{background:var(--accent);border-color:var(--accent);color:white}button.primary:hover{background:#1b4734}button.primary:disabled{background:#dce5da;color:#586756;border-color:#dce5da}button.secondary{background:var(--accent-soft);color:var(--accent);border-color:transparent}.danger{color:var(--danger)}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:#163b2b}:focus-visible{outline:3px solid #669780;outline-offset:3px}input,select,textarea{width:100%;min-height:46px;border:1px solid #b9c5b9;border-radius:10px;padding:11px 13px;background:#fff;color:var(--ink);caret-color:var(--accent)}textarea{min-height:100px;resize:vertical}input::placeholder,textarea::placeholder{color:#667168}input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--accent)}label{display:block;font-weight:600;margin-bottom:8px}.field{margin-bottom:18px}.help,.muted{color:var(--muted);font-size:13px}.help{margin:6px 0 0}.error{color:#8c3028;background:#fff0ec;border-radius:10px;padding:14px;margin:16px 0;overflow-wrap:anywhere}h1,h2,h3,p{margin:0}h1{font-size:30px;line-height:1.3;letter-spacing:-.02em}h2{font-size:21px;line-height:1.4}h3{font-size:16px}p{margin-top:10px}::selection{background:#c5d9ca;color:#183d2b}*{scrollbar-color:#aab9aa #f0f3ee;scrollbar-width:thin}[hidden]{display:none!important}main{max-width:1140px;margin:auto;padding:32px 32px 110px}.header{background:#fff}.header-inner{max-width:1204px;margin:auto;min-height:82px;padding:16px 32px;display:flex;gap:24px;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:20px;font-weight:700}.brand-mark{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:var(--accent);color:#fff;border-radius:10px;font-size:19px}.header-right{display:flex;gap:16px;align-items:center}.header-right a{font-size:13px}.row{display:flex;justify-content:space-between;align-items:center;gap:14px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:end;margin:4px 0 28px}.page-heading p{color:var(--muted)}.notice{background:#edf1e8;color:#45583e;border-radius:10px;padding:12px 16px;font-size:13px;margin:16px 0}.section{background:#fff;border-radius:var(--radius);padding:24px;margin:20px 0}.section h2{margin-bottom:20px}.toolbar{display:flex;gap:16px;align-items:center;margin:20px 0}.toolbar input{max-width:380px}.filters{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;scrollbar-width:thin}.filters button{white-space:nowrap;flex-shrink:0;font-weight:500}.filters button.active{background:var(--accent);color:white;border-color:var(--accent)}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:18px}.product-card{background:#fff;border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}.product-card .card-open{display:block;width:100%;text-align:left;padding:0;border:0;border-radius:0;font-weight:400;background:#fff;flex:1}.product-card .card-open:hover{background:#f3f6f0}.product-image{width:100%;height:235px;display:block;object-fit:cover;background:#e7ebe2}.placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#53634f;font-size:12px}.placeholder .material{font-size:34px;font-weight:500;letter-spacing:.08em}.product-card:nth-child(3n+2) .placeholder{background:#e2e8e9;color:#485f64}.product-card:nth-child(3n+3) .placeholder{background:#eae2dd;color:#6b5749}.product-info{padding:18px 20px 20px}.product-info h2{font-size:18px;margin:5px 0 8px}.product-info .price{margin-top:15px}.price{font-weight:700;font-size:23px;color:var(--accent);font-variant-numeric:tabular-nums}.price small{font-size:12px;font-weight:400;color:var(--muted);margin-left:4px}.badge{display:inline-block;border-radius:6px;padding:4px 9px;color:#36523b;background:#eaf0e5;font-size:12px;font-weight:500;white-space:nowrap}.badge.cancelled{color:#626963;background:#edf0ec}.badge.completed{background:#dfeee8}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;z-index:10;border-top:1px solid var(--line);padding:9px 20px calc(9px + env(safe-area-inset-bottom));display:flex;justify-content:center;gap:18px}.bottom-nav button{min-width:140px;border-color:transparent;color:var(--muted);font-weight:500}.bottom-nav button.active{color:var(--accent);background:var(--accent-soft);font-weight:700}.empty{padding:70px 20px;text-align:center;color:var(--muted)}.empty h2{color:var(--ink);margin-bottom:10px}.empty button{margin-top:24px}.loading{padding:60px;text-align:center;color:var(--muted)}.detail-layout{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start;margin-top:22px}.detail-layout>.product-image{height:440px;border-radius:var(--radius)}.detail-layout .price{margin:14px 0}.detail-description{white-space:pre-wrap;line-height:1.85;color:var(--muted);margin:20px 0}.variant-options{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 22px}.variant-options button{font-size:13px;font-weight:500;line-height:1.5;text-align:left}.variant-options button.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.quantity{display:flex;gap:14px;align-items:center}.quantity button{width:42px;padding:6px;flex-shrink:0}.quantity span{min-width:20px;text-align:center;font-variant-numeric:tabular-nums}.actions{display:flex;gap:12px;margin-top:24px}.actions button{flex:1}.cart-line{display:flex;gap:18px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.cart-line:last-child{border:0}.small.product-image{width:100px;height:100px;border-radius:10px;flex-shrink:0}.small.placeholder{font-size:10px}.small.placeholder .material{font-size:22px}.line-info{flex:1;min-width:0}.line-info .price{font-size:18px;margin-top:8px}.line-info h3{overflow-wrap:anywhere}.text-button{min-height:32px;padding:4px 0;border:0;background:transparent;font-size:13px;font-weight:400;text-decoration:underline;text-underline-offset:3px}.cart-summary{max-width:420px;margin-left:auto}.summary-line{display:flex;justify-content:space-between;gap:20px;margin:12px 0}.checkout-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.checkout-layout .section{margin-top:0}.order{margin-top:20px;background:#fff;padding:24px;border-radius:var(--radius)}.order-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.order-number{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.order-items{margin:12px 0 20px}.order-item{display:flex;justify-content:space-between;align-items:start;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.order-total{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:18px 0}.address-text{white-space:pre-wrap;color:var(--muted);font-size:14px;overflow-wrap:anywhere}.note{background:#f3f5f0;padding:12px;border-radius:8px;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:12px}.login-box{max-width:430px;margin:60px auto;background:#fff;border-radius:var(--radius);padding:32px}.login-box h1{margin-bottom:12px}.login-box form{margin-top:30px}.login-box button{width:100%}.admin-nav{display:flex;gap:8px}.admin-nav button{min-width:90px}.admin-nav .active{background:var(--accent-soft);color:var(--accent);border-color:transparent}.admin-product{display:flex;gap:18px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.admin-product:last-child{border-bottom:0}.admin-product .line-info h3{margin-bottom:5px}.admin-product-actions{display:flex;gap:8px;flex-shrink:0}.editor-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:28px;align-items:start}.image-preview{width:100%;max-width:240px;height:200px;object-fit:cover;border-radius:12px;margin-bottom:12px}.upload-label{padding:12px 0}.variant-editor{background:#f4f6f1;padding:16px;border-radius:10px;margin-bottom:12px}.variant-editor .row{gap:10px;align-items:start}.variant-editor .field{flex:1;min-width:0}.variant-editor label{font-size:13px}.editor-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.toggle{display:flex;gap:12px;align-items:center}.toggle label{margin:0}.admin-summary{display:flex;gap:24px;flex-wrap:wrap;color:var(--muted);margin:12px 0 20px}.admin-summary strong{color:var(--ink);font-weight:700}.upload-status{font-size:13px;color:var(--muted);min-height:24px}#toast{position:fixed;z-index:100;bottom:100px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:14px 22px;background:#213f30;color:#fff;border-radius:12px;box-shadow:0 8px 24px #1d2e2426;font-size:14px}#toast.is-error{background:#8c3028}.back{margin-bottom:24px}.count{font-size:12px;background:#d4e5d8;border-radius:5px;padding:1px 6px;margin-left:4px;color:#244c34}dialog{border:0;border-radius:14px;padding:28px;max-width:min(460px,calc(100vw - 32px));color:var(--ink)}dialog::backdrop{background:#182a2360}dialog p{margin:16px 0 24px}dialog .actions{justify-content:flex-end}dialog .actions button{flex:initial}
@media(min-width:1000px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.order-list{display:grid;grid-template-columns:1fr 1fr;gap:20px}.order-list .order{margin:0}.order-list{margin-top:20px}}
@media(max-width:700px){main{padding:24px 18px 110px}.header-inner{padding:14px 18px;min-height:72px;gap:10px}.brand{font-size:18px}.header-right{gap:8px}.header-right .muted{display:none}h1{font-size:26px}.page-heading{align-items:start;gap:14px}.page-heading p{font-size:13px}.page-heading button{padding:10px 13px;white-space:nowrap}.product-grid{grid-template-columns:1fr 1fr;gap:12px}.product-image{height:184px}.product-info{padding:14px 12px}.product-info h2{font-size:15px;min-height:48px}.product-info .muted{font-size:12px}.product-info .price{font-size:21px}.product-info .row{gap:6px;flex-wrap:wrap}.placeholder .material{font-size:28px}.toolbar{display:block;margin-top:20px}.toolbar input{max-width:none}.filters{margin-top:12px}.filters button{font-size:13px;padding:8px 12px}.bottom-nav{gap:8px;padding-left:12px;padding-right:12px}.bottom-nav button{min-width:0;flex:1;padding:9px 7px;max-width:180px}.section{padding:18px}.detail-layout{grid-template-columns:1fr;gap:24px}.detail-layout>.product-image{height:320px}.checkout-layout{grid-template-columns:1fr;gap:0}.cart-line{gap:12px;flex-wrap:wrap}.cart-line .small{width:72px;height:80px}.cart-line .quantity{margin-left:auto}.cart-summary{max-width:none}.order{padding:18px}.order-head{align-items:start}.order-total .price{font-size:22px}.header-right a{font-size:12px}.admin-product{gap:12px;flex-wrap:wrap}.admin-product .small{width:74px;height:84px}.admin-product-actions{width:100%;justify-content:flex-end}.editor-layout{grid-template-columns:1fr;gap:0}.editor-layout>.section{margin:0 0 20px}.admin-nav{gap:4px}.admin-nav button{min-width:0;padding:8px 13px}.admin-header .brand{font-size:16px}.admin-header .brand-mark{width:30px;height:30px;font-size:16px}.admin-header .header-inner{flex-wrap:wrap}.admin-summary{gap:12px;font-size:13px}.login-box{margin:28px auto;padding:24px}.variant-editor{padding:12px}.editor-footer{position:sticky;bottom:0;background:var(--paper);padding:12px 0 calc(12px + env(safe-area-inset-bottom))}.editor-footer button{flex:1}.address-text{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
