:root{--ink:#172033;--muted:#64748b;--line:#e5eaf2;--bg:#f5f7fb;--nav:#17365d;--primary:#3678c9;--primary2:#255fa8;--white:#fff;--danger:#c2413b;--success:#138a63}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC","Microsoft JhengHei",sans-serif;background:var(--bg)}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.public-nav{height:68px;padding:0 max(24px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}.public-logo{font-weight:850;font-size:21px;color:var(--nav);letter-spacing:-.5px}.public-nav div{display:flex;gap:20px}.hero{max-width:1120px;margin:auto;min-height:590px;padding:90px 0;display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:center}.eyebrow{font-size:12px;font-weight:800;letter-spacing:2px;color:var(--primary)}.hero h1{font-size:50px;line-height:1.16;letter-spacing:-2px;margin:18px 0}.hero p,.page-head p,.booking-intro p{color:var(--muted);line-height:1.8}.hero-actions{display:flex;gap:12px;margin-top:32px}.btn{display:inline-flex;border:0;border-radius:9px;padding:11px 18px;font-weight:750;align-items:center;justify-content:center}.btn.primary{color:#fff;background:var(--primary)}.btn.primary:hover{background:var(--primary2)}.btn.secondary{background:#e8f0fa;color:#245b9f}.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}.btn.wide{width:100%}.btn.large{padding:15px;font-size:16px}.hero-card{background:#fff;padding:22px;border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px rgba(23,54,93,.12)}.mini-head{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:8px}.mini-head span{color:var(--muted)}.mini-book{display:flex;align-items:center;gap:14px;padding:16px 4px}.mini-book i{width:4px;height:42px;border-radius:4px}.mini-book div{display:grid;gap:5px}.mini-book small,.edit-card small,.schedule-row small,td small{display:block;color:var(--muted);margin-top:4px}.features{max-width:1120px;margin:0 auto 80px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.features article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px}.features p{color:var(--muted);line-height:1.7}.auth-wrap{min-height:calc(100vh - 68px);display:grid;place-items:center;padding:50px 20px}.auth-card{width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:0 15px 45px rgba(23,54,93,.08)}.auth-card h1{margin:0 0 8px}.auth-card>p{color:var(--muted);margin-bottom:25px}.auth-foot{text-align:center;color:var(--muted);margin-top:20px}.admin-body{display:flex;min-height:100vh}.sidebar{width:230px;background:var(--nav);color:#fff;position:fixed;inset:0 auto 0 0;padding:20px 14px}.brand{color:#fff;display:flex;align-items:center;gap:11px;padding:0 8px 22px;border-bottom:1px solid rgba(255,255,255,.12)}.brand span{width:34px;height:34px;border-radius:9px;background:#64a4e5;display:grid;place-items:center;font-size:20px;font-weight:900}.sidebar nav{display:grid;gap:5px;margin-top:20px}.sidebar nav a{color:#dce8f7;padding:12px 14px;border-radius:8px}.sidebar nav a:hover,.sidebar nav a.active{background:#3678c9;color:#fff}.main{margin-left:230px;width:calc(100% - 230px)}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;padding:0 28px;gap:14px}.topbar>div{display:flex;flex-direction:column;text-align:right}.topbar small{color:var(--muted)}.link-btn{border:0;background:none;color:var(--muted)}.menu{display:none;background:none;border:0;font-size:22px;margin-right:auto}.content{padding:30px;max-width:1500px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.page-head h1{margin:0;font-size:27px}.page-head p{margin:6px 0 0}.alert{padding:13px 16px;border-radius:9px;margin-bottom:18px}.alert.success{background:#e7f7f0;color:#087251}.alert.error{background:#fff0ef;color:#a62d29}.public-alert{max-width:820px;margin:18px auto}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stats>div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px;display:grid;gap:12px}.stats span{color:var(--muted)}.stats b{font-size:30px}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:22px;margin-bottom:20px}.panel h2{margin:0 0 18px;font-size:18px}.panel-head{display:flex;align-items:center;justify-content:space-between}.schedule-row{display:grid;grid-template-columns:60px 4px 1fr auto;gap:14px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.schedule-row i{height:42px;border-radius:4px}.badge{display:inline-block;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:750;white-space:nowrap}.badge.pending{background:#fff3d7;color:#8a5b00}.badge.confirmed{background:#e2f7ef;color:#087454}.badge.completed{background:#e6efff;color:#245aa9}.badge.cancelled,.badge.no_show{background:#fde9e7;color:#a13b35}.empty{padding:38px;text-align:center;color:var(--muted)}.two-col{display:grid;grid-template-columns:1.45fr .85fr;gap:20px;align-items:start}.form-card{display:grid;gap:15px}.form-card.compact{margin-bottom:20px}.inline{display:flex;gap:8px}.inline input{flex:1}label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#344054}input,select,textarea{width:100%;border:1px solid #d8dee8;border-radius:8px;background:#fff;padding:10px 11px;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid #bfd9f6;border-color:var(--primary)}textarea{min-height:80px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.check{display:flex;align-items:center;gap:8px;font-weight:500}.check input{width:auto}.edit-card{border-top:1px solid var(--line)}.edit-card summary{list-style:none;padding:17px 2px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.edit-card summary::-webkit-details-marker{display:none}.edit-form{background:#f8fafc;padding:16px;border-radius:10px;margin-bottom:15px;display:grid;grid-template-columns:1fr 1fr;gap:13px}.edit-form .full{grid-column:1/-1}fieldset{border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;flex-wrap:wrap;gap:12px}legend{font-size:13px;font-weight:700;padding:0 4px}.staff-name{display:flex;align-items:center;gap:11px}.staff-name i{width:38px;height:38px;border-radius:50%}.filters{display:flex;align-items:end;gap:12px;background:#fff;padding:15px;border:1px solid var(--line);border-radius:12px;margin-bottom:15px}.table-wrap{overflow:visible;padding:0}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--muted);font-size:12px}th,td{padding:14px;border-bottom:1px solid var(--line);vertical-align:top}tbody tr:last-child td{border-bottom:0}.row-menu{position:relative}.row-menu summary{cursor:pointer;color:var(--primary);font-weight:700}.row-menu form{position:absolute;right:0;z-index:5;background:#fff;padding:15px;width:250px;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #17203320;display:grid;gap:10px}.booking-shell{max-width:960px;margin:50px auto 80px;padding:0 20px;display:grid;grid-template-columns:300px 1fr;gap:35px;align-items:start}.booking-intro{position:sticky;top:35px}.booking-intro h1{font-size:34px;margin:14px 0}.steps{display:grid;gap:12px;margin-top:30px}.steps span{color:#94a3b8;border-left:3px solid #dbe3ef;padding:6px 12px}.steps .on{color:var(--primary);border-color:var(--primary);font-weight:800}.booking-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:28px;box-shadow:0 15px 45px #17365d0c}.booking-card section{padding-bottom:25px;margin-bottom:25px;border-bottom:1px solid var(--line);display:grid;gap:15px}.booking-card h2{font-size:18px;margin:0 0 4px;display:flex;align-items:center;gap:10px}.booking-card h2 span{background:#e4effb;color:var(--primary);border-radius:50%;width:28px;height:28px;display:grid;place-items:center;font-size:13px}.hint,.privacy{color:var(--muted);font-weight:400;line-height:1.6}.privacy{text-align:center;font-size:12px}.success-wrap{max-width:560px;margin:70px auto;text-align:center;padding:0 20px}.success-icon{margin:auto;width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:#dcf7ed;color:#0c8b63;font-size:34px}.success-wrap>p{color:var(--muted)}.booking-summary{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 22px;margin:28px 0;text-align:left}.booking-summary>div{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.booking-summary>div:last-child{border:0}.booking-summary span{color:var(--muted)}
@media(max-width:850px){.hero{grid-template-columns:1fr;padding:60px 22px;gap:35px}.hero h1{font-size:39px}.features{grid-template-columns:1fr;margin:0 20px 60px}.sidebar{transform:translateX(-100%);z-index:20;transition:.2s}.nav-open .sidebar{transform:none}.main{margin-left:0;width:100%}.menu{display:block}.content{padding:20px}.stats{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr}.booking-shell{grid-template-columns:1fr;margin-top:30px}.booking-intro{position:static}.steps{display:none}.table-wrap{overflow-x:auto}table{min-width:820px}.page-head{gap:15px}.edit-form{grid-template-columns:1fr}.edit-form .full{grid-column:auto}}
@media(max-width:520px){.public-nav{padding:0 18px}.hero h1{font-size:33px}.hero-actions{flex-direction:column}.auth-card{padding:24px}.form-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr;gap:10px}.stats>div{padding:15px}.stats b{font-size:24px}.content{padding:16px}.page-head{display:grid}.panel{padding:17px}.filters{display:grid;grid-template-columns:1fr 1fr}.booking-card{padding:20px}.booking-summary>div{display:grid;gap:5px}}
.platform-nav{height:64px;background:var(--nav);color:#fff;padding:0 30px;display:flex;align-items:center;justify-content:space-between}.platform-nav div,.platform-nav form{display:flex;align-items:center;gap:15px}.platform-nav .link-btn{color:#dce8f7}.platform-main{max-width:1280px;margin:auto;padding:35px 24px}.platform-stats{grid-template-columns:repeat(3,1fr);max-width:700px}
.schedule-list>div,.timeoff{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid var(--line)}.appointment-form{max-width:760px}
.request-actions{display:grid;grid-template-columns:1fr auto auto;gap:6px;min-width:330px}.payment-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.change-box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;text-align:left}.change-box summary{cursor:pointer;font-weight:800}.change-box form{margin-top:18px}
.setting-form{max-width:800px}.setting-form h2{margin-top:15px}.report-stats{grid-template-columns:repeat(5,1fr)}code{background:#eef3f9;padding:4px 7px;border-radius:5px;word-break:break-all}
.tag{display:inline-block;color:var(--tag);background:color-mix(in srgb,var(--tag) 12%,white);border-radius:999px;padding:2px 7px;margin:2px}.member-tools{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:#f8fafc;padding:16px;border-radius:10px;margin-bottom:14px}.member-card strong{color:var(--success)}
.member-portal{max-width:1050px;margin:45px auto;padding:0 20px}.asset-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}.asset-row .negative{color:var(--danger)}

/* Keep the tenant menu usable when its items exceed the viewport height. */
.sidebar{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.sidebar .brand{flex:0 0 auto}.sidebar nav{min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 2px 28px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.35) transparent}.sidebar nav::-webkit-scrollbar{width:6px}.sidebar nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.35);border-radius:999px}.sidebar nav a{flex:0 0 auto}

