@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@400;500;600;700;800;900&display=swap');

:root{--sidebar:280px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Cairo',sans-serif}
button,input,select,textarea{font:inherit}
svg{width:20px;height:20px}

.sidebar-shell{
    position:fixed; top:0; right:0; bottom:0; width:var(--sidebar); z-index:50;
    background:#17201c; transform:translateX(0); transition:transform .25s ease;
}
.nav-link{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:14px;color:rgba(255,255,255,.66);font-size:14px;font-weight:700;transition:.18s}
.nav-link:hover{background:rgba(255,255,255,.07);color:#fff}
.nav-link.is-active{background:#fff;color:#17201c;box-shadow:0 8px 28px rgba(0,0,0,.12)}
.nav-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:rgba(255,255,255,.06)}
.nav-link.is-active .nav-icon{background:#e8efe9;color:#245c47}
.topbar{height:82px;position:sticky;top:0;z-index:30;background:rgba(245,246,242,.86);backdrop-filter:blur(14px);border-bottom:1px solid rgba(221,227,221,.9);display:flex;align-items:center;justify-content:space-between;padding:0 28px}
.brand-mark{width:48px;height:48px;border-radius:16px;background:#245c47;color:#fff;display:grid;place-items:center;font-weight:900;font-size:22px;box-shadow:0 14px 28px rgba(36,92,71,.18)}
.brand-mark-dark{width:42px;height:42px;border-radius:14px;background:#fff;color:#17201c;box-shadow:none}
.icon-btn{width:42px;height:42px;border:1px solid #dde3dd;border-radius:14px;background:#fff;display:grid;place-items:center;color:#47554f;transition:.18s}
.icon-btn:hover{border-color:#bfc9c1;color:#17201c;transform:translateY(-1px)}

.card{background:#fff;border:1px solid #e1e6e1;border-radius:24px;box-shadow:0 10px 35px rgba(23,32,28,.045)}
.card-hover{transition:transform .18s,border-color .18s,box-shadow .18s}
.card-hover:hover{transform:translateY(-3px);border-color:#cbd6cd;box-shadow:0 18px 48px rgba(23,32,28,.08)}
.property-card{position:relative;overflow:hidden}
.property-card:before{content:'';position:absolute;top:0;right:0;left:0;height:3px;background:linear-gradient(90deg,transparent,#245c47,transparent);opacity:0;transition:.18s}
.property-card:hover:before{opacity:1}
.metric-card{background:#fff;border:1px solid #e1e6e1;border-radius:22px;padding:20px}
.metric-label{font-size:12px;color:#809087;font-weight:700}
.metric-value{font-size:28px;font-weight:900;letter-spacing:-.02em;margin-top:6px}
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800}
.badge-soft{background:#eef2ef;color:#59665f}
.badge-green{background:#e8f5ed;color:#237247}
.badge-amber{background:#fff5df;color:#9a6610}
.badge-red{background:#fff0ef;color:#b64239}
.badge-blue{background:#eef5ff;color:#3d67a8}

.btn-primary,.btn-secondary,.btn-ghost{display:inline-flex;align-items:center;gap:8px;border-radius:14px;padding:11px 16px;font-size:13px;font-weight:800;transition:.18s}
.btn-primary{background:#245c47;color:#fff;box-shadow:0 10px 22px rgba(36,92,71,.16)}
.btn-primary:hover{background:#1f503e;transform:translateY(-1px)}
.btn-secondary{background:#fff;color:#17201c;border:1px solid #dce2dd}
.btn-secondary:hover{border-color:#bbc7be}
.btn-ghost{background:transparent;color:#5f6d65}
.btn-ghost:hover{background:#eef1ee;color:#17201c}

.form-label{display:block;font-size:12px;font-weight:800;color:#54635b;margin-bottom:8px}
.form-input,.form-select,.form-textarea{width:100%;border:1px solid #dbe2dc;background:#fff;border-radius:14px;padding:12px 14px;outline:none;transition:.18s;color:#17201c}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#6b9c82;box-shadow:0 0 0 4px rgba(36,92,71,.08)}
.form-textarea{min-height:100px;resize:vertical}

.modal-backdrop{position:fixed;inset:0;z-index:70;background:rgba(17,25,21,.46);display:none;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(4px)}
.modal-backdrop.is-open{display:flex}
.modal-box{width:100%;max-width:620px;max-height:90vh;overflow:auto;background:#fff;border-radius:28px;box-shadow:0 28px 90px rgba(10,18,14,.26);animation:modalIn .2s ease}
@keyframes modalIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}

.room-card{background:#fbfcfa;border:1px solid #e1e6e1;border-radius:22px;padding:18px}
.bed-card{background:#fff;border:1px solid #e0e6e1;border-radius:18px;padding:15px;min-height:145px;transition:.18s}
.bed-card:hover{border-color:#b8c7bc;box-shadow:0 10px 30px rgba(23,32,28,.06)}
.bed-empty{border-style:dashed;background:#fafcf9}
.progress-track{height:7px;background:#edf0ed;border-radius:999px;overflow:hidden}
.progress-fill{height:100%;background:#245c47;border-radius:999px}
.login-grid{background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:44px 44px}

.skeleton{background:linear-gradient(90deg,#f0f2f0 25%,#fafbfa 37%,#f0f2f0 63%);background-size:400% 100%;animation:skeleton 1.4s ease infinite}
@keyframes skeleton{0%{background-position:100% 0}100%{background-position:-100% 0}}

@media(max-width:1023px){
    .sidebar-shell{transform:translateX(100%)}
    .sidebar-shell.is-open{transform:translateX(0)}
    .topbar{height:72px;padding:0 16px}
}

.search-input{width:330px;background:#fff;border:1px solid #dde3dd;border-radius:14px;padding:11px 14px;font-size:12px;outline:none;transition:.18s}
.search-input:focus{border-color:#89aa98;box-shadow:0 0 0 4px rgba(36,92,71,.07)}
.search-results{position:absolute;top:calc(100% + 8px);left:0;width:390px;max-height:420px;overflow:auto;background:#fff;border:1px solid #dde3dd;border-radius:18px;box-shadow:0 24px 70px rgba(23,32,28,.14);z-index:80;padding:8px}
.search-result{display:flex;align-items:center;gap:10px;padding:11px;border-radius:12px;transition:.15s}.search-result:hover{background:#f4f7f4}
.notification-dot{position:absolute;top:-4px;left:-4px;min-width:18px;height:18px;border-radius:999px;background:#b64239;color:#fff;font-size:9px;font-weight:900;display:grid;place-items:center;border:2px solid #fff;padding:0 3px}
.side-panel{position:fixed;top:0;left:0;bottom:0;width:min(430px,100vw);background:#fff;z-index:90;box-shadow:20px 0 70px rgba(23,32,28,.18);transform:translateX(-105%);transition:.25s ease;overflow:auto}.side-panel.is-open{transform:translateX(0)}
.side-panel-head{position:sticky;top:0;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid #e1e6e1;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;z-index:2}
.section-title{font-size:16px;font-weight:900}.section-sub{font-size:11px;color:#8a958e;margin-top:3px}
.stat-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat-mini{background:#fff;border:1px solid #e1e6e1;border-radius:18px;padding:16px}.stat-mini b{font-size:24px;display:block;margin-top:4px}.stat-mini span{font-size:11px;color:#859088;font-weight:700}
.table-wrap{overflow:auto;border:1px solid #e1e6e1;border-radius:20px;background:#fff}.data-table{width:100%;border-collapse:collapse;min-width:820px}.data-table th,.data-table td{padding:14px 16px;text-align:right;border-bottom:1px solid #edf0ed;font-size:12px}.data-table th{font-size:10px;letter-spacing:.02em;color:#8a958e;background:#fafbfa;font-weight:900;position:sticky;top:0}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fbfcfb}
.kpi-money{font-size:30px;font-weight:900;letter-spacing:-.03em}.soft-box{background:#f8faf8;border:1px solid #e4e9e4;border-radius:18px;padding:16px}.timeline{position:relative;padding-right:20px}.timeline:before{content:'';position:absolute;right:6px;top:5px;bottom:5px;width:2px;background:#e5e9e5}.timeline-item{position:relative;padding:0 10px 18px 0}.timeline-item:before{content:'';position:absolute;right:-18px;top:5px;width:10px;height:10px;border-radius:999px;background:#245c47;border:2px solid #fff;box-shadow:0 0 0 2px #dfe7e1}
.tabs{display:flex;gap:6px;overflow:auto;padding:4px;background:#eef2ef;border-radius:16px}.tab-btn{white-space:nowrap;padding:9px 13px;border-radius:12px;font-size:11px;font-weight:800;color:#637069}.tab-btn.is-active{background:#fff;color:#17201c;box-shadow:0 4px 14px rgba(23,32,28,.06)}
.click-card{cursor:pointer}.empty-state{padding:52px 20px;text-align:center;color:#89948d}.danger-link{color:#b64239;font-weight:800}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.chip{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border:1px solid #e1e6e1;border-radius:999px;background:#fff;font-size:10px;font-weight:800}
@media(max-width:767px){.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.search-results{position:fixed;top:78px;right:12px;left:12px;width:auto}.kpi-money{font-size:25px}.modal-box{border-radius:22px}.room-card{padding:14px}.bed-card{min-height:125px}}
.scope-panel{border:1px solid #e1e6e1;border-radius:18px;background:#fbfcfb;overflow:hidden}.scope-panel-head{padding:12px 14px;border-bottom:1px solid #e7ebe7;font-size:11px;font-weight:900;color:#5f6b64}.scope-scroll{max-height:230px;overflow:auto;padding:7px}.scope-check{display:flex;align-items:flex-start;gap:9px;padding:9px;border-radius:11px;font-size:10px;cursor:pointer;transition:.15s}.scope-check:hover{background:#eef3ef}.scope-check input{margin-top:3px}.scope-check b{display:block;font-size:10px}.scope-check small{display:block;color:#98a199;margin-top:2px;font-size:9px}


/* User editor modal: keep important controls visible and avoid reopening mid-scroll. */
#userModal .modal-box{max-height:calc(100dvh - 36px);scrollbar-gutter:stable;overscroll-behavior:contain}
#userModal .user-modal-head{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.98);backdrop-filter:blur(10px)}
#userModal .user-modal-actions{position:sticky;bottom:-20px;z-index:20;margin-left:-20px;margin-right:-20px;margin-bottom:-20px;padding:14px 20px 18px;background:rgba(255,255,255,.98);border-top:1px solid #e1e6e1;box-shadow:0 -12px 30px rgba(17,25,21,.06);backdrop-filter:blur(10px)}
@media(max-width:767px){
  #userModal.modal-backdrop{padding:8px}
  #userModal .modal-box{max-height:calc(100dvh - 16px);border-radius:20px}
  #userModal .user-modal-actions{bottom:-20px}
}


/* AJAX property-scope picker */
.scope-loading{padding:28px 12px;text-align:center;color:#8a958e;font-size:10px;font-weight:700}
#scopePicker{opacity:1!important;pointer-events:auto!important}
#scopePicker .scope-check{cursor:pointer;user-select:none}
#scopePicker .scope-check input{cursor:pointer;width:16px;height:16px;accent-color:#245c47}
#scopeAll{cursor:pointer}

/* Hierarchical AJAX property-scope explorer */
.scope-explorer{border:1px solid #e1e6e1;border-radius:22px;background:#fbfcfb;overflow:hidden}
.scope-explorer-toolbar{padding:14px 16px;border-bottom:1px solid #e7ebe7;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.scope-tree{padding:10px;max-height:460px;overflow:auto;scrollbar-gutter:stable}
.scope-tree-node{border:1px solid #e7ebe7;border-radius:15px;background:#fff;margin-bottom:8px;overflow:hidden;transition:.15s ease}
.scope-tree-node:last-child{margin-bottom:0}
.scope-tree-node.is-covered{background:#f7faf8}
.scope-tree-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px}
.scope-area-row{background:#fbfdfb}
.scope-building-node{margin:7px 8px;border-radius:13px;background:#fcfdfc}
.scope-building-row{padding:7px 9px}
.scope-node-toggle{min-width:0;flex:1;display:flex;align-items:center;gap:9px;text-align:right;padding:5px 3px;border-radius:10px;cursor:pointer}
.scope-node-toggle:hover{background:#f1f5f2}
.scope-node-toggle b{display:block;font-size:11px;line-height:1.5}
.scope-node-toggle small{display:block;color:#97a099;font-size:9px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:560px}
.scope-chevron{width:24px;height:24px;border-radius:8px;background:#eef3ef;color:#245c47;display:grid;place-items:center;font-size:14px;font-weight:900;transition:.18s;flex:0 0 auto}
.scope-node-toggle.is-open .scope-chevron{transform:rotate(180deg)}
.scope-full-choice{display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid #dbe4dc;background:#fff;border-radius:999px;font-size:9px;font-weight:900;cursor:pointer;white-space:nowrap;flex:0 0 auto}
.scope-full-choice input,.scope-unit-choice input{width:15px;height:15px;accent-color:#245c47;cursor:pointer}
.scope-full-choice.is-disabled{opacity:.52;cursor:not-allowed}
.scope-tree-children{border-top:1px solid #edf0ed;padding:7px;background:#f8faf8}
.scope-child-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px 9px;color:#7f8a83;font-size:9px;font-weight:800}
.scope-child-actions button{border:1px solid #dfe5df;background:#fff;border-radius:9px;padding:5px 7px;color:#536159;font-size:9px;font-weight:900}
.scope-child-actions button:hover{background:#eef3ef;color:#245c47}
.scope-units-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:2px 7px 7px}
.scope-unit-choice{display:flex;align-items:flex-start;gap:8px;padding:9px;border:1px solid #e4e9e4;border-radius:11px;background:#fff;font-size:10px;cursor:pointer;transition:.15s}
.scope-unit-choice:hover{border-color:#cbd8ce;background:#f9fbf9}
.scope-unit-choice b{display:block;font-size:10px;line-height:1.5}
.scope-unit-choice small{display:block;color:#98a199;font-size:9px;margin-top:2px}
.scope-unit-choice.is-disabled{opacity:.5;cursor:not-allowed}
.scope-tree-node.is-covered>.scope-tree-row .scope-node-toggle,.scope-tree-node.is-covered .scope-unit-choice{opacity:.62}
.scope-summary-box{border-top:1px solid #e7ebe7;padding:13px 15px;background:#fff}
.scope-summary-chips{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.scope-summary-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border-radius:999px;background:#edf4ef;color:#245c47;border:1px solid #d7e4da;font-size:9px;font-weight:900;max-width:100%}
.scope-summary-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:310px}
.scope-summary-chip button{width:17px;height:17px;border-radius:999px;background:#fff;display:grid;place-items:center;color:#6e7d74;font-size:12px;line-height:1}
.scope-summary-chip.is-all{background:#245c47;color:#fff;border-color:#245c47}
.scope-search-hidden{display:none!important}
@media(max-width:767px){.scope-tree{max-height:390px}.scope-units-grid{grid-template-columns:1fr}.scope-tree-row{align-items:flex-start}.scope-full-choice{margin-top:2px}.scope-node-toggle small{max-width:190px}.scope-summary-chip span{max-width:220px}}

/* Notifications: unread stays unread until the user opens that exact item. */
.notification-item{display:block;width:100%;text-align:right;border:1px solid #e3e8e3;background:#fff;border-radius:16px;padding:13px;margin-bottom:10px;transition:.15s;cursor:pointer}
.notification-item:hover{background:#f8faf8;border-color:#d5ded7}
.notification-item.is-unread{background:#f2f7f3;border-color:#ceddd1;box-shadow:inset -3px 0 0 #245c47}
.notification-unread-pip{width:7px;height:7px;border-radius:999px;background:#245c47;flex:0 0 auto}
#markAllNotificationsButton:disabled{opacity:.45;cursor:not-allowed}
.payment-highlight{animation:paymentHighlight 2.2s ease-out 1;background:#f0f7f2!important}
@keyframes paymentHighlight{0%,55%{box-shadow:inset 0 0 0 999px rgba(36,92,71,.08)}100%{box-shadow:inset 0 0 0 999px rgba(36,92,71,0)}}

/* v2: simple 3-column property scope picker. Kept intentionally self-contained. */
.scope-cascade{border:1px solid #dfe6e0;border-radius:22px;background:#f8faf8;overflow:hidden;box-shadow:0 8px 24px rgba(23,32,28,.035)}
.scope-cascade-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#fff;border-bottom:1px solid #e6ebe6}
.scope-cascade-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px;direction:rtl}
.scope-cascade-column{min-width:0;background:#fff;border:1px solid #e1e7e2;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;height:390px}
.scope-column-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px;border-bottom:1px solid #edf0ed;background:#fbfcfb;font-size:11px;font-weight:900}
.scope-column-head>div{display:flex;align-items:center;gap:7px;min-width:0}
.scope-step{width:23px;height:23px;border-radius:8px;display:grid;place-items:center;background:#e8efe9;color:#245c47;font-size:10px;font-weight:900;flex:0 0 auto}
.scope-count-badge{min-width:24px;height:24px;padding:0 7px;border-radius:999px;display:grid;place-items:center;background:#f0f3f0;color:#66736b;font-size:9px;font-weight:900}
.scope-mini-action{border:1px solid #dce4dd;background:#fff;color:#245c47;border-radius:9px;padding:5px 7px;font-size:8px;font-weight:900;white-space:nowrap}.scope-mini-action:hover{background:#edf4ef}
.scope-column-search{padding:9px 10px;border-bottom:1px solid #edf0ed}.scope-column-search input{width:100%;height:34px;border:1px solid #e0e6e1;border-radius:10px;padding:7px 10px;outline:none;font-size:10px;background:#fff}.scope-column-search input:focus{border-color:#78a08b;box-shadow:0 0 0 3px rgba(36,92,71,.07)}
.scope-column-list{padding:8px;overflow:auto;flex:1;scrollbar-gutter:stable}
.scope-choice-card{border:1px solid #e6ebe6;border-radius:12px;background:#fff;margin-bottom:7px;overflow:hidden;transition:.15s}.scope-choice-card:last-child{margin-bottom:0}.scope-choice-card:hover{border-color:#c9d6cc}.scope-choice-card.is-active{border-color:#8fb09d;box-shadow:0 0 0 2px rgba(36,92,71,.06)}.scope-choice-card.is-selected{background:#f5faf6;border-color:#bad0c0}
.scope-choice-open{width:100%;display:flex;align-items:center;gap:8px;text-align:right;padding:9px 9px 7px;min-width:0}.scope-choice-open:hover{background:#fafcfb}
.scope-choice-icon{width:28px;height:28px;border-radius:9px;background:#eef3ef;color:#245c47;display:grid;place-items:center;font-size:9px;font-weight:900;flex:0 0 auto}
.scope-choice-text{min-width:0;flex:1}.scope-choice-text b{display:block;font-size:10px;line-height:1.55;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scope-choice-text small{display:block;color:#96a098;font-size:8px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scope-choice-arrow{font-size:20px;color:#9aa59e;line-height:1;flex:0 0 auto}
.scope-choice-check{display:flex;align-items:center;gap:6px;padding:6px 10px 8px;border-top:1px solid #f0f2f0;font-size:8px;font-weight:900;color:#5d6a62;cursor:pointer}.scope-choice-check:hover{color:#245c47}.scope-choice-check input,.scope-unit-card input{width:15px;height:15px;accent-color:#245c47;cursor:pointer}.scope-choice-check.is-disabled,.scope-unit-card.is-disabled{opacity:.45;cursor:not-allowed}
.scope-unit-card{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid #e6ebe6;border-radius:12px;background:#fff;margin-bottom:7px;cursor:pointer;transition:.15s}.scope-unit-card:last-child{margin-bottom:0}.scope-unit-card:hover{border-color:#c9d6cc;background:#fafcfb}.scope-unit-card.is-selected{background:#f2f8f4;border-color:#a9c5b2}.scope-unit-card input{flex:0 0 auto}
.scope-empty-hint{height:100%;min-height:130px;display:grid;place-items:center;text-align:center;padding:24px 12px;color:#9aa39d;font-size:10px;font-weight:700}
.scope-selection-total{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 10px;border-radius:999px;background:#eef3ef;color:#245c47;font-size:9px;font-weight:900}
.scope-cascade.scope-all-active{border-color:#b9cfc0}.scope-cascade.scope-all-active .scope-cascade-top{background:#f5faf6}
.scope-summary-box{border-top:1px solid #e4e9e4;padding:13px 15px;background:#fff}.scope-summary-chips{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.scope-summary-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border-radius:999px;background:#edf4ef;color:#245c47;border:1px solid #d7e4da;font-size:9px;font-weight:900;max-width:100%}.scope-summary-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:310px}.scope-summary-chip button{width:17px;height:17px;border-radius:999px;background:#fff;display:grid;place-items:center;color:#6e7d74;font-size:12px;line-height:1}.scope-summary-chip.is-all{background:#245c47;color:#fff;border-color:#245c47}
@media(max-width:900px){.scope-cascade-grid{grid-template-columns:1fr}.scope-cascade-column{height:300px}.scope-cascade-top{align-items:flex-start;flex-direction:column}.scope-summary-chip span{max-width:230px}}

/* v2: live in-app notification cards used by automatic polling. */
.live-notification-stack{position:fixed;top:94px;left:18px;z-index:110;width:min(360px,calc(100vw - 36px));display:flex;flex-direction:column;gap:9px;pointer-events:none}
.live-notification-card{pointer-events:auto;width:100%;border:1px solid #d9e4dc;background:#fff;border-radius:16px;box-shadow:0 18px 48px rgba(23,32,28,.16);padding:12px;display:flex;align-items:flex-start;gap:10px;text-align:right;animation:liveNotifIn .2s ease;cursor:pointer}.live-notification-card:hover{border-color:#b8cbbd;background:#fbfdfb}.live-notification-card .live-notif-icon{width:34px;height:34px;border-radius:11px;background:#e9f1eb;color:#245c47;display:grid;place-items:center;flex:0 0 auto;font-weight:900}.live-notification-card b{display:block;font-size:11px}.live-notification-card p{font-size:9px;color:#6f7c74;line-height:1.7;margin-top:3px}.live-notification-card small{display:block;font-size:8px;color:#9aa39d;margin-top:4px}.live-notification-close{margin-right:auto;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;color:#879189;flex:0 0 auto}.live-notification-close:hover{background:#eef2ef;color:#17201c}
@keyframes liveNotifIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(max-width:767px){.live-notification-stack{top:80px;left:10px;width:calc(100vw - 20px)}}

/* v3: progressive AJAX scope picker. Navigation state is separate from full-scope grants. */
.scope-cascade-v3{background:#f6f9f7;border-color:#d9e3dc;box-shadow:0 12px 32px rgba(28,48,38,.055)}
.scope-cascade-v3 .scope-cascade-top{padding:16px 18px}
.scope-pathbar{min-height:48px;padding:10px 14px;background:#f0f5f1;border-bottom:1px solid #dde6df;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.scope-path-empty{font-size:10px;color:#7d8981;font-weight:800}
.scope-path-label{font-size:9px;color:#87938b;font-weight:900;margin-left:3px}
.scope-path-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid #ceddd2;background:#fff;border-radius:999px;color:#284c3d;font-size:9px;font-weight:900;max-width:260px}
.scope-path-chip b{width:18px;height:18px;border-radius:999px;background:#245c47;color:#fff;display:grid;place-items:center;font-size:8px;flex:0 0 auto}
.scope-path-chip.is-muted{color:#7e8982;border-style:dashed;background:#f8faf8}.scope-path-chip.is-muted b{background:#95a299}
.scope-path-sep{color:#98a39c;font-weight:900}
.scope-cascade-v3 .scope-cascade-grid{gap:12px;padding:12px}
.scope-cascade-v3 .scope-cascade-column{height:420px;border-radius:18px;border-color:#dfe7e1;box-shadow:0 4px 14px rgba(25,42,33,.025)}
.scope-cascade-v3 .scope-column-head{min-height:58px;padding:10px 12px;background:#fbfdfb}
.scope-cascade-v3 .scope-column-head>div:first-child{align-items:flex-start}
.scope-cascade-v3 .scope-column-head small{display:block;margin-top:2px;color:#96a099;font-size:8px;font-weight:700;max-width:155px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scope-head-actions{display:flex;align-items:center;gap:6px!important;flex:0 0 auto}
.scope-cascade-v3 .scope-mini-action{padding:6px 8px;border-radius:10px;background:#eef5f0;border-color:#d2e0d6;font-size:8px}
.scope-cascade-v3 .scope-mini-action:hover{background:#e3eee6}.scope-cascade-v3 .scope-mini-action.is-clear{background:#fff5f4;color:#9a4b45;border-color:#eed7d4}
.scope-cascade-v3 .scope-choice-card{position:relative;border-radius:14px;margin-bottom:8px}
.scope-cascade-v3 .scope-choice-card.is-active{border-color:#56836c;box-shadow:0 0 0 2px rgba(36,92,71,.09);background:#fff}
.scope-cascade-v3 .scope-choice-card.is-selected{background:#edf7f0;border-color:#8eb29a}
.scope-cascade-v3 .scope-choice-card.has-partial{background:#f7faf8;border-color:#c7d9cc}
.scope-cascade-v3 .scope-choice-open{padding:10px}
.scope-cascade-v3 .scope-choice-icon{width:30px;height:30px;border-radius:10px}
.scope-cascade-v3 .scope-choice-text b{font-size:10.5px}
.scope-card-status{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:4px 7px;border-radius:999px;font-size:7.5px;font-weight:900;white-space:nowrap;flex:0 0 auto}
.scope-card-status.is-open{background:#eef2ef;color:#607066}.scope-card-status.is-partial{background:#fff7df;color:#8a6810}.scope-card-status.is-full{background:#245c47;color:#fff}
.scope-cascade-v3 .scope-choice-check{padding:8px 10px;background:rgba(250,252,250,.78);align-items:flex-start}
.scope-cascade-v3 .scope-choice-check>span{display:block}.scope-cascade-v3 .scope-choice-check b{display:block;font-size:8.5px}.scope-cascade-v3 .scope-choice-check small{display:block;color:#98a199;font-size:7.5px;margin-top:1px;font-weight:700}
.scope-cascade-v3 .scope-unit-card{border-radius:13px;padding:10px}
.scope-cascade-v3 .scope-unit-card.is-selected{background:#eaf5ed;border-color:#8fb49a;box-shadow:inset -3px 0 0 #245c47}
.scope-unit-state{margin-right:auto;font-size:7.5px;font-weight:900;color:#89948d;background:#f3f5f3;border-radius:999px;padding:4px 7px}.scope-unit-card.is-selected .scope-unit-state{color:#245c47;background:#dfeee3}
.scope-cascade-v3 .scope-empty-hint{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;line-height:1.7}.scope-cascade-v3 .scope-empty-hint b{font-size:10px;color:#758079}.scope-cascade-v3 .scope-empty-hint span{font-size:8.5px;color:#a0a8a2;max-width:190px}
.scope-cascade-v3 .scope-summary-chip{border-radius:12px;padding:7px 9px}.scope-cascade-v3 .scope-summary-chip small{font-size:7px;color:#7c8d82;background:#fff;border-radius:999px;padding:3px 5px;flex:0 0 auto}.scope-cascade-v3 .scope-summary-chip.is-all small{display:none}
@media(max-width:1050px){.scope-cascade-v3 .scope-cascade-grid{grid-template-columns:1fr 1fr}.scope-cascade-v3 .scope-cascade-column:last-child{grid-column:1/-1;height:330px}}
@media(max-width:720px){.scope-cascade-v3 .scope-cascade-grid{grid-template-columns:1fr}.scope-cascade-v3 .scope-cascade-column,.scope-cascade-v3 .scope-cascade-column:last-child{grid-column:auto;height:300px}.scope-pathbar{align-items:flex-start}.scope-path-chip{max-width:210px}.scope-card-status{display:none}}

/* v4: stable hierarchical AJAX scope picker. Parent navigation stays selected while child grants change. */
.scope-cascade-v4{background:#f7faf8;border-color:#d8e3dc;box-shadow:0 14px 34px rgba(28,48,38,.06)}
.scope-cascade-v4 .scope-cascade-top{padding:15px 17px;background:#fff}
.scope-cascade-v4 .scope-pathbar{min-height:50px;padding:10px 14px;background:#eef5f0;border-bottom:1px solid #dce7df}
.scope-cascade-v4 .scope-cascade-grid{gap:12px;padding:12px;align-items:stretch}
.scope-cascade-v4 .scope-cascade-column{height:clamp(290px,38vh,390px);border-radius:18px;border-color:#dfe7e1;box-shadow:0 5px 16px rgba(25,42,33,.025)}
.scope-cascade-v4 .scope-column-head{min-height:60px;padding:10px 12px;background:#fbfdfb}
.scope-cascade-v4 .scope-column-head>div:first-child{align-items:flex-start}
.scope-cascade-v4 .scope-column-head small{display:block;margin-top:2px;color:#8d9991;font-size:8px;font-weight:700;max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scope-cascade-v4 .scope-mini-action{padding:6px 8px;border-radius:10px;background:#edf5ef;border-color:#d0dfd4;font-size:8px}
.scope-cascade-v4 .scope-mini-action:hover:not(:disabled){background:#e1ede5}
.scope-cascade-v4 .scope-mini-action.is-clear{background:#fff5f4;color:#9a4b45;border-color:#eed7d4}
.scope-cascade-v4 .scope-mini-action:disabled{opacity:.55;cursor:not-allowed;background:#f4f6f4;color:#829088;border-color:#e3e8e4}
.scope-cascade-v4 .scope-choice-card{position:relative;border-radius:14px;margin-bottom:8px;overflow:hidden}
.scope-cascade-v4 .scope-choice-card.is-active{border-color:#4f8066;box-shadow:0 0 0 2px rgba(36,92,71,.10);background:#fff}
.scope-cascade-v4 .scope-choice-card.is-selected{background:#edf7f0;border-color:#8db29a}
.scope-cascade-v4 .scope-choice-card.has-partial{background:#f8fbf9;border-color:#c5d8cb}
.scope-cascade-v4 .scope-choice-card.is-covered{background:#f7faf8;border-color:#d2dfd6}
.scope-cascade-v4 .scope-choice-open{padding:10px;gap:8px}
.scope-route-indicator{width:30px;height:30px;border-radius:10px;background:#eef3ef;color:#496257;display:grid;place-items:center;font-size:9px;font-weight:950;flex:0 0 auto;border:1px solid transparent;transition:.15s}
.scope-route-indicator.has-selection{background:#e8f1eb;color:#245c47;border-color:#d1e1d6}
.scope-route-indicator.is-current{background:#245c47;color:#fff;border-color:#245c47;box-shadow:0 5px 12px rgba(36,92,71,.16)}
.scope-cascade-v4 .scope-choice-text b{font-size:10.5px}
.scope-cascade-v4 .scope-choice-check{padding:8px 10px;background:rgba(250,252,250,.86);align-items:flex-start}
.scope-cascade-v4 .scope-choice-check>span{display:block;min-width:0}
.scope-cascade-v4 .scope-choice-check b{display:block;font-size:8.5px}
.scope-cascade-v4 .scope-choice-check small{display:block;color:#96a098;font-size:7.5px;margin-top:1px;font-weight:700;line-height:1.55}
.scope-card-status.is-covered{background:#edf1ee;color:#68776e}
.scope-cascade-v4 .scope-unit-card{border-radius:13px;padding:10px}
.scope-cascade-v4 .scope-unit-card.is-selected{background:#eaf5ed;border-color:#8fb49a;box-shadow:inset -3px 0 0 #245c47}
.scope-cascade-v4 .scope-unit-card.is-covered{background:#f7faf8;border-style:dashed;border-color:#cad8ce}
.scope-cascade-v4 .scope-unit-card.is-covered:not(.is-selected) input{opacity:.75}
.scope-unit-state.is-covered{background:#edf1ee;color:#66756c}
.scope-cascade-v4 .scope-summary-box{background:#fff}
.scope-cascade-v4 .scope-summary-chip{border-radius:12px;padding:7px 9px}
.scope-cascade-v4 .scope-summary-chip small{font-size:7px;color:#73857a;background:#fff;border-radius:999px;padding:3px 5px;flex:0 0 auto}
.scope-cascade-v4 .scope-summary-chip.is-all small{display:none}
.scope-cascade-v4 .scope-path-chip{cursor:pointer}
.scope-cascade-v4 .scope-path-chip.is-current{border-color:#b8d0c0;background:#fff;color:#244d3b}
.scope-cascade-v4 .scope-path-chip.is-current:hover{border-color:#7fa58e;background:#f9fcfa}
.scope-loader-dot{display:inline-block;width:7px;height:7px;border-radius:999px;background:#6e927e;margin-left:6px;animation:scopePulse 1s ease-in-out infinite alternate}
@keyframes scopePulse{from{opacity:.3;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
.scope-cascade-v4.scope-all-active .scope-cascade-top{background:#f4faf6}
.scope-cascade-v4.scope-all-active .scope-pathbar{background:#eef7f1}
@media(max-width:1050px){.scope-cascade-v4 .scope-cascade-grid{grid-template-columns:1fr 1fr}.scope-cascade-v4 .scope-cascade-column{height:330px}.scope-cascade-v4 .scope-cascade-column:last-child{grid-column:1/-1;height:300px}}
@media(max-width:720px){.scope-cascade-v4 .scope-cascade-grid{grid-template-columns:1fr}.scope-cascade-v4 .scope-cascade-column,.scope-cascade-v4 .scope-cascade-column:last-child{grid-column:auto;height:285px}.scope-cascade-v4 .scope-cascade-top{align-items:flex-start;flex-direction:column}.scope-cascade-v4 .scope-card-status{display:none}.scope-route-indicator{width:28px;height:28px}.scope-cascade-v4 .scope-path-chip{max-width:210px}}

/* v5: keep units from every selected/open building visible together */
.scope-cascade-v4 .scope-unit-group{border:1px solid #dfe7e1;border-radius:14px;background:#fff;margin-bottom:10px;overflow:hidden;box-shadow:0 3px 10px rgba(25,42,33,.025)}
.scope-cascade-v4 .scope-unit-group:last-child{margin-bottom:0}
.scope-cascade-v4 .scope-unit-group.is-active{border-color:#8fb09d;box-shadow:0 0 0 2px rgba(36,92,71,.06)}
.scope-cascade-v4 .scope-unit-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;background:#f7faf8;border-bottom:1px solid #e8ede9;position:sticky;top:0;z-index:1}
.scope-cascade-v4 .scope-unit-group-head>div{min-width:0}
.scope-cascade-v4 .scope-unit-group-head b{display:block;font-size:9.5px;color:#294b3b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scope-cascade-v4 .scope-unit-group-head small{display:block;font-size:7.5px;color:#98a199;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scope-cascade-v4 .scope-unit-group-head>span{font-size:7.5px;font-weight:900;color:#5f7568;background:#edf4ef;border-radius:999px;padding:4px 7px;flex:0 0 auto}
.scope-cascade-v4 .scope-unit-group-body{padding:8px}
.scope-cascade-v4 .scope-unit-group-body .scope-unit-card{margin-bottom:6px}
.scope-cascade-v4 .scope-unit-group-body .scope-unit-card:last-child{margin-bottom:0}
.scope-cascade-v4 .scope-choice-card.is-opened:not(.is-active){border-color:#c8d9ce;background:#fbfdfb}
.scope-unit-group-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.scope-unit-group-actions>span{font-size:7.5px;font-weight:900;color:#5f7568;background:#edf4ef;border-radius:999px;padding:4px 7px}
.scope-unit-group-actions>button{width:22px;height:22px;border-radius:8px;border:1px solid #dfe7e1;background:#fff;color:#7b8b82;font-size:13px;font-weight:900;line-height:1;display:grid;place-items:center}
.scope-unit-group-actions>button:hover{border-color:#c9d6cc;color:#245c47;background:#f8fbf9}
