/* XAMPP adapter for the exact version 39 Sites styles. */
html{scroll-behavior:smooth}
body{margin:0}
.site-footer{position:relative;z-index:20;width:100%;padding:14px 20px;border-top:1px solid #ffffff1f;background:#102f28;color:#d9c28d;text-align:center;font-size:11px;line-height:1.5;letter-spacing:.12em}
body:has(.app-shell) .site-footer{width:auto;margin-left:238px}
.site-footer span+span:before{content:" · ";margin:0 8px}

/* PHP uses links for the persistent navigation; the original client uses buttons. */
.sidebar nav a{position:relative;border:0;background:transparent;color:#c4d2cd;text-align:left;padding:13px 15px;border-radius:8px;font-size:15px;line-height:1.45;cursor:pointer;text-decoration:none}
.sidebar nav a.active,.sidebar nav a:hover{background:#2a584b;color:#fff}
.side-bottom>a{display:block;width:100%;margin-bottom:14px;border:0;background:transparent;color:#c4d2cd;text-align:left;padding:10px 12px;border-radius:8px;font-size:14px;text-decoration:none}
.side-bottom>a:hover{background:#2a584b;color:#fff}
.sidebar-logout{margin-left:auto!important;width:auto!important;min-width:auto!important;padding:7px 9px!important;border:1px solid #3b6258!important;border-radius:6px;background:transparent!important;font-size:12px!important;color:#bcd0c9!important}

/* Native PHP form and table adapters. */
.app-shell .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.app-shell .form-grid .wide{grid-column:1/-1}
.app-shell label{display:grid;gap:6px;color:#40544e;font-weight:700}
.app-shell input,.app-shell select,.app-shell textarea{width:100%;border:1px solid #d6ded9;border-radius:8px;padding:10px 11px;background:#fff;color:#203b33}
.app-shell textarea{min-height:105px;resize:vertical}
.app-shell .check{display:flex;align-items:center;gap:7px}.app-shell .check input{width:auto}
.app-shell .table-wrap,.table-scroll{overflow:auto}
.app-shell .data-table{width:100%;border-collapse:collapse}
.app-shell .data-table th{font-weight:normal;text-align:left;padding:11px 15px;border-bottom:1px solid #e8ebe8;background:#fafbfa;color:#7f8985;white-space:nowrap}
.app-shell .data-table td{padding:12px 15px;border-bottom:1px solid #eceeea;vertical-align:middle}
.app-shell .data-table td.wrap{min-width:240px;white-space:normal}
.app-shell .data-table td form{margin:0}
.app-shell .badge{display:inline-block;border-radius:999px;padding:5px 9px;background:#e4f1eb;color:#2f745e;font-size:12px;white-space:nowrap}
.app-shell .badge.warn{background:#f6edda;color:#89651f}.app-shell .badge.off{background:#f3e8e5;color:#9b5b4f}
.app-shell .actions,.app-shell .button-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.app-shell .stack{display:grid;gap:13px}.app-shell .split{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.app-shell .section{margin-top:18px}.app-shell .panel.section{padding:20px}
.app-shell .panel>h2{font:22px serif;color:#25493f;margin:0 0 17px}
.app-shell .empty{padding:34px 18px;text-align:center;color:#8b9490}.app-shell .empty b,.app-shell .empty span{display:block}.app-shell .empty b{font:17px serif;color:#36564d}.app-shell .empty span{margin-top:6px;font-size:12px}
.secondary,.soft{border:1px solid #dce1de;background:#fff;color:#50635d;padding:10px 14px;border-radius:6px}.danger{border:1px solid #efd1cb;background:#faece9;color:#9b493f;padding:10px 14px;border-radius:6px}
.password-reset-box{margin-top:18px;padding:15px;background:#faf6ee;border:1px solid #e9dcc5;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:15px}.password-reset-box b,.password-reset-box small{display:block}.password-reset-box small{margin-top:4px;color:#806d54}
.profile-actions a{display:flex;align-items:center;justify-content:center;text-decoration:none;color:#315f53;border:1px solid #d7dfdb;background:#fff;padding:10px 7px;border-radius:6px;font-size:12px}.profile-actions a:hover{background:#edf4f1}.preference-edit{display:inline-block;margin-top:5px;color:#9a7536;text-decoration:none}

/* The approved independent administrator sign-in. */
body.admin-login{background:#fff}
body.admin-login>.panel{min-height:100vh;width:100%;max-width:none;padding:0;border:0;border-radius:0;box-shadow:none;display:grid;grid-template-columns:1.08fr .92fr}
body.admin-login>.panel>.brand{min-height:100vh;padding:58px 7vw;display:flex;align-items:flex-start;color:#fff;background:radial-gradient(circle at 14% 12%,#486f63 0,transparent 30%),linear-gradient(145deg,#102f28,#1c4b3f 64%,#2e6253);position:relative;overflow:hidden}
body.admin-login>.panel>.brand:after{content:"和";position:absolute;right:-4vw;bottom:-9vw;font:36vw/1 serif;color:#fff;opacity:.035}
body.admin-login>.panel>.brand .seal{width:52px;height:52px;display:grid;place-items:center;border:1px solid #c8aa70;background:transparent;color:#dec58f;border-radius:0;font:28px serif}
body.admin-login>.panel>.brand h1{font:38px/1.5 serif;letter-spacing:.08em;margin:8px 0;color:#fff}
body.admin-login>.panel>.brand .eyebrow{color:#ddc489;font-size:13px}
body.admin-login>.panel>form,body.admin-login>.panel>.muted{grid-column:2;width:min(430px,calc(100% - 48px));margin:auto}
body.admin-login>.panel>form{align-self:center;display:grid;gap:16px}
body.admin-login>.panel>form:before{content:"管理員登入";font:34px serif;letter-spacing:.08em;color:#243a34;margin-bottom:4px}
body.admin-login>.panel>form label{display:block;font-size:15px;color:#50645d}
body.admin-login>.panel>form input{width:100%;margin-top:8px;padding:14px 15px;border:1px solid #d4ddd9;border-radius:8px;background:#fff;font-size:16px}
body.admin-login>.panel>form .primary{width:100%;padding:14px 18px;font-size:16px}
body.admin-login>.panel>.muted{align-self:end;text-align:center;padding-bottom:34px;color:#7c8984}

/* Member password edition keeps the version 39 visual hierarchy. */
.login-password-form>label{display:block;font-size:var(--member-sm,13px);color:#5e6d68;margin:18px 0}
.login-password-form label>input{margin-top:8px}.member-settings-form{display:grid;gap:12px}.member-avatar-form{display:flex;align-items:end;gap:10px;border-top:1px solid #eee;margin-top:18px;padding-top:16px}.member-avatar-form label{flex:1}
.public-reservation-button{margin-top:18px}.member-nav select{border:1px solid #d6dfdb;border-radius:6px;background:#fff;padding:7px;color:#486159;font-size:11px}.member-settings-dialog{width:min(620px,calc(100vw - 24px))}.member-settings-dialog .notification-center-list>article{display:block}.member-settings-full{width:100%}.member-settings-full label{display:grid;gap:6px;color:#65736e;font-size:12px}.member-settings-full input{border:1px solid #d9dfdb;border-radius:7px;padding:11px}.notification-center-bg[hidden],.concierge-dialog-bg[hidden]{display:none!important}.concierge-compose{padding:16px 22px;background:#fff}.concierge-compose textarea{width:100%;border:1px solid #d6ddd9;border-radius:8px;padding:12px;resize:vertical}.concierge-compose>div{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.concierge-compose button{border:0;border-radius:7px;background:#285b4e;color:#fff;padding:9px 15px}.point-counter-note{display:block;margin-top:12px;color:#89938f;font-size:9px}.purchase-row .minus{color:#ae6e60}
.member-wide-panel{margin-top:18px}
.benefit-manage-button{display:block;width:100%;margin-top:10px;border:1px solid #dce1de;background:#fff;color:#426b60;padding:9px;border-radius:5px;font-size:12px;text-align:center;text-decoration:none}.inactive-count{display:block;margin-top:8px;color:#919a96;font-size:11px}.benefit-manager .tier-tabs a{display:grid;place-items:center;border:1px solid #dce1de;background:#fff;color:#687571;padding:9px 5px;border-radius:6px;cursor:pointer;text-decoration:none}.benefit-manager .tier-tabs a.active{background:#173f36;color:#fff;border-color:#173f36}.manage-list article>div:last-child{display:flex;align-items:center;gap:8px}.manage-list article form{margin:0}.reward-grid article>div:last-child form{margin:0}.reward-grid article>div:last-child a{text-decoration:none}.section-head>div:last-child{display:flex;gap:8px}.modal-actions a{text-decoration:none;text-align:center}.modal .member-strip>span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#dce9e4;color:#2f6254;font:17px serif}.modal form>label{display:block;margin:13px 0;color:#61706b;font-size:12px}.modal form>label input,.modal form>label select,.modal form>label textarea{width:100%;margin-top:6px}.modal form>label.check{display:flex}.modal form>label.check input{width:auto;margin-top:0}
.digital-card.card-和饗{background:linear-gradient(145deg,#778b82,#51675f)}.digital-card.card-雅饗{background:radial-gradient(circle at 20% 0,#b39a73,#8a6d49 48%,#604a32)}.digital-card.card-臻饗{background:radial-gradient(circle at 25% 10%,#9a88a8,#6d5b7d 48%,#3f344b)}.digital-card.card-御饗{background:radial-gradient(circle at 25% 5%,#2d695c,#164a3e 48%,#082d26)}.digital-card.card-尊饗{background:radial-gradient(circle at 22% 3%,#4c4434,#191a18 48%,#060706)}

/* Pure CSS tier chart percentages emitted by PHP. */
.donut{position:relative}.donut-wrap li i{display:block}
.report-banner{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.report-banner>div{padding:22px;border-radius:10px;background:linear-gradient(145deg,#173f36,#2e6253);color:#fff}.report-banner small,.report-banner strong,.report-banner p{display:block}.report-banner strong{font:28px serif;margin:8px 0}.report-banner p{margin:0;color:#c6d8d1;font-size:12px}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.report-grid .panel{padding:19px}.report-grid small,.report-grid strong,.report-grid p{display:block}.report-grid strong{font:24px serif;margin:7px 0}.report-grid p{color:#7d8884;margin:0}.outlet-table{margin-top:18px;overflow:auto}
.birthday-hero{background:linear-gradient(115deg,#6f5631,#b08b45);color:#fff;border-radius:11px;padding:27px 30px;display:flex;align-items:center;justify-content:space-between}.birthday-hero p{margin:0;color:#f4deb0}.birthday-hero h2{font:25px serif;margin:7px 0}.birthday-hero span{color:#f3e8cf}.birthday-hero>div:last-child{text-align:center}.birthday-hero strong,.birthday-hero small{display:block}.birthday-hero strong{font:38px serif}.birthday-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:18px}.birthday-card{background:#fff;border:1px solid #e4e4de;border-radius:10px;padding:18px}.birthday-card .date{display:block;font:24px serif;color:#9d7530;margin:16px 0 8px}.birthday-card .pending{color:#a45f54}.birthday-card .done{color:#39745f}.birthday-actions{display:flex;gap:7px}.birthday-actions a,.birthday-actions button{border:1px solid #dce1de;background:#fff;color:#426d60;padding:8px 10px;border-radius:6px;text-decoration:none}
.activity-summary{grid-template-columns:190px 190px 1fr}.activity-admin-grid form{margin:0}.activity-card-actions a{text-decoration:none}

@media(max-width:900px){.report-grid,.birthday-grid{grid-template-columns:1fr 1fr}.report-banner{grid-template-columns:1fr}.app-shell .split{grid-template-columns:1fr}}
@media(max-width:760px){body:has(.app-shell) .site-footer{width:100%;margin-left:0;padding-bottom:82px}.site-footer span{display:block}.site-footer span+span:before{content:""}.sidebar nav a{font-size:0!important;padding:8px;display:grid;place-items:center}.sidebar nav a i{font-size:18px!important;margin:0}.sidebar nav a:nth-child(n+6){display:none}.app-shell .form-grid{grid-template-columns:1fr}.app-shell .form-grid .wide{grid-column:auto}.report-grid,.birthday-grid{grid-template-columns:1fr}.birthday-hero{align-items:flex-start}.activity-summary{grid-template-columns:1fr 1fr}body.admin-login>.panel{display:block}body.admin-login>.panel>.brand{min-height:280px;padding:30px}body.admin-login>.panel>form{margin:48px auto}body.admin-login>.panel>.muted{display:block;margin:0 auto;padding-bottom:34px}}