.line-login{background:#06c755;color:#fff}.line-login:hover{background:#05ad49}.line-login span{font-weight:900;border-right:1px solid rgba(255,255,255,.45);padding-right:12px;margin-right:12px}.login-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin:24px 0}.login-divider:before,.login-divider:after{content:"";height:1px;background:var(--line);flex:1}.member-login-card>.form-card{margin-top:0}.member-head,.member-identity,.member-actions{display:flex;align-items:center}.member-identity{gap:14px}.member-identity img{width:54px;height:54px;border-radius:50%;object-fit:cover}.member-actions{gap:8px}.member-actions form{margin:0}@media(max-width:520px){.member-head{display:grid}.member-actions{margin-top:14px}.member-actions .btn{flex:1}}

.commission-row{display:grid;grid-template-columns:minmax(180px,1fr) 150px 130px auto;gap:10px;align-items:end;padding:12px 0;border-bottom:1px solid var(--line)}@media(max-width:700px){.commission-row{grid-template-columns:1fr 1fr}.commission-row>div{grid-column:1/-1}}

.btn.danger{background:#fde9e7;color:var(--danger)}.btn.danger:disabled{opacity:.45;cursor:not-allowed}.package-plan{border-top:1px solid var(--line)}.package-plan summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 2px;cursor:pointer}.package-plan summary::-webkit-details-marker{display:none}.package-plan-status{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px}.package-edit{grid-template-columns:1fr 1fr 1fr auto;align-items:end}.package-edit .package-services{grid-column:1/-1}.package-services{background:#fff}.package-actions{display:flex;align-items:end}.package-secondary-actions{display:flex;align-items:center;gap:10px;padding:0 16px 18px}.package-secondary-actions form{margin:0}.package-secondary-actions small{color:var(--muted)}.package-columns{grid-template-columns:1.7fr .8fr}.table-title{padding:22px 22px 0}.package-use input[type=number]{width:75px}.package-use input[name=note]{min-width:130px}@media(max-width:1100px){.package-edit{grid-template-columns:1fr 1fr}.package-columns{grid-template-columns:1fr}}@media(max-width:650px){.package-plan summary,.package-plan-status,.package-secondary-actions{align-items:flex-start;flex-direction:column}.package-edit{grid-template-columns:1fr}.package-use{display:grid}.package-use input[type=number]{width:100%}}

.tenant-status-form{display:grid;grid-template-columns:130px 190px 120px auto;gap:7px;min-width:570px}.referral-head{margin-top:42px}.platform-referrals{align-items:start}.referral-toggle{padding:0 16px 16px}.platform-referrals .edit-form{grid-template-columns:1fr 1fr}@media(max-width:850px){.platform-referrals .edit-form{grid-template-columns:1fr}.tenant-status-form{min-width:380px;grid-template-columns:1fr}}

.booking-services{display:grid;gap:10px;background:#f8fafc}.booking-services[disabled]{opacity:.55}.booking-service-option{display:flex;align-items:flex-start;gap:12px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:13px;cursor:pointer}.booking-service-option:has(input:checked){border-color:var(--primary);background:#edf5ff;box-shadow:0 0 0 1px var(--primary)}.booking-service-option input{width:auto;margin-top:3px}.booking-service-option span{display:block}.booking-service-option b{display:block;color:var(--ink)}.booking-service-option small{display:block;margin-top:5px;color:var(--muted);font-weight:500}.selection-summary{border-radius:10px;padding:13px 15px;background:#e8f0fa;color:#245b9f;font-weight:750}.admin-booking-services{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-booking-services .check{background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:10px}@media(max-width:520px){.admin-booking-services{grid-template-columns:1fr}}

.branch-quota{background:#e8f0fa;color:#245b9f;border-radius:12px;padding:11px 16px;display:grid;gap:3px;min-width:125px}.branch-quota span{font-size:12px}.branch-quota b{font-size:20px}.branch-quota.limit-reached{background:#fde9e7;color:var(--danger)}.branch-create-fields{display:grid;gap:15px;border:0;padding:0}.branch-create-fields:disabled{opacity:.55}

.member-booking-actions{display:grid;justify-items:end;gap:8px}.compact-change{padding:0;background:transparent;border:0}.compact-change summary{font-size:13px;color:var(--primary);cursor:pointer;font-weight:700}.compact-change form{position:absolute;right:20px;z-index:5;width:min(420px,calc(100vw - 40px));background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:0 15px 40px rgba(23,32,51,.16)}@media(max-width:650px){.asset-row{align-items:flex-start}.member-booking-actions{justify-items:start}.compact-change form{position:fixed;left:20px;right:20px;top:80px;max-height:calc(100vh - 100px);overflow:auto}}

/* Phase 14: public booking time buttons */
.booking-time-field{display:grid;gap:7px;min-width:0}.booking-time-label{font-size:13px;font-weight:700;color:#344054}.booking-time-slots{display:grid;grid-template-columns:repeat(4,minmax(72px,1fr));gap:9px;min-height:44px}.booking-time-btn{min-height:44px;border:1px solid #d8dee8;border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-weight:750;cursor:pointer;padding:9px 8px;transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease}.booking-time-btn:hover{border-color:var(--primary);background:#f4f8fd}.booking-time-btn:focus-visible{outline:2px solid #bfd9f6;outline-offset:2px}.booking-time-btn.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 0 1px var(--primary)}.booking-time-message{grid-column:1/-1;min-height:44px;display:flex;align-items:center;padding:10px 12px;border:1px dashed var(--line);border-radius:9px;background:#f8fafc;color:var(--muted);font-size:13px;font-weight:500;line-height:1.5}.booking-time-message.loading{background:#f4f8fd}.booking-time-message.empty,.booking-time-message.error{background:#fffaf2}
@media(max-width:520px){.booking-time-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.booking-time-btn{min-height:44px;padding:9px 5px}}

/* Phase 15: polished calendar + time selection */
@media(min-width:851px){.booking-shell{max-width:1180px;grid-template-columns:260px minmax(0,1fr);gap:34px}}
.booking-datetime-section{gap:18px!important}.booking-section-title{display:grid;gap:5px}.booking-section-title p{margin:0 0 2px 38px;color:var(--muted);font-size:13px;line-height:1.6}.booking-datetime-grid{display:grid;grid-template-columns:minmax(330px,.95fr) minmax(360px,1.05fr);gap:16px;align-items:stretch}.booking-date-panel,.booking-time-panel{min-width:0;border:1px solid #e6edf6;border-radius:16px;background:#fff;padding:18px;box-shadow:0 7px 24px rgba(23,54,93,.045)}.booking-panel-heading{display:flex;align-items:center;gap:10px;color:#13233e;font-size:16px;margin-bottom:16px}.booking-panel-icon{width:34px;height:34px;border-radius:10px;background:#edf5ff;color:var(--primary);display:grid;place-items:center;flex:0 0 auto}.booking-panel-icon svg{width:20px;height:20px}.booking-calendar{min-width:0}.booking-calendar-head{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:8px;margin-bottom:13px}.booking-calendar-head>strong{text-align:center;font-size:20px;color:#14213a;letter-spacing:.2px}.booking-calendar-nav{width:38px;height:38px;border:1px solid #e2e9f2;border-radius:50%;background:#f8fbff;color:#23476f;font-size:28px;line-height:1;display:grid;place-items:center;padding:0 0 4px;transition:.15s ease}.booking-calendar-nav:hover:not(:disabled){border-color:#a9c9ef;background:#edf5ff;color:var(--primary)}.booking-calendar-nav:disabled{opacity:.28;cursor:not-allowed}.booking-calendar-weekdays,.booking-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.booking-calendar-weekdays{margin-bottom:6px}.booking-calendar-weekdays span{text-align:center;font-size:12px;font-weight:800;color:#73839a;padding:4px 0}.booking-calendar-days{grid-auto-rows:43px}.booking-calendar-day{position:relative;border:1px solid transparent;border-radius:11px;background:transparent;color:#213654;font-size:14px;font-weight:750;min-width:0;padding:0;display:grid;place-items:center;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.booking-calendar-day.available::after{content:"";position:absolute;bottom:5px;width:4px;height:4px;border-radius:50%;background:#3185df}.booking-calendar-day:hover:not(:disabled):not(.selected){background:#f3f8fe;border-color:#dbeafb}.booking-calendar-day.selected{background:linear-gradient(180deg,#3f92ed,#287bd6);border-color:#287bd6;color:#fff;box-shadow:0 7px 16px rgba(40,123,214,.22)}.booking-calendar-day.selected::after{background:#fff}.booking-calendar-day.disabled,.booking-calendar-day.outside{color:#c3ccd8}.booking-calendar-day.disabled::after,.booking-calendar-day.outside::after{display:none}.booking-calendar-day:nth-child(7n+1):not(.selected):not(.disabled){color:#ef5c7c}.booking-calendar-day:focus-visible,.booking-time-btn:focus-visible,.booking-calendar-nav:focus-visible{outline:3px solid #cae2fb;outline-offset:2px}.booking-calendar-legend{display:flex;flex-wrap:wrap;gap:11px 16px;margin-top:15px;padding-top:13px;border-top:1px solid #eef2f7;color:#65758a;font-size:12px}.booking-calendar-legend span{display:inline-flex;align-items:center;gap:6px}.booking-calendar-legend i{width:9px;height:9px;border-radius:50%;display:block}.booking-calendar-legend .is-available{background:#3185df}.booking-calendar-legend .is-selected{background:#267bd7;box-shadow:0 0 0 3px #ddecff}.booking-calendar-legend .is-disabled{background:#c5cfda}.booking-time-panel{display:flex;flex-direction:column}.booking-selected-date{min-height:30px;margin:-4px 0 10px 44px;color:#17345d;font-size:15px;font-weight:800}.booking-time-slots{display:grid;grid-template-columns:repeat(4,minmax(68px,1fr));gap:9px;min-height:44px}.booking-time-btn{min-height:48px;border:1px solid #cfe0f3;border-radius:12px;background:#fbfdff;color:#173d70;font-weight:800;padding:9px 5px;box-shadow:0 1px 0 rgba(23,54,93,.02);transition:.15s ease}.booking-time-btn:hover{background:#f1f7ff;border-color:#8eb9e9;transform:translateY(-1px)}.booking-time-btn.active{background:linear-gradient(180deg,#4296ef,#2a80dd);border-color:#2a80dd;color:#fff;box-shadow:0 7px 16px rgba(42,128,221,.20)}.booking-time-message{border:0;border-radius:12px;background:#f5f8fc;min-height:54px;justify-content:center;text-align:center}.booking-time-message.loading{background:#f2f7fd}.booking-time-message.empty,.booking-time-message.error{background:#fff8ef;color:#8d6420}.booking-time-selection-info{margin-top:auto;padding:14px 15px;border-radius:13px;background:#f1f7fe;display:flex;align-items:flex-start;gap:11px;color:#1a5fa9}.booking-time-selection-info[hidden]{display:none}.booking-time-selection-info .info-icon{width:24px;height:24px;border-radius:50%;background:#2d7fd4;color:#fff;display:grid;place-items:center;font-size:14px;font-weight:900;flex:0 0 auto}.booking-time-selection-info div{min-width:0;display:grid;gap:3px}.booking-time-selection-info strong{font-size:14px}.booking-time-selection-info small{color:#66778d;font-weight:500;line-height:1.5}.booking-datetime-hint{display:flex;align-items:center;gap:8px;margin-top:0}.booking-datetime-hint::before{content:"◷";font-size:18px;color:#7a8da7}
@media(max-width:1100px){.booking-datetime-grid{grid-template-columns:1fr}.booking-time-panel{min-height:290px}}
@media(max-width:520px){.booking-section-title p{margin-left:0}.booking-date-panel,.booking-time-panel{padding:15px;border-radius:14px}.booking-calendar-head>strong{font-size:18px}.booking-calendar-weekdays,.booking-calendar-days{gap:3px}.booking-calendar-days{grid-auto-rows:40px}.booking-selected-date{margin-left:0;font-size:14px}.booking-time-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.booking-time-btn{min-height:46px;border-radius:10px}.booking-calendar-legend{gap:8px 12px}}

/* Phase 16: merchant user manual */
.manual-page{max-width:1240px;margin:0 auto}.manual-head{align-items:flex-end}.manual-kicker{display:inline-flex;padding:5px 10px;border-radius:999px;background:#eef6ff;color:#2563a8;font-size:12px;font-weight:800;letter-spacing:.04em;margin-bottom:8px}.manual-start{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,1.8fr);gap:24px;align-items:center;margin-bottom:16px}.manual-start p,.manual-step p,.manual-mini p,.manual-section-head p,.manual-end p{margin:6px 0 0;color:#697386;line-height:1.7}.manual-quick-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;list-style:none;margin:0;padding:0}.manual-quick-steps a{display:flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none;color:#213047;font-weight:800;font-size:13px;padding:12px 6px;border:1px solid #e1e8f0;border-radius:12px;background:#fbfdff}.manual-quick-steps span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eaf3ff;color:#2e76bf}.manual-tools{margin-bottom:16px;padding:14px 18px}.manual-search{display:grid;grid-template-columns:auto minmax(220px,1fr);align-items:center;gap:14px}.manual-search>span{font-weight:800;white-space:nowrap}.manual-search input{margin:0}.manual-search-result{font-size:13px;color:#6b7280;margin-top:6px;margin-left:82px}.manual-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;align-items:start}.manual-nav{position:sticky;top:18px;padding:12px;display:grid;gap:3px}.manual-nav>b{padding:8px 10px 10px}.manual-nav a{padding:9px 10px;border-radius:9px;color:#526071;text-decoration:none;font-size:14px}.manual-nav a:hover{background:#f2f7fc;color:#1d5f9f}.manual-content{min-width:0;display:grid;gap:18px}.manual-section{scroll-margin-top:18px;background:#fff;border:1px solid #e4e9ef;border-radius:16px;padding:22px}.manual-section[hidden]{display:none}.manual-section-head{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:start;padding-bottom:18px;border-bottom:1px solid #edf0f3}.manual-section-head h2{margin:1px 0 0;font-size:21px}.manual-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#edf5ff;color:#2f74ba;font-weight:900}.manual-go{align-self:center;text-decoration:none;color:#2d6eae;font-weight:800;font-size:14px;white-space:nowrap}.manual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.manual-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.manual-step,.manual-mini{background:#f8fafc;border:1px solid #e8edf2;border-radius:12px;padding:16px}.manual-step>b,.manual-mini>b{display:block;margin-bottom:8px}.manual-step ol{margin:6px 0 0;padding-left:20px;color:#4f5d6f;line-height:1.9}.manual-step strong{color:#213047}.manual-note,.manual-example{margin-top:14px;border-radius:11px;padding:13px 15px;line-height:1.7;font-size:14px}.manual-note{background:#fff8e8;border:1px solid #f2dfb3;color:#6d5827}.manual-example{background:#eef8f3;border:1px solid #cfe8db;color:#315f49}.manual-end{display:flex;justify-content:space-between;gap:16px;align-items:center}.manual-end .btn{white-space:nowrap}
@media(max-width:1050px){.manual-start{grid-template-columns:1fr}.manual-quick-steps{grid-template-columns:repeat(3,1fr)}.manual-layout{grid-template-columns:1fr}.manual-nav{position:static;display:flex;overflow-x:auto;gap:4px;white-space:nowrap}.manual-nav>b{display:none}.manual-nav a{border:1px solid #e5eaf0;background:#fff}.manual-grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.manual-head{align-items:flex-start}.manual-head>.btn{width:100%}.manual-quick-steps{grid-template-columns:repeat(2,1fr)}.manual-search{grid-template-columns:1fr;gap:7px}.manual-search-result{margin-left:0}.manual-section{padding:16px;border-radius:13px}.manual-section-head{grid-template-columns:38px 1fr}.manual-icon{width:36px;height:36px;border-radius:10px;font-size:13px}.manual-go{grid-column:2;margin-top:2px;justify-self:start}.manual-grid,.manual-grid-4{grid-template-columns:1fr}.manual-end{align-items:flex-start;flex-direction:column}.manual-end .btn{width:100%}}

/* Phase 17: illustrated merchant manual */
.manual-guide-key{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;padding:16px}.manual-guide-key>div{display:grid;grid-template-columns:34px 1fr;column-gap:10px;align-items:center}.manual-guide-key b,.manual-guide-key small{grid-column:2}.manual-guide-key small{color:var(--muted);line-height:1.5;margin-top:2px}.guide-key-icon{grid-row:1/3;width:34px;height:34px;border-radius:10px;background:#edf5ff;color:#2f74ba;display:grid;place-items:center;font-weight:900}.manual-figure{margin-top:16px;border:1px solid #dfe8f2;border-radius:14px;overflow:hidden;background:#fbfdff}.manual-figure-caption{display:flex;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid #e7edf4;background:#f5f9fe}.manual-figure-caption span{font-size:11px;font-weight:900;letter-spacing:.05em;color:#2c6eb0;background:#e8f2ff;border-radius:999px;padding:4px 8px;white-space:nowrap}.manual-figure-caption b{font-size:14px;color:#263a55}.manual-mock{padding:18px;display:grid;gap:14px}.manual-mock.two{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.manual-mock.four{grid-template-columns:repeat(4,minmax(0,1fr))}.mock-form,.mock-list,.mock-profile,.mock-wallet,.mock-coupon,.mock-calendar-mini{background:#fff;border:1px solid #e1e8f0;border-radius:12px;padding:14px}.mock-form.wide{max-width:780px}.mock-title{font-weight:900;color:#26384f;margin-bottom:11px}.mock-field{border:1px solid #dfe5ec;border-radius:9px;padding:9px 10px;background:#fff;display:grid;gap:3px;min-width:0}.mock-field small,.mock-profile small,.mock-metric small,.mock-coupon small{color:#7b8798;font-size:11px}.mock-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:9px}.mock-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.mock-primary{margin-top:11px;background:#3678c9;color:#fff;border-radius:9px;text-align:center;padding:9px 12px;font-weight:850}.mock-primary.small{display:inline-block;padding:8px 12px}.mock-checks,.mock-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.mock-checks span,.mock-tags span{border-radius:999px;padding:6px 9px;background:#eef6ff;color:#2c67a5;font-size:12px;font-weight:750}.mock-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 2px;border-bottom:1px solid #edf1f5}.mock-item:last-child{border-bottom:0}.mock-item>div{display:grid;gap:3px}.mock-item small{color:#7b8798}.mock-item.total{font-size:15px;color:#1f4f84}.mock-badge{border-radius:999px;padding:4px 8px;background:#edf0f4;color:#6b7280;font-size:11px;font-weight:850;white-space:nowrap}.mock-badge.ok{background:#e8f7ef;color:#147755}.mock-badge.wait{background:#fff3d7;color:#8a5b00}.mock-profile{display:flex;gap:12px;align-items:center}.mock-avatar{width:42px;height:42px;border-radius:50%;background:#ddecff;color:#2b6fb4;display:grid;place-items:center;font-weight:900}.mock-profile>div:last-child{display:grid;gap:3px}.mock-week{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.mock-day{border:1px solid #dfe7ef;border-radius:10px;background:#fff;padding:10px;text-align:center;display:grid;gap:5px}.mock-day b{color:#2c6eb0}.mock-day span{font-size:12px;color:#566579}.mock-day.off{background:#f2f4f7;color:#9aa5b1}.mock-leave{background:#fff3f3;border:1px solid #f0d2d2;border-radius:10px;padding:10px 12px;color:#7d4646}.mock-leave span{font-weight:850}.mock-table{border:1px solid #e1e7ee;border-radius:10px;overflow:hidden;background:#fff}.mock-tr{display:grid;grid-template-columns:1.5fr 1fr .7fr;gap:8px;padding:10px 12px;border-top:1px solid #edf1f4;align-items:center}.mock-tr.head{border-top:0;background:#f5f8fb;color:#6f7d8e;font-size:11px;font-weight:850}.mock-metric{background:#fff;border:1px solid #e1e7ee;border-radius:12px;padding:15px;display:grid;gap:6px;align-content:center}.mock-metric b{font-size:22px;color:#244f7e}.mock-kpi{background:#fff;border:1px solid #e1e7ee;border-radius:12px;padding:14px;display:grid;gap:6px}.mock-kpi small{color:#7a8798}.mock-kpi b{font-size:18px;color:#264f7d}.manual-flow{padding:18px;display:flex;align-items:stretch;gap:8px}.manual-flow>div{flex:1;min-width:0;background:#fff;border:1px solid #dfe7ef;border-radius:11px;padding:13px;display:grid;gap:5px}.manual-flow small{color:#788697;line-height:1.4}.manual-flow i{font-style:normal;color:#8fa0b4;align-self:center}.mock-statuses{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:18px}.mock-statuses span{padding:8px 10px;border-radius:999px;background:#edf5ff;color:#2e6da9;font-weight:800;font-size:12px}.mock-statuses i{color:#98a5b5}.mock-search{border:1px solid #dfe5ec;background:#fff;border-radius:10px;padding:11px;color:#708094}.mock-wallet{display:grid;gap:9px}.mock-wallet>b{font-size:24px;color:#255f99}.mock-coupon{display:grid;gap:5px;border-style:dashed}.mock-coupon b{font-size:20px;letter-spacing:.04em}.mock-coupon span{color:#2d6ca9;font-weight:800}.mock-calendar-mini{display:grid;gap:12px}.mini-days{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.mini-days span{height:38px;display:grid;place-items:center;border-radius:9px;background:#f4f7fa;color:#536174}.mini-days .sel{background:#3678c9;color:#fff;font-weight:900}.mock-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.mock-times button{border:1px solid #cfe0f3;border-radius:9px;background:#fff;color:#245583;padding:10px;font-weight:800}.mock-times button.sel{background:#3678c9;color:#fff;border-color:#3678c9}.manual-pointer{padding:10px 14px 12px;background:#f6f9fc;color:#5e6c7d;font-size:12px;line-height:1.6;border-top:1px solid #e7edf4}.topbar-help{margin-right:auto;display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:8px;background:#eef5fd;color:#2c66a3;font-size:12px;font-weight:800}.topbar-help:hover{background:#e3effb}.topbar-help .q{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#3678c9;color:#fff;font-size:12px}
@media(max-width:900px){.manual-guide-key{grid-template-columns:repeat(2,1fr)}.manual-mock.four{grid-template-columns:repeat(2,1fr)}.manual-flow{flex-wrap:wrap}.manual-flow>div{flex:1 1 42%}.manual-flow i{display:none}}
@media(max-width:600px){.manual-guide-key{grid-template-columns:1fr}.manual-mock.two,.manual-mock.four{grid-template-columns:1fr}.mock-row.three{grid-template-columns:1fr}.mock-week{grid-template-columns:repeat(2,1fr)}.manual-flow{display:grid;grid-template-columns:1fr}.manual-flow>div{width:100%}.manual-figure-caption{align-items:flex-start;flex-direction:column}.mock-times{grid-template-columns:repeat(3,1fr)}}

/* Phase 18: delete actions + business closure management */
.danger-zone{margin-top:14px;padding:14px 16px;border:1px solid #fecaca;background:#fff7f7;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:14px}.danger-zone>div{min-width:0}.danger-zone b{display:block;color:#991b1b;margin-bottom:3px}.danger-zone small,.delete-help,.field-help{display:block;color:#6b7280;line-height:1.55}.btn.danger{background:#fff;border:1px solid #fca5a5;color:#b91c1c}.btn.danger:hover{background:#fef2f2}.btn.danger:disabled{opacity:.45;cursor:not-allowed}.danger-text{color:#b91c1c!important}.category-manage-list{margin-top:14px;border-top:1px solid var(--border,#e5e7eb)}.category-manage-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--border,#e5e7eb)}.category-manage-row>div{display:flex;align-items:center;gap:10px;min-width:0}.category-manage-row small{color:#6b7280}.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.coupon-row{align-items:center}.delete-help{margin:-5px 0 12px;padding-left:2px}.closure-summary{margin-bottom:18px}.closure-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--border,#e5e7eb)}.closure-row:last-child{border-bottom:0}.closure-scope{display:inline-flex;align-items:center;justify-content:center;min-width:54px;height:30px;border-radius:999px;font-size:12px;font-weight:800}.closure-scope.all{background:#fee2e2;color:#991b1b}.closure-scope.branch{background:#dbeafe;color:#1d4ed8}.closure-info{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-width:0}.closure-info b{font-size:15px}.closure-info span{font-weight:700}.closure-info small{width:100%;color:#6b7280}.closure-callout{padding:12px 14px;border-radius:12px;background:#eff6ff;color:#1e3a8a;line-height:1.7;font-size:14px}.schedule-row{display:flex!important;align-items:center;justify-content:space-between;gap:12px}.schedule-row>div{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.closure-form{border-top:4px solid #60a5fa}.field-help{margin-top:-4px}.link-btn{background:none;border:0;cursor:pointer;font:inherit;padding:4px 6px}.link-btn:hover{text-decoration:underline}
@media(max-width:700px){.danger-zone{align-items:flex-start;flex-direction:column}.danger-zone form,.danger-zone .btn{width:100%}.closure-row{grid-template-columns:auto minmax(0,1fr)}.closure-row>form{grid-column:2}.coupon-row{align-items:flex-start;flex-direction:column}.row-actions{width:100%}.row-actions form{flex:1}.row-actions .btn{width:100%}.category-manage-row{align-items:flex-start}}

/* Phase 19: calendar closure + QR check-in */
.booking-calendar-day.closed{background:#f5f6f8;border-color:#eceff3;color:#a7b0bd;cursor:not-allowed;display:flex;flex-direction:column;gap:1px;line-height:1}.booking-calendar-day.closed .day-number{font-weight:800}.booking-calendar-day.closed small{font-size:8px;font-weight:800;color:#b16c73;letter-spacing:.2px}.booking-calendar-day.closed::after{display:none!important}.booking-calendar-legend .is-closed{background:#d9adb2}.booking-calendar-day .day-number{pointer-events:none}
.booking-qr-card{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:22px;align-items:center;margin:24px 0;padding:22px;border:1px solid #dfeaf6;border-radius:18px;background:#f8fbff;text-align:left}.booking-qr-card h2{margin:5px 0 8px;font-size:20px}.booking-qr-card p{margin:0;color:var(--muted);line-height:1.7}.booking-qr-card img{width:220px;height:220px;max-width:100%;justify-self:end;border:10px solid #fff;border-radius:14px;box-shadow:0 5px 20px rgba(26,64,105,.08)}
.checkin-shell{max-width:620px;margin:0 auto;padding:22px 14px 40px}.checkin-card{background:#fff;border:1px solid #e4ebf3;border-radius:22px;padding:26px;box-shadow:0 14px 40px rgba(26,57,91,.07);text-align:center}.checkin-brand{font-size:13px;font-weight:900;letter-spacing:1px;color:var(--primary);text-transform:uppercase}.checkin-card h1{margin:5px 0 4px}.checkin-booking-no{margin:0 0 20px;color:var(--muted)}.checkin-lock{width:70px;height:70px;border-radius:20px;background:#eef5fe;display:grid;place-items:center;margin:20px auto 14px;font-size:30px}.checkin-pin-form{max-width:360px;margin:20px auto 0;text-align:left}.checkin-pin-form input{font-size:24px;letter-spacing:7px;text-align:center}.checkin-status-row{margin:18px 0}.checkin-status{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border-radius:999px;font-weight:850}.checkin-status.pending{background:#fff6df;color:#936b15}.checkin-status.arrived{background:#eaf5ff;color:#236cae}.checkin-status.completed{background:#e8f7ef;color:#26754b}.checkin-summary{text-align:left;margin-top:18px}.checkin-summary .full{grid-column:1/-1}.checkin-actions{display:grid;gap:10px;margin-top:20px}.checkin-actions form{margin:0}
@media(max-width:620px){.booking-qr-card{grid-template-columns:1fr;text-align:center}.booking-qr-card img{justify-self:center}.checkin-card{padding:20px 16px;border-radius:18px}}

/* Phase 20: store-branded confirmation + admin booking preview */
.booking-preview-banner{
    grid-column:1/-1;
    display:flex;
    gap:10px;
    align-items:center;
    flex-wrap:wrap;
    padding:12px 16px;
    border:1px solid #e4cfd5;
    border-radius:14px;
    background:#fff7f9;
    color:#7f4352;
    font-size:14px;
}
.booking-preview-banner b{color:#9c4f61}
.booking-preview-head{gap:16px;align-items:flex-start}
.booking-preview-panel{padding:0;overflow:hidden}
.booking-preview-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:14px 16px;
    border-bottom:1px solid #e8edf3;
    background:#fff;
}
.booking-preview-device{
    display:inline-flex;
    padding:3px;
    border:1px solid #dfe5ec;
    border-radius:12px;
    background:#f6f8fb;
}
.preview-device-btn{
    min-height:38px;
    padding:8px 16px;
    border:0;
    border-radius:9px;
    background:transparent;
    color:#667085;
    font-weight:700;
    cursor:pointer;
}
.preview-device-btn.active{
    background:#b86075;
    color:#fff;
}
.booking-preview-stage{
    padding:24px;
    background:#eef2f6;
    overflow-x:auto;
}
.booking-preview-frame-wrap{
    width:100%;
    max-width:100%;
    min-width:320px;
    margin:0 auto;
    transition:max-width .18s ease;
    background:#fff;
    border:1px solid #dfe4ea;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 12px 35px rgba(16,24,40,.08);
}
.booking-preview-frame-wrap iframe{
    display:block;
    width:100%;
    height:900px;
    border:0;
    background:#fff;
}
.booking-preview-note{
    padding:14px 18px;
    border-top:1px solid #e8edf3;
    color:#667085;
    font-size:13px;
    line-height:1.7;
    background:#fff;
}

.success-store-wrap{max-width:980px}
.success-store-head{
    display:flex;
    align-items:center;
    gap:16px;
    margin-bottom:18px;
    padding:22px;
    border:1px solid #eadde1;
    border-radius:18px;
    background:linear-gradient(135deg,#fff9fa,#f7eef1);
}
.success-store-mark{
    width:58px;
    height:58px;
    flex:0 0 58px;
    display:grid;
    place-items:center;
    border-radius:16px;
    background:#b56074;
    color:#fff;
    font-size:28px;
    font-weight:800;
}
.success-store-head h1{margin:2px 0 2px;font-size:28px}
.success-store-head p{margin:0;color:#6f7682}
.success-confirm-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-bottom:18px;
}
.success-confirm-head>div:first-child{display:flex;align-items:center;gap:14px}
.success-confirm-head .success-icon{margin:0;flex:0 0 auto}
.success-confirm-head h2{margin:0;font-size:26px}
.success-confirm-head p{margin:5px 0 0;color:#6f7682}
.success-booking-no{color:#667085;font-size:14px;white-space:nowrap}
.success-booking-no b{display:block;color:#1f2937;font-size:16px;margin-top:3px}
.success-content-grid{
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);
    gap:16px;
}
.success-booking-summary,
.success-qr-card{
    margin:0;
    border:1px solid #eadfe2;
    border-radius:16px;
    background:#fff;
}
.success-booking-summary{padding:18px 20px}
.success-booking-summary h3{margin:0 0 8px;color:#a05465}
.success-qr-card{
    padding:20px;
    text-align:center;
    background:#fff8fa;
}
.success-qr-card img{display:block;margin:12px auto;background:#fff;border:8px solid #fff;border-radius:12px;max-width:100%;height:auto}
.success-qr-card p{color:#667085;line-height:1.7;font-size:13px}
.success-store-info{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    margin-top:16px;
    padding:18px 20px;
    border:1px solid #eadfe2;
    border-radius:16px;
    background:#fff;
}
.success-store-info>div+div{border-left:1px solid #eee4e7;padding-left:20px}
.success-store-info h3{margin:0 0 8px;color:#2b3442}
.success-store-info p{margin:4px 0;color:#667085;line-height:1.7;font-size:14px}
.success-store-info a{color:#a05465}
.success-actions{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}

@media(max-width:760px){
    .booking-preview-stage{padding:12px}
    .booking-preview-toolbar{align-items:flex-start;flex-direction:column}
    .booking-preview-frame-wrap iframe{height:780px}
    .success-confirm-head{align-items:flex-start;flex-direction:column}
    .success-booking-no{white-space:normal}
    .success-content-grid{grid-template-columns:1fr}
    .success-store-info{grid-template-columns:1fr}
    .success-store-info>div+div{border-left:0;border-top:1px solid #eee4e7;padding-left:0;padding-top:16px}
    .success-store-head{align-items:flex-start}
}
.line-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.line-status{padding:12px 14px;border:1px solid #e4e8ef;border-radius:10px;font-weight:700}.line-status.ok{background:#edf9f2;color:#287a4d;border-color:#bfe7cf}.line-status.bad{background:#fff3f3;color:#a33b3b;border-color:#efcaca}.error-text{color:#a33b3b}@media(max-width:640px){.line-status-grid{grid-template-columns:1fr}}

/* Phase 24 - LIFF member binding UX */
.line-bind-wrap{padding-top:34px;padding-bottom:60px}
.line-bind-card{max-width:720px}
.line-bind-brand{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.line-bind-avatar{width:58px;height:58px;border-radius:50%;object-fit:cover;border:1px solid #e5e7eb}
.line-bind-brand .eyebrow{font-size:13px;font-weight:700;color:#5c7598;margin-bottom:4px}
.line-bind-brand h1{margin:0 0 4px}
.line-bind-brand .muted{margin:0;color:#64748b}
.line-bind-notice{padding:16px 18px;margin:0 0 22px;border:1px solid #dbe8f5;border-radius:14px;background:#f6faff;color:#42556f;line-height:1.75}
.line-bind-notice strong{display:block;color:#173b68;margin-bottom:4px}
.line-bind-notice p{margin:4px 0}
.field-optional{font-size:.9em;font-weight:500;color:#718096}
.line-bind-error{margin:-4px 0 18px;padding:12px 14px;border-radius:12px;background:#fff3f1;color:#a83a32;line-height:1.6}
.line-bind-error strong{display:block;margin-bottom:2px}
.line-bind-footnote{margin:14px 0 0;text-align:center;font-size:13px;color:#718096;line-height:1.6}
@media(max-width:640px){.line-bind-wrap{padding-top:18px}.line-bind-brand{align-items:flex-start}.line-bind-avatar{width:50px;height:50px}.line-bind-notice{padding:14px}}


/* Phase 25 - LIFF Rich Menu target sections */
.member-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 18px}.member-shortcuts a{display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 12px;border:1px solid #dbe3ec;border-radius:12px;background:#fff;color:#334155;font-weight:700;text-decoration:none}.member-shortcuts a.active{border-color:#7aa7e8;background:#eef5ff;color:#245ea8}.member-section{scroll-margin-top:18px}.member-section.is-target{outline:2px solid rgba(59,130,246,.18);outline-offset:3px}.member-coupons{display:grid;gap:10px;margin:10px 0 18px}.member-coupon{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:14px;border:1px dashed #d6a1ad;border-radius:14px;background:#fff7f8}.member-coupon div{display:flex;flex-direction:column;gap:2px}.member-coupon b{font-size:18px;letter-spacing:.04em}.member-coupon strong{align-self:center;color:#a33f57}.member-coupon>small{grid-column:1/-1;color:#64748b}.member-subtitle{margin:20px 0 8px;font-size:16px}.empty.compact{padding:12px 0}@media(max-width:640px){.member-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.member-coupon{grid-template-columns:1fr}.member-coupon strong{justify-self:start}}

/* Phase 26: admin edit/delete actions */
.row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.row-actions form{margin:0}
.btn.small{min-height:34px;padding:6px 10px;font-size:13px}
.btn.danger{background:#fff1f2;border-color:#fecdd3;color:#be123c}
.btn.danger:hover{background:#ffe4e6;border-color:#fda4af}
.btn.danger:disabled{opacity:.45;cursor:not-allowed}
.danger-zone{margin-top:18px;padding:18px 20px;border:1px solid #fecdd3;border-radius:14px;background:#fff7f8;display:flex;align-items:center;justify-content:space-between;gap:18px}
.danger-zone p{margin:5px 0 0;color:#7f1d1d;font-size:13px;line-height:1.6}
.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.admin-form-grid label{display:flex;flex-direction:column;gap:7px;font-weight:600}
.admin-form-grid .full{grid-column:1/-1}
.admin-form-grid input,.admin-form-grid textarea{width:100%}
.form-summary{display:flex;gap:24px;flex-wrap:wrap;padding:14px 16px;background:#f8fafc;border-radius:12px;color:#64748b}
.form-actions{display:flex;gap:10px;flex-wrap:wrap}
.customer-edit-card{max-width:900px}
@media(max-width:720px){.admin-form-grid{grid-template-columns:1fr}.danger-zone{align-items:flex-start;flex-direction:column}.row-actions{min-width:180px}}

/* Phase 27 - LINE marketing center */
.line-center-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}.line-center-tabs a{padding:10px 15px;border:1px solid #dbe2ea;border-radius:999px;background:#fff;text-decoration:none;color:#334155;font-weight:700}.line-center-section{margin-bottom:22px}.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.section-title h2{margin:0 0 5px}.richmenu-builder{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.5fr);gap:24px}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.template-card{border:1px solid #e3e8ef;border-radius:14px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:10px}.template-card img{width:100%;aspect-ratio:2500/1686;object-fit:cover;border-radius:10px;border:1px solid #edf0f4}.template-card summary{display:flex;flex-direction:column;gap:8px;cursor:pointer}.richmenu-form>label{display:block;margin-bottom:18px}.richmenu-form small,.sync-line-menu small{display:block;color:#718096;margin-top:5px}.richmenu-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.richmenu-action-card{position:relative;border:1px solid #e5e7eb;border-radius:14px;padding:14px;background:#fbfcfe}.richmenu-action-card .number{position:absolute;right:10px;top:10px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#eef3f9;font-weight:800;color:#64748b}.richmenu-action-card label{display:block;margin:0 0 9px}.sync-line-menu{margin-top:20px;padding:16px;border-radius:14px;background:#f8fafc;border:1px dashed #cbd5e1;display:flex;align-items:center;justify-content:space-between;gap:18px}.line-card-layout{align-items:start}.inline-test{margin-top:18px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:16px;border-top:1px solid #edf0f4}.info-box{margin-top:18px;padding:14px 16px;background:#f8fafc;border:1px solid #dfe6ee;border-radius:12px;color:#475569}.info-box code{font-size:.92em}.platform-template-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.platform-nav a{color:inherit;text-decoration:none;font-weight:700}
@media(max-width:900px){.richmenu-builder{grid-template-columns:1fr}.richmenu-actions{grid-template-columns:1fr}.sync-line-menu{align-items:stretch;flex-direction:column}.line-card-layout{grid-template-columns:1fr!important}}
.current-richmenu-preview{margin:0 0 16px;max-width:520px}.current-richmenu-preview span{display:block;font-weight:700;margin-bottom:8px}.current-richmenu-preview img{display:block;width:100%;aspect-ratio:2500/1686;object-fit:cover;border:1px solid #dfe5ec;border-radius:14px}

/* Phase 28: two-level admin navigation + split feature pages */
.admin-nav{display:block!important;margin-top:16px!important}
.admin-nav>a,.nav-group{margin-bottom:5px}
.admin-nav .nav-dashboard,.admin-nav .nav-external{display:flex;align-items:center;gap:10px;padding:11px 12px!important;border-radius:9px}
.nav-ico{width:22px;min-width:22px;display:inline-grid;place-items:center;font-style:normal;font-weight:800;opacity:.9}
.nav-group{border-radius:10px;overflow:hidden}
.nav-group>summary{list-style:none;cursor:pointer;padding:11px 12px;color:#dce8f7;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;font-weight:800;user-select:none}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary span{display:flex;align-items:center;gap:10px;min-width:0}
.nav-group>summary b{font-size:15px;font-weight:500;transition:transform .18s ease;opacity:.75}
.nav-group[open]>summary{background:rgba(255,255,255,.075);color:#fff}
.nav-group[open]>summary b{transform:rotate(180deg)}
.nav-group>summary:hover{background:rgba(255,255,255,.08)}
.nav-children{display:grid;gap:2px;padding:4px 0 7px 32px}
.sidebar .nav-children a{position:relative;padding:9px 12px!important;border-radius:8px;color:#c9daee;font-size:13px}
.sidebar .nav-children a:before{content:"";position:absolute;left:-10px;top:50%;width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.28);transform:translateY(-50%)}
.sidebar .nav-children a:hover,.sidebar .nav-children a.active{background:#3678c9;color:#fff}
.sidebar .nav-children a.active:before{background:#fff}
.nav-external{margin-top:8px;border-top:1px solid rgba(255,255,255,.11);border-radius:0!important;padding-top:15px!important}

.page-subnav{display:flex;gap:8px;flex-wrap:wrap;margin:-6px 0 20px;padding:6px;background:#eef2f7;border:1px solid #e1e7ef;border-radius:12px;width:max-content;max-width:100%}
.page-subnav a{padding:9px 14px;border-radius:8px;color:#475569;font-size:13px;font-weight:800;white-space:nowrap}
.page-subnav a:hover{background:#fff;color:#255fa8}
.page-subnav a.active{background:#fff;color:#255fa8;box-shadow:0 1px 4px rgba(15,23,42,.08)}
.section-divider{border:0;border-top:1px solid #e8edf3;margin:8px 0 2px}
.setting-section-card{max-width:980px}
.settings-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:980px}
.package-create-panel{max-width:760px}
.current-richmenu-preview{margin:0 0 16px;padding:12px;background:#f8fafc;border:1px solid #e4e9f0;border-radius:12px}
.current-richmenu-preview span{display:block;font-size:12px;color:#64748b;margin-bottom:8px;font-weight:700}
.current-richmenu-preview img{display:block;width:min(100%,560px);aspect-ratio:2500/1686;object-fit:cover;border-radius:10px;border:1px solid #e2e8f0}

@media(max-width:850px){
  .settings-tool-grid{grid-template-columns:1fr}
  .page-subnav{width:100%;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .page-subnav::-webkit-scrollbar{display:none}
  .nav-group>summary{padding-top:12px;padding-bottom:12px}
}

/* Phase 29 manual: two-level navigation guide */
.manual-nav-group{display:block;margin:14px 8px 5px;padding-top:10px;border-top:1px solid var(--line,#e8edf3);font-size:12px;font-weight:800;letter-spacing:.06em;color:#8a94a4}.manual-nav-group:first-of-type{margin-top:8px;border-top:0;padding-top:0}.manual-menu-map{margin-bottom:16px}.manual-menu-map b{display:block;margin-bottom:5px}.manual-menu-map p{margin:0;color:#687386;line-height:1.7}


/* Phase 31 - platform tenant destructive action */
.platform-main .tenant-delete-form{margin:0}
.platform-main .tenant-delete-form .btn.danger{white-space:nowrap;background:#fff;border:1px solid #dc2626;color:#b91c1c}
.platform-main .tenant-delete-form .btn.danger:hover{background:#fef2f2}

/* Phase 35: 會員套票 / 點數 / QR 備援 */
.booking-member-benefits{margin-top:16px;padding:18px;border:1px solid #e8e2e4;border-radius:16px;background:#fffafb}
.booking-member-benefits h3{margin:0 0 12px;font-size:16px}
.booking-member-benefits label+label{margin-top:12px}
.qr-fallback-link{margin:8px 0 0;font-size:13px}.qr-fallback-link a{font-weight:700}
.success-benefit{margin-top:8px;padding:10px 12px;border-radius:10px;background:#fff8fa}
@media (max-width:640px){.booking-member-benefits{padding:14px}}


/* Phase 35.2 - settings page width/layout repair */
.setting-form.settings-wide,
.setting-section-card.settings-wide{
    width:100%;
    max-width:1180px;
}
.setting-form.settings-wide .form-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px 18px;
}
.setting-form.settings-wide label,
.setting-form.settings-wide input,
.setting-form.settings-wide select,
.setting-form.settings-wide textarea{
    min-width:0;
}
.setting-form.settings-wide > label{
    max-width:none;
}
.settings-tool-grid{
    width:100%;
    max-width:1180px;
}
@media(max-width:760px){
    .setting-form.settings-wide .form-grid{grid-template-columns:1fr}
}

/* Phase 35.2 - stable success-page QR rendering */
.success-qr-image-wrap{
    width:236px;
    height:236px;
    max-width:100%;
    margin:12px auto;
    padding:8px;
    display:grid;
    place-items:center;
    background:#fff;
    border:1px solid #eadfe2;
    border-radius:14px;
    overflow:hidden;
}
.success-qr-card .success-qr-image-wrap img{
    display:block;
    width:220px;
    height:220px;
    max-width:100%;
    object-fit:contain;
    margin:0;
    padding:0;
    border:0;
    border-radius:6px;
    box-shadow:none;
    background:#fff;
}
.qr-retry-button{
    border:0;
    padding:0;
    background:transparent;
    color:#2563eb;
    font:inherit;
    text-decoration:underline;
    cursor:pointer;
}

/* Phase 35.3 - QR card must not inherit the old two-column booking-qr-card layout */
.booking-qr-card.success-qr-card{
    display:block;
    grid-template-columns:none;
    gap:0;
    align-items:initial;
    text-align:center;
}
.booking-qr-card.success-qr-card > *{
    min-width:0;
    max-width:100%;
}
.booking-qr-card.success-qr-card .eyebrow{
    display:block;
    width:auto;
    margin:0 0 4px;
    white-space:normal;
}
.booking-qr-card.success-qr-card h2{
    margin:4px 0 10px;
}
.booking-qr-card.success-qr-card .success-qr-image-wrap{
    width:236px;
    height:236px;
    max-width:236px;
    margin:12px auto;
}
.booking-qr-card.success-qr-card .success-qr-image-wrap img{
    width:220px !important;
    height:220px !important;
    max-width:220px !important;
    min-width:220px;
    min-height:220px;
    object-fit:contain;
}
.booking-qr-card.success-qr-card .qr-fallback-link,
.booking-qr-card.success-qr-card > p{
    width:100%;
    max-width:none;
    writing-mode:horizontal-tb;
    word-break:normal;
    overflow-wrap:anywhere;
}
@media(max-width:420px){
    .booking-qr-card.success-qr-card .success-qr-image-wrap{
        width:min(236px,100%);
        height:auto;
        aspect-ratio:1/1;
    }
    .booking-qr-card.success-qr-card .success-qr-image-wrap img{
        width:min(220px,100%) !important;
        height:auto !important;
        min-width:0;
        min-height:0;
        aspect-ratio:1/1;
    }
}


/* Phase 35.4 - isolated settings layouts and LINE settings repair */
.settings-page-root{display:block!important;width:100%;max-width:1180px;min-width:0}
.settings-page-root>.panel,.settings-page-root>form.panel,.settings-page-root>.settings-tool-grid{width:100%!important;max-width:1180px!important;min-width:0}
.settings-page-line .line-settings-form{display:grid!important;grid-template-columns:1fr!important;width:100%!important;max-width:1180px!important;min-width:0}
.settings-page-line .line-settings-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;width:100%}
.settings-page-line .line-settings-form>label,.settings-page-line .line-settings-form .form-grid>label,.settings-page-line .line-settings-form input,.settings-page-line .line-settings-form select,.settings-page-line .line-settings-form textarea{min-width:0;max-width:none}
.settings-page-line .line-callback-url,.settings-page-line .line-rich-links,.settings-page-line .line-rich-links p,.settings-page-line .line-rich-links code{width:100%;max-width:100%;writing-mode:horizontal-tb!important;word-break:normal;overflow-wrap:anywhere}
.settings-page-line .line-settings-tools{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:20px;align-items:start;width:100%!important;max-width:1180px!important}
.settings-page-line .line-settings-tools>.panel{width:100%!important;max-width:none!important;min-width:0;margin:0 0 20px}
.settings-page-line .line-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}
.settings-page-line .line-status{min-width:0;padding:12px 10px;text-align:center;white-space:normal}
.settings-page-line .line-settings-tools label,.settings-page-line .line-settings-tools select,.settings-page-line .line-settings-tools button{min-width:0}
@media(max-width:900px){.settings-page-line .line-settings-tools{grid-template-columns:1fr!important}}
@media(max-width:760px){.settings-page-line .line-settings-form .form-grid,.settings-page-line .line-status-grid{grid-template-columns:1fr}.settings-page-root{max-width:none}}

/* Phase 35.5 - force settings pages to consume the full admin content width */
body.admin-body .main > .content{
    width:100%;
    max-width:none;
    min-width:0;
}
body.admin-body .main > .content .settings-page-root{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
}
body.admin-body .main > .content .settings-page-root > .panel,
body.admin-body .main > .content .settings-page-root > form.panel,
body.admin-body .main > .content .settings-page-root > .settings-tool-grid{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
}
body.admin-body .main > .content .settings-page-line .line-settings-form{
    width:100% !important;
    max-width:none !important;
    display:block !important;
}
body.admin-body .main > .content .settings-page-line .line-settings-form .form-grid{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(260px,1fr)) !important;
    gap:16px 20px !important;
    width:100% !important;
}
body.admin-body .main > .content .settings-page-line .line-settings-tools{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(320px,1fr)) !important;
    gap:20px !important;
    width:100% !important;
    max-width:none !important;
}
body.admin-body .main > .content .settings-page-general .settings-wide,
body.admin-body .main > .content .settings-page-google .settings-wide{
    width:100% !important;
    max-width:none !important;
}
body.admin-body .main > .content .line-callback-url code,
body.admin-body .main > .content .line-rich-links code{
    display:inline;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:break-word;
}
@media(max-width:980px){
    body.admin-body .main > .content .settings-page-line .line-settings-tools{
        grid-template-columns:1fr !important;
    }
}
@media(max-width:760px){
    body.admin-body .main > .content .settings-page-line .line-settings-form .form-grid{
        grid-template-columns:1fr !important;
    }
}


/* Phase 35.6 - deterministic full-width settings layout */
@media(min-width:851px){
body.admin-body .main>.content>.settings-page-head-v356,body.admin-body .main>.content>.settings-page-subnav-v356,body.admin-body .main>.content>#settings-page-root{width:calc(100vw - 290px)!important;max-width:none!important;min-width:0!important}
body.admin-body .main>.content>#settings-page-root>.panel,body.admin-body .main>.content>#settings-page-root>form.panel,body.admin-body .main>.content>#settings-page-root>.settings-tool-grid{width:100%!important;max-width:none!important;min-width:0!important;box-sizing:border-box!important}
body.admin-body .main>.content>#settings-page-root .form-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px 20px!important;width:100%!important}
body.admin-body .main>.content>#settings-page-root .form-grid>.full{grid-column:1/-1!important}
body.admin-body .main>.content>#settings-page-root.settings-page-line .line-settings-form{display:grid!important;grid-template-columns:1fr!important}
body.admin-body .main>.content>#settings-page-root.settings-page-line .line-settings-tools{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px!important}
}
@media(max-width:850px){body.admin-body .main>.content>.settings-page-head-v356,body.admin-body .main>.content>.settings-page-subnav-v356,body.admin-body .main>.content>#settings-page-root{width:100%!important;max-width:none!important}}
@media(max-width:760px){body.admin-body .main>.content>#settings-page-root .form-grid,body.admin-body .main>.content>#settings-page-root.settings-page-line .line-settings-tools{grid-template-columns:1fr!important}}

/* ==========================================================================\n   Phase 35.8 - Admin shell root layout fix\n   Replace fixed-sidebar + margin compensation with one deterministic grid.\n   ========================================================================== */
@media (min-width:851px){
    html,body.admin-body{min-width:0;}
    body.admin-body{
        display:grid !important;
        grid-template-columns:230px minmax(0,1fr) !important;
        grid-template-rows:minmax(100vh,auto) !important;
        align-items:start !important;
        width:100% !important;
        min-height:100vh !important;
        overflow-x:hidden !important;
    }
    body.admin-body > .sidebar{
        grid-column:1 !important;
        grid-row:1 !important;
        position:sticky !important;
        top:0 !important;
        left:auto !important;
        right:auto !important;
        bottom:auto !important;
        inset:auto !important;
        width:230px !important;
        min-width:230px !important;
        max-width:230px !important;
        height:100vh !important;
        min-height:100vh !important;
        align-self:start !important;
        overflow:hidden !important;
        z-index:30 !important;
    }
    body.admin-body > .sidebar .admin-nav{
        display:grid !important;
        overflow-y:auto !important;
        overflow-x:hidden !important;
        max-height:calc(100vh - 82px) !important;
        padding-right:4px !important;
        padding-bottom:24px !important;
        align-content:start !important;
    }
    body.admin-body > .main{
        grid-column:2 !important;
        grid-row:1 !important;
        display:block !important;
        margin-left:0 !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        min-height:100vh !important;
        overflow:visible !important;
    }
    body.admin-body > .main > .topbar{
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
    }
    body.admin-body > .main > .content{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        margin:0 !important;
        padding:30px !important;
        overflow:visible !important;
    }
}

/* Phase 35.8 settings: never inherit the historical 800/980/1180px caps. */
body.admin-body .settings-v358,
body.admin-body .settings-v358 > form,
body.admin-body .settings-v358 > .panel,
body.admin-body .settings-v358 .settings-v358-form,
body.admin-body .settings-v358 .settings-v358-grid,
body.admin-body .settings-v358 .settings-v358-tool-grid{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
}
body.admin-body .settings-v358 > .setting-section-card,
body.admin-body .settings-v358 > form.setting-section-card,
body.admin-body .settings-v358 .settings-wide,
body.admin-body .settings-v358 .setting-form{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
}
body.admin-body .settings-v358 .form-grid{
    width:100% !important;
    max-width:none !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
body.admin-body .settings-v358 .form-grid > .full{grid-column:1/-1 !important;}

/* Keep action buttons in normal document flow. Sticky footers were responsible
   for the visible horizontal overlay while scrolling the LINE settings page. */
body.admin-body .settings-v358-actions{
    position:static !important;
    inset:auto !important;
    z-index:auto !important;
    background:transparent !important;
}

@media (max-width:850px){
    body.admin-body{
        display:block !important;
        width:100% !important;
        min-width:0 !important;
        overflow-x:hidden !important;
    }
    body.admin-body > .sidebar{
        position:fixed !important;
        inset:0 auto 0 0 !important;
        width:230px !important;
        max-width:230px !important;
        height:100vh !important;
        transform:translateX(-100%);
        z-index:50 !important;
        overflow:hidden !important;
    }
    body.admin-body.nav-open > .sidebar{transform:translateX(0) !important;}
    body.admin-body > .sidebar .admin-nav{
        overflow-y:auto !important;
        overflow-x:hidden !important;
        max-height:calc(100vh - 82px) !important;
        padding-bottom:24px !important;
    }
    body.admin-body > .main{
        margin-left:0 !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
    }
    body.admin-body > .main > .content{
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        padding:20px !important;
    }
    body.admin-body .settings-v358 .form-grid{grid-template-columns:1fr !important;}
    body.admin-body .settings-v358 .form-grid > .full{grid-column:auto !important;}
}
@media (max-width:520px){
    body.admin-body > .main > .content{padding:16px !important;}
}

/* ==========================================================================
   Phase 35.11 - Sidebar visual restore
   Restore the original compact sidebar appearance while keeping safe scrolling.
   ========================================================================== */
body.admin-body > .sidebar{
    display:flex !important;
    flex-direction:column !important;
    height:100vh !important;
    min-height:100vh !important;
    overflow:hidden !important;
}
body.admin-body > .sidebar > .brand{
    flex:0 0 auto !important;
}
body.admin-body > .sidebar > .admin-nav{
    flex:1 1 auto !important;
    min-height:0 !important;
    height:auto !important;
    max-height:none !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    padding:0 2px 22px !important;
    margin-top:20px !important;
    align-content:start !important;
    overscroll-behavior:contain !important;
    scrollbar-width:none !important;
}
body.admin-body > .sidebar > .admin-nav::-webkit-scrollbar{
    width:0 !important;
    height:0 !important;
}
/* Keep the original rounded group treatment. Do not flatten/expand groups. */
body.admin-body > .sidebar .nav-group{
    height:auto !important;
    max-height:none !important;
    overflow:hidden !important;
}
body.admin-body > .sidebar .nav-group[open] > .nav-children{
    height:auto !important;
    max-height:none !important;
}
body.admin-body > .sidebar .nav-external{
    position:static !important;
    margin-top:8px !important;
    margin-bottom:4px !important;
}

/* A very subtle scroll indicator is shown only while the sidebar is hovered. */
@media (hover:hover) and (pointer:fine){
    body.admin-body > .sidebar:hover > .admin-nav{
        scrollbar-width:thin !important;
        scrollbar-color:rgba(255,255,255,.20) transparent !important;
    }
    body.admin-body > .sidebar:hover > .admin-nav::-webkit-scrollbar{
        width:4px !important;
    }
    body.admin-body > .sidebar:hover > .admin-nav::-webkit-scrollbar-thumb{
        background:rgba(255,255,255,.20) !important;
        border-radius:999px !important;
    }
}

@media (max-width:850px){
    body.admin-body > .sidebar{
        height:100vh !important;
        min-height:100vh !important;
    }
    body.admin-body > .sidebar > .admin-nav{
        padding-bottom:30px !important;
    }
}

/* ========================================================================== 
   Phase 35.12 - Sidebar visual rollback to Phase 35
   Keep the current main/settings fixes, but restore the original Phase 35
   sidebar spacing, group rendering and scrolling behavior.
   ========================================================================== */
@media (min-width:851px){
    body.admin-body > .sidebar{
        padding:20px 14px !important;
    }
}
body.admin-body > .sidebar > .brand{
    padding:0 8px 22px !important;
}
body.admin-body > .sidebar > .admin-nav{
    display:block !important;
    flex:1 1 auto !important;
    min-height:0 !important;
    height:auto !important;
    max-height:none !important;
    margin-top:16px !important;
    padding:0 2px 28px !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior:contain !important;
    scrollbar-width:thin !important;
    scrollbar-color:rgba(255,255,255,.35) transparent !important;
}
body.admin-body > .sidebar > .admin-nav::-webkit-scrollbar{
    width:6px !important;
    height:auto !important;
}
body.admin-body > .sidebar > .admin-nav::-webkit-scrollbar-thumb{
    background:rgba(255,255,255,.35) !important;
    border-radius:999px !important;
}
body.admin-body > .sidebar .admin-nav > a,
body.admin-body > .sidebar .nav-group{
    margin-bottom:5px !important;
}
body.admin-body > .sidebar .nav-group{
    display:block !important;
    height:auto !important;
    max-height:none !important;
    border-radius:10px !important;
    overflow:hidden !important;
}
body.admin-body > .sidebar .nav-group > summary{
    padding:11px 12px !important;
    min-height:0 !important;
    border-radius:0 !important;
}
body.admin-body > .sidebar .nav-group[open] > .nav-children{
    display:grid !important;
    height:auto !important;
    max-height:none !important;
    gap:2px !important;
    padding:4px 0 7px 32px !important;
    overflow:visible !important;
}
body.admin-body > .sidebar .nav-children a{
    display:block !important;
    padding:9px 12px !important;
    border-radius:8px !important;
    line-height:1.45 !important;
}
body.admin-body > .sidebar .nav-external{
    position:static !important;
    margin-top:8px !important;
    margin-bottom:0 !important;
    border-top:1px solid rgba(255,255,255,.11) !important;
    border-radius:0 !important;
    padding-top:15px !important;
}
/* Do not switch to the Phase 35.11 hover-only scrollbar. */
@media (hover:hover) and (pointer:fine){
    body.admin-body > .sidebar:hover > .admin-nav{
        scrollbar-width:thin !important;
        scrollbar-color:rgba(255,255,255,.35) transparent !important;
    }
    body.admin-body > .sidebar:hover > .admin-nav::-webkit-scrollbar{
        width:6px !important;
    }
    body.admin-body > .sidebar:hover > .admin-nav::-webkit-scrollbar-thumb{
        background:rgba(255,255,255,.35) !important;
    }
}

/* ========================================================================== 
   Phase 36.1 - POS core
   ========================================================================== */
.pos-page{display:grid;gap:22px;width:100%;min-width:0}.pos-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.pos-head h1{margin:0 0 6px;font-size:30px}.pos-head p{margin:0;color:#64748b}.pos-branch-switch{display:grid;gap:6px;font-weight:700;min-width:210px}.pos-branch-switch select{min-height:42px;border:1px solid #d9e1ec;border-radius:10px;background:#fff;padding:0 12px}.pos-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,.85fr);gap:22px;align-items:start}.pos-layout>.panel,.pos-bottom-grid>.panel,.pos-recent{margin:0;max-width:none}.pos-catalog,.pos-cart,.pos-appointments,.pos-payment-panel,.pos-recent{padding:22px}.pos-section-title{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}.pos-section-title h2{margin:0;font-size:20px}.pos-section-title small{display:block;margin-top:4px;color:#7b8799}.pos-section-title .input{max-width:250px}.pos-category-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:10px;margin-bottom:8px}.pos-category-tabs button{border:0;background:#eef3fb;color:#3d5375;border-radius:999px;padding:8px 14px;white-space:nowrap;font-weight:700;cursor:pointer}.pos-category-tabs button.active{background:#5b84d6;color:#fff}.pos-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pos-service-card{border:1px solid #e0e6ef;background:#fff;border-radius:13px;padding:16px;text-align:left;display:grid;gap:5px;cursor:pointer;transition:.15s}.pos-service-card:hover{transform:translateY(-1px);border-color:#8aa9e6;box-shadow:0 8px 22px rgba(49,78,125,.08)}.pos-service-card b{font-size:16px;color:#152238}.pos-service-card span{font-size:13px;color:#7a879a}.pos-service-card strong{font-size:15px;color:#426dbb}.pos-cart{position:sticky;top:84px}.pos-cart-items{display:grid;gap:8px;margin-bottom:18px}.pos-empty{padding:22px;border:1px dashed #d8e0eb;border-radius:12px;text-align:center;color:#8793a5;background:#fbfcfe}.pos-cart-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid #edf0f5}.pos-cart-row>div:first-child{display:grid;gap:3px}.pos-cart-row small{color:#8a95a6}.pos-price-edit{display:flex;align-items:center;gap:6px}.pos-price-edit input{width:98px;border:1px solid #dbe2ec;border-radius:8px;padding:8px}.pos-price-edit button{border:0;background:#f7eaea;color:#b44040;width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:18px}.pos-customer-box{border-top:1px solid #edf0f5;padding-top:16px;margin-top:8px}.pos-customer-box h3{margin:0 0 10px}.pos-customer-search{display:grid;grid-template-columns:1fr auto;gap:8px}.pos-search-results{position:relative;display:grid;box-shadow:0 10px 30px rgba(15,23,42,.10);z-index:5}.pos-search-results button{border:1px solid #e3e8f0;border-top:0;background:#fff;padding:10px 12px;text-align:left;display:grid;gap:2px;cursor:pointer}.pos-search-results button:hover{background:#f6f9ff}.pos-search-results span{color:#758197;font-size:13px}.pos-selected-customer{margin-top:10px;border-radius:10px;background:#eef5ff;padding:11px 12px;display:flex;align-items:center;gap:10px}.pos-selected-customer[hidden]{display:none}.pos-selected-customer span{color:#66758c;flex:1}.pos-selected-customer button{border:0;background:transparent;color:#4f76be;cursor:pointer}.pos-new-customer{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.pos-new-customer input:last-child{grid-column:1/-1}.pos-two-cols,.pos-benefits{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.pos-two-cols label,.pos-benefits label,.pos-payment-panel>label{display:grid;gap:6px;font-weight:700;color:#35445a}.pos-benefits label:last-child{grid-column:1/-1}.pos-benefits small{font-weight:400;color:#8290a5;margin-left:4px}.pos-summary{margin-top:18px;border-top:1px solid #e8edf4;padding-top:12px;display:grid;gap:8px}.pos-summary>div{display:flex;justify-content:space-between;gap:12px}.pos-summary span{color:#65738a}.pos-summary .total{border-top:1px dashed #ccd5e2;padding-top:12px;margin-top:5px;align-items:baseline}.pos-summary .total strong{font-size:24px;color:#224d98}.pos-bottom-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);gap:22px;align-items:start}.pos-appointment-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pos-appointment-card{border:1px solid #e0e6ef;background:#fff;border-radius:12px;padding:13px;text-align:left;display:grid;grid-template-columns:auto 1fr auto;column-gap:10px;row-gap:3px;cursor:pointer}.pos-appointment-card:hover{border-color:#789be0;background:#f7f9ff}.pos-appointment-card>span{grid-row:1/3;font-weight:800;color:#5076be;font-size:18px}.pos-appointment-card>b{color:#19283f}.pos-appointment-card>small{grid-column:2/3;color:#758298;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pos-appointment-card>em{grid-column:3;grid-row:1/3;align-self:center;font-style:normal;color:#61728c}.pos-payment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.pos-pay-box{display:grid;gap:5px;font-weight:700;color:#34445d}.pos-pay-box input{text-align:right}.pos-payment-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;padding-top:14px;border-top:1px solid #e7ecf3}.pos-payment-footer span{font-size:15px;color:#65738b}.pos-payment-footer b{color:#1d355a}.pos-checkout-btn{min-width:190px;min-height:46px;font-size:16px}.pos-recent table{width:100%}.pos-recent .badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#f1f3f7;color:#677489}.pos-recent .badge.success{background:#e9f8ef;color:#247643}.pos-receipt-page{max-width:860px;margin:0 auto;display:grid;gap:14px}.pos-receipt-actions{display:flex;justify-content:space-between}.pos-receipt{padding:34px;max-width:none}.receipt-head{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid #1f3658;padding-bottom:18px}.receipt-head h1{margin:0 0 5px}.receipt-head p{margin:0;color:#7b8798}.receipt-head>div:last-child{display:grid;text-align:right;gap:4px}.receipt-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:18px 0;border-bottom:1px solid #e3e8ef}.receipt-meta div{display:grid;gap:3px}.receipt-meta span{font-size:12px;color:#7c899b}.receipt-items{width:100%;border-collapse:collapse;margin:18px 0}.receipt-items th,.receipt-items td{padding:11px 6px;border-bottom:1px solid #edf0f4;text-align:left}.receipt-items .right{text-align:right}.receipt-totals{margin-left:auto;max-width:420px;display:grid;gap:8px}.receipt-totals>div,.receipt-payments>div{display:flex;justify-content:space-between;gap:20px}.receipt-totals .grand{border-top:1px dashed #cfd7e2;padding-top:11px;margin-top:4px;align-items:baseline}.receipt-totals .grand strong{font-size:22px}.receipt-payments{border-top:1px solid #e4e9f0;margin-top:20px;padding-top:18px;display:grid;gap:8px}.receipt-payments h3{margin:0 0 3px}.receipt-note{border-top:1px solid #e4e9f0;margin-top:18px;padding-top:16px}.receipt-note p{white-space:normal}.receipt-void{display:grid;grid-template-columns:1fr auto;gap:10px;border-top:1px solid #e4e9f0;padding-top:20px;margin-top:20px}.btn.danger{background:#b84747;color:#fff;border-color:#b84747}
@media(max-width:1180px){.pos-layout{grid-template-columns:1fr}.pos-cart{position:static}.pos-service-grid{grid-template-columns:repeat(3,1fr)}.pos-bottom-grid{grid-template-columns:1fr}}
@media(max-width:760px){.pos-head{align-items:stretch;flex-direction:column}.pos-branch-switch{min-width:0}.pos-catalog,.pos-cart,.pos-appointments,.pos-payment-panel,.pos-recent{padding:16px}.pos-service-grid{grid-template-columns:repeat(2,1fr)}.pos-two-cols,.pos-benefits,.pos-new-customer{grid-template-columns:1fr}.pos-benefits label:last-child,.pos-new-customer input:last-child{grid-column:auto}.pos-appointment-list{grid-template-columns:1fr}.pos-payment-grid{grid-template-columns:repeat(2,1fr)}.receipt-meta{grid-template-columns:1fr 1fr}.pos-receipt{padding:20px}}
@media(max-width:480px){.pos-service-grid,.pos-payment-grid{grid-template-columns:1fr}.pos-payment-footer{align-items:stretch;flex-direction:column}.pos-checkout-btn{width:100%}.receipt-head{flex-direction:column}.receipt-head>div:last-child{text-align:left}.receipt-meta{grid-template-columns:1fr}}
@media print{body.admin-body{display:block!important;background:#fff!important}.sidebar,.topbar,.no-print{display:none!important}.main,.content{margin:0!important;padding:0!important;width:100%!important}.pos-receipt-page{max-width:none}.pos-receipt{border:0!important;box-shadow:none!important;padding:0!important}}

/* Phase 36.2 - POS direct payment gateways */
.pos-online-payments{margin-top:18px;padding:16px;border:1px solid #dbe5f1;border-radius:14px;background:#f8fbff}.pos-online-payments-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}.pos-online-payments-head b{display:block;color:#172033}.pos-online-payments-head small{display:block;margin-top:4px;color:#718096;line-height:1.5}.pos-online-payments-head a{font-size:12px;font-weight:800;white-space:nowrap}.pos-online-payment-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pos-gateway-btn{min-height:44px;font-weight:900;border:1px solid #d6deea;background:#fff;color:#25364d}.pos-gateway-btn:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(15,23,42,.08)}.pos-gateway-btn.linepay:not(:disabled){border-color:#bfe9ca;color:#137333;background:#f3fff6}.pos-gateway-btn.ecpay:not(:disabled){border-color:#b9dce8;color:#176579;background:#f1fbfe}.pos-gateway-hint{display:block;margin-top:10px;color:#7b8798}.pos-gateway-btn:disabled{opacity:.45;cursor:not-allowed}@media(max-width:680px){.pos-online-payment-buttons{grid-template-columns:1fr}.pos-online-payments-head{display:block}.pos-online-payments-head a{display:inline-block;margin-top:8px}}


/* Phase 36.3.1 - Product branch checkbox layout fix */
.product-branch-field{grid-column:1/-1;display:grid;gap:10px}.product-branch-field>b{font-size:13px;color:#344054}.product-branch-options{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}.product-branch-option{display:inline-flex!important;align-items:center;gap:7px;font-size:14px;font-weight:600;color:#344054;background:#fff;border:1px solid #dfe5ee;border-radius:9px;padding:8px 11px;cursor:pointer;width:auto!important}.product-branch-option:hover{border-color:#9ab7e3;background:#f8fbff}.product-branch-option input[type=checkbox]{width:16px!important;height:16px!important;min-width:16px!important;margin:0!important;padding:0!important;border-radius:4px}.product-branch-option span{display:inline-block}.product-active-option{margin-left:4px;background:#f6faf7}.product-branch-option:has(input:checked){border-color:#7fa7df;background:#edf5ff;color:#245c9f}.product-active-option:has(input:checked){border-color:#8fc5a7;background:#eef9f2;color:#26734a}@media(max-width:520px){.product-branch-options{display:grid;grid-template-columns:1fr 1fr}.product-branch-option{width:100%!important}.product-active-option{margin-left:0}}

/* Phase 36.5 - barcode labels */
.barcode-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.barcode-label{border:1px solid #dbe3ef;border-radius:10px;background:#fff;padding:12px;text-align:center;break-inside:avoid}
.code39{height:54px;display:flex;align-items:stretch;justify-content:center;gap:0;margin:8px auto 4px;overflow:hidden}
.code39 i{display:block;background:#111;height:100%;margin-right:1px}.code39 i:nth-child(even){background:transparent}.code39 i.gap{width:2px!important;background:transparent;margin:0}
@media print{.sidebar,.topbar,.no-print{display:none!important}.main{margin:0!important;width:100%!important}.content{padding:0!important}.barcode-grid{grid-template-columns:repeat(3,1fr);gap:5mm}.barcode-label{border:1px solid #aaa;border-radius:0;padding:4mm}.barcode-label b{font-size:12pt}.code39{height:16mm}}

/* Phase 36.6 - POS shift / cash drawer */
.pos-shift-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border:1px solid var(--line,#e2e8f0);border-radius:12px;margin:0 0 14px;background:#fff}
.pos-shift-banner>div{display:flex;flex-direction:column;gap:3px}.pos-shift-banner span{font-size:13px;color:var(--muted,#64748b)}
.pos-shift-banner.open{border-left:4px solid #16a34a}.pos-shift-banner.warning{border-left:4px solid #f59e0b}
.shift-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.shift-kpis .panel{display:flex;flex-direction:column;gap:5px}.shift-kpis small{color:var(--muted,#64748b)}.shift-kpis b{font-size:22px}.shift-kpis span{font-size:12px;color:var(--muted,#64748b)}
.two-panel-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.summary-list>div{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid var(--line,#e2e8f0)}
.cash-row{display:grid;grid-template-columns:54px 50px 130px 1fr;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line,#e2e8f0)}.cash-row em{font-style:normal;color:var(--muted,#64748b)}
.text-danger{color:#b91c1c;font-weight:700}
@media(max-width:900px){.shift-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.two-panel-grid{grid-template-columns:1fr}.cash-row{grid-template-columns:48px 42px 115px 1fr}}
@media(max-width:560px){.shift-kpis{grid-template-columns:1fr}.pos-shift-banner{align-items:flex-start;flex-direction:column}.cash-row{grid-template-columns:48px 42px 1fr}.cash-row em{grid-column:1/-1}}

/* Phase 36.7 - LINE attendance */
.inline-check{display:inline-flex!important;align-items:center;gap:8px;width:auto!important}.inline-check input[type="checkbox"]{width:18px!important;height:18px!important;min-width:18px!important;margin:0!important}.attendance-status{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700}.attendance-status.accepted{background:#eaf9f0;color:#176a3b}.attendance-status.pending{background:#fff5dc;color:#7b5600}.attendance-status.rejected{background:#fff0f0;color:#9a2828}

/* Phase 36.7.5 - clearer admin navigation with descriptions */
body.admin-body > .sidebar{width:280px!important}
body.admin-body > .main{margin-left:0!important;width:auto!important}
body.admin-body > .sidebar .nav-group>summary{padding:10px 11px}
body.admin-body > .sidebar .nav-group>summary>span>span{display:grid;gap:2px}
body.admin-body > .sidebar .nav-group>summary small,
body.admin-body > .sidebar .nav-item-rich small,
body.admin-body > .sidebar .nav-children small{display:block;font-size:10.5px;line-height:1.35;font-weight:500;color:#9fb5cf;margin-top:2px}
body.admin-body > .sidebar .nav-group>summary b,
body.admin-body > .sidebar .nav-item-rich b,
body.admin-body > .sidebar .nav-children b{font-size:13px;line-height:1.3}
body.admin-body > .sidebar .nav-children{padding-left:30px}
body.admin-body > .sidebar .nav-children a{display:block;padding:8px 10px!important}
body.admin-body > .sidebar .nav-children a.active small,body.admin-body > .sidebar .nav-children a:hover small{color:#dcecff}
body.admin-body > .sidebar .nav-item-rich{display:flex!important;align-items:flex-start;gap:10px}
body.admin-body > .sidebar .nav-item-rich>span:last-child{display:grid;gap:2px}
@media(max-width:850px){body.admin-body > .sidebar{width:min(300px,86vw)!important}}

/* Phase 36.7.7 - sidebar priority layout hotfix */
body.admin-body > .sidebar .nav-priority{
    display:block !important;
    margin:8px 6px 12px !important;
    padding:10px !important;
    border-radius:12px;
    background:rgba(255,255,255,.055);
    border:1px solid rgba(255,255,255,.055);
    overflow:hidden;
}
body.admin-body > .sidebar .nav-priority-title{
    display:flex !important;
    align-items:flex-start !important;
    gap:8px !important;
    padding:1px 2px 8px !important;
    min-width:0;
}
body.admin-body > .sidebar .nav-priority-title > span:last-child{
    display:block !important; min-width:0; flex:1;
}
body.admin-body > .sidebar .nav-priority-title b{
    display:block;font-size:13px;line-height:1.35;color:#fff;
}
body.admin-body > .sidebar .nav-priority-title small{
    display:block;margin-top:2px;font-size:10px;line-height:1.35;color:#9fb5cf;
    white-space:normal;overflow-wrap:anywhere;
}
body.admin-body > .sidebar .nav-priority-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:4px !important;
    width:100%; min-width:0;
}
body.admin-body > .sidebar .nav-priority-grid > a{
    display:block !important;
    position:relative;
    width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    padding:7px 9px 7px 22px !important;
    margin:0 !important;
    border-radius:8px !important;
    background:rgba(255,255,255,.035) !important;
    border:1px solid transparent !important;
    color:#dbe8f7 !important;
    white-space:normal !important;
    overflow:hidden !important;
}
body.admin-body > .sidebar .nav-priority-grid > a:before{
    content:"";position:absolute;left:10px;top:13px;width:5px;height:5px;border-radius:50%;
    background:rgba(207,226,248,.55);
}
body.admin-body > .sidebar .nav-priority-grid > a b{
    display:block !important;font-size:12px !important;line-height:1.35 !important;
    white-space:normal !important;overflow-wrap:anywhere;
}
body.admin-body > .sidebar .nav-priority-grid > a small{
    display:block !important;margin-top:1px !important;font-size:9.5px !important;line-height:1.35 !important;
    color:#9fb5cf !important;white-space:normal !important;overflow-wrap:anywhere;
}
body.admin-body > .sidebar .nav-priority-grid > a:hover{
    background:rgba(255,255,255,.085) !important;
}
body.admin-body > .sidebar .nav-priority-grid > a.active{
    background:rgba(93,146,216,.32) !important;
    border-color:rgba(151,190,239,.16) !important;
}
body.admin-body > .sidebar .nav-priority-grid > a.active small{color:#dcecff !important;}
body.admin-body > .sidebar .nav-group[open] > .nav-children{
    margin:4px 6px 8px 18px !important;
    padding:6px 6px 7px 12px !important;
    border-radius:10px;
    background:rgba(255,255,255,.045) !important;
    border:1px solid rgba(255,255,255,.03);
}
body.admin-body > .sidebar .nav-children a{
    background:rgba(255,255,255,.018) !important;
    border:1px solid transparent;
    margin:2px 0;
}
body.admin-body > .sidebar .nav-children a:hover{background:rgba(255,255,255,.075) !important;}
body.admin-body > .sidebar .nav-children a.active{background:rgba(93,146,216,.30) !important;}
/* Phase 36.7.8 - customizable sidebar shortcuts */
body.admin-body > .sidebar .nav-priority-title .nav-priority-edit{margin-left:auto;flex:0 0 auto;width:28px;height:28px;display:grid!important;place-items:center;border-radius:8px;color:#cfe0f5!important;background:rgba(255,255,255,.06);text-decoration:none!important}
body.admin-body > .sidebar .nav-priority-title .nav-priority-edit:hover{background:rgba(255,255,255,.13)}
.shortcut-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 18px}.shortcut-choice{display:flex;gap:10px;align-items:flex-start;padding:14px;border:1px solid #dce4ef;border-radius:12px;background:#fff;cursor:pointer}.shortcut-choice:hover{background:#f7faff}.shortcut-choice input[type=checkbox]{width:18px!important;height:18px!important;min-width:18px!important;margin:2px 0 0!important}.shortcut-choice span{min-width:0}.shortcut-choice b,.shortcut-choice small{display:block}.shortcut-choice small{margin-top:4px;color:#718096;line-height:1.45}.help-box{margin:14px 0;padding:13px 15px;border-radius:10px;background:#f4f7fb;color:#536274;line-height:1.7}.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}@media(max-width:900px){.shortcut-picker{grid-template-columns:1fr}}
/* Phase 36.9.4 - platform admin layout / billing */
.platform-main{max-width:1680px;margin:0 auto;padding:28px}.platform-nav{min-height:64px;padding:0 28px;background:#17365d;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px}.platform-nav>div{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.platform-nav a{color:#e7f0fb}.platform-nav span{color:#bfd0e6}.platform-main .table-wrap{overflow:auto}.platform-main table{width:100%;border-collapse:collapse;min-width:980px}.platform-main th,.platform-main td{padding:13px 12px;border-bottom:1px solid #e8edf4;text-align:left;vertical-align:top}.platform-main th{white-space:nowrap;background:#f8fafc;color:#475569;font-size:12px}.platform-tenant-settings{display:grid;grid-template-columns:minmax(120px,160px) minmax(190px,1fr);gap:9px;min-width:390px}.platform-tenant-settings>.platform-plan-details,.platform-tenant-settings>small,.platform-tenant-settings>.btn{grid-column:1/-1}.platform-plan-details{border:1px solid #e1e7ef;border-radius:9px;background:#f8fafc}.platform-plan-details summary{cursor:pointer;padding:10px 12px;font-weight:800;color:#315d95}.platform-plan-fields{padding:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border-top:1px solid #e5eaf1}.platform-plan-fields>small,.platform-plan-fields>label:last-child{grid-column:1/-1}.platform-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}.platform-plan-grid .form-card{border:1px solid #e3e8ef;border-radius:14px;padding:18px;background:#fbfcfe}.platform-plan-grid .form-card h3{margin:0 0 4px}.billing-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.billing-filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end;margin-bottom:18px}.billing-actions{display:flex;gap:8px}.platform-receipt{max-width:900px;margin:36px auto;padding:0 18px}.receipt-sheet{background:#fff;border:1px solid #e1e7ef;border-radius:16px;padding:34px}.receipt-sheet .receipt-head{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid #17365d;padding-bottom:18px}.receipt-sheet .receipt-head h1{margin:0}.receipt-sheet .receipt-head>div:last-child{display:grid;text-align:right;gap:5px}.receipt-info{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;padding:20px 0}.receipt-info>div{display:grid;gap:4px}.receipt-info span{font-size:12px;color:#64748b}.receipt-sheet table{width:100%;border-collapse:collapse}.receipt-sheet th,.receipt-sheet td{padding:12px 8px;border-bottom:1px solid #e8edf4;text-align:left}.receipt-sheet .right{text-align:right}.receipt-total{display:flex;justify-content:flex-end;align-items:baseline;gap:30px;padding:20px 8px}.receipt-total b{font-size:26px}.receipt-note{color:#64748b;font-size:13px}
@media(max-width:1100px){.platform-plan-grid{grid-template-columns:1fr}.platform-tenant-settings{min-width:320px}.billing-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.platform-main{padding:18px 12px}.platform-nav{padding:12px 16px;align-items:flex-start}.platform-nav,.platform-nav>div{flex-direction:column}.billing-filters{grid-template-columns:1fr}.billing-stats{grid-template-columns:1fr 1fr}.platform-plan-fields{grid-template-columns:1fr}.platform-plan-fields>small,.platform-plan-fields>label:last-child{grid-column:auto}.receipt-info{grid-template-columns:1fr}.receipt-sheet{padding:20px}}
@media print{.no-print,.platform-nav{display:none!important}.platform-receipt{margin:0;max-width:none}.receipt-sheet{border:0}}

/* Phase 36.10 dual product line */
.platform-license-title{grid-column:1/-1;font-weight:900;color:#17365d;border-bottom:1px solid #dbe5f0;padding:8px 0 5px}.business-plan-card .plan-price{font-size:24px;font-weight:900;color:#17365d;margin:4px 0 12px}.business-plan-card .feature-checks{display:grid;gap:6px}.business-plan-card .feature-checks>b{margin-bottom:3px}.dual-plan-purchase .two-col{align-items:stretch}.dual-plan-purchase .form-card{display:grid;gap:12px;align-content:start}
