:root {
  --imo-navy: #12304a;
  --imo-navy-deep: #0a2033;
  --imo-teal: #0d8b7e;
  --imo-teal-dark: #086d64;
  --imo-coral: #f26b5b;
  --imo-paper: #f6f8f7;
  --imo-ink: #172631;
  --imo-muted: #5d6b73;
  --imo-border: #d8e2df;
  --bs-primary: var(--imo-teal);
  --bs-primary-rgb: 13, 139, 126;
  --bs-link-color: var(--imo-teal-dark);
  --bs-link-hover-color: var(--imo-navy);
}

body.brand-shell {
  min-height: 100vh;
  color: var(--imo-ink);
  background:
    radial-gradient(circle at 90% 0, rgba(13, 139, 126, .12), transparent 28rem),
    linear-gradient(180deg, #fbfcfc 0, var(--imo-paper) 100%);
}
.imo-login-page { overflow-x: hidden; }

.imo-navbar { background: var(--imo-navy-deep) !important; border-bottom: 3px solid var(--imo-teal); }
.imo-nav-container { max-width: 1380px; }
.imo-brand { display: inline-flex; align-items: center; gap: .58rem; font-weight: 750; letter-spacing: -.02em; }
.imo-brand img { width: 2.25rem; height: 2.25rem; border-radius: .7rem; }
.imo-brand-domain { display: block; margin-top: -.18rem; color: #a9c9c4; font-size: .68rem; font-weight: 500; letter-spacing: .06em; }
.imo-public-header { border-bottom: 1px solid var(--imo-border); background: rgba(255,255,255,.88); backdrop-filter: blur(10px); }
.imo-public-header .container { min-height: 4.4rem; }

.imo-login-page .imo-public-header .container { justify-content: center !important; }
.imo-login-container { max-width: 1380px; padding-top: .65rem !important; padding-bottom: .65rem !important; }
.imo-login-shell { position: relative; display: grid; width: 100%; height: max(480px, calc(100dvh - 5.9rem)); min-height: 0; overflow: hidden; border: 1px solid rgba(18,48,74,.16); border-radius: 1.5rem; background: var(--imo-navy-deep); box-shadow: 0 1.4rem 4rem rgba(18,48,74,.16); isolation: isolate; }
.imo-login-visual { position: absolute; z-index: 0; inset: 0; }
.imo-login-visual::after { position: absolute; content: ""; inset: 0; background: linear-gradient(90deg, rgba(5,25,39,.78) 0, rgba(5,25,39,.34) 37%, rgba(5,25,39,.04) 68%); }
.imo-login-visual img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 52%; }
.imo-login-overlay { position: absolute; z-index: 1; left: clamp(1.5rem, 4vw, 4.5rem); bottom: clamp(1.5rem, 5vw, 4.25rem); max-width: 34rem; padding: 1.35rem 1.55rem; color: #fff; border: 1px solid rgba(255,255,255,.22); border-radius: 1.15rem; background: rgba(6,31,48,.72); box-shadow: 0 1rem 2.7rem rgba(0,0,0,.18); backdrop-filter: blur(12px); }
.imo-login-eyebrow, .imo-login-kicker { display: block; margin-bottom: .8rem; color: #9fe1d7; font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.imo-login-overlay h1 { max-width: 30rem; margin: 0; color: #fff; font-size: clamp(2rem, 3.4vw, 3.25rem); line-height: 1.02; letter-spacing: -.045em; }
.imo-login-overlay p { margin: .85rem 0 0; color: #d9ece8; font-size: .92rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.imo-login-panel { position: relative; z-index: 2; width: min(360px, calc(100% - 3rem)); align-self: center; justify-self: end; margin: clamp(1.5rem, 4vw, 4rem); border: 1px solid rgba(255,255,255,.62); background: rgba(255,255,255,.94); box-shadow: 0 1.25rem 3.5rem rgba(4,25,39,.28) !important; backdrop-filter: blur(18px); }
.imo-login-panel .card-body { padding: 1.1rem; }
.imo-login-panel .form-control-lg { min-height: 3rem; padding: .6rem .8rem; font-size: 1rem; }
.imo-login-panel .btn-lg { padding: .68rem 1rem; font-size: 1rem; }
.imo-login-panel h2 { margin-bottom: .3rem !important; }
.imo-login-panel .text-muted.mb-4 { margin-bottom: 1rem !important; font-size: .9rem; }
.imo-login-panel .mb-3 { margin-bottom: .75rem !important; }
.imo-login-panel .mt-3 { margin-top: .7rem !important; }
.imo-login-panel .mt-4 { margin-top: .85rem !important; }
.imo-login-kicker { color: var(--imo-teal-dark); }
.imo-login-privacy { padding: .6rem .7rem; color: var(--imo-muted); border-left: 3px solid #b9d9d3; background: #f3f8f7; font-size: .74rem !important; }
.imo-demo-access { position: relative; margin-top: .7rem; }
.imo-demo-access summary { color: var(--imo-teal-dark); font-size: .84rem; font-weight: 750; text-align: center; cursor: pointer; list-style-position: inside; }
.imo-demo-access[open] summary { color: var(--imo-navy); }
.imo-demo-access-menu { position: absolute; z-index: 5; right: 0; bottom: calc(100% + .55rem); width: min(310px, calc(100vw - 2.5rem)); padding: .8rem; border: 1px solid var(--imo-border); border-radius: .9rem; background: rgba(255,255,255,.98); box-shadow: 0 1rem 2.4rem rgba(5,25,39,.2); }
.imo-demo-access-menu p { margin: 0 0 .55rem; color: var(--imo-navy); font-size: .82rem; font-weight: 700; }
.imo-demo-role-list { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; }
.imo-demo-role { display: flex; min-width: 0; padding: .55rem .6rem; align-items: flex-start; flex-direction: column; border: 1px solid #d3e3df; border-radius: .65rem; color: var(--imo-navy); background: #f4f9f8; text-align: left; cursor: pointer; }
.imo-demo-role:hover, .imo-demo-role:focus-visible { border-color: var(--imo-teal); background: #e8f5f2; }
.imo-demo-role span { font-size: .76rem; font-weight: 800; }
.imo-demo-role code { overflow: hidden; max-width: 100%; color: var(--imo-teal-dark); font-size: .68rem; text-overflow: ellipsis; }
.imo-demo-access-menu small { display: block; margin-top: .55rem; color: var(--imo-muted); font-size: .68rem; }

.card { border-color: var(--imo-border); border-radius: 1rem; box-shadow: 0 .45rem 1.5rem rgba(18,48,74,.06) !important; }
.list-group-item { border-color: var(--imo-border); }
.btn { border-radius: .7rem; font-weight: 650; }
.btn-primary, .bg-primary { background-color: var(--imo-teal) !important; border-color: var(--imo-teal) !important; }
.btn-primary:hover, .btn-primary:focus { background-color: var(--imo-teal-dark) !important; border-color: var(--imo-teal-dark) !important; }
.btn-outline-primary { color: var(--imo-teal-dark) !important; border-color: var(--imo-teal) !important; }
.btn-outline-primary:hover { color: #fff !important; background: var(--imo-teal) !important; }
.form-control, .form-select { border-color: #bdccc8; border-radius: .68rem; }
.form-control:focus, .form-select:focus { border-color: var(--imo-teal); box-shadow: 0 0 0 .22rem rgba(13,139,126,.17); }
html[lang="ro"] input[name="name_en"],
html[lang="ro"] label:has(+ input[name="name_en"]) { display: none !important; }
.badge.text-bg-success { background: var(--imo-teal) !important; }
.badge.text-bg-warning { color: #493218 !important; background: #f7d9a2 !important; }
.pre-wrap { white-space: pre-wrap; }
h1, h2, h3, .h1, .h2, .h3 { color: var(--imo-navy); letter-spacing: -.025em; }
.public-shell { max-width: 680px; }
.portal-card { background: rgba(255,255,255,.92); }
.ticket-hero { padding: 1.35rem; color: #fff; border-radius: 1rem; background: linear-gradient(135deg, var(--imo-navy), #1a5060); box-shadow: 0 .7rem 2rem rgba(18,48,74,.18); }
.ticket-hero h1 { color: #fff; }
.eyebrow { color: var(--imo-teal-dark); font-size: .78rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.ticket-hero .eyebrow { color: #b8e5df; }
.status-pill { display: inline-flex; align-items: center; min-height: 2rem; padding: .32rem .7rem; border: 1px solid rgba(255,255,255,.45); border-radius: 999px; color: #fff; background: rgba(255,255,255,.12); font-weight: 700; }
.conversation-item { margin-bottom: .8rem; padding: .85rem 1rem; border-radius: .8rem; background: #eef5f3; }
.conversation-team { border-left: 4px solid var(--imo-teal); }
.conversation-resident { border-left: 4px solid var(--imo-coral); }
.tracking-code-display, .tracking-code-input { font-variant-numeric: tabular-nums; letter-spacing: .12em; }
.tracking-result { padding: 1rem; border: 1px solid var(--imo-border); border-radius: .9rem; background: #f8fbfa; }

.imo-primary-nav { margin-left: 1rem; gap: .08rem; }
.imo-navbar .navbar-collapse { min-width: 0; }
.imo-primary-nav { flex: 1; min-width: 0; }
.imo-primary-nav .nav-link { white-space: normal; }
.imo-navbar .navbar-brand { min-width: 0; max-width: 14rem; flex-shrink: 0; }
.imo-navbar .navbar-brand > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.imo-navbar .navbar-brand img { flex-shrink: 0; }
.imo-navbar .nav-link { border-radius: .55rem; }
.imo-navbar .nav-link:hover, .imo-navbar .nav-link:focus, .imo-navbar .nav-link.active { background: rgba(255,255,255,.1); }
.imo-navbar .dropdown-menu { border: 0; border-radius: .8rem; box-shadow: 0 .8rem 2rem rgba(5,27,44,.22); }
.dropdown-menu-admin { max-height: min(70vh, 38rem); overflow-y: auto; }
.imo-account-nav { margin-left: .75rem; }
.imo-user-menu { min-width: 11rem; padding-top: .38rem !important; padding-bottom: .38rem !important; line-height: 1.08; }
.imo-user-name, .imo-user-role { display: block; }
.imo-user-name { max-width: 14rem; overflow: hidden; text-overflow: ellipsis; font-weight: 700; }
.imo-user-role { margin-top: .22rem; color: #a9c9c4; font-size: .66rem; font-weight: 500; letter-spacing: .035em; }

.dashboard-hero { padding: 1.35rem 1.5rem; border: 1px solid #cfe0dc; border-radius: 1rem; background: rgba(255,255,255,.82); }
.dashboard-hero p { max-width: 52rem; color: var(--imo-muted); }
.dashboard-action { display: flex; min-height: 9.25rem; height: 100%; padding: 1.1rem 1.2rem; flex-direction: column; justify-content: center; color: var(--imo-ink); border: 1px solid var(--imo-border); border-radius: 1rem; background: #fff; box-shadow: 0 .4rem 1.4rem rgba(18,48,74,.06); text-decoration: none; transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease; }
.dashboard-action:hover { color: var(--imo-ink); border-color: var(--imo-teal); box-shadow: 0 .65rem 1.7rem rgba(18,48,74,.1); transform: translateY(-2px); }
.dashboard-action-primary { color: #fff; border-color: transparent; background: linear-gradient(135deg, var(--imo-teal-dark), var(--imo-teal)); }
.dashboard-action-primary:hover { color: #fff; }
.dashboard-action strong { margin: .22rem 0; color: inherit; font-size: 1.08rem; }
.dashboard-action small { color: var(--imo-muted); }
.dashboard-action-primary small { color: rgba(255,255,255,.82); }
.dashboard-action-kicker { color: var(--imo-teal-dark); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.dashboard-action-primary .dashboard-action-kicker { color: #c9f0eb; }
.dashboard-link-group .list-group-item { padding-left: 0; padding-right: 0; color: var(--imo-ink); }
.dashboard-link-group .list-group-item::after { content: "›"; float: right; color: var(--imo-teal-dark); font-weight: 800; }
.dashboard-search { max-width: 28rem; }
.admin-utilities { padding: .9rem 1rem; color: var(--imo-muted); border: 1px dashed #aebfba; border-radius: .8rem; background: rgba(255,255,255,.62); }
.admin-utilities summary { cursor: pointer; font-weight: 700; }
.admin-utilities a { padding: .3rem .5rem; }
.notification-unread { border-left: 3px solid var(--imo-teal) !important; padding-left: .8rem !important; background: #f5fbf9; }
.notification-preferences-table .form-check-input { width: 1.2rem; height: 1.2rem; }
.asset-qr-preview { display: block; width: min(100%, 15rem); height: auto; margin: 0 auto; padding: .6rem; border: 1px solid var(--imo-border); border-radius: .9rem; background: #fff; }
.asset-qr-placeholder { display: grid; width: 12rem; max-width: 100%; aspect-ratio: 1; margin: 0 auto; place-items: center; color: #86a29d; border: 2px dashed #b9ccc7; border-radius: 1rem; background: #f4f8f7; font-size: 2rem; font-weight: 800; letter-spacing: .08em; }
.qr-print-sheet { width: min(100%, 31rem); margin: 0 auto; padding: 2rem; border: 1px solid var(--imo-border); border-radius: 1rem; background: #fff; }
.qr-print-brand { width: 2.5rem; height: 2.5rem; }
.qr-print-brand-name { margin: .35rem 0 1rem; color: var(--imo-navy); font-size: 1.25rem; font-weight: 800; }
.qr-print-image { display: block; width: min(100%, 22rem); height: auto; margin: 0 auto 1rem; }
.request-flow { display: flex; align-items: stretch; gap: .55rem; }
.request-flow li:not(.request-flow-arrow) { display: flex; min-width: 0; padding: .8rem 1rem; flex: 1 1 0; align-items: center; gap: .65rem; border: 1px solid var(--imo-border); border-radius: .8rem; background: #fff; }
.request-flow li > span { display: grid; width: 1.75rem; height: 1.75rem; flex: 0 0 auto; place-items: center; color: #fff; border-radius: 999px; background: var(--imo-teal); font-size: .8rem; font-weight: 800; }
.request-flow-arrow { align-self: center; color: var(--imo-teal-dark); font-size: 1.25rem; }
.request-status-filter { max-width: 21rem; }
.request-promote-panel { padding: 1rem; border: 1px solid #b8d9d2; border-radius: .8rem; background: #f1faf8; }
.page-heading { display: flex; margin-bottom: 1.25rem; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.page-heading h1 { margin: .2rem 0; font-size: clamp(1.65rem, 3vw, 2.15rem); }
.page-heading p { max-width: 48rem; margin: 0; color: var(--imo-muted); }
.page-eyebrow { color: var(--imo-teal-dark); font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.page-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.request-queue-tabs { display: flex; margin-bottom: 1rem; flex-wrap: wrap; gap: .45rem; }
.request-queue-tabs a { padding: .55rem .85rem; color: var(--imo-ink); border: 1px solid var(--imo-border); border-radius: 999px; background: #fff; font-weight: 700; text-decoration: none; }
.request-queue-tabs a:hover, .request-queue-tabs a.active { color: #fff; border-color: var(--imo-teal); background: var(--imo-teal); }
.request-list { display: grid; gap: .8rem; }
.request-list-card { padding: 1rem 1.1rem; border: 1px solid var(--imo-border); border-radius: 1rem; background: #fff; box-shadow: 0 .4rem 1.4rem rgba(18,48,74,.05); }
.request-list-card h2 { margin: .1rem 0 .55rem; font-size: 1.1rem; }
.request-list-card p { margin-bottom: .45rem; }
.request-planning-ready, .request-linked-work { display: flex; padding: .8rem 1rem; justify-content: space-between; align-items: center; gap: .8rem; border: 1px solid #a9d0c7; border-radius: .7rem; background: #e7f5f1; }
.request-linked-work > div { display: grid; gap: .15rem; }
.request-linked-work span { color: var(--imo-muted); }
.request-decision-card { padding: 1.2rem; border: 2px solid #9bcfc5; border-radius: 1rem; background: linear-gradient(135deg, #f4fbf9, #fff); box-shadow: 0 .5rem 1.5rem rgba(13,139,126,.09); }
.request-decision-card h2 { margin: .2rem 0; font-size: 1.35rem; }
.request-decision-card > div > p { color: var(--imo-muted); }
.request-decision-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.request-decision-actions .btn { display: flex; min-height: 5.25rem; padding: .85rem 1rem; flex-direction: column; justify-content: center; align-items: flex-start; text-align: left; }
.request-decision-actions small { margin-top: .2rem; font-weight: 500; opacity: .82; white-space: normal; }
.request-secondary-actions > summary { padding: .9rem 1rem; cursor: pointer; color: var(--imo-muted); font-weight: 700; }
.empty-state { padding: 1.5rem; color: var(--imo-muted); border: 1px dashed #b7c7c3; border-radius: 1rem; background: rgba(255,255,255,.7); text-align: center; }

@media (max-width: 575.98px) {
  .imo-brand-domain { display: none; }
  .container-narrow { padding-left: 1rem; padding-right: 1rem; }
  .dashboard-hero { padding: 1.05rem; }
  .dashboard-action { min-height: 7.75rem; }
  .dashboard-search { max-width: none; width: 100%; }
  .notification-inbox form, .notification-inbox .btn { width: 100%; }
  .request-flow { flex-direction: column; }
  .request-flow-arrow { line-height: .5; transform: rotate(90deg); }
  .request-status-filter { max-width: none; }
  .page-heading { flex-direction: column; }
  .page-actions, .page-actions .btn { width: 100%; }
  .request-queue-tabs { display: grid; }
  .request-queue-tabs a { border-radius: .7rem; }
  .request-decision-actions { grid-template-columns: 1fr; }
  .request-planning-ready, .request-linked-work { align-items: stretch; flex-direction: column; }
  .request-planning-ready .btn, .request-linked-work .btn { width: 100%; }
  .imo-login-container { padding: .65rem !important; }
  .imo-login-shell { min-height: 0; border-radius: 1rem; }
  .imo-login-overlay { right: .8rem; left: .8rem; top: auto; bottom: .85rem; padding: .9rem 1rem; }
  .imo-login-overlay h1 { font-size: 1.8rem; }
  .imo-login-overlay p { margin-top: .6rem; font-size: .76rem; }
  .imo-login-panel { width: calc(100% - 1.6rem); margin: -1.2rem .8rem 1rem; }
}

@media (max-width: 899.98px) {
  .imo-login-shell { display: flex; height: auto; min-height: 0; flex-direction: column; background: #fff; }
  .imo-login-visual { position: relative; height: clamp(190px, 24vh, 280px); min-height: 0; flex: 0 0 clamp(190px, 24vh, 280px); overflow: hidden; inset: auto; }
  .imo-login-visual::after { background: linear-gradient(180deg, rgba(5,25,39,.46) 0, rgba(5,25,39,.04) 45%, rgba(5,25,39,.36) 100%); }
  .imo-login-visual img { object-position: 48% 50%; }
  .imo-login-overlay { max-width: 30rem; }
  .imo-login-panel { flex: 0 0 auto; align-self: center; justify-self: center; margin-right: auto; margin-left: auto; }
}

@media (max-width: 575.98px) and (max-height: 720px) {
  .imo-public-header .container { min-height: 3.4rem; }
  .imo-login-container { padding: .35rem !important; }
  .imo-login-visual { height: 145px; flex-basis: 145px; }
  .imo-login-overlay { right: .55rem; left: .55rem; bottom: .55rem; padding: .65rem .8rem; }
  .imo-login-overlay .imo-login-eyebrow, .imo-login-overlay p { display: none; }
  .imo-login-overlay h1 { font-size: 1.38rem; }
  .imo-login-panel { width: calc(100% - 1rem); margin: -.65rem .5rem .5rem; }
  .imo-login-panel .card-body { padding: .85rem; }
  .imo-login-panel .imo-login-kicker { margin-bottom: .45rem; }
  .imo-login-panel .text-muted.mb-4 { margin-bottom: .65rem !important; }
  .imo-login-panel .mb-3 { margin-bottom: .55rem !important; }
  .imo-login-panel .mt-4 { margin-top: .6rem !important; }
  .imo-login-privacy { padding: .45rem .55rem; font-size: .69rem !important; }
}

@media (max-width: 899.98px) and (min-height: 1100px) {
  .imo-login-visual { height: min(42vh, 480px); flex-basis: min(42vh, 480px); }
}

@media (min-width: 900px) and (max-height: 650px) {
  .imo-public-header .container { min-height: 3.5rem; }
  .imo-login-shell { height: calc(100dvh - 4.8rem); }
  .imo-login-overlay { bottom: 1.25rem; padding: 1rem 1.15rem; }
  .imo-login-overlay h1 { font-size: 2rem; }
  .imo-login-panel { margin-top: .75rem; margin-bottom: .75rem; }
}

@media (max-width: 1199.98px) {
  .imo-primary-nav { margin: .8rem 0 0; }
  .imo-account-nav { margin: .35rem 0 0; padding-top: .45rem; border-top: 1px solid rgba(255,255,255,.18); }
  .imo-navbar .dropdown-menu { box-shadow: none; }
  .imo-user-menu { min-width: 0; }
}

@media print {
  .qr-print-sheet { width: 92mm; padding: 8mm; border: 1px solid #111; box-shadow: none !important; break-inside: avoid; }
  .qr-print-image { width: 68mm; }
}

.personal-action-categories .dashboard-action { min-height: 100px; }
@media (max-width: 767.98px) {
  .personal-action-categories .dashboard-action { min-height: 52px; padding: .8rem 1rem; }
  .personal-action-categories .dashboard-action small { display: none; }
}
