/* Hécate Building Management — Signal */
:root{--hb-red:var(--primary,#cf1637);--hb-ink:var(--text,#242b36);--hb-muted:var(--muted,#687384);--hb-line:var(--border,#e2e6ec);--hb-surface:var(--surface-bg,#fff);--hb-bg:var(--page-bg,#f5f6f8)}
body.app-shell{font-size:14px;background:var(--hb-bg)}.navigation-drawer{width:224px;border-radius:0;background:var(--sidebar-bg,#202733)}.drawer-brand{min-height:76px}.brand-mark{width:32px;height:34px;border-radius:6px;background:var(--hb-red);box-shadow:none}.brand-copy strong{font-size:17px}.brand-copy small{font-size:9px;letter-spacing:1.2px}.nav-section{font-size:10px;letter-spacing:1.2px;margin:19px 12px 7px}.nav-item{min-height:38px;border-radius:6px;font-size:13px;margin:3px 0}.nav-item.active{box-shadow:inset 3px 0 var(--hb-red)}.scope-card{margin-top:0;border-radius:7px}.top-app-bar{min-height:64px;height:64px;box-shadow:none;border-bottom:1px solid var(--hb-line)}.content-area{padding:26px 28px;max-width:none}.page-heading{margin:0 0 22px;align-items:center}.page-heading h1{font-size:24px;line-height:1.2;letter-spacing:-.6px}.page-eyebrow,.page-description,.page-description p,.page-title-group>p,.hero-panel,.dashboard-hero{display:none!important}.content-footer{font-size:11px}.app-frame{margin-left:224px}.button,.btn{border-radius:6px;font-size:13px;box-shadow:none;min-height:36px}.button.primary,.btn-primary{background:var(--hb-red);border-color:var(--hb-red);color:#fff}.button.small{min-height:30px;padding:5px 10px;font-size:12px}.hb-v9{font:14px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;color:var(--hb-ink)}.hb-v9 *{box-sizing:border-box}.hb-v9 h1{font-size:24px}.hb-v9 h2{font-size:16px;letter-spacing:-.25px;margin:0}.hb-v9 h3{font-size:14px;margin:0 0 8px}.hb-v9 p{margin:7px 0 12px}.hb-v9 a{color:inherit;text-decoration:none}.hb-v9 a:hover{color:var(--hb-red)}.hb-v9 button,.hb-v9 input,.hb-v9 select,.hb-v9 textarea{font:inherit}.hb-v9 input:not([type=checkbox]),.hb-v9 select,.hb-v9 textarea{width:100%;min-height:38px;border:1px solid var(--hb-line);border-radius:6px;padding:8px 10px;background:var(--hb-surface);color:var(--hb-ink);outline-offset:3px}.hb-v9 input[type=checkbox]{accent-color:var(--hb-red);width:16px;height:16px;vertical-align:middle}.hb-v9 :focus-visible{outline:2px solid var(--hb-red);outline-offset:3px}.hb-v9 fieldset{border:1px solid var(--hb-line);border-radius:8px;padding:12px 16px}.hb-v9 legend{font-size:13px;font-weight:600;float:none;width:auto;padding:0 4px}.hb-v9 small{font-size:12px;color:var(--hb-muted)}.hb-v9 details>summary{cursor:pointer;font-size:13px;font-weight:600}.hb-panel{border:1px solid var(--hb-line);border-radius:9px;background:var(--hb-surface);margin-bottom:18px;overflow:hidden}.hb-panel>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 20px;border-bottom:1px solid var(--hb-line)}.hb-panel>header a{font-size:12px;color:var(--hb-muted)}.hb-pad{padding:20px}.hb-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.hb-toolbar time{margin-left:auto;font-size:12px;color:var(--hb-muted)}.hb-compact{margin:12px 0}.hb-tabs{display:flex;gap:24px;align-items:center;border-bottom:1px solid var(--hb-line);font-size:13px}.hb-tabs a{padding:12px 0;border-bottom:2px solid transparent;color:var(--hb-muted);white-space:nowrap}.hb-tabs a.active{border-color:var(--hb-red);color:var(--hb-red);font-weight:600}.hb-tabs b{margin-left:6px;font-size:11px}.hb-settings-tabs{overflow:auto;margin-bottom:20px}.hb-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.hb-stat{display:flex;flex-direction:column;gap:10px;background:var(--hb-surface);border:1px solid var(--hb-line);padding:20px;border-radius:8px}.hb-stat>span{font-size:12px;color:var(--hb-muted)}.hb-stat>strong{font-size:32px;line-height:1.1;font-weight:650;letter-spacing:-.6px}.hb-stat>strong.hb-money{font-size:24px}.hb-stat>small{font-size:11px}.hb-columns{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(260px,1fr);gap:20px;align-items:start}.hb-columns.ticket{grid-template-columns:minmax(0,2fr) minmax(270px,1fr)}.hb-table-wrap{overflow:auto;width:100%}.hb-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.hb-table th{background:var(--hb-bg);color:var(--hb-muted);font-size:11px;font-weight:600;padding:11px 16px;border-bottom:1px solid var(--hb-line);white-space:nowrap}.hb-table td{padding:14px 16px;border-bottom:1px solid var(--hb-line);vertical-align:middle}.hb-table tr:last-child td{border-bottom:0}.hb-table tbody tr:hover{background:color-mix(in srgb,var(--hb-bg) 70%,transparent)}.hb-table td small,.hb-ticket-link small{display:block;margin-bottom:3px;font-size:11px;color:var(--hb-muted)}.hb-ticket-link strong{font-weight:550}.hb-pill{display:inline-flex;align-items:center;padding:4px 8px;font-size:11px;font-weight:600;border-radius:4px;background:#edf0f5;color:#506077;white-space:nowrap}.hb-pill.success{background:#e7f4ee;color:#14654c}.hb-pill.warning{background:#fff4df;color:#91600e}.hb-danger{color:#b21e37}.hb-empty{padding:45px 22px;text-align:center;color:var(--hb-muted)}.hb-empty strong{color:var(--hb-ink)}.hb-empty p{font-size:13px}.hb-form{padding:22px;display:flex;flex-direction:column;gap:18px}.hb-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.hb-field{display:flex;flex-direction:column;gap:7px;font-size:13px;margin:0}.hb-field>span{font-size:12px;font-weight:600}.hb-full{grid-column:1/-1}.hb-form footer{display:flex;align-items:center;gap:12px;border-top:1px solid var(--hb-line);padding-top:18px}.hb-form footer>.primary{margin-left:auto}.hb-inline{display:flex;align-items:end;gap:10px}.hb-inline>*{flex:1}.hb-inline>.button{flex:0 0 auto}.hb-filter-bar{display:grid;grid-template-columns:1.7fr repeat(4,1fr) auto;gap:12px;align-items:end;padding:16px;background:var(--hb-surface);border:1px solid var(--hb-line);border-radius:8px;margin-bottom:12px}.hb-view-links{display:flex;flex-wrap:wrap;gap:7px}.hb-popover-form{display:grid;gap:12px;padding:16px;max-width:360px}.hb-pagination{display:flex;justify-content:flex-end;align-items:center;gap:14px;padding:14px 20px;border-top:1px solid var(--hb-line);font-size:12px}.hb-pagination>span{margin-right:auto;color:var(--hb-muted)}.hb-actions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.hb-action{padding:20px;display:flex;flex-direction:column;gap:8px;border:1px solid var(--hb-line);border-radius:8px;background:var(--hb-surface)}.hb-action:first-child{border-color:color-mix(in srgb,var(--hb-red) 35%,var(--hb-line))}.hb-action>strong{font-size:15px}.hb-action>span:last-child{font-size:12px;color:var(--hb-muted)}.hb-action-icon{width:32px;height:32px;background:#fce9ee;color:var(--hb-red);border-radius:7px;display:grid;place-items:center;font-size:24px}.hb-action-icon svg{width:18px;height:18px;fill:currentColor}.hb-broadcast{border:1px solid #e5b4bf;border-left:4px solid var(--hb-red);padding:18px 22px;border-radius:8px;background:var(--hb-surface);margin:0 0 22px}.hb-broadcast-top{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--hb-muted);margin-bottom:8px}.hb-label{font-size:10px;color:var(--hb-red);letter-spacing:1px;font-weight:700}.hb-broadcast h2{font-size:16px}.hb-broadcast .hb-prose{font-size:13px}.hb-service-links{display:flex;flex-direction:column}.hb-service-links>a{display:flex;justify-content:space-between;padding:17px 20px;border-bottom:1px solid var(--hb-line)}.hb-service-links>a:last-child{border-bottom:0}.hb-agenda-row{display:flex;flex-direction:column;gap:8px;padding:17px 20px;border-bottom:1px solid var(--hb-line)}.hb-agenda-row time{font-size:12px;color:var(--hb-muted)}.hb-agenda-row .hb-pill{align-self:start}.hb-ticket-head{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:20px}.hb-ticket-head h2{font-size:20px;margin-top:12px}.hb-ticket-head p{font-size:12px;color:var(--hb-muted)}.hb-message{padding:20px;border-bottom:1px solid var(--hb-line)}.hb-message>div{display:flex;justify-content:space-between;gap:12px}.hb-message time{font-size:11px;color:var(--hb-muted)}.hb-message p{white-space:normal;overflow-wrap:anywhere}.hb-message.internal{background:#fff9eb}.hb-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;padding:20px;margin:0;font-size:12px}.hb-facts dt{font-weight:400;color:var(--hb-muted)}.hb-facts dd{margin:0;text-align:right;overflow-wrap:anywhere}.hb-muted{color:var(--hb-muted);font-size:12px}.hb-check{display:flex;align-items:center;gap:9px;font-size:13px;margin:9px 0}.hb-file-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--hb-line);font-size:12px}.hb-file-row>span{color:var(--hb-muted)}.hb-file input{font-size:12px}.hb-version{border-bottom:1px solid var(--hb-line)}.hb-stack{min-width:0}.hb-prose img{max-width:100%;height:auto}.hb-drawer{padding:0;position:fixed;inset:0 0 0 auto;margin:0;width:min(1000px,95vw);max-width:none;height:100dvh;max-height:none;border:0;border-left:1px solid var(--hb-line);background:var(--hb-bg);color:var(--hb-ink);box-shadow:-20px 0 60px #0b162220}.hb-drawer::backdrop{background:#17203355}.hb-drawer-bar{display:flex;align-items:center;justify-content:space-between;padding:15px 24px;border-bottom:1px solid var(--hb-line);background:var(--hb-surface);position:sticky;top:0;z-index:4}.hb-drawer-body{padding:24px}.hb-drawer .hb-columns.ticket{grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr)}.hb-search-shortcut{font-size:12px;padding:8px 12px;border:1px solid var(--hb-line);border-radius:6px;color:var(--hb-muted)}
/* Portal and inherited modules share the same scale. */
.tp-shell,.tp-app{font-size:14px}.tp-main-shell h1,.tp-page-heading h1{font-size:24px!important;letter-spacing:-.5px}.tp-hero,.tp-dashboard-hero,.tp-page-description{display:none!important}.tp-main-shell .hb-v9{--hb-red:var(--tp-primary,#cf1637);--hb-ink:var(--tp-text,#242b36);--hb-muted:var(--tp-muted,#687384);--hb-line:var(--tp-border,#e2e6ec);--hb-surface:var(--tp-surface,#fff);--hb-bg:var(--tp-page,#f5f6f8)}.tp-main-shell .button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 13px;border:1px solid var(--hb-line);background:var(--hb-surface);color:var(--hb-ink);border-radius:6px;cursor:pointer}.tp-main-shell .button.primary{background:var(--hb-red);color:#fff;border-color:var(--hb-red)}.tp-main-shell svg.app-icon{width:20px;height:20px;fill:currentColor}.rooms-admin h1,.rooms-tenant h1{font-size:24px!important}.rooms-hero,.tenant-hero,.catalog-hero,.room-hero .lead{display:none!important}
@media(max-width:1200px){.hb-filter-bar{grid-template-columns:repeat(3,1fr)}.hb-columns{grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr)}.hb-stats{gap:10px}.hb-stat{padding:16px}.hb-stat>strong.hb-money{font-size:20px}}
@media(max-width:900px){.app-frame{margin-left:0}.content-area{padding:20px}.hb-columns,.hb-columns.ticket,.hb-drawer .hb-columns.ticket{grid-template-columns:1fr}.hb-stats{grid-template-columns:repeat(2,1fr)}.hb-form-grid{grid-template-columns:1fr}.hb-full{grid-column:auto}.hb-actions-grid{gap:10px}.hb-action{padding:16px}.hb-ticket-head{flex-wrap:wrap}}
@media(max-width:600px){.hb-actions-grid{grid-template-columns:1fr}.hb-action{display:grid;grid-template-columns:36px 1fr;gap:3px 12px}.hb-action-icon{grid-row:span 2}.hb-toolbar{flex-wrap:wrap;gap:12px}.hb-toolbar>.hb-tabs{width:100%;order:-1}.hb-toolbar time{display:none}.hb-tabs{gap:18px;overflow:auto}.hb-filter-bar{grid-template-columns:1fr 1fr}.hb-filter-bar>.hb-field:first-child{grid-column:1/-1}.hb-v9 .button,.hb-v9 button,.hb-v9 input,.hb-v9 select{min-height:44px}.hb-panel>header{padding:14px 16px;flex-wrap:wrap}.hb-form,.hb-pad,.hb-message{padding:16px}.hb-inline{flex-wrap:wrap}.hb-inline>*{min-width:120px}.hb-broadcast{padding:15px}.hb-stats{gap:9px}.hb-stat{padding:14px}.hb-stat>strong{font-size:26px}.hb-table td{padding:12px}.hb-drawer{width:100vw}.hb-drawer-body{padding:16px}.hb-search-shortcut{display:none}}

.app-shell .nav-item{min-height:36px;font-weight:500}.app-shell .page-heading h1{font-size:24px}.hb-v9 .hb-tabs{margin:0;gap:24px;flex-wrap:nowrap}.hb-v9 .hb-tabs a{padding:12px 0;border:0;border-bottom:2px solid transparent;background:none;border-radius:0}.hb-v9 .hb-tabs a.active{border-bottom-color:var(--hb-red);color:var(--hb-red)}.hb-v9 .button{box-shadow:none}.hb-v9 .hb-pagination{margin:0}.hb-v9 .hb-inline{align-items:end}.hb-v9 .hb-panel .hb-empty{color:var(--hb-muted)}

[data-theme="dark"] .hb-pill{background:#303746;color:#DCE2EE}[data-theme="dark"] .hb-pill.success{background:#173B32;color:#A0E5C5}[data-theme="dark"] .hb-pill.warning{background:#493722;color:#FFD08B}[data-theme="dark"] .hb-danger{color:#FF9AAF}[data-theme="dark"] .hb-action-icon{background:#492432}[data-theme="dark"] .hb-message.internal{background:#332B20;color:#F1E2C8}[data-theme="dark"] .button.primary,[data-theme="dark"] .tp-main-shell .button.primary{color:var(--primary-text,#35101B)}
[data-theme="dark"] .tp-body{--bs-body-bg:var(--tp-page);--bs-body-color:var(--tp-text);--bs-secondary-color:var(--tp-muted);--bs-border-color:var(--tp-border);--bs-tertiary-bg:var(--tp-surface);color-scheme:dark}[data-theme="dark"] .tp-body .bg-white{background:var(--tp-surface)!important}[data-theme="dark"] .tp-body .form-control,[data-theme="dark"] .tp-body .form-select{background:var(--tp-surface);color:var(--tp-text);border-color:var(--tp-border)}

.hb-v9 .button:not(.primary){background:var(--hb-surface);color:var(--hb-ink);border:1px solid var(--hb-line)}.app-shell .hb-v9 .button.primary{background:var(--primary);color:var(--primary-text)}.tp-main-shell .hb-v9 .button.primary{background:var(--hb-red);color:var(--primary-text,#fff)}.tp-page-header [data-portal-theme-toggle]{order:2;float:right;margin-left:auto}
:root{--rooms-primary:var(--primary,#CF1637);--rooms-primary-dark:color-mix(in srgb,var(--primary,#CF1637) 85%,black);--rooms-primary-soft:color-mix(in srgb,var(--primary,#CF1637) 9%,var(--surface-bg,#fff));--rooms-ink:var(--text,#242B36);--rooms-muted:var(--muted,#687384);--rooms-border:var(--border,#E2E6EC);--rooms-bg:var(--page-bg,#F5F6F8);--rooms-card:var(--surface-bg,#fff);--rooms-radius:8px;--rooms-shadow:none}
.rooms-sidebar{background:var(--sidebar-bg,#202733)}.rooms-brand-mark,.tenant-brand-mark,.rooms-avatar{background:var(--rooms-primary);color:var(--primary-text,#fff);box-shadow:none}.rooms-nav-link.active{box-shadow:inset 3px 0 var(--rooms-primary)}.rooms-sidebar-card .rooms-eyebrow{color:var(--sidebar-text,#fff)}.rooms-hero-admin,.rooms-hero-bi,.tenant-hero,.catalog-hero{display:none}.rooms-topbar,.tenant-header{background:var(--rooms-card);color:var(--rooms-ink);border-color:var(--rooms-border);min-height:64px}.rooms-admin-body .rooms-content{padding:24px}.rooms-admin-body .btn-primary,.rooms-tenant-body .btn-primary{background:var(--rooms-primary);border-color:var(--rooms-primary);color:var(--primary-text,#fff)}.rooms-admin-body .form-control:focus,.rooms-tenant-body .form-control:focus,.rooms-admin-body .form-select:focus,.rooms-tenant-body .form-select:focus{border-color:var(--rooms-primary);box-shadow:0 0 0 .2rem var(--rooms-primary-soft)}.rooms-rich-content{color:var(--rooms-ink)}[data-theme="dark"] .rooms-template-editor,[data-theme="dark"] .rooms-template-editor>summary,[data-theme="dark"] .rooms-external-switch{background:var(--rooms-card);color:var(--rooms-ink);border-color:var(--rooms-border)}
