:root{--gold-600:#a8842f;--gold-500:#c8a24a;--gold-400:#e0c583;--gold-300:#f0e0b4;--navy-950:#0b0b0c;--navy-900:#131315;--navy-800:#1f1f23;--navy-700:#3a3a41;--teal-600:#a8842f;--green-600:#06c755;--red-600:#c0392f;--ink:#17171a;--ink-soft:#5f5f68;--line:#e2e0da;--surface:#fff;--surface-soft:#f7f6f3;--shadow:0 12px 36px #0b0b0c24;--font:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif}*{box-sizing:border-box}html{background:var(--surface-soft);min-width:320px}body{color:var(--ink);background:var(--surface-soft);font-family:var(--font);letter-spacing:0;margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}.site-shell{min-height:100vh}.topbar{background:var(--navy-950);color:#fff;border-bottom:3px solid var(--gold-500);justify-content:space-between;align-items:center;height:64px;padding:0 24px;display:flex}.brand{align-items:center;gap:10px;font-weight:900;display:flex}.brand-mark{background:var(--gold-500);width:30px;height:30px;color:var(--navy-950);border-radius:50%;place-items:center;font-size:14px;display:grid}.topnav{align-items:center;gap:6px;display:flex}.topnav a{color:#d9e6f5;border-radius:6px;padding:8px 10px;font-size:14px;text-decoration:none}.topnav a:hover{color:#fff;background:#ffffff14}.button,.button-secondary,.button-danger,.icon-button{cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 16px;font-weight:800;text-decoration:none;display:inline-flex}.button{background:var(--gold-500);color:var(--navy-950);box-shadow:0 8px 20px #c8a24a47}.button:hover{background:var(--gold-400)}.button-secondary{color:var(--navy-800);border-color:var(--line);background:#fff}.button-secondary:hover{border-color:var(--navy-700)}.button-danger{color:#fff;background:var(--red-600)}.button:disabled,.button-secondary:disabled,.button-danger:disabled{opacity:.55;cursor:not-allowed}.home{background:linear-gradient(150deg, var(--navy-950), var(--navy-800));color:#fff;place-items:center;min-height:100vh;padding:32px 18px;display:grid}.home-inner{width:min(880px,100%)}.home-kicker{color:var(--gold-400);letter-spacing:2px;font-weight:900}.home h1{margin:14px 0 8px;font-size:clamp(32px,6vw,58px);line-height:1.15}.home p{color:#c8d5e6;margin:0;font-size:17px;line-height:1.8}.entry-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:34px;display:grid}.entry-link{color:#fff;background:#ffffff12;border:1px solid #ffffff24;border-radius:8px;min-height:132px;padding:20px;text-decoration:none;display:block}.entry-link:hover{border-color:var(--gold-500);background:#ffffff1a}.entry-number{color:var(--gold-400);font-variant-numeric:tabular-nums;font-weight:900}.entry-link strong{margin:14px 0 5px;font-size:19px;display:block}.entry-link span{color:#b9c8da;font-size:14px}.card-page{background:linear-gradient(180deg, #c8a24a24, transparent 36%), var(--surface-soft);min-height:100vh;padding:30px 16px}.business-card{border:1px solid var(--line);width:min(440px,100%);box-shadow:var(--shadow);background:#fff;border-radius:8px;margin:0 auto;overflow:hidden}.card-cover{background:radial-gradient(120% 160% at 50% 130%, #c8a24a80 0%, #c8a24a00 62%), linear-gradient(180deg, var(--navy-900), var(--navy-950));color:#fff;letter-spacing:.12em;text-align:right;height:112px;padding:18px 20px;font-size:13px;font-weight:800}.portrait-wrap{text-align:center;margin-top:-78px}.portrait{object-fit:cover;object-position:center;border:5px solid #fff;border-radius:50%;width:150px;height:150px;box-shadow:0 10px 26px #2b212638}.card-copy{text-align:center;padding:14px 28px 4px}.card-copy h1{margin:0;font-size:27px}.alias{color:var(--ink-soft);margin-left:8px;font-size:16px;font-weight:600}.card-title{color:var(--gold-600);margin-top:7px;font-weight:800;line-height:1.5}.card-slogan{color:var(--ink-soft);margin:13px 0 0;font-size:14px;line-height:1.75}.card-actions{gap:10px;padding:18px 26px;display:grid}.line-button{color:#081b16;box-shadow:none;background:#06c755}.contact-list{border-top:1px solid var(--line);color:var(--ink-soft);gap:13px;padding:18px 26px;font-size:14px;display:grid}.contact-row{grid-template-columns:24px 1fr;gap:8px;text-decoration:none;display:grid}.contact-symbol{color:var(--gold-600);text-align:center;font-weight:900}.social-row{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:8px;padding:18px 26px 26px;display:grid}.social-row a{border:1px solid var(--line);background:var(--surface-soft);color:var(--ink);text-align:center;border-radius:6px;padding:10px 4px;font-size:13px;font-weight:800;text-decoration:none}.booking-page{background:var(--surface-soft);min-height:100vh}.booking-shell{width:min(760px,100%);margin:0 auto;padding:30px 18px 54px}.page-heading{margin-bottom:20px}.page-heading a{color:var(--teal-600);font-size:14px;font-weight:800;text-decoration:none}.page-heading h1{margin:8px 0 5px;font-size:30px}.page-heading p{color:var(--ink-soft);margin:0;line-height:1.7}.booking-section{border-top:1px solid var(--line);padding:22px 0}.section-heading{align-items:center;gap:10px;margin-bottom:14px;display:flex}.section-number{background:var(--navy-800);color:#fff;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:13px;font-weight:900;display:grid}.section-heading h2{margin:0;font-size:18px}.section-heading small{color:var(--ink-soft)}.choice-row{flex-wrap:wrap;gap:8px;display:flex}.date-row{flex-wrap:nowrap;padding-bottom:5px;overflow-x:auto}.choice{border:1px solid var(--line);min-height:42px;color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;padding:9px 13px;font-weight:700}.choice[data-active=true]{border-color:var(--teal-600);color:var(--teal-600);background:#eaf8f8}.slot-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.meet-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.meet-choice{border:1px solid var(--line);min-height:92px;color:var(--ink);text-align:left;cursor:pointer;background:#fff;border-radius:8px;padding:14px}.meet-choice[data-active=true]{border-color:var(--teal-600);box-shadow:inset 0 0 0 1px var(--teal-600);background:#f0fbfb}.meet-choice strong,.meet-choice span{display:block}.meet-choice span{color:var(--ink-soft);margin-top:6px;font-size:13px;line-height:1.5}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field.full{grid-column:1/-1}.field label{color:var(--ink-soft);margin-bottom:6px;font-size:14px;font-weight:800;display:block}.field input,.field textarea{border:1px solid var(--line);width:100%;min-height:46px;color:var(--ink);background:#fff;border-radius:6px;outline:none;padding:11px 12px;font-size:16px}.field textarea{resize:vertical;min-height:116px;line-height:1.6}.field input:focus,.field textarea:focus{border-color:var(--teal-600);box-shadow:0 0 0 3px #168a941f}.form-error,.form-success{border-radius:6px;margin:14px 0;padding:12px 14px;line-height:1.6}.form-error{color:#8f2632;background:#fff0f1;border:1px solid #f0c6cb}.form-success{color:#125c3d;background:#ecfaf4;border:1px solid #bde7d4}.booking-submit{width:100%;min-height:52px;font-size:17px}.privacy-note{color:var(--ink-soft);text-align:center;margin:10px 0 0;font-size:13px}.admin-page{background:var(--navy-950);color:#f2f0ea;min-height:100vh}.admin-shell{width:min(1180px,100%);margin:0 auto;padding:28px 20px 56px}.admin-heading{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.admin-heading h1{margin:0;font-size:28px}.admin-heading p{color:#9fb0c7;margin:6px 0 0}.admin-heading .button-secondary{color:#dbe8f8;background:#101e37;border-color:#2b405e}.stat-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px;display:grid}.stat{background:#101e37;border:1px solid #243955;border-radius:8px;min-height:104px;padding:15px}.stat-label{color:#9fb0c7;font-size:13px}.stat-value{color:#fff;font-variant-numeric:tabular-nums;margin-top:8px;font-size:30px;font-weight:900}.stat:nth-child(2) .stat-value,.stat:nth-child(4) .stat-value{color:var(--gold-400)}.filter-row{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 18px;display:flex}.filter-row a{color:#aebfd4;border:1px solid #2b405e;border-radius:999px;padding:7px 13px;font-size:14px;font-weight:800;text-decoration:none}.filter-row a[data-active=true]{background:var(--gold-500);border-color:var(--gold-500);color:var(--navy-950)}.appointment-list{gap:12px;display:grid}.appointment{background:#101e37;border:1px solid #243955;border-radius:8px;padding:18px}.appointment[data-status=cancelled]{opacity:.62}.appointment-top{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.appointment-time{font-variant-numeric:tabular-nums;font-size:18px;font-weight:900}.tag-row{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.tag{color:#c4d3e5;border:1px solid #355071;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800}.tag.high{color:#ffd98b;background:#342914;border-color:#896728}.tag.mid{color:#9de8ef;background:#102e33;border-color:#246871}.tag.low{color:#c3ccda}.tag.confirmed{color:#a6dcff;border-color:#315f83}.tag.completed{color:#9be1bd;border-color:#2f6f50}.tag.cancelled{color:#ffb2bb;border-color:#7b3b43}.appointment-contact{color:#aebfd4;flex-wrap:wrap;align-items:center;gap:12px;margin-top:13px;font-size:14px;display:flex}.appointment-contact strong{color:#fff;font-size:17px}.appointment-contact a{color:#7dd9e1;text-decoration:none}.appointment-body{grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);gap:12px;margin-top:13px;display:grid}.detail-box,.suggestion-box{border:1px solid #243955;border-radius:6px;padding:13px;line-height:1.7}.detail-box{color:#c2d0e0}.suggestion-box{color:#f3d995;background:#211d14;border-color:#5c4a22}.box-label{color:#8296af;margin-bottom:4px;font-size:12px;font-weight:900;display:block}.suggestion-box .box-label{color:#bd9b4d}.appointment-actions{flex-wrap:wrap;gap:8px;margin-top:13px;display:flex}.appointment-actions button,.appointment-actions a{color:#d9e6f5;cursor:pointer;background:#162942;border:1px solid #355071;border-radius:5px;min-height:36px;padding:7px 11px;font-size:13px;font-weight:800;text-decoration:none}.appointment-actions button:hover,.appointment-actions a:hover{border-color:var(--gold-500)}.empty-state{text-align:center;color:#9fb0c7;border:1px dashed #355071;border-radius:8px;padding:48px 20px}.loading-line{color:var(--ink-soft);padding:12px 0}@media (max-width:820px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.appointment-body{grid-template-columns:1fr}}@media (max-width:680px){.topbar{height:auto;min-height:58px;padding:10px 14px}.topnav a{padding:7px;font-size:13px}.entry-grid,.meet-grid,.field-grid{grid-template-columns:1fr}.entry-link{min-height:104px}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field.full{grid-column:auto}.admin-shell{padding:20px 12px 42px}.admin-heading,.appointment-top{flex-direction:column;align-items:stretch}.admin-heading .button-secondary{width:100%}.tag-row{justify-content:flex-start}.appointment{padding:14px}.appointment-contact{grid-template-columns:1fr;gap:4px;display:grid}}
