/* Owner console: sidebar shell, cards, tables and a side drawer. Colours come from styles.css tokens (light and dark). */
body.console{font-size:15px;letter-spacing:-.01em}
body.console::before{background:var(--bg)}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:12px;z-index:100;background:var(--tile);padding:8px 12px;border-radius:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.con{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}
.con-side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:24px;padding:24px 16px;border-right:1px solid var(--line-2);background:var(--tile)}
.con-brand b{display:block;font-size:15px}.con-brand small{color:var(--t2)}
.con-nav{display:grid;gap:2px}
.con-nav a{display:block;padding:9px 12px;border-radius:10px;color:var(--t1);text-decoration:none;font-weight:500}
.con-nav a:hover{background:var(--line-2)}
.con-nav a[aria-current]{background:var(--blue);color:#fff}
.con-foot{margin-top:auto;display:grid;gap:6px}
.con-foot a,.con-foot button{display:block;text-align:left;padding:8px 12px;border:0;border-radius:10px;background:none;color:var(--link);font:inherit;cursor:pointer;text-decoration:none}
.con-foot a:hover,.con-foot button:hover{background:var(--line-2)}
.con-main{min-width:0;padding:0 32px 64px}
.con-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:16px;padding:20px 0 16px;margin-bottom:8px;background:var(--bg);border-bottom:1px solid var(--line-2)}
.con-top h1{font-size:26px;flex:1}
.con-menu{display:none}
.con-actions,.con-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.con-row{margin-top:14px}
.console .btn{width:auto;margin:0;font-size:14px;min-height:38px;padding:0 16px}
.console .btn-sm{min-height:32px;padding:0 12px;font-size:13px}
.console .btn:disabled{opacity:.5;cursor:not-allowed}
.console .btn.danger{color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}
.console .field{margin:0 0 14px}
.console .field input,.console .field select{height:42px}
.console .field label small{font-weight:400}
.linkish{border:0;background:none;color:var(--link);font:inherit;font-size:13px;padding:0;margin:-6px 0 14px;cursor:pointer}
#main{outline:none;padding-top:16px}
.intro{color:var(--t2);margin:0 0 18px;max-width:70ch}
.muted{color:var(--t2)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:20px}
.kpi{display:grid;gap:4px;padding:18px;border:1px solid var(--line-2);border-radius:16px;background:var(--tile);color:var(--t1);text-decoration:none}
a.kpi:hover{border-color:var(--link)}
.kpi span,.kpi label{font-size:13px;color:var(--t2)}.kpi-edit{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.kpi-edit b{font-size:24px;font-weight:600}.kpi-edit input{flex:1 1 4.5em;width:0;min-width:0;font:600 20px/1.2 inherit;padding:4px 8px}.kpi-edit .btn{flex:none;padding-inline:14px}.kpi b{font-size:24px;font-weight:600;letter-spacing:-.02em}.kpi small{color:var(--t2);font-size:13px}
.con-card{padding:22px;margin-bottom:16px;border:1px solid var(--line-2);border-radius:16px;background:var(--tile)}
.con-card h2{font-size:19px;margin-bottom:6px}.con-card h3{font-size:15px;margin:18px 0 8px}
.con-card>.muted{margin-bottom:14px}
.days{border:0;padding:0;min-width:0}.days legend{font-size:14px;color:var(--t2);padding:0;margin-bottom:6px}
.day-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.day-row label{position:relative;display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0;border:1px solid var(--line);border-radius:999px;font-weight:600;font-size:14px;color:var(--t1);cursor:pointer}
.console .day-row input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.day-row label:has(:checked){background:var(--blue);border-color:var(--blue);color:#fff}
.day-row label:has(:focus-visible){outline:2px solid var(--blue);outline-offset:2px}
.rule-card .con-head{margin-bottom:0;align-items:center}.rule-card h2{margin-bottom:4px}
.con-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}
.con-note{margin:0 0 16px;padding:14px 18px;border:1px solid var(--link);border-radius:14px;background:var(--tile);color:var(--t1)}
.con-empty{padding:40px 20px;text-align:center;border:1px dashed var(--line);border-radius:16px;color:var(--t2)}.con-empty h3{color:var(--t1);margin-bottom:6px}
.checklist{list-style:none;margin:0;padding:0}
.checklist li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-2)}
.checklist li:last-child{border-bottom:0}
.checklist li>span:first-child{width:22px;text-align:center;color:var(--t2)}
.checklist li.done>span:first-child{color:var(--live)}
.checklist li a,.checklist li>div{flex:1;min-width:0}.checklist li .pill{flex:none}.checklist li small{color:var(--t2);display:block;overflow-wrap:break-word}
.services li>div{flex:1;display:grid}.services li>div small{color:var(--t2)}
.steps{margin:0;padding-left:20px;display:grid;gap:8px;color:var(--t2)}
.con-tabs{display:flex;flex-wrap:wrap;gap:0 4px;border-bottom:1px solid var(--line-2);margin-bottom:16px}
.con-tabs a{padding:10px 14px;color:var(--t2);text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap}
.con-tabs a[aria-selected="true"]{color:var(--t1);border-bottom-color:var(--blue);font-weight:600}
.con-tabs small{color:var(--t2);font-weight:400;margin-left:4px}
.con-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.con-filters input,.con-filters select{height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--tile);color:var(--t1);font:inherit}
.con-filters input{flex:1;min-width:220px}
.con-dates{display:flex;align-items:center;gap:8px;flex:0 1 380px;color:var(--t2);font-size:14px}
.con-filters .con-dates input{flex:1;min-width:0}
.con-count{font-size:13px;margin-bottom:8px}
.con-table-wrap{overflow-x:auto;border:1px solid var(--line-2);border-radius:14px;background:var(--tile)}
.con-table{width:100%;border-collapse:collapse;font-size:14px}
.con-table th{text-align:left;font-weight:500;color:var(--t2);font-size:13px;padding:10px 14px;border-bottom:1px solid var(--line-2);white-space:nowrap}
.con-table td{padding:12px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.con-table tr:last-child td{border-bottom:0}
.con-table tr.clickable{cursor:pointer}
.con-table tr.clickable:hover,.con-table tr.clickable:focus-visible{background:var(--line-2);outline:none}
.row-actions{text-align:right;white-space:nowrap}.row-actions .btn+.btn{margin-left:6px}
.fill{height:4px;width:80px;border-radius:2px;background:var(--line-2);margin-bottom:4px}.fill span{display:block;height:100%;border-radius:2px;background:var(--live)}
.pill{display:inline-block;padding:2px 10px;border-radius:980px;font-size:12px;background:var(--line-2);color:var(--t2);white-space:nowrap}
.pill-confirmed,.pill-sent{background:color-mix(in srgb,var(--live) 14%,transparent);color:var(--t1)}
.pill-pending,.pill-queued,.pill-sending,.pill-waiting{background:color-mix(in srgb,var(--blue) 12%,transparent);color:var(--t1)}
.pill-failed,.pill-cancelled,.pill-blocked{background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--t1)}
.pill[class*="pill-"]::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;vertical-align:1px;background:currentColor}
.pill-confirmed::before,.pill-sent::before{background:var(--live)!important}.pill-pending::before,.pill-queued::before,.pill-sending::before,.pill-waiting::before{background:var(--blue)!important}.pill-failed::before,.pill-cancelled::before,.pill-blocked::before{background:var(--red)!important}
.console main a:not(.btn):not(.kpi),.con-card a:not(.btn){text-decoration:underline;text-underline-offset:2px}
.con-tabs a,.con-sub a,.con-nav a{text-decoration:none!important}
.con-split{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;align-items:start}
.con-sub{position:sticky;top:90px;display:grid;gap:2px}
.con-sub a{padding:8px 12px;border-radius:10px;color:var(--t1);text-decoration:none;font-size:14px}
.con-sub a:hover{background:var(--line-2)}.con-sub a[aria-current]{background:var(--line-2);font-weight:600}
.con-entry{border:1px solid var(--line-2);border-radius:12px;padding:14px;margin:0 0 12px}
.con-entry legend{padding:0 6px;font-size:13px;color:var(--t2)}
.con-entry .field label{display:grid;gap:6px}
.msg .toggles{display:flex;gap:16px}
.switch{display:inline-flex;gap:6px;align-items:center;cursor:pointer}.switch input{width:18px;height:18px;accent-color:var(--blue)}
.msg details{margin:4px 0 8px}.msg summary{cursor:pointer;color:var(--link)}
.msg pre{white-space:pre-wrap;background:var(--bg);border:1px solid var(--line-2);border-radius:10px;padding:12px;font-size:13px}
.img-prev{display:grid;place-items:center;width:200px;aspect-ratio:1;border-radius:14px;background:var(--line-2);overflow:hidden;margin-bottom:14px;color:var(--t2)}
.img-slot[data-img="img.social"] .img-prev{width:min(100%,360px);aspect-ratio:1.91}
.img-prev img{width:100%;height:100%;object-fit:cover}
.con-dl{display:grid;grid-template-columns:minmax(110px,max-content) 1fr;gap:8px 12px;margin:0 0 16px}.con-dl dt{color:var(--t2)}.con-dl dd{margin:0;overflow-wrap:anywhere}
.con-log{list-style:none;margin:0;padding:0}.con-log li{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line-2)}
.con-log small{flex-basis:100%;color:var(--t2)}.con-log .btn{margin-left:auto}
.con-drawer{margin:0 0 0 auto;height:100vh;max-height:none;width:min(520px,100vw);border:0;padding:0;background:var(--tile);color:var(--t1);box-shadow:var(--shadow)}
.con-drawer::backdrop{background:rgba(0,0,0,.35)}
.con-drawer-in{padding:22px;overflow-y:auto;height:100%}
.con-drawer .con-card{background:var(--bg)}
.con-drawer-in>div>h3{margin:22px 0 6px;font-size:15px}
.console select,.con-filters select{appearance:none;-webkit-appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23888' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px 8px}
.console input[type=checkbox],.console input[type=radio]{accent-color:var(--blue);width:18px;height:18px}
.con-card p+.field{margin-top:14px}
.room-card{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.room-card h2{margin:4px 0 6px}.room-card p{margin:0}.room-card.is-live{box-shadow:inset 0 0 0 2px var(--live)}
.room-when{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--t2)}.is-live .room-when{color:var(--live)}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--live);animation:livePulse 1.6s ease-in-out infinite}@keyframes livePulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}
.field-label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
.drop{position:relative;display:flex;align-items:center;gap:14px;padding:14px 16px;border:1.5px dashed var(--line);border-radius:12px;background:var(--tile);cursor:pointer;transition:border-color .15s,background .15s}
.drop:hover,.drop.over{border-color:var(--blue)}.drop.over{background:var(--line-2)}
.drop:focus-within{outline:2px solid var(--blue);outline-offset:2px}
.drop.picked{border-style:solid}
.drop .drop-in{position:absolute;inset:0;width:1px;height:1px;padding:0;border:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0)}
.drop .btn{flex:none;pointer-events:none}
.drop-text{display:grid;gap:2px;min-width:0}
.drop-name{font-size:14px;color:var(--t2);overflow-wrap:anywhere}.drop.picked .drop-name{color:var(--t1);font-weight:600}
.drop-text small{font-size:12px}
@media (max-width:900px){
 .con{grid-template-columns:1fr}
 .con-side{position:fixed;inset:0 auto 0 0;width:260px;z-index:20;transform:translateX(-100%);transition:transform .2s;box-shadow:var(--shadow)}
 .con-side.open{transform:none}
 .con-menu{display:inline-flex;border:1px solid var(--line);border-radius:10px;background:var(--tile);color:var(--t1);padding:8px 12px;font:inherit}
 .con-main{padding:0 16px 48px}
 .con-top{flex-wrap:wrap;gap:10px}.con-top h1{font-size:22px}
 .con-actions{width:100%}
 .con-split{grid-template-columns:1fr}
 .con-sub{position:static;display:flex;flex-wrap:wrap;gap:4px}.con-sub a{white-space:nowrap;border:1px solid var(--line-2)}
 .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .kpi b{font-size:21px}
 .con-head{flex-direction:column}
 .con-filters select{flex:1;min-width:140px}
 .con-table-wrap{border:0;background:none;overflow:visible}
 .con-table thead{display:none}
 .con-table tr{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;padding:14px;margin-bottom:8px;border:1px solid var(--line-2);border-radius:12px;background:var(--tile)}
 .con-table td{padding:0;border:0;min-width:0;overflow-wrap:anywhere}
 .con-table td[data-label]::before{content:attr(data-label);display:block;font-size:12px;color:var(--t2)}
 .con-table td:first-child{grid-column:1/-1}.con-table td:first-child::before{display:none}
 .services li{display:grid;grid-template-columns:22px 1fr;gap:4px 12px}.services li .pill{grid-column:2;justify-self:start}
 .con-table td[data-label="Email"]{grid-column:1/-1}
 .con-tabs a{padding:10px 10px}
 .con-table td.row-actions{grid-column:1/-1;text-align:left;white-space:normal}.con-table td.row-actions::before{display:none}
}
@media (prefers-reduced-motion:reduce){.con-side{transition:none}}
/* Settings > Sign-in security: authenticator QR and recovery codes. */
.qr{width:220px;margin:4px 0 16px;border-radius:12px;overflow:hidden;border:1px solid var(--line-2)}.qr svg{display:block;width:100%;height:auto}
.codes{columns:2;font:15px/1.9 ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg);border:1px solid var(--line-2);border-radius:12px;padding:12px 16px;margin:0}
.con-row+.muted{margin-top:12px}
.room-actions{display:flex;gap:8px;flex-wrap:wrap}
.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--t2);font-size:14px;text-decoration:none;margin:4px 0 10px}.back-link::before{content:"‹";font-size:18px;line-height:1}.back-link:hover{color:var(--t1)}
.sess-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;color:var(--t2);font-size:14px;margin-bottom:18px}
.sess-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sess-grid .con-card{margin-bottom:16px}
.sess-page .con-card h2{font-size:15px;font-weight:600;margin:0 0 10px}.sess-page .con-card p.muted{margin:8px 0 0;font-size:14px}
.sess-big{font-size:22px;font-weight:600;letter-spacing:-.01em;margin:0}
.copy-field{display:flex;gap:8px}.copy-field input{flex:1;min-width:0;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--t1);font:inherit;font-size:14px}
.timeline{list-style:none;margin:4px 0 0;padding:0;position:relative}
.timeline li{display:grid;grid-template-columns:150px 14px 1fr auto;align-items:center;gap:12px;padding:11px 0;position:relative}
.timeline li time{color:var(--t2);font-size:13px;font-variant-numeric:tabular-nums}
.tl-dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--blue);background:var(--tile);position:relative;z-index:1}
.timeline li.past .tl-dot{background:var(--blue)}
.timeline li:not(:last-child)::after{content:"";position:absolute;left:calc(150px + 12px + 6px);top:50%;height:100%;width:2px;background:var(--line-2)}
.sess-page .con-row{justify-content:flex-end}
.preview-sheet{width:min(100%,680px);padding:20px}.preview-sheet iframe{width:100%;height:min(70vh,760px);border:1px solid var(--line-2);border-radius:12px;background:#f2f2f5}
@media (max-width:760px){.sess-grid{grid-template-columns:1fr;gap:0}.timeline li{grid-template-columns:14px 1fr auto;grid-template-areas:"d l s" ". t t";row-gap:2px}.timeline li time{grid-area:t}.tl-dot{grid-area:d}.tl-label{grid-area:l}.timeline li .pill{grid-area:s}.timeline li:not(:last-child)::after{left:6px;top:22px}}
.con-nav .con-live{margin-top:10px;border:1px solid var(--line-2)}
