:root{--c-bg:#fff;--c-surface:#f5f8fb;--c-surface-2:#eaf1f7;--c-border:#d5dfe9;--c-text:#14202e;--c-muted:#4d5e70;--c-navy:#0f2a4a;--c-navy-2:#183d66;--c-teal:#0b7f7a;--c-teal-2:#0e9f9a;--c-teal-soft:#e3f4f3;--c-warn-bg:#fff6e0;--c-warn-border:#f0c75e;--c-warn-text:#6a4a00;--c-danger:#b42318;--c-danger-bg:#fdecea;--c-ok:#146c43;--c-ok-bg:#e6f4ec;--c-focus:#0b7f7a;--radius:10px;--radius-sm:6px;--shadow:0 1px 2px #0f2a4a0f, 0 4px 16px #0f2a4a0f;--font:system-ui, -apple-system, "Segoe UI", "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", "Heiti TC", sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--container:1120px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--c-bg);color:var(--c-text);font-family:var(--font);flex-direction:column;min-height:100vh;margin:0;font-size:16px;line-height:1.7;display:flex}main{flex:1}img{max-width:100%;height:auto;display:block}a{color:var(--c-teal);text-underline-offset:3px}a:hover{color:var(--c-teal-2)}:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px;border-radius:4px}h1,h2,h3{color:var(--c-navy);margin:0 0 .6em;line-height:1.35}h1{letter-spacing:.01em;font-size:clamp(1.6rem,3.2vw + 1rem,2.4rem)}h2{font-size:clamp(1.25rem,1.2vw + 1rem,1.6rem)}h3{font-size:1.1rem}p{margin:0 0 1em}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 16px}.skip-link{background:var(--c-navy);color:#fff;border-radius:var(--radius-sm);z-index:100;padding:8px 14px;position:absolute;top:8px;left:-999px}.skip-link:focus{left:8px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.site-header{background:var(--c-bg);border-bottom:1px solid var(--c-border);z-index:20;position:sticky;top:0}.site-header .bar{align-items:center;gap:12px;min-height:64px;display:flex}.brand{color:var(--c-navy);align-items:center;gap:10px;margin-right:auto;font-size:1.05rem;font-weight:700;text-decoration:none;display:flex}.brand-mark{background:linear-gradient(135deg, var(--c-navy) 0%, var(--c-teal) 100%);color:#fff;border-radius:8px;flex:none;place-items:center;width:34px;height:34px;font-size:.95rem;display:grid}.brand small{color:var(--c-muted);letter-spacing:.02em;font-size:.72rem;font-weight:500;display:block}.nav-desktop{gap:4px;display:none}.nav-desktop a,.nav-mobile a{color:var(--c-text);border-radius:var(--radius-sm);padding:8px 12px;font-weight:500;text-decoration:none}.nav-desktop a:hover,.nav-mobile a:hover{background:var(--c-surface);color:var(--c-navy)}.cart-link{color:var(--c-navy);border:1px solid var(--c-border);border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:8px 12px;font-weight:600;text-decoration:none;display:inline-flex}.cart-count{background:var(--c-teal);color:#fff;border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 6px;font-size:.78rem;display:inline-grid}.nav-mobile{position:relative}.nav-mobile summary{cursor:pointer;border:1px solid var(--c-border);border-radius:var(--radius-sm);place-items:center;min-width:44px;min-height:44px;list-style:none;display:grid}.nav-mobile summary::-webkit-details-marker{display:none}.nav-mobile[open] .menu{background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;min-width:200px;padding:8px;display:flex;position:absolute;top:52px;right:0}@media (min-width:900px){.nav-desktop{display:flex}.nav-mobile{display:none}}.notice{border:1px solid var(--c-warn-border);background:var(--c-warn-bg);color:var(--c-warn-text);border-radius:var(--radius);margin:16px 0;padding:12px 16px;font-size:.95rem}.notice.info{border-color:var(--c-border);background:var(--c-surface);color:var(--c-text)}.notice.ok{border-color:var(--c-ok);background:var(--c-ok-bg);color:var(--c-ok)}.notice.error{border-color:var(--c-danger);background:var(--c-danger-bg);color:var(--c-danger)}.site-banner{background:var(--c-teal-soft);color:var(--c-navy);border-bottom:1px solid var(--c-border);text-align:center;padding:6px 16px;font-size:.88rem}.hero{background:linear-gradient(160deg, var(--c-surface) 0%, var(--c-teal-soft) 100%);border-bottom:1px solid var(--c-border);padding:48px 0 40px}.hero p.lead{color:var(--c-muted);max-width:640px;font-size:1.08rem}.hero .actions{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.btn{border-radius:var(--radius-sm);min-height:44px;font:inherit;cursor:pointer;background:var(--c-teal);color:#fff;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--c-teal-2);color:#fff}.btn.secondary{border-color:var(--c-navy);color:var(--c-navy);background:0 0}.btn.secondary:hover{background:var(--c-surface)}.btn.ghost{color:var(--c-teal);border-color:var(--c-border);background:0 0}.btn.danger{background:var(--c-danger)}.btn.small{min-height:36px;padding:6px 12px;font-size:.9rem}.btn[disabled],.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.section{padding-top:40px;padding-bottom:40px}.section.alt{background:var(--c-surface)}.grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:16px;display:grid}.card{background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card h3{margin-bottom:.4em}.product-card{color:inherit;flex-direction:column;padding:0;text-decoration:none;display:flex;overflow:hidden}.product-card .thumb{aspect-ratio:4/3;background:var(--c-surface-2);color:var(--c-muted);place-items:center;font-size:.85rem;display:grid}.product-card .thumb img{object-fit:cover;width:100%;height:100%}.product-card .body{flex-direction:column;gap:4px;padding:14px 16px 18px;display:flex}.product-card .name{color:var(--c-navy);font-weight:600}.price{color:var(--c-navy);font-variant-numeric:tabular-nums;font-weight:700}.badge{border:1px solid var(--c-border);color:var(--c-muted);background:var(--c-surface);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.78rem;display:inline-block}.badge.ok{color:var(--c-ok);border-color:var(--c-ok);background:var(--c-ok-bg)}.badge.warn{color:var(--c-warn-text);border-color:var(--c-warn-border);background:var(--c-warn-bg)}.badge.danger{color:var(--c-danger);border-color:var(--c-danger);background:var(--c-danger-bg)}.empty-state{text-align:center;border:1px dashed var(--c-border);border-radius:var(--radius);background:var(--c-surface);color:var(--c-muted);padding:48px 16px}.catalog{gap:24px;display:grid}@media (min-width:900px){.catalog{grid-template-columns:220px 1fr}}.filters{flex-direction:column;gap:12px;display:flex}.filters .cats{flex-wrap:wrap;gap:8px;display:flex}.filters .cats a{border:1px solid var(--c-border);color:var(--c-text);border-radius:999px;padding:6px 12px;font-size:.92rem;text-decoration:none}.filters .cats a[aria-current=page]{background:var(--c-navy);border-color:var(--c-navy);color:#fff}.toolbar{flex-wrap:wrap;align-items:end;gap:8px;margin-bottom:16px;display:flex}.pagination{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:24px;display:flex}.pagination a,.pagination span{border:1px solid var(--c-border);border-radius:var(--radius-sm);place-items:center;min-width:44px;min-height:44px;text-decoration:none;display:inline-grid}.pagination [aria-current=page]{background:var(--c-navy);color:#fff;border-color:var(--c-navy)}.pdp{gap:28px;display:grid}@media (min-width:900px){.pdp{grid-template-columns:1.1fr 1fr}}.gallery-main{aspect-ratio:4/3;background:var(--c-surface-2);border-radius:var(--radius);color:var(--c-muted);place-items:center;display:grid;overflow:hidden}.gallery-main img{object-fit:contain;background:var(--c-surface);width:100%;height:100%}.gallery-thumbs{gap:8px;margin-top:8px;display:flex;overflow-x:auto}.gallery-thumbs img{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--c-border);width:72px;height:72px}.spec-table{border-collapse:collapse;width:100%;font-size:.95rem}.spec-table th,.spec-table td{text-align:left;border-bottom:1px solid var(--c-border);vertical-align:top;padding:8px 10px}.spec-table th{width:34%;color:var(--c-muted);font-weight:500}.form{gap:16px;display:grid}.field{gap:6px;display:grid}.field label,.field .label{font-size:.95rem;font-weight:600}.field .hint{color:var(--c-muted);font-size:.85rem}.field .err{color:var(--c-danger);font-size:.85rem}input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=search],input[type=datetime-local],input[type=file],select,textarea{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--c-border);background:var(--c-bg);width:100%;min-height:44px;color:var(--c-text);padding:10px 12px}textarea{resize:vertical;min-height:120px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--c-focus);outline-offset:1px}.check{align-items:flex-start;gap:10px;display:flex}.check input{flex:none;width:20px;height:20px;margin-top:4px}.row-2{gap:16px;display:grid}@media (min-width:640px){.row-2{grid-template-columns:1fr 1fr}}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.cart-line{border-bottom:1px solid var(--c-border);grid-template-columns:64px 1fr;gap:12px;padding:14px 0;display:grid}.cart-line .thumb{border-radius:var(--radius-sm);background:var(--c-surface-2);width:64px;height:64px;overflow:hidden}.cart-line .thumb img{object-fit:cover;width:100%;height:100%}.qty{border:1px solid var(--c-border);border-radius:var(--radius-sm);align-items:center;display:inline-flex}.qty button{cursor:pointer;min-width:40px;min-height:40px;color:var(--c-text);background:0 0;border:0;font-size:1.1rem}.qty output{text-align:center;font-variant-numeric:tabular-nums;min-width:32px}.summary{gap:6px;display:grid}.summary .line{font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;display:flex}.summary .total{color:var(--c-navy);border-top:1px solid var(--c-border);padding-top:8px;font-size:1.15rem;font-weight:700}.two-col{gap:24px;display:grid}@media (min-width:960px){.two-col{grid-template-columns:1fr 360px;align-items:start}}.prose{max-width:760px}.prose h2{margin-top:1.6em;font-size:1.2rem}.prose ul,.prose ol{padding-left:1.4em}.prose li{margin:.3em 0}.meta{color:var(--c-muted);font-size:.9rem}.site-footer{background:var(--c-surface);color:var(--c-text);border-top:1px solid var(--c-border);margin-top:48px;padding:36px 0 24px;font-size:.92rem}.site-footer a{color:var(--c-teal)}.site-footer h2{color:var(--c-navy);margin-bottom:.6em;font-size:1rem}.site-footer .cols{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:24px;display:grid}.site-footer ul{margin:0;padding:0;list-style:none}.site-footer li{margin:4px 0}.site-footer .legal{border-top:1px solid var(--c-border);color:var(--c-muted);margin-top:24px;padding-top:16px}.table-wrap{border:1px solid var(--c-border);border-radius:var(--radius);overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:.92rem}table.data th,table.data td{border-bottom:1px solid var(--c-border);text-align:left;vertical-align:top;padding:10px 12px}table.data th{background:var(--c-surface);color:var(--c-muted);white-space:nowrap;font-weight:600}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-size:.88em}.admin-shell{min-height:100vh;display:grid}@media (min-width:960px){.admin-shell{grid-template-columns:220px 1fr}}.admin-nav{background:var(--c-bg);color:var(--c-text);border-bottom:1px solid var(--c-border);padding:16px}@media (min-width:960px){.admin-nav{border-bottom:0;border-right:1px solid var(--c-border);background:var(--c-surface)}}.admin-nav .admin-brand{color:var(--c-navy);padding:0;font-weight:700;text-decoration:none}.admin-nav nav a{color:var(--c-text);border-radius:var(--radius-sm);padding:8px 10px;font-weight:500;text-decoration:none;display:block}.admin-nav nav a:hover{background:var(--c-surface-2);color:var(--c-navy)}.admin-nav nav a[aria-current=page]{background:var(--c-teal-soft);color:var(--c-navy);box-shadow:inset 3px 0 0 var(--c-teal);font-weight:700}.admin-nav .who{color:var(--c-muted);margin:12px 0;font-size:.85rem}.admin-nav nav{flex-wrap:wrap;gap:2px;display:flex}@media (min-width:960px){.admin-nav nav{flex-direction:column}}.admin-main{min-width:0;padding:24px 16px 48px}@media (min-width:960px){.admin-main{padding:28px 32px 48px}}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:12px;display:grid}.stat{border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-bg);padding:14px 16px}.stat .v{color:var(--c-navy);font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:700}.stat .k{color:var(--c-muted);font-size:.88rem}.inline-form{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.inline-form .field{flex:1;min-width:140px}.stack{gap:20px;display:grid}.checklist{gap:6px;margin:0;padding:0;list-style:none;display:grid}.checklist li:before{content:"✕ ";color:var(--c-danger);font-weight:700}.checklist li.done:before{content:"✓ ";color:var(--c-ok)}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.site-header,.site-footer,.admin-nav{display:none}}.cart-link,.brand{white-space:nowrap}@media (max-width:520px){.cart-link .cart-text,.brand small{display:none}.cart-link{padding:8px 10px}}
