/* Shared layout rules for every signed-in page. */
.app-shell{--page-width:1248px;--page-inset:40px;--section-gap:24px;--panel-inset:24px;--panel-radius:14px}
.app-shell .dashboard-main{width:100%;max-width:var(--page-width);padding:80px var(--page-inset) 72px;margin:0 auto;align-self:start;min-width:0}
.dashboard-main .page-heading{min-height:80px;margin:0 0 28px;display:flex;justify-content:space-between;align-items:flex-start;gap:24px}
.dashboard-main .page-heading h1{margin:0 0 8px;font-size:32px;line-height:1.25;letter-spacing:-1.1px}
.dashboard-main .page-heading p{margin:0;max-width:720px;font-size:14px;line-height:1.65;color:#75838e}
.dashboard-main .page-heading>.btn{margin-top:2px;min-height:42px;flex:none}
.dashboard-main .settings-panel{width:100%;max-width:none}
.dashboard-main .panel{border-radius:var(--panel-radius);box-shadow:0 6px 24px #18362b04;min-width:0}
.dashboard-main>.panel{margin:0}
.dashboard-main>.panel+.panel{margin-top:var(--section-gap)}
.dashboard-main .panel-head{padding:20px var(--panel-inset);min-height:72px;gap:16px;align-items:center;flex-wrap:wrap}
.dashboard-main .panel-body{padding:var(--panel-inset)}
.dashboard-main .section-title{font-size:16px;line-height:1.5;font-weight:700;letter-spacing:-.3px}
.dashboard-main #profile-form,.dashboard-main #invite-form{max-width:720px}
.dashboard-main .form-grid{gap:20px}
.dashboard-main .calendar-setup{padding:20px var(--panel-inset);margin-bottom:var(--section-gap);border-radius:var(--panel-radius)}
.dashboard-main .calendar-connection{padding:20px var(--panel-inset);min-height:100px;gap:20px;align-items:center}
.dashboard-main .calendar-connection>.row:first-child{gap:14px}
.dashboard-main .calendar-connection>.row:last-child{margin-left:auto;justify-content:flex-end}
.dashboard-main .type-grid,.dashboard-main .stat-grid,.dashboard-main .info-grid{gap:16px}
.dashboard-main .type-item{padding:20px;min-height:148px;gap:12px}
.dashboard-main .type-item .bottom{padding-top:0;margin-top:auto;gap:10px}
.dashboard-main .stat-grid{margin-bottom:var(--section-gap)}
.dashboard-main .stat{padding:var(--panel-inset)}
.dashboard-main .info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.dashboard-main .booking-item{padding:18px var(--panel-inset)}
.dashboard-main .empty{min-height:180px;padding:32px var(--panel-inset);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.dashboard-main .empty b{margin:0}
.dashboard-main .table-wrap{width:100%;overflow-x:auto;border-radius:0 0 var(--panel-radius) var(--panel-radius)}
.dashboard-main .data-table{width:100%;min-width:820px;table-layout:fixed;border-collapse:collapse;font-size:13px}
.dashboard-main .data-table th{height:44px;padding:12px var(--panel-inset);background:#f7f9fa;color:#647580;font-size:12px;font-weight:650;letter-spacing:0;text-transform:none;line-height:1.5}
.dashboard-main .data-table td{padding:18px var(--panel-inset);height:76px;vertical-align:middle;line-height:1.55;border-top:1px solid #edf0f2;font-weight:400}
.dashboard-main .data-table .cell-content{min-width:0;overflow-wrap:anywhere}
.dashboard-main .data-table .cell-primary .cell-content{font-weight:650}
.dashboard-main .data-table .tiny{margin-top:3px;font-size:12px;font-weight:400}
.dashboard-main .data-table .cell-actions{text-align:right}
.dashboard-main .data-table .btn{min-height:36px}
.bookings-table .col-meeting{width:23%}.bookings-table .col-guest{width:25%}.bookings-table .col-date{width:25%}.bookings-table .col-status{width:10%}.bookings-table .col-actions{width:17%}
.team-table .col-user{width:36%}.team-table .col-url{width:28%}.team-table .col-role{width:16%}.team-table .col-actions{width:20%}
@media(max-width:1100px){
 .app-shell{--page-inset:28px}
 .dashboard-main .info-grid{grid-template-columns:minmax(0,1fr)}
 .dashboard-main .table-wrap{overflow:visible}
 .dashboard-main .data-table{display:block;min-width:0;table-layout:auto}
 .dashboard-main .data-table colgroup{display:none}
 .dashboard-main .data-table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .dashboard-main .data-table tbody{display:block}
 .dashboard-main .data-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;padding:20px var(--panel-inset);border-top:1px solid #edf0f2}
 .dashboard-main .data-table td{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:baseline;gap:12px;grid-column:1/-1;height:auto;padding:0;border:0;font-size:13px}
 .dashboard-main .data-table td:before{content:attr(data-label);color:#7c8993;font-size:12px;font-weight:400}
 .dashboard-main .data-table .cell-primary{grid-column:1;display:block;font-size:15px}
 .dashboard-main .data-table .cell-status{grid-column:2;grid-row:1;display:block;align-self:start;justify-self:end}
 .dashboard-main .data-table .cell-primary:before,.dashboard-main .data-table .cell-status:before,.dashboard-main .data-table .cell-actions:before{display:none}
 .dashboard-main .data-table .cell-actions{display:flex;justify-content:flex-end;padding-top:2px}
 .dashboard-main .data-table .cell-actions:has(.cell-content:empty){display:none}
 .dashboard-main .data-table tr:hover td{background:transparent}
}
@media(max-width:760px){
 .app-shell{--page-inset:16px;--panel-inset:20px}
 .app-shell .dashboard-main{max-width:100%;padding:48px var(--page-inset) 56px}
 .dashboard-main .page-heading{min-height:0;flex-direction:column;gap:16px;margin-bottom:24px}
 .dashboard-main .page-heading h1{font-size:28px;margin-bottom:8px}
 .dashboard-main .page-heading p{font-size:13px}
 .dashboard-main .page-heading>.btn{margin-top:0}
 .dashboard-main .panel-head{min-height:68px;padding:18px var(--panel-inset);gap:12px}
 .dashboard-main .panel-body{padding:var(--panel-inset)}
 .dashboard-main .type-item{padding:18px;min-height:148px}
 .dashboard-main .calendar-connection{align-items:flex-start;gap:16px}
 .dashboard-main .calendar-connection>.row:last-child{width:100%;margin-left:0;justify-content:flex-start}
 .dashboard-main .data-table td{grid-template-columns:60px minmax(0,1fr)}
 .dashboard-main #invite-form{align-items:stretch;gap:12px}
 .dashboard-main #invite-form .control{flex-basis:100%;width:100%!important}
}
@media(max-width:600px){
 .dashboard-main .stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
 .dashboard-main .stat-grid>.stat:last-child{grid-column:auto}
 .dashboard-main .stat{padding:14px 12px;min-height:142px}
 .dashboard-main .stat h3{font-size:26px;margin:14px 0 4px}
 .dashboard-main .stat p{font-size:11px;line-height:1.5;word-break:keep-all}
 .dashboard-main .stat-icon{width:30px;height:30px}
}
@media(min-width:1101px){
 .dashboard-main .data-table .cell-primary .cell-content,.dashboard-main .data-table .cell-content>div:first-child,.dashboard-main .data-table .cell-content>.tiny{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
}
.modal{width:min(680px,100%);border-radius:14px}.modal-head{padding:22px 24px}.modal-body{padding:24px}.modal-footer{padding:16px 24px}.modal .form-grid{gap:20px}
@media(max-width:760px){.modal-head,.modal-body{padding:20px}.modal-footer{padding:14px 20px;padding-bottom:max(14px,env(safe-area-inset-bottom))}}
/* Keep content width steady when one page needs a scrollbar and another does not. */
html:has(.app-shell){scrollbar-gutter:stable}
.dashboard-main .type-item h3{min-width:0;overflow-wrap:anywhere}.dashboard-main .type-item .bottom>.row{gap:8px;flex-wrap:wrap}
.dashboard-main .btn{font-weight:550;border-radius:8px}.dashboard-main .btn.secondary{border-color:#ccd8d2;background:#fff;color:#364d42;box-shadow:0 1px 2px #153a2510}.dashboard-main .btn.secondary:hover{border-color:#93afa0;background:#f6faf7}.dashboard-main .btn.ghost:hover{background:#f0f5f2}
.dashboard-main .type-item .bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px}
.type-link-actions{display:flex;align-items:center;gap:7px;flex:none}.type-link-actions .icon-btn{width:34px;height:34px;min-height:34px;padding:7px}.type-duplicate{margin-left:auto;flex:none}
@media(max-width:1000px){.dashboard-main .type-grid{grid-template-columns:minmax(0,1fr)}}

/* Right-side editors keep the current list visible, with only the form scrolling. */
.drawer-overlay{justify-content:flex-end;align-items:stretch;padding:0;background:#18242d30;backdrop-filter:none}
.editor-drawer.modal{width:min(640px,100%);height:100vh;height:100dvh;max-height:none;border-radius:0;display:flex;flex-direction:column;overflow:hidden;box-shadow:-12px 0 48px #18242d20;animation:editor-enter .18s ease-out}
.editor-drawer .modal-head{flex:none;min-height:84px;padding:22px 28px;background:#fff;gap:16px}
.editor-drawer .modal-head h2{font-size:21px}
.editor-drawer #type-form{display:flex;flex-direction:column;flex:1;min-height:0}
.editor-drawer .modal-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:28px}
.editor-drawer .modal-footer{position:static;flex:none;border-radius:0;padding:18px 28px;padding-bottom:max(18px,env(safe-area-inset-bottom));box-shadow:0 -4px 16px #18242d05}
.editor-drawer .modal-footer .btn{min-height:40px}
@keyframes editor-enter{from{transform:translateX(32px);opacity:.5}to{transform:translateX(0);opacity:1}}
@media(max-width:600px){.editor-drawer.modal{width:100%}.editor-drawer .modal-head{min-height:72px;padding:18px 20px}.editor-drawer .modal-body{padding:24px 20px}.editor-drawer .modal-footer{padding:14px 20px;padding-bottom:max(14px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.editor-drawer.modal{animation:none}}
.drawer-overlay{width:100vw}
html:has(.drawer-overlay){scrollbar-gutter:auto}

/* Quiet card actions; unavailable types are muted instead of labelled with chips. */
.dashboard-main .type-link-actions .btn{border-color:transparent;background:transparent;box-shadow:none;color:#53695d}
.dashboard-main .type-link-actions .btn:hover{background:#edf4ef;color:#253d30}
.dashboard-main .type-link-actions .btn:focus-visible,.type-menu summary:focus-visible,.type-menu button:focus-visible{outline:2px solid #36765a;outline-offset:2px}
.dashboard-main .type-item.is-inactive{background:#f4f6f5;border-style:dashed;border-color:#dce3df}
.dashboard-main .type-item.is-inactive h3,.dashboard-main .type-item.is-inactive>p{opacity:.5}
.type-menu{position:relative;margin-left:auto;flex:none}
.type-menu>summary{list-style:none;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;color:#53695d;cursor:pointer}
.type-menu summary::-webkit-details-marker{display:none}
.type-menu>summary:hover,.type-menu[open]>summary{background:#edf4ef}
.type-item:has(.type-menu[open]){position:relative;z-index:10}
.type-menu-popover{position:absolute;right:0;top:calc(100% + 6px);width:208px;padding:6px;background:#fff;border:1px solid #dfe6e1;border-radius:10px;box-shadow:0 8px 24px #183d2520;z-index:15}
.type-menu-popover>button,.type-delete-confirm>summary,.type-delete-confirm>button{font:inherit;font-size:13px;display:flex;align-items:center;gap:8px;border:0;background:transparent;width:100%;padding:10px 12px;border-radius:6px;text-align:left;color:#354b3e;cursor:pointer}
.type-menu-popover button:hover,.type-delete-confirm>summary:hover{background:#f0f5f2}
.type-delete-confirm{border-top:1px solid #eef1ef;margin-top:4px;padding-top:4px}
.type-delete-confirm>summary,.type-delete-confirm>button{color:#ad4943;list-style:none}
.type-delete-confirm p{font-size:12px;line-height:1.6;margin:4px 12px 10px;color:#6a7770}
.type-trash{padding:18px 22px}.type-trash>summary{font-size:13px;color:#738078;cursor:pointer}.type-trash>.row{padding:8px 0;border-top:1px solid #eef1ef}

.type-menu-popover{position:fixed;right:auto;bottom:auto;top:0;left:0;overflow-y:auto;overscroll-behavior:contain;max-height:calc(100dvh - 24px)}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-top:1px solid #e8ede9;flex-wrap:wrap}
.dashboard-main>.pagination{border:0;padding:20px 0 0}
.pagination-range{font-size:12px;color:#758278;white-space:nowrap}
.pagination-buttons{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.pagination .btn{min-width:32px;min-height:32px;justify-content:center;padding:5px 8px}
.pagination .btn[aria-current=page]{background:#e7f2eb;color:#286246;font-weight:650}
.pagination .btn:disabled{opacity:.35;cursor:default}.pagination-gap{padding:0 3px;color:#9aa69e}
@media(max-width:600px){.pagination{padding:16px;gap:12px}.pagination-buttons{gap:2px}.pagination .btn{min-width:30px;padding:5px 6px}}

/* Contextual sections keep long booking editors readable without extra cards. */
.editor-section{border:0;margin:0;padding:0;min-width:0}
.editor-section+.editor-section{margin-top:32px;padding-top:28px;border-top:1px solid #e6ece8}
.editor-section legend{float:left;width:100%;padding:0 0 0 11px;margin:0 0 24px;border-left:3px solid #579275;font-size:18px;line-height:1.35;font-weight:750;color:#203d2c;letter-spacing:-.4px}
.editor-section .form-grid{clear:both;gap:20px}
.editor-section .field{min-width:0}
.editor-section .field>label{line-height:1.5}
@media(max-width:600px){.editor-section+.editor-section{margin-top:28px;padding-top:24px}}

.member-delete-dialog{width:min(460px,100%)}
.member-delete-dialog .modal-body p{font-size:14px;line-height:1.75;margin:0;color:#63736a}
.member-delete-dialog .modal-body .member-delete-name{color:#293e32;font-weight:600;margin-bottom:18px}
.member-delete-name span{display:block;font-weight:400;overflow-wrap:anywhere}

.nav-mobile-label{display:none}
.settings-advanced{border-top:1px solid #e3e9e5;padding-top:18px;color:#738078}
.settings-advanced>summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer;font-size:12px;width:fit-content}
.settings-advanced>summary::-webkit-details-marker{display:none}
.settings-advanced[open]>summary .icon{transform:rotate(90deg)}
.settings-advanced-body{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0 0;font-size:13px}
.settings-advanced-body p{margin:5px 0 0;line-height:1.6}
@media(max-width:760px){
 html:has(.app-shell){scrollbar-gutter:auto}
 .app-shell{display:block}
 .sidebar{position:relative;top:auto;z-index:40;display:flex;align-items:center;height:64px;padding:14px 16px;backdrop-filter:none;overflow:visible;background:#fff}
 .sidebar .logo{height:auto;margin:0;padding:0}
 .sidebar .sidebar-bottom{top:12px;right:14px}
 .sidebar .workspace-nav{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:40;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px;margin:0;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid #e2e9e4;background:#fffffffa;backdrop-filter:blur(16px);box-shadow:0 -4px 20px #18362b08;overflow:visible}
 .sidebar .nav-item{width:100%;min-width:0;min-height:54px;margin:0;padding:6px 1px;display:flex;flex-direction:column;justify-content:center;gap:5px;border-radius:10px;font-size:10px;line-height:1.2;font-weight:500;white-space:nowrap;text-align:center}
 .sidebar .nav-item .icon{width:21px;height:21px}
 .sidebar .nav-item.active{background:#edf6f0;color:#227350}
 .nav-label{display:none}.nav-mobile-label{display:inline}
 .app-shell .dashboard-main{padding-bottom:calc(106px + env(safe-area-inset-bottom))}
 .settings-advanced-body{align-items:flex-start;flex-wrap:wrap}
 #toast{bottom:calc(86px + env(safe-area-inset-bottom))}
}

.team-table .col-user{width:34%}.team-table .col-url{width:21%}.team-table .col-role{width:12%}.team-table .col-status{width:13%}.team-table .col-actions{width:20%}
.team-selection-actions{display:flex;align-items:center;gap:12px}
.team-selection-actions .btn:disabled{opacity:.4;cursor:default}
.team-user{display:flex;align-items:center;gap:10px;min-width:0}
.team-user>div{min-width:0;overflow:hidden}
.team-user input{accent-color:#327451;width:16px;height:16px;flex:none;margin:0;cursor:pointer}
.team-user input:disabled{opacity:.3;cursor:not-allowed}
.team-member-select{display:flex;align-items:center;justify-content:center;min-width:28px;min-height:32px;flex:none}
.member-access-switch{width:38px;height:22px;border:0;border-radius:999px;background:#c9d2cd;padding:3px;display:inline-flex;align-items:center;cursor:pointer;vertical-align:middle}
.member-access-switch>span{width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transform:translateX(0);transition:transform .15s}
.member-access-switch[aria-checked=true]{background:#438764}.member-access-switch[aria-checked=true]>span{transform:translateX(16px)}
.member-access-switch:disabled{opacity:.45;cursor:default}.member-access-switch:focus-visible{outline:3px solid #90bca1;outline-offset:3px}
.member-delete-list{list-style:none;margin:0 0 18px;padding:0;max-height:180px;overflow:auto}.member-delete-list li{margin:0 0 12px}
@media(max-width:1100px){.team-table .cell-actions .cell-content{display:flex;gap:12px;align-items:center}.team-table .cell-actions .cell-content:before{content:'이용 허용';font-size:12px;color:#7c8993}.team-user>div{overflow:visible}}
