.admin-toolbar{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:24px 0}.admin-toolbar .p-field{min-width:180px}.admin-nav{display:flex;gap:6px;flex-wrap:wrap;padding:10px;background:#ecf4f1;border:1px solid #c9dad4;border-radius:12px;margin:24px 0}.admin-nav a{padding:11px 15px;border-radius:8px;text-decoration:none;font-size:14px;font-weight:700;color:#25433d}.admin-nav a[aria-current=page]{background:#062d29;color:#b2f9e1}.admin-body h2{font-size:25px;margin:0 0 20px}.admin-body h3{font-size:18px;margin:0 0 12px}.admin-body .p-card{margin-bottom:18px}.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr))!important}.admin-stats a{text-decoration:none;color:inherit}.admin-stats strong{display:block;font-size:38px;margin:10px 0}.admin-muted{display:block;font-size:12px;color:#687d76;margin:6px 0 16px}.admin-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px 0}.admin-options label,.admin-check{display:flex;gap:8px;align-items:center;font-size:14px}.admin-options input,.admin-check input{accent-color:#167665;width:18px;height:18px;flex-shrink:0}.admin-body fieldset{min-width:0;border:1px solid #c9dad4;border-radius:9px;padding:18px}.admin-body legend{padding:0 8px;font-weight:700}.admin-body input,.admin-body select,.admin-body textarea{max-width:100%}.admin-body textarea{resize:vertical}.admin-edit{margin-top:24px;border-top:1px solid #c9dad4;padding-top:20px}.admin-edit>summary{cursor:pointer;font-weight:700;margin-bottom:20px}.admin-confirmed{border-left:4px solid #608f7e!important;background:#f1f5f3!important}.admin-script-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin-script{display:flex;gap:20px;align-items:flex-start}.admin-script>img{width:88px;height:128px;object-fit:cover;border-radius:5px}.admin-script .button{margin-top:8px}.admin-script .p-actions{display:block}.admin-calendar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.admin-calendar .p-card{padding:20px!important}.admin-calendar h3{font-size:17px}.admin-slot{padding:15px;background:#dff3ea;border-left:3px solid #22856e;border-radius:6px;font-size:14px;margin:12px 0}.admin-available{padding:16px;background:#edf4f1;color:#45675a;border-radius:6px;font-size:14px}.admin-table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th,.admin-table td{padding:16px;text-align:left;border-bottom:1px solid #d5e4dd;white-space:nowrap}.admin-table thead{background:#e9f3ee}.admin-pre{white-space:pre-wrap;overflow-wrap:anywhere}.admin-body .p-note{line-height:1.8}.admin-body .p-row{gap:18px}.admin-body .p-actions{flex-wrap:wrap}@media(max-width:1000px){.admin-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-options{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:600px){.admin-toolbar{align-items:stretch;flex-direction:column}.admin-nav{flex-wrap:nowrap;overflow:auto}.admin-nav a{white-space:nowrap;padding:10px 12px}.admin-script-grid,.admin-calendar{grid-template-columns:1fr}.admin-options{grid-template-columns:1fr}.admin-script{gap:14px}.admin-script>img{width:72px;height:105px}.admin-body .p-row{align-items:flex-start}.admin-body .p-row>.p-actions{width:100%}.admin-stats strong{font-size:32px}.admin-table th,.admin-table td{padding:12px}}

/* Shared administration layout: aligned controls, consistent surfaces and responsive editors. */
.admin-toolbar{padding:20px 24px;background:#fff;border:1px solid #dce5e9;border-radius:16px;align-items:center;flex-wrap:wrap;margin:24px 0 12px}
.admin-toolbar .p-actions{margin:0;align-items:end;gap:12px}
.admin-toolbar .p-field{margin:0}
.admin-nav{background:#eaf1f4;border-color:#dae5ea;border-radius:12px;gap:4px;margin:12px 0 28px;padding:8px}
.admin-nav a{color:#465e6a;font-size:13px}
.admin-nav a[aria-current=page]{background:#173f4d;color:#fff;box-shadow:0 3px 0 #06c6d2}
.admin-body{max-width:1400px;margin:auto}
.admin-body .p-card{border:1px solid #dce5e9;border-radius:16px;box-shadow:0 3px 14px #183e4905;padding:24px;margin-bottom:0;min-width:0;background:#fff}
.admin-body>.p-card,.admin-body>.p-grid,.admin-body>.p-list,.admin-body>.admin-script-grid{margin-bottom:24px}
.admin-body .p-grid{gap:20px;align-items:stretch}
.admin-body .p-list{display:grid;gap:12px}
.admin-body .p-field{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:13px;font-weight:600;color:#4c6471}
.admin-body input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.admin-body select,.admin-body textarea{box-sizing:border-box;width:100%;min-width:0;border:1px solid #cad8df;background:#f9fbfc;color:#153845;border-radius:9px;padding:12px;font:inherit}
.admin-body textarea{resize:vertical;min-height:120px}
.admin-body .button,.admin-toolbar .button{min-height:44px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;line-height:1.3;padding:12px 18px}
.admin-body .p-actions{align-items:center;gap:10px;margin-top:16px}
.admin-body .p-row{align-items:center;padding:16px 0;border-bottom:1px solid #e8eef1;flex-wrap:wrap}
.admin-body .p-row>.p-actions{margin-top:0;margin-left:auto}
.admin-body h2{font-size:26px;line-height:1.3}
.admin-body h3{font-size:17px;line-height:1.4}
.admin-body .p-note{color:#627b87;font-size:13px}
.admin-stats .p-stat{display:flex;flex-direction:column;justify-content:space-between;border-top:3px solid #00c8d5}
.admin-options label{padding:10px;background:#f5f8fa;border-radius:8px;font-size:13px}
.admin-edit{margin-top:20px;border-top:1px solid #dce5e9;padding-top:20px}
.admin-edit summary{cursor:pointer;font-weight:700;padding-bottom:16px}
.admin-body .p-form{gap:20px}
.admin-script-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.admin-body .admin-script{display:flex;align-items:flex-start;gap:16px;padding:18px}
.admin-script>img{width:72px;height:104px;object-fit:cover;border-radius:8px;flex-shrink:0}
.admin-script>div{min-width:0;flex:1}
.admin-script h3{margin:6px 0}
.admin-script p{font-size:12px;color:#637d89;margin:8px 0 14px}
.admin-script .button{width:100%;font-size:12px}
.cms-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}
.cms-heading h2{margin:8px 0}
.cms-heading h2 small{font-size:14px;background:#dff7fa;color:#187786;padding:5px 10px;border-radius:20px;vertical-align:middle}
.cms-heading p{font-size:14px;color:#67808c;margin:0}
.cms-heading>div{min-width:0}
.cms-library-control{margin-top:16px;max-width:38rem}
.cms-library-control .button{max-width:100%;white-space:normal}
.cms-library-control p{margin-top:8px;line-height:1.6}
.cms-search{display:flex;gap:12px;align-items:end;padding:18px 20px;border:1px solid #dce5e9;border-radius:12px;background:#fff;margin-bottom:20px}
.cms-search .p-field{flex:1}
.cms-editor{display:grid!important;grid-template-columns:260px minmax(0,1fr);align-items:start;gap:24px!important}
.cms-cover{position:sticky;top:100px}
.cms-cover>img{width:100%;aspect-ratio:2/3;object-fit:contain;background:#edf2f5;border-radius:10px;margin:8px 0 16px}
.cms-upload{display:block;position:relative;text-align:center;padding:12px;background:#dff8fa;border:1px dashed #18aab8;border-radius:9px;color:#176977;cursor:pointer;font-weight:700}
.cms-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}
.cms-editor-main{display:grid;gap:20px;min-width:0}
.cms-editor-main>.p-card{display:grid;gap:18px}
.cms-editor-main h3{border-bottom:1px solid #e6edf0;padding-bottom:14px;margin:0}
.cms-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.cms-savebar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:18px 20px;background:#fff;border:1px solid #dce5e9;border-radius:12px}
.cms-savebar [role=status]{flex:1;color:#a33b50;font-size:13px}
.button.cms-danger{color:#ac3450;background:#fff1f4;border:1px solid #e9bdc8}
.cms-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:24px 0}
.cms-pagination>span{margin-right:auto;font-size:13px;color:#627b87}
.admin-body :focus-visible{outline:3px solid #05c5d5;outline-offset:3px}
@media(max-width:1150px){.admin-script-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.cms-editor{grid-template-columns:220px minmax(0,1fr)}
}
@media(max-width:760px){.cms-editor{grid-template-columns:1fr!important}
.cms-cover{position:static;display:grid;grid-template-columns:100px 1fr;gap:12px}
.cms-cover>img{grid-row:1/5;margin:0}
.cms-cover h3,.cms-cover .cms-upload,.cms-cover .p-note{grid-column:2}
.cms-heading{align-items:flex-start;flex-direction:column}
.admin-toolbar{padding:16px}
.admin-body .p-card{padding:18px}
.admin-body .p-row>.p-actions{margin-left:0}
.admin-script-grid{grid-template-columns:1fr}
.admin-options{grid-template-columns:1fr}
.cms-savebar{position:static}
.cms-savebar .button{flex:1}
.cms-fields{gap:12px}
.admin-body .p-grid{grid-template-columns:1fr}
.admin-nav{flex-wrap:nowrap;overflow-x:auto}
.admin-nav a{flex-shrink:0}
.cms-search{padding:12px}
.cms-pagination{flex-wrap:wrap}
}

/* Label management: bounded lists keep all 447 scripts and labels usable on a small screen. */
.cms-label-columns{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px}
.cms-label-list,.cms-label-scripts{max-height:32rem;overflow:auto;overscroll-behavior:contain;padding:0 6px}
.cms-label-list a{color:#254957;text-decoration:none;border-radius:8px;padding:12px!important}
.cms-label-list a:hover,.cms-label-list a[aria-current=page]{background:#e8f7f7}
.cms-label-list a span{margin-left:auto;white-space:nowrap;color:#627b87}
.cms-label-detail{margin-top:24px}
.cms-label-scripts{margin-top:24px}
.cms-label-filter ol{list-style:none;padding:0;max-height:32rem;overflow:auto;overscroll-behavior:contain}
.cms-label-filter .button[disabled]{opacity:.45;cursor:default}
.cms-label-field{min-width:0}
.cms-label-field [data-label-warning]:empty{display:none}
.cms-label-field [data-label-warning]{color:#946229;margin-bottom:0}
@media(max-width:760px){.cms-label-columns{grid-template-columns:1fr}.cms-label-list,.cms-label-scripts,.cms-label-filter ol{max-height:24rem}.cms-label-filter .p-actions .button{padding:10px 14px}}
/* 房間日曆 month view (C6): seven columns from Monday; on a phone one list of the days that have sessions. */
.admin-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:12px 0 22px}
.admin-month-head{text-align:center;font-size:13px;font-weight:700;color:#45675a}
.admin-month-day{min-height:96px;padding:8px;background:#fff;border:1px solid #c9dad4;border-radius:8px;font-size:13px;min-width:0}
.admin-month-day>a:first-child{display:inline-block;color:#062d29;text-decoration:none}
.admin-month-empty{background:#f6faf8}
.admin-month-slot{display:block;margin-top:6px;padding:6px 7px;background:#dff3ea;border-left:3px solid #22856e;border-radius:4px;color:inherit;text-decoration:none;overflow-wrap:anywhere;line-height:1.4}
.admin-month-slot small{display:block;color:#45675a}
.admin-body fieldset[hidden]{display:none}
.admin-script-pending{font-weight:700;color:#8a4d13;background:#fff4de;border-left:3px solid #bd7b2b;padding:10px 12px;border-radius:6px}
.admin-wallet-balance{font-size:28px;font-weight:750;color:#17675c;overflow-wrap:anywhere}
.admin-wallet .p-row>div,.admin-replacement .p-row>div{min-width:0;overflow-wrap:anywhere}
.admin-replacement{min-width:0;max-width:100%;overflow-wrap:anywhere}
.admin-replacement .p-row,.admin-replacement .p-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.admin-replacement .p-row{padding:12px 0;border-bottom:1px solid #dce5e9}
.admin-replacement .p-row>.button{margin-left:auto}
.admin-replacement .button,.admin-replacement input{min-height:44px;box-sizing:border-box;max-width:100%}
.admin-replacement input{min-width:0;width:100%}
@media(max-width:600px){
.admin-month{grid-template-columns:1fr}
.admin-month-head,.admin-month-blank,.admin-month-empty{display:none}
.admin-month-day{min-height:0}
}
/* C04: the shop filter and room key are shared by the day and month calendars. */
.admin-calendar-filter{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.admin-calendar-filter a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:9px 14px;border:1px solid #c9dad4;border-radius:8px;color:#25433d;text-decoration:none;box-sizing:border-box}
.admin-calendar-filter a[aria-current=page]{background:#062d29;color:#b2f9e1}
.admin-calendar-key{min-width:0;margin:18px 0;overflow-wrap:anywhere}
.admin-calendar-key summary{cursor:pointer;display:flex;align-items:center;min-height:44px;font-weight:700}
.admin-calendar-key>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:14px;padding:12px 0}
.admin-calendar-key h3{font-size:16px;margin-bottom:6px}.admin-calendar-key ul{margin:0;padding-left:20px}
.admin-calendar-store{min-width:0;overflow-wrap:anywhere;margin-top:22px}
.admin-calendar-store>.admin-calendar{margin-top:12px}
.admin-calendar-date{min-width:0}.admin-calendar-date>label{min-width:0;max-width:100%}.admin-calendar-date input{box-sizing:border-box;min-width:0}
.admin-month-day>a:first-child{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.admin-month-slot{min-height:44px;box-sizing:border-box}.admin-month-store h4{font-size:12px;margin:10px 0 4px;color:#45675a}
.admin-calendar-store .button,.admin-calendar-date .button,[data-form="admin:venue-room"] .button,[data-form="admin:venue-room"] select{min-height:44px}
[data-form="admin:venue-room"] .admin-check{min-height:44px}
@media(max-width:600px){.admin-calendar-filter a{flex:1 1 auto}.admin-calendar-date>label{width:100%}.admin-calendar-date input{width:100%}.admin-calendar-store .p-card{min-width:0}.admin-calendar-key>div{grid-template-columns:1fr}}

/* C05/C06: compact room warnings and two-sided room swaps on staff phones. */
.admin-room-warnings{margin:12px 0;min-width:0}
.admin-room-warning{display:flex;flex-direction:column;gap:5px;margin:8px 0;padding:12px;border:1px solid #d8c695;border-left:4px solid #ad8539;border-radius:10px;background:#fff9e9;color:#694a12;overflow-wrap:anywhere}
.admin-room-warning-overlap{border-color:#d68c78;border-left-color:#b33e29;background:#fff0eb;color:#822e1e}
.admin-room-warning-overlap strong{font-weight:800}
.admin-room-swap-control{margin:16px 0;min-width:0}
.admin-room-swaps{margin-top:28px;min-width:0}
.admin-room-swaps .p-card,.admin-room-swaps .p-row>*,.admin-room-swap-pair>*{min-width:0;overflow-wrap:anywhere}
.admin-room-swap-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px}
.admin-room-swaps .button,.admin-room-swap-control .button,form[data-form="admin:room-swap"] .button{min-height:44px;white-space:normal}
.admin-room-swaps .p-error{flex-basis:100%}
form[data-form="admin:room-swap"] select,form[data-form="admin:room-swap"] textarea{min-width:0;max-width:100%;width:100%;min-height:44px}
@media(max-width:600px){.admin-room-swap-pair{grid-template-columns:minmax(0,1fr);gap:8px}.admin-room-swap-pair>span{justify-self:center;transform:rotate(90deg)}.admin-room-swaps .p-row{align-items:stretch}.admin-room-swaps .p-actions,.admin-room-swap-control .p-actions{flex-wrap:wrap}.admin-room-swaps .p-actions .button,.admin-room-swap-control .p-actions .button{flex:1 1 100%;text-align:center}}

/* CMS phone controls: all staff actions remain tappable without sideways navigation. */
.admin-nav a,.admin-body .p-tabs a,.admin-body .p-tabs button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;box-sizing:border-box}
.admin-body .admin-check,.admin-edit>summary{min-height:44px;box-sizing:border-box}
.admin-body a[href^="https://wa.me/"]{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
#modal:has([data-form^="admin:"],.admin-room-warnings,.admin-room-swaps,.admin-replacement){overflow-wrap:anywhere}
#modal:has([data-form^="admin:"],.admin-room-warnings,.admin-room-swaps,.admin-replacement) .close-modal{min-width:44px;min-height:44px;width:44px;height:44px}
#modal:has([data-form^="admin:"],.admin-room-warnings,.admin-room-swaps,.admin-replacement) #modal-title{padding-right:44px}
#modal:has([data-form^="admin:"],.admin-room-warnings,.admin-room-swaps,.admin-replacement) .button{min-width:44px;min-height:44px;white-space:normal;max-width:100%}
#modal form[data-form^="admin:"]{min-width:0;max-width:100%}
#modal form[data-form^="admin:"] fieldset{min-width:0;max-width:100%}
#modal form[data-form^="admin:"] input:not([type=checkbox]):not([type=radio]):not([type=hidden]),#modal form[data-form^="admin:"] select,#modal form[data-form^="admin:"] textarea{min-width:0;min-height:44px;max-width:100%;box-sizing:border-box}
#modal form[data-form^="admin:"] .admin-options label,#modal form[data-form^="admin:"] .admin-check{min-height:44px;box-sizing:border-box}
@media(max-width:600px){
.admin-nav,.admin-body .p-tabs{flex-wrap:wrap;overflow:visible}
.admin-nav a,.admin-body .p-tabs a,.admin-body .p-tabs button{white-space:normal;max-width:100%}
#modal form[data-form^="admin:"] .p-grid{grid-template-columns:minmax(0,1fr)}
}
