@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Noto+Sans+TC:wght@400;500;700&display=swap";:root{font-family:YAFcfgxAU44_0,Noto Sans TC,DM Sans,sans-serif;color:#5b4636;background:#ded8d0}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#ded8d0}button,input,textarea,select{font:inherit}button{cursor:pointer}.booking-page,.login-page{min-height:100vh;padding:32px 20px 64px}.booking-shell{width:min(100%,472px);margin:0 auto}.brand-header{text-align:center;margin-bottom:32px}.brand-logo{display:block;width:92px;height:auto;margin:0 auto}.modal-logo{display:block;width:84px;height:auto;margin:0 auto 12px}.admin-logo{display:block;width:56px;height:auto;margin-bottom:8px}.brand-header h1{margin:25px 0 0;font-size:15.75px;letter-spacing:6px;font-weight:400;transform:translate(3px)}.notice{background:#fffaf5;border-radius:8px;padding:16px;margin-bottom:18px;box-shadow:0 1px #5b46360d}.notice strong{font-size:12px;font-weight:700}.notice p{font-size:12px;line-height:1.5;margin:5px 0 0}.line-login{width:100%;border:1px solid #90795a;background:#90795a;color:#fff;border-radius:6px;min-height:48px;font-size:12px;font-weight:700;transition:.15s ease}.line-login:hover{background:#7a6447}.line-login.connected{background:#fffaf5;color:#5b4636}.line-help,.validation,.login-status{margin:7px 0 0;text-align:center;font-size:12px;color:#765d48}.validation{color:#9a5e4d}.login-status{margin-bottom:24px}.database-message{margin:0 0 18px;padding:10px 12px;border-radius:5px;background:#eee6dc;color:#765d48;font-size:12px;line-height:1.5}.booking-form{display:grid;gap:24px;margin-top:24px}fieldset{min-width:0;margin:0;padding:16px;border:1px solid rgba(255,255,255,.52);border-radius:8px}legend{padding:0 7px;margin-left:1px;font-size:12px;font-weight:400}legend span{color:#8c7a69;font-weight:400}.field-label,.input-field{display:block;font-size:12px;font-weight:400}.time-label{margin:17px 0 9px}.date-select,.input-field input,.input-field textarea{display:block;width:100%;color:#5b4636;border:0;border-radius:4px;background:#fff;padding:12px;margin-top:8px;outline:2px solid transparent;transition:outline-color .15s}.date-select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;background:#fff}.date-select:focus,.input-field input:focus,.input-field textarea:focus{outline-color:#90795a}.input-field textarea{resize:vertical;line-height:1.5}.hint{margin:0;font-size:12px;color:#8c7a69}.slot-list{display:flex;flex-wrap:wrap;gap:8px}.slot-button{min-width:74px;border:1px solid #90795a;padding:8px 10px;border-radius:5px;color:#5b4636;background:transparent;font-size:12px}.slot-button:hover{background:#d1c5b3}.slot-button.selected{background:#90795a;color:#fff}.service-fieldset{padding-bottom:14px}.section-kicker{margin:4px 0 10px;font-size:12px}.service-list{display:grid;gap:6px}.service-option{display:flex;align-items:center;gap:10px;border-radius:4px;padding:7px 8px;font-size:12px;cursor:pointer}.service-option:hover{background:#d1c5b3}.service-option.active{background:#90795a;color:#fff}.service-option input{accent-color:#90795a}.service-option em{font-style:normal;margin-left:auto;min-width:40px}.compact-fieldset{padding:13px 16px}.choice-row{display:flex;flex-wrap:wrap;gap:16px;padding:4px 3px 0;font-size:12px}.choice-row label{display:inline-flex;gap:7px;align-items:center}.choice-row input{accent-color:#90795a}.submit-button{border:0;border-radius:6px;min-height:52px;background:#90795a;color:#fff;letter-spacing:1px;font-weight:700;font-size:12px}.submit-button:hover{background:#7a6447}.submit-button:disabled{opacity:.65;cursor:wait}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#43312461;display:grid;place-items:center;padding:20px}.success-modal{width:min(100%,360px);background:#fffaf5;border-radius:10px;padding:31px 25px 24px;text-align:center;box-shadow:0 18px 50px #43312447}.success-modal h2{margin:23px 0 12px;font-size:20px;font-weight:500;letter-spacing:2px}.success-modal p{margin:8px 0;font-size:13px;line-height:1.65}.success-modal button{margin-top:18px;width:100%;min-height:45px;border:0;border-radius:5px;color:#fff;background:#90795a}.official-line-link{display:block;width:100%;min-height:45px;padding:13px 12px;margin-top:17px;border-radius:5px;background:#90795a;color:#fff;font-size:13px;text-decoration:none}.success-modal .official-line-link+button{margin-top:9px;color:#5b4636;background:transparent;border:1px solid #90795a}.login-shell{width:min(100%,472px);margin:0 auto;padding-top:34px}.login-notice{margin-bottom:16px}.admin-page{min-height:100vh;padding:32px 20px 64px}.admin-shell{width:min(100%,680px);margin:0 auto}.admin-shell h2{margin:0 0 16px;font-size:16px;font-weight:400}.admin-login{display:grid;gap:12px}.admin-login input,.slot-admin input{min-height:44px;border:0;border-radius:5px;padding:10px 12px;color:#5b4636;background:#fff}.admin-login button,.slot-admin button,.admin-title button{border:0;border-radius:5px;min-height:44px;padding:0 16px;background:#90795a;color:#fff;font-size:12px;font-weight:700}.admin-shell a{display:inline-block;margin-top:20px;color:#765d48;font-size:12px}.admin-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.admin-title h2{margin:0}.admin-title button{min-height:34px;background:transparent;border:1px solid #90795a;color:#5b4636}.admin-card{margin-top:16px;padding:18px;border:1px solid rgba(255,255,255,.6);border-radius:8px}.admin-card h3{margin:0 0 14px;font-size:13px;font-weight:500}.slot-admin{display:grid;grid-template-columns:1fr 1fr auto;gap:8px}.appointment-list{display:grid;gap:8px}.appointment-list article{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:12px;border-radius:5px;background:#ffffff6e;font-size:12px}.appointment-list article p{grid-column:1 / -1;margin:3px 0}.appointment-list article em{grid-column:1 / -1;color:#90795a;font-style:normal}@media(min-width:760px){.booking-page,.login-page{padding-top:32px}.booking-shell,.login-shell{width:472px}.brand-header{margin-bottom:50px}.booking-form{gap:28px}}@media(max-width:480px){.slot-admin{grid-template-columns:1fr}}.appointment-actions{display:flex;gap:8px;margin-top:7px}.appointment-actions button{min-height:30px;padding:0 12px;border:1px solid #90795a;border-radius:4px;background:transparent;color:#5b4636;font-size:12px}.appointment-actions button:first-child{background:#90795a;color:#fff}.service-admin{display:grid;grid-template-columns:1.2fr 1fr 76px auto auto;gap:8px;align-items:center}.service-admin input:not([type=checkbox]){min-width:0;min-height:42px;padding:8px 10px;border:0;border-radius:5px;background:#fff;color:#5b4636}.service-admin label{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:12px}.service-admin button{min-height:42px;padding:0 13px;border:0;border-radius:5px;background:#90795a;color:#fff;font-size:12px;font-weight:700}.service-admin-list{display:grid;gap:7px;margin-top:14px}.service-admin-list button{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;width:100%;padding:9px 10px;border:1px solid rgba(144,121,90,.3);border-radius:5px;color:#5b4636;background:#ffffff59;text-align:left;font-size:12px}.service-admin-list em{font-style:normal}.service-admin-list small{color:#90795a}@media(max-width:620px){.service-admin{grid-template-columns:1fr 1fr}.service-admin input:nth-child(3),.service-admin label,.service-admin button{grid-column:span 1}}.calendar-admin{width:min(100%,980px)}.calendar-admin .admin-title{border-bottom:1px solid rgba(91,70,54,.18);padding-bottom:17px;margin-bottom:0}.calendar-admin .admin-title h2{margin:5px 0 0;font-size:18px;font-weight:400}.admin-section{padding:26px 0;border-bottom:1px solid rgba(91,70,54,.18)}.section-heading{display:flex;gap:16px;align-items:baseline;justify-content:space-between;margin-bottom:15px}.section-heading h3{margin:0;font-size:14px;font-weight:500}.section-heading span{color:#8c7a69;font-size:12px}.empty-line{margin:0;color:#8c7a69;font-size:12px}.approval-table{border-top:1px solid rgba(91,70,54,.16)}.approval-table article{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 3px;border-bottom:1px solid rgba(91,70,54,.16)}.approval-table strong{font-size:13px}.approval-table p,.approval-table small{display:block;margin:3px 0 0;font-size:12px}.approval-table small{color:#8c7a69}.approval-actions{display:flex;gap:7px}.approval-actions button,.time-entry button,.time-batch button,.service-editor>button{min-height:34px;padding:0 13px;border:0;border-radius:4px;color:#fff;background:#90795a;font-size:12px}.approval-actions button:last-child,.quiet-button{color:#5b4636!important;background:transparent!important;border:1px solid #90795a!important}.calendar-wrap{padding:14px;background:#ffffff7a;border-radius:8px}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;margin:0 0 12px}.calendar-toolbar h3{margin:0;font-size:14px;font-weight:400}.calendar-toolbar button{border:0;background:transparent;color:#5b4636;font-size:28px;line-height:1}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays span{padding:7px 0;text-align:center;font-size:11px}.calendar-cell{min-width:0;min-height:88px;padding:8px 5px;overflow:hidden;border:1px solid rgba(91,70,54,.09);background:transparent;color:#5b4636;text-align:left;vertical-align:top}.calendar-cell b{display:block;font-size:12px;font-weight:400}.calendar-cell small{display:grid;gap:2px;margin-top:8px;font-size:10px;line-height:1.35;white-space:normal}.calendar-cell small span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-cell.other-month{color:#b4a89a}.calendar-cell.selected{outline:2px solid #90795a;outline-offset:-2px;background:#f2ece5}.calendar-legend{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0 0;color:#8c7a69;font-size:11px}.open-dot,.confirmed-dot{display:inline-block;width:7px;height:7px;margin-right:3px;border-radius:50%;background:#e8dbc8}.confirmed-dot{background:#90795a}.day-editor{display:grid;grid-template-columns:150px 1fr;gap:14px 18px;margin-top:18px;padding-top:18px;border-top:1px solid rgba(91,70,54,.16)}.day-editor h4{margin:0;font-size:13px;font-weight:500}.day-editor p{margin:5px 0 0;color:#8c7a69;font-size:11px}.existing-slots{display:flex;flex-wrap:wrap;gap:7px}.existing-slots>span{display:inline-flex;gap:5px;align-items:center;padding:5px 7px;border-radius:3px;background:#f2e7d8;font-size:12px}.existing-slots>span.confirmed{background:#dfd0bc}.existing-slots button{border:0;background:transparent;color:#765d48;font-size:16px;line-height:1}.existing-slots small{color:#8c7a69;font-size:12px}.time-entry,.quick-times,.time-batch{grid-column:2;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.time-entry input{min-height:34px;padding:0 8px;border:1px solid rgba(91,70,54,.25);border-radius:4px;background:#fff}.quick-times button{min-height:28px;padding:0 9px;border:1px solid rgba(144,121,90,.55);border-radius:4px;background:transparent;color:#5b4636;font-size:11px}.time-batch{color:#765d48;font-size:12px}.time-batch button{margin-left:auto}.service-editor{display:grid;grid-template-columns:1.2fr 1fr 110px auto auto auto;gap:8px;align-items:end}.service-editor input:not([type=checkbox]){width:100%;min-height:36px;padding:7px 9px;border:1px solid rgba(91,70,54,.2);border-radius:4px;background:#fff;color:#5b4636}.service-editor label{display:grid;gap:5px;color:#765d48;font-size:11px}.service-editor .switch-label{display:flex;gap:5px;align-items:center;min-height:36px;white-space:nowrap}.service-table{margin-top:18px;border-top:1px solid rgba(91,70,54,.16)}.service-row{display:grid;grid-template-columns:1.4fr 1fr 70px 80px 55px;gap:10px;align-items:center;min-height:42px;border-bottom:1px solid rgba(91,70,54,.16);font-size:12px}.service-head{color:#8c7a69;font-size:11px}.service-row button{min-height:28px;border:1px solid #90795a;border-radius:4px;background:transparent;color:#5b4636;font-size:11px}@media(max-width:640px){.admin-page{padding:22px 16px 48px}.section-heading{align-items:flex-start;flex-direction:column;gap:4px}.calendar-cell{min-height:57px;padding:6px 3px}.calendar-cell small{margin-top:5px;font-size:8px}.day-editor{grid-template-columns:1fr}.time-entry,.quick-times,.time-batch{grid-column:1}.time-batch button{margin-left:0}.service-editor{grid-template-columns:1fr 1fr}.service-editor>button{min-height:36px}.service-row{grid-template-columns:1.3fr .8fr 45px 60px 48px;gap:5px}.approval-table article{align-items:flex-start;flex-direction:column}.approval-actions{width:100%}.approval-actions button{flex:1}}
