:root{--bg:#f4f7f6;--surface:#fff;--ink:#17312e;--muted:#657875;--line:#dce7e4;--primary:#0f766e;--primary-dark:#0a5a54;--soft:#e6f4f1;--danger:#c2413a;--radius:10px;--shadow:0 2px 8px rgba(28,64,60,.06)}
*{box-sizing:border-box}html{font-family:Inter,"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;background:var(--bg);color:var(--ink)}body{margin:0;min-width:320px}a{color:var(--primary);text-decoration:none}button,input,select{font:inherit}
.topbar{min-height:72px;padding:0 max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;gap:16px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--ink);white-space:nowrap}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;background:var(--primary);color:#fff;font-size:13px}.desktop-nav{display:flex;align-items:center;gap:3px;min-width:0;flex:1}.desktop-nav a,.management-menu summary,.account-menu summary{display:inline-flex;align-items:center;min-height:40px;padding:9px 10px;border-radius:10px;color:#425754;font-weight:700;font-size:14px;white-space:nowrap}.desktop-nav a:hover,.management-menu summary:hover,.management-menu[open] summary,.account-menu summary:hover,.account-menu[open] summary{color:var(--primary);background:var(--soft)}.management-menu,.account-menu{position:relative;flex:none}.management-menu summary,.account-menu summary{cursor:pointer;list-style:none}.management-menu summary::-webkit-details-marker,.account-menu summary::-webkit-details-marker{display:none}.management-menu summary::after,.account-menu summary::after{content:"⌄";margin-left:7px;font-size:13px}.management-menu-panel,.account-menu-panel{position:absolute;top:calc(100% + 9px);z-index:40;width:205px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 38px rgba(28,64,60,.16);display:grid;gap:2px}.management-menu-panel{left:0}.account-menu-panel{right:0;width:180px}.management-menu-panel a,.account-menu-panel a,.account-menu-panel span{padding:10px 12px;border-radius:10px;color:#425754;font-size:14px;font-weight:700}.management-menu-panel a:hover,.account-menu-panel .text-button:hover{color:var(--primary);background:var(--soft)}.account-menu-panel span{color:var(--muted);font-size:12px;padding-bottom:4px}.top-actions{display:flex;align-items:center;gap:2px;white-space:nowrap}.top-actions form,.account-menu-panel form{margin:0}.text-button{border:0;background:transparent;color:var(--primary);font-weight:700;cursor:pointer;padding:10px}.account-menu-panel .text-button{width:100%;justify-content:flex-start;padding:10px 12px;border-radius:10px;color:#425754;font-size:14px}
.page-shell{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:40px 0 80px}.flash{padding:14px 18px;border-radius:12px;margin-bottom:18px;font-weight:650}.flash-success{background:#dff4ea;color:#166534}.flash-error{background:#fde8e7;color:#9f2d28}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px}.page-heading h1{font-size:clamp(30px,4vw,46px);line-height:1.05;margin:8px 0 10px;letter-spacing:-.035em}.page-heading p{color:var(--muted);margin:0;max-width:660px;line-height:1.7}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.14em;color:var(--primary)}.primary-button,.secondary-button,.danger-button{min-height:44px;padding:11px 18px;border-radius:8px;border:1px solid transparent;font-weight:750;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.primary-button{background:var(--primary);color:#fff}.primary-button:hover{background:var(--primary-dark)}.secondary-button{background:#fff;color:var(--ink);border-color:var(--line)}.danger-button{color:var(--danger);background:#fff3f2;border-color:#f1c8c5}
.filter-bar,.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;display:flex;gap:14px;align-items:end}.filter-bar label,.stack-form label,.form-card label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:700}.filter-bar label{min-width:155px}.filter-bar input,.filter-bar select,.stack-form select,.form-card input,.form-card select{width:100%;min-height:44px;border:1px solid #cbd9d6;border-radius:8px;background:#fff;color:var(--ink);padding:10px 12px;outline:none}.filter-bar input:focus,.filter-bar select:focus,.form-card input:focus,.form-card select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(15,118,110,.12)}.legend{display:flex;gap:22px;align-items:center;margin:18px 2px;color:var(--muted);font-size:13px}.legend span{display:flex;align-items:center;gap:7px}.legend i{width:20px;height:9px;border-radius:3px}.legend .approved{background:var(--primary)}.legend .pending{border:1px dashed #699a92;background:var(--soft)}.legend .hint{margin-left:auto}
.gantt-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.gantt-scroll{min-width:1100px}.gantt-header,.gantt-row{display:grid;grid-template-columns:210px 1fr}.gantt-header{height:46px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px}.room-column{padding:12px 16px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}.room-column small,.room-column em{color:var(--muted);font-style:normal;font-size:11px;margin-top:3px}.timeline-header,.timeline-grid{position:relative;background-image:linear-gradient(to right,transparent calc(100% - 1px),#edf1f0 1px);background-size:calc(100% / 24) 100%}.timeline-header span{position:absolute;top:16px;transform:translateX(4px)}.gantt-row{min-height:78px;border-bottom:1px solid var(--line)}.timeline-grid{cursor:crosshair}.timeline-grid:hover{background-color:#fbfcfb}.booking{position:absolute;top:12px;height:52px;min-width:4px;border-radius:7px;padding:7px 9px;overflow:hidden;text-decoration:none}.booking span,.booking b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking span{font-size:10px}.booking b{font-size:12px;margin-top:3px}.booking.approved{background:var(--primary);color:#fff}.booking.pending{background:var(--soft);border:1px dashed #4a847b;color:#244d47}
.two-column{display:grid;grid-template-columns:1fr 1fr;max-width:900px}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:18px}.request-list,.approval-grid{display:grid;gap:12px}.request-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:grid;grid-template-columns:110px 1fr auto;gap:18px;align-items:center}.request-card h2,.approval-card h2{font-size:17px;margin:0 0 5px}.request-card p,.approval-card>p{color:var(--muted);margin:0 0 8px}.request-card small{display:block;color:var(--muted);margin-top:6px}.request-status{font-size:11px;font-weight:800;letter-spacing:.05em;padding:7px 9px;text-align:center;border-radius:999px;background:var(--soft);color:var(--primary)}.status-approved{background:#dcf4eb;color:#176b4d}.status-rejected,.status-cancelled{background:#f7e5e3;color:#9f3731}.request-actions,.approval-actions{display:flex;gap:8px;align-items:center}.pass-state{font-size:11px;color:var(--primary);font-weight:700}.reason{margin-top:8px;color:var(--danger)}.login-card{max-width:520px;margin:9vh auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:38px}.login-card h1{font-size:30px;margin:8px 0}.login-card p{color:var(--muted);line-height:1.6}.stack-form{display:grid;gap:18px;margin-top:28px}.empty-state{padding:48px;text-align:center;color:var(--muted);border:1px dashed #bfd0cd;border-radius:var(--radius)}
.approval-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));margin-top:18px}.approval-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.approval-meta{display:flex;justify-content:space-between;align-items:center}.approval-card dl{display:grid;gap:10px;margin:18px 0}.approval-card dl div{display:grid;grid-template-columns:90px 1fr}.approval-card dt{color:var(--muted);font-size:12px}.approval-card dd{margin:0;font-size:13px}.approval-actions{flex-wrap:wrap;border-top:1px solid var(--line);padding-top:15px}.reject-form{display:flex;gap:7px;flex:1}.reject-form input{min-width:130px;flex:1;border:1px solid var(--line);border-radius:8px;padding:0 10px}.admin-tabs{display:flex;gap:8px;margin-bottom:16px}.admin-tabs a{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 14px;text-decoration:none;color:var(--ink)}.management-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.compact{margin-bottom:16px;flex-wrap:wrap}.compact h2{font-size:16px;width:100%;margin:0}.resource-table{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.resource-table>div{padding:14px 18px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px}.resource-table small,.resource-table span{color:var(--muted)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}.metric-grid article{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px}.metric-grid small{display:block;color:var(--muted);font-weight:700}.metric-grid strong{display:block;font-size:30px;margin-top:5px}.mobile-nav{display:none}
@media(max-width:820px){.topbar{min-height:64px;padding:0 16px}.brand span:last-child,.desktop-nav{display:none}.top-actions{margin-left:auto}.page-shell{width:min(100% - 28px,680px);padding:26px 0 96px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading .primary-button{width:100%}.page-heading h1{font-size:34px}.filter-bar{overflow-x:auto}.filter-bar label{min-width:150px}.legend .hint{display:none}.gantt-card{overflow-x:auto}.two-column,.management-grid{grid-template-columns:1fr}.form-actions{grid-column:auto}.request-card{grid-template-columns:1fr}.request-actions{flex-wrap:wrap}.approval-grid{grid-template-columns:1fr}.resource-table>div{grid-template-columns:1fr}.admin-tabs{overflow-x:auto}.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;height:68px;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.35fr 1fr;align-items:center;padding:7px 10px max(7px,env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(28,64,60,.08)}.mobile-nav a{text-align:center;color:var(--muted);font-size:12px;font-weight:750}.mobile-nav .mobile-primary{background:var(--primary);color:#fff;padding:12px 6px;border-radius:8px}}@media(max-width:480px){.top-actions .text-button{display:none}.page-shell{width:calc(100% - 24px)}.form-actions{display:grid;grid-template-columns:1fr 1fr}.form-actions .primary-button,.form-actions .secondary-button{width:100%}}
.resource-item{border-bottom:1px solid var(--line);background:#fff}.resource-item:last-child{border-bottom:0}.resource-item summary{list-style:none;display:grid;grid-template-columns:minmax(190px,1.1fr) minmax(160px,1fr) minmax(220px,1.2fr) auto;gap:20px;align-items:center;padding:18px 20px;cursor:pointer}.resource-item summary::-webkit-details-marker{display:none}.resource-item summary::before{content:"";position:absolute}.resource-item summary strong{font-size:16px}.resource-item summary span,.resource-item summary small{color:var(--muted);font-size:13px}.resource-item summary b{color:var(--primary);font-size:13px;white-space:nowrap}.resource-item[open] summary{background:#f7fbfa;border-bottom:1px solid var(--line)}.resource-edit-grid{padding:20px;background:#f7fbfa;display:grid;grid-template-columns:minmax(0,1fr) 215px;gap:24px;align-items:end}.resource-edit-grid form:first-child{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.resource-edit-grid label{display:grid;gap:7px;min-width:150px;flex:1;font-size:12px;font-weight:750}.resource-edit-grid input,.resource-edit-grid select{min-height:42px;padding:9px 11px;border:1px solid #cbd9d6;border-radius:8px;background:#fff;color:var(--ink)}.resource-edit-grid form:last-child{border-left:1px solid var(--line);padding-left:20px}.resource-edit-grid p{font-size:12px;line-height:1.55;color:var(--muted);margin:0 0 10px}.resource-subtable{margin-top:16px}@media(max-width:820px){.resource-item summary{grid-template-columns:1fr;gap:5px}.resource-edit-grid{grid-template-columns:1fr}.resource-edit-grid form:last-child{border-left:0;border-top:1px solid var(--line);padding:16px 0 0}}
.schedule-board{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.schedule-board article{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:17px 19px;box-shadow:var(--shadow)}.schedule-board article::after{content:"";position:absolute;right:-17px;bottom:-22px;width:72px;height:72px;border-radius:50%;background:var(--soft)}.schedule-board small,.schedule-board span{display:block;color:var(--muted);font-size:12px;font-weight:700}.schedule-board strong{display:block;font-size:29px;line-height:1;margin:8px 0;color:var(--primary)}.booking{z-index:1}.booking-tooltip{visibility:hidden;opacity:0;pointer-events:none;position:absolute;z-index:12;left:0;bottom:calc(100% + 9px);width:215px;padding:13px 14px;background:#17312e;color:#fff;border-radius:10px;box-shadow:0 14px 30px rgba(20,46,43,.24);transform:translateY(5px);transition:opacity .15s ease,transform .15s ease}.booking-tooltip::after{content:"";position:absolute;left:17px;bottom:-6px;width:12px;height:12px;background:#17312e;transform:rotate(45deg)}.booking:hover .booking-tooltip,.booking:focus .booking-tooltip{visibility:visible;opacity:1;transform:translateY(0)}.booking-tooltip small,.booking-tooltip strong,.booking-tooltip em{position:relative;z-index:1;display:block}.booking-tooltip small{font-size:10px;letter-spacing:.07em;opacity:.7}.booking-tooltip strong{font-size:14px;margin:4px 0 7px}.booking-tooltip em{font-size:11px;font-style:normal;line-height:1.6;opacity:.85}@media(max-width:820px){.schedule-board{grid-template-columns:1fr 1fr}.schedule-board article:last-child{grid-column:1/-1}}@media(max-width:480px){.schedule-board{grid-template-columns:1fr}.schedule-board article:last-child{grid-column:auto}}
.series-actions{position:relative}.series-actions summary{list-style:none;min-height:44px;padding:11px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;font-weight:750;cursor:pointer;white-space:nowrap}.series-actions summary::-webkit-details-marker{display:none}.series-actions[open]>summary{border-color:var(--primary);color:var(--primary)}.series-actions>div{position:absolute;right:0;z-index:10;display:grid;gap:8px;min-width:220px;padding:10px;margin-top:6px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:var(--shadow)}.series-actions form,.series-actions button{width:100%}@media(max-width:820px){.request-actions{display:grid;grid-template-columns:1fr 1fr}.request-actions>*{min-width:0}.request-actions a,.request-actions button{width:100%}.series-actions>div{left:0;right:auto;width:min(100%,300px)}}@media(max-width:480px){.request-actions{grid-template-columns:1fr}.series-actions{width:100%}.series-actions summary{width:100%;text-align:center}}
.weekday-selector{grid-column:1/-1;margin:0;padding:0;border:0}.weekday-selector legend{margin-bottom:9px;font-size:13px;font-weight:700}.weekday-selector>div{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.weekday-selector label{min-width:0!important;position:relative;display:block!important}.weekday-selector input{position:absolute;opacity:0;pointer-events:none}.weekday-selector span{display:grid;place-items:center;min-height:42px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-size:13px;font-weight:750;cursor:pointer}.weekday-selector input:checked+span{border-color:var(--primary);background:var(--soft);color:var(--primary-dark);box-shadow:inset 0 0 0 1px var(--primary)}.weekday-selector input:focus-visible+span{outline:3px solid rgba(15,118,110,.18);outline-offset:2px}@media(max-width:560px){.weekday-selector>div{grid-template-columns:repeat(4,1fr)}.weekday-selector span{min-height:46px}}
.booking-mode-selector{grid-column:1/-1;margin:0;padding:0;border:0}.booking-mode-selector legend{margin-bottom:9px;font-size:13px;font-weight:700}.booking-mode-selector>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.booking-mode-selector label{min-width:0!important;position:relative;display:block!important}.booking-mode-selector input{position:absolute;opacity:0}.booking-mode-selector span{display:flex;min-height:76px;flex-direction:column;justify-content:center;gap:5px;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer}.booking-mode-selector b{font-size:15px}.booking-mode-selector small{font-weight:400;line-height:1.35;color:var(--muted)}.booking-mode-selector input:checked+span{border-color:var(--primary);background:var(--soft);box-shadow:inset 0 0 0 1px var(--primary)}.booking-mode-helper{grid-column:1/-1;margin:-4px 0 0}.weekly-schedule-fields{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fbfdfc}.weekly-schedule-fields h2{grid-column:1/-1;margin:0;font-size:16px}.weekly-schedule-fields .weekday-selector,.weekly-schedule-fields .excluded-date-field{grid-column:1/-1}@media(max-width:560px){.booking-mode-selector>div,.weekly-schedule-fields{grid-template-columns:1fr}}
#weekly-schedule-fields[hidden]{display:none}
.permission-scope-field{display:grid;gap:7px;min-width:260px;flex:1;margin:0;padding:0;border:0}.permission-scope-field legend{font-size:12px;font-weight:750}.permission-scope-field>small{font-size:11px;line-height:1.4;color:var(--muted)}.permission-scope-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;max-height:190px;padding:2px;overflow:auto}.permission-scope-grid label{position:relative;display:block!important;min-width:0!important}.permission-scope-grid input{position:absolute;opacity:0}.permission-scope-grid span{display:flex;align-items:center;min-height:40px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:12px;font-weight:700;cursor:pointer}.permission-scope-grid input:checked+span{border-color:var(--primary);background:var(--soft);color:var(--primary-dark);box-shadow:inset 0 0 0 1px var(--primary)}.permission-scope-grid input:focus-visible+span{outline:3px solid rgba(15,118,110,.18);outline-offset:2px}
.schedule-window-picker{display:none}.schedule-window-picker a{color:var(--muted)}@media(max-width:820px){.schedule-window-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:16px 0 4px}.schedule-window-picker a{min-height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.78);font-size:12px;font-weight:750}.schedule-window-picker a.active{border-color:var(--primary);background:var(--soft);color:var(--primary-dark);box-shadow:inset 0 0 0 1px var(--primary)}.gantt-scroll{min-width:0}.gantt-header,.gantt-row{grid-template-columns:132px minmax(0,1fr)}.room-column{padding:10px 11px}.room-column strong{font-size:15px}.room-column small,.room-column em{font-size:10px}.gantt-row{min-height:92px}.timeline-header span{font-size:11px;transform:translateX(2px)}.booking{padding:8px 7px}.booking b{font-size:11px}.booking-tooltip{display:none}}
.permission-scope-field{min-width:0;flex:1 0 100%}.permission-scope-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-height:320px;padding:4px;overflow-y:auto;overflow-x:hidden}.permission-scope-grid span{min-height:54px;padding:12px 14px;font-size:14px}
.booking{overflow:visible}.booking>span,.booking>b{overflow:hidden}
.mobile-booking-card{display:none}@media(max-width:820px){.mobile-booking-card:not([hidden]){position:fixed;inset:auto 12px calc(82px + env(safe-area-inset-bottom));z-index:35;display:block}.mobile-booking-card>div{position:relative;padding:18px 20px;border:1px solid rgba(255,255,255,.5);border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 18px 48px rgba(20,54,49,.22);backdrop-filter:blur(16px)}.mobile-booking-card button{position:absolute;right:10px;top:8px;width:34px;height:34px;border:0;border-radius:50%;background:var(--soft);color:var(--primary-dark);font-size:22px;cursor:pointer}.mobile-booking-card small{display:block;color:var(--primary);font-size:11px;font-weight:800;letter-spacing:.08em}.mobile-booking-card strong{display:block;margin:5px 38px 4px 0;font-size:19px}.mobile-booking-card p{margin:5px 0;color:var(--muted);font-size:14px}.mobile-booking-card p span{display:block;font-size:11px;font-weight:750}.mobile-booking-card p b{color:var(--ink)}}
.booking-tooltip.tooltip-below{bottom:auto;top:calc(100% + 3px)}.booking-tooltip.tooltip-below::after{top:-6px;bottom:auto}.booking-tooltip.tooltip-align-end{left:auto;right:0}.booking-tooltip.tooltip-align-end::after{left:auto;right:17px}@media(min-width:821px){.gantt-card{overflow:visible}}
@media(max-width:820px){.filter-bar{display:grid;grid-template-columns:1fr 1fr;overflow:visible}.filter-bar label{min-width:0}.filter-bar .secondary-button{grid-column:1/-1;width:100%}}@media(max-width:480px){.filter-bar{grid-template-columns:1fr}}
.excluded-date-field{display:grid;gap:8px;font-size:13px;font-weight:700}.excluded-date-controls{display:flex;gap:8px}.excluded-date-controls input{min-width:0}.excluded-date-controls .secondary-button{min-height:44px;white-space:nowrap}.date-chips{display:flex;flex-wrap:wrap;gap:7px;min-height:26px}.date-chip{display:inline-flex;align-items:center;gap:6px;background:var(--soft);color:var(--primary-dark);border-radius:999px;padding:5px 7px 5px 10px;font-size:12px;font-weight:800}.date-chip button{display:grid;place-items:center;width:18px;height:18px;border:0;border-radius:50%;background:#cbe6e0;color:var(--primary-dark);font-size:16px;line-height:1;cursor:pointer}@media(max-width:480px){.excluded-date-controls{flex-direction:column}.excluded-date-controls .secondary-button{width:100%}}
.topbar{padding-inline:max(24px,calc((100vw - 1380px)/2));background:rgba(255,255,255,.88);backdrop-filter:blur(16px)}.page-shell{width:min(1380px,calc(100% - 56px));padding-top:30px}.gantt-card{box-shadow:0 14px 34px rgba(20,54,49,.08)}.gantt-row{min-height:86px}.timeline-grid{background-color:rgba(255,255,255,.68)}.timeline-grid:hover{background-color:rgba(230,244,241,.42)}.booking{top:13px;height:58px;padding:9px 11px;border:1px solid rgba(255,255,255,.22);box-shadow:0 7px 15px rgba(20,72,67,.16);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.booking:hover,.booking:focus{z-index:3;transform:translateY(-3px) scale(1.015);box-shadow:0 15px 26px rgba(13,66,60,.24);filter:saturate(1.08)}.booking.approved.booking--owned{background:linear-gradient(135deg,#087d73,#0e655e 64%,#09544f)}.booking.approved.booking--other{background:linear-gradient(135deg,#168a82,#14746d 64%,#0e625d)}.booking.pending{background:linear-gradient(135deg,rgba(231,247,244,.96),rgba(208,236,231,.88));border:1px dashed #3f8c82;color:#225c56;box-shadow:0 7px 14px rgba(27,102,93,.1)}.booking.pending::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 18%,rgba(255,255,255,.55) 45%,transparent 72%);transform:translateX(-110%);transition:transform .4s ease}.booking.pending:hover::after{transform:translateX(110%)}.booking-tooltip{background:rgba(23,49,46,.93);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.13);box-shadow:0 18px 36px rgba(20,46,43,.28)}.booking-tooltip::after{background:rgba(23,49,46,.93)}.timeline-selection{position:absolute;top:11px;height:62px;border:1px solid #3e8cff;border-radius:8px;background:rgba(87,154,255,.2);box-shadow:0 8px 18px rgba(44,119,225,.14);pointer-events:none}.selection-label{position:absolute;top:-25px;color:#2677ed;font-size:12px;font-weight:800}.selection-start{left:0}.selection-end{right:0}.schedule-board article{background:rgba(255,255,255,.8);backdrop-filter:blur(10px);transition:transform .18s ease,box-shadow .18s ease}.schedule-board article:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(20,54,49,.1)}@media(max-width:820px){.page-shell{width:min(100% - 28px,760px)}}
.permission-matrix,.audit-log-table{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.permission-matrix h2{margin:0;padding:18px;font-size:18px;border-bottom:1px solid var(--line)}.permission-matrix div{display:grid;grid-template-columns:180px 1fr;gap:16px;padding:14px 18px;border-bottom:1px solid var(--line);font-size:13px}.permission-matrix span{color:var(--muted)}.audit-log-table>div{display:grid;grid-template-columns:180px 160px 210px 1fr;gap:16px;padding:14px 18px;border-bottom:1px solid var(--line);font-size:13px;align-items:center}.audit-log-table .audit-head{background:#f8faf9;color:var(--muted);font-size:11px;font-weight:800}.audit-log-table b{font-size:11px;color:var(--primary)}@media(max-width:820px){.permission-matrix div,.audit-log-table>div{grid-template-columns:1fr;gap:5px}.audit-log-table .audit-head{display:none}}
.report-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.report-kpis article,.report-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.report-kpis article{padding:18px}.report-kpis small,.report-kpis span{display:block;color:var(--muted);font-size:12px;font-weight:700}.report-kpis strong{display:block;margin:8px 0;font-size:30px;color:var(--primary)}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.report-panel{padding:19px}.report-panel h2{margin:0 0 15px;font-size:18px}.report-panel p{color:var(--muted);font-size:13px}.status-breakdown{display:grid;gap:8px}.status-breakdown div,.usage-ranking li,.upcoming-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:13px}.status-breakdown strong{color:var(--primary)}.usage-ranking,.upcoming-list{padding:0;margin:0;list-style:none}.usage-ranking b{color:var(--primary);white-space:nowrap}.upcoming-list li{display:grid;gap:4px}.upcoming-list strong{font-size:13px}.upcoming-list span{color:var(--muted);font-size:12px}.report-events{margin-top:14px}.panel-title{display:flex;justify-content:space-between;align-items:start;gap:18px;margin-bottom:16px}.panel-title h2{margin-bottom:4px}.panel-title p{margin:0}.panel-title>span{font-size:12px;color:var(--muted);font-weight:800}@media(max-width:820px){.report-kpis,.report-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.report-kpis,.report-grid{grid-template-columns:1fr}}.mobile-entry-card{max-width:720px;display:grid;grid-template-columns:250px 1fr;gap:28px;align-items:center;padding:28px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.mobile-entry-card img{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px}.mobile-entry-card h2{margin:0 0 9px}.mobile-entry-card p{color:var(--muted);line-height:1.7}.mobile-entry-card label{display:grid;gap:8px;font-size:13px;font-weight:750}.mobile-entry-card input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:#f7fbfa}@media(max-width:560px){.mobile-entry-card{grid-template-columns:1fr;padding:20px}.mobile-entry-card img{max-width:260px;margin:auto}}
.booking.approved.booking--tone-a{background:linear-gradient(135deg,#087d73,#0e655e 64%,#09544f)}.booking.approved.booking--tone-b{background:linear-gradient(135deg,#6d5bd0,#5140ad 64%,#403294)}.booking.approved.booking--owned{box-shadow:0 0 0 2px rgba(255,255,255,.72),0 12px 24px rgba(20,54,49,.24)}
.cancellation-closed{max-width:150px;color:var(--muted);font-size:11px;line-height:1.35;text-align:center}
.visitor-pass-card.ready{border-top:4px solid #2878b8}
.email-template-editor{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.8fr);gap:24px;align-items:start;padding:26px}.email-template-guidance{grid-column:1/-1;display:flex;align-items:center;gap:14px;padding:0 0 20px;border-bottom:1px solid var(--line)}.email-template-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--soft);color:var(--primary);font-size:21px}.email-template-guidance h2{margin:0 0 4px;font-size:18px}.email-template-guidance p,.template-variable-picker p,.email-template-preview>p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.email-template-fields{display:grid;gap:17px}.email-template-fields label{display:grid!important;gap:8px}.email-template-fields textarea{width:100%;min-height:310px;resize:vertical;border:1px solid #cbd9d6;border-radius:8px;padding:12px;color:var(--ink);line-height:1.55;outline:none}.email-template-fields textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(15,118,110,.12)}.template-variable-picker{padding:15px;border:1px solid var(--line);border-radius:10px;background:#f8fbfa}.template-variable-picker strong{display:block;font-size:13px}.template-variable-picker p{margin:5px 0 11px;font-size:12px}.template-variable-picker>div{display:flex;flex-wrap:wrap;gap:8px}.template-token{min-height:33px;padding:6px 10px;border:1px solid #b9d9d3;border-radius:999px;background:#fff;color:var(--primary-dark);font-size:12px;font-weight:750;cursor:pointer}.template-token:hover,.template-token:focus{background:var(--soft);border-color:var(--primary);outline:none}.email-template-fields .form-actions{padding-top:2px;border-top:0;justify-content:flex-start}.email-template-preview{position:sticky;top:94px;padding:17px;border:1px solid var(--line);border-radius:12px;background:#f8fbfa}.email-preview-heading{display:flex;justify-content:space-between;gap:10px;padding:1px 1px 13px}.email-preview-heading small{display:block;color:var(--primary);font-size:10px;font-weight:800;letter-spacing:.1em}.email-preview-heading strong{display:block;margin-top:4px;font-size:13px}.email-preview-heading span{height:max-content;padding:4px 7px;border-radius:999px;background:var(--soft);color:var(--primary-dark);font-size:10px;font-weight:750}.email-preview-message{min-height:260px;padding:18px;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:0 4px 13px rgba(28,64,60,.05)}.email-preview-message>small{display:block;color:var(--muted);font-size:10px;font-weight:750}.email-preview-message>strong{display:block;margin-top:5px;font-size:15px;line-height:1.4}.email-preview-message hr{border:0;border-top:1px solid var(--line);margin:16px 0}.email-preview-message div{white-space:pre-wrap;color:#405552;font-size:13px;line-height:1.65}.email-template-preview>p{margin-top:11px;font-size:11px}@media(max-width:820px){.email-template-editor{grid-template-columns:1fr;padding:20px}.email-template-preview{position:static;grid-row:2}.email-template-fields{grid-row:3}.email-template-fields textarea{min-height:260px}}@media(max-width:480px){.email-template-editor{padding:16px}.email-template-guidance{align-items:flex-start}.email-template-icon{flex:none}.email-preview-heading{display:block}.email-preview-heading span{display:inline-block;margin-top:8px}}
