@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b-s.5f161693.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892-s.7b2da7da.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7-s.p.51cde8ff.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo Fallback;src:local(Arial);ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.0%;size-adjust:98.7%}.archivo_9443aef7-module__vKFuNW__className{font-family:Archivo,Archivo Fallback;font-style:normal}.archivo_9443aef7-module__vKFuNW__variable{--font-archivo:"Archivo","Archivo Fallback"}
:root{--canvas:#eff0f2;--ink:#141418;--accent:#3121cc;--card:#fff;--muted:#5d5f68;--line:#d9dbe0;--ok:#0a7a3d;--warn:#a15c00}*{box-sizing:border-box}html,body{margin:0;padding:0;overflow-x:hidden}body{background:var(--canvas);color:var(--ink);font-family:var(--font-archivo),system-ui,"Noto Sans TC","PingFang TC",sans-serif;font-size:16px;line-height:1.5}a{color:inherit}.wrap{max-width:720px;margin:0 auto;padding:0 16px 48px}header.top{justify-content:space-between;align-items:center;max-width:720px;margin:0 auto;padding:14px 16px;display:flex}.logo{letter-spacing:-.02em;font-size:22px;font-weight:800;text-decoration:none}h1{letter-spacing:-.02em;margin:16px 0 8px;font-size:28px;line-height:1.15}h2{margin:24px 0 8px;font-size:20px}.muted{color:var(--muted);font-size:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;margin:12px 0;padding:14px}.btn{text-align:center;background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:12px;width:100%;padding:16px;font-family:inherit;font-size:17px;font-weight:700;text-decoration:none;display:block}.btn.ghost{color:var(--ink);border:1px solid var(--ink);background:0 0}.btn.small{width:auto;padding:8px 14px;font-size:14px;display:inline-block}.chip{border:1px solid var(--ink);background:0 0;border-radius:999px;margin:0 6px 6px 0;padding:6px 12px;font-size:14px;text-decoration:none;display:inline-block}.chip.on{background:var(--ink);color:#fff}.tag{background:var(--ink);color:#fff;vertical-align:middle;border-radius:6px;margin-left:6px;padding:2px 8px;font-size:12px;display:inline-block}.tag.accent{background:var(--accent)}.tag.light{color:var(--ink);border:1px solid var(--ink);background:#fff}label{margin:12px 0 4px;font-size:14px;font-weight:600;display:block}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:14px;font-family:inherit;font-size:16px}textarea{min-height:70px}.row{gap:10px;display:flex}.row>*{flex:1;min-width:0}.thumb{aspect-ratio:4/3;object-fit:cover;border-radius:10px;width:100%;display:block}.ph{aspect-ratio:4/3;width:100%;color:var(--accent);background:linear-gradient(135deg,#dfe1ea,#c9cde0);border-radius:10px;justify-content:center;align-items:center;font-size:44px;display:flex}.cap{color:var(--muted);margin-top:4px;font-size:12px}.banner{background:#fff4d6;border:1px solid #e6c56a;border-radius:10px;margin:12px 0;padding:10px 12px;font-size:14px}.banner.accent{background:#e8e6ff;border-color:#b9b3f5}.err{background:#ffe3e3;border:1px solid #e59a9a;border-radius:10px;margin:12px 0;padding:10px 12px;font-size:14px}.price{font-weight:700}table{border-collapse:collapse;width:100%;font-size:14px}td,th{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 4px}.status{font-weight:700}.status.requested{color:var(--warn)}.status.confirmed{color:var(--ok)}.status.cancelled{color:var(--muted)}.lang button{font:inherit;cursor:pointer;color:var(--ink);background:0 0;border:0;text-decoration:underline}
