:root{--p-navy:#0b1f33;--p-navy-2:#102c49;--p-blue:#1769aa;--p-blue-soft:#eaf3fb;--p-gold:#d5a84b;--p-bg:#f4f7fb;--p-surface:#fff;--p-text:#172033;--p-muted:#64748b;--p-border:#e2e8f0;--p-success:#16835b;--p-danger:#c93d4b;--p-warning:#b7791f;--p-radius:14px;--p-shadow:0 8px 24px rgba(15,35,55,.08);--p-shadow-lg:0 18px 50px rgba(15,35,55,.14)}
*{box-sizing:border-box}html{min-height:100%;background:var(--p-bg)}body{min-height:100vh;margin:0;display:flex;flex-direction:column;background:var(--p-bg);color:var(--p-text);font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.55}a{text-decoration:none}.prophet-navbar{min-height:70px;background:linear-gradient(105deg,var(--p-navy),var(--p-navy-2))!important;box-shadow:0 5px 20px rgba(3,18,33,.18)}.navbar-brand{color:#fff!important;gap:10px;letter-spacing:.02em}.navbar-brand small{display:block;font-size:.66rem;font-weight:500;letter-spacing:.09em;color:#b8c7d7;text-transform:uppercase}.brand-mark{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.1);color:var(--p-gold)}.navbar .nav-link{color:#dce6f0!important;font-size:.92rem;font-weight:600;padding:.55rem .75rem!important;border-radius:9px}.navbar .nav-link:hover,.navbar .nav-link:focus{background:rgba(255,255,255,.09);color:#fff!important}.navbar-toggler{border-color:rgba(255,255,255,.3);background:#fff}.user-chip{background:rgba(255,255,255,.08)}.dropdown-menu{border:1px solid var(--p-border);border-radius:12px;padding:.5rem}.prophet-main{width:100%;max-width:1540px;margin:0 auto;padding:100px 28px 44px;flex:1}.prophet-footer{background:var(--p-navy);color:#b9c8d8;padding:18px 0;font-size:.86rem}.message-stack{position:relative;z-index:3}.alert{border:0;border-radius:12px;box-shadow:var(--p-shadow)}
.page-kicker{font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--p-blue)}.page-title{font-size:clamp(1.65rem,3vw,2.35rem);font-weight:800;letter-spacing:-.03em;margin:.2rem 0}.page-subtitle{color:var(--p-muted);max-width:760px}.section-title{font-size:1.05rem;font-weight:800;margin:0}.section-caption{font-size:.86rem;color:var(--p-muted)}
.card,.content-panel,.enterprise-panel{border:1px solid var(--p-border);border-radius:var(--p-radius);background:var(--p-surface);box-shadow:var(--p-shadow)}.card{overflow:hidden}.card-header{background:#fff;border-bottom:1px solid var(--p-border);padding:16px 20px;font-weight:700}.card-body{padding:20px}.enterprise-panel{padding:22px}.module-card{height:100%;transition:transform .18s ease,box-shadow .18s ease}.module-card:hover{transform:translateY(-3px);box-shadow:var(--p-shadow-lg)}.module-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:13px;background:var(--p-blue-soft);color:var(--p-blue);font-size:1.25rem}.module-card h3{font-size:1rem;font-weight:800;margin:14px 0 5px}.module-card p{color:var(--p-muted);font-size:.86rem;min-height:42px}.quick-link{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--p-border);border-radius:10px;color:var(--p-text);font-size:.9rem;font-weight:650;margin-top:8px;background:#fff}.quick-link:hover{border-color:#b8cde0;background:#f8fbfe;color:var(--p-blue)}
.table-responsive{width:100%;overflow-x:auto;border:1px solid var(--p-border);border-radius:12px;background:#fff}.table{margin:0;background:#fff}.table thead th{background:#f7f9fc;color:#435169;border-bottom:1px solid var(--p-border);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.045em;white-space:nowrap}.table td,.table th{padding:12px 14px;vertical-align:middle;border-color:var(--p-border)}.table tbody tr:hover{background:#fbfdff}.form-label,label{font-weight:700;color:#344155;margin-bottom:6px}.form-control,.form-select{min-height:44px;border:1px solid #cbd5e1;border-radius:9px;background:#fff}.form-control:focus,.form-select:focus{border-color:#6aa2cf;box-shadow:0 0 0 3px rgba(23,105,170,.12)}textarea.form-control{min-height:120px}.btn{border-radius:9px;font-weight:700}.btn-primary{background:var(--p-blue);border-color:var(--p-blue)}.btn-primary:hover{background:#12588f;border-color:#12588f}.btn-outline-primary{color:var(--p-blue);border-color:#9cbdd8}.btn-outline-primary:hover{background:var(--p-blue);border-color:var(--p-blue)}.badge{border-radius:999px;padding:.45em .7em}.empty-state{text-align:center;padding:48px 20px;color:var(--p-muted)}
.auth-shell{min-height:calc(100vh - 150px);display:grid;place-items:center;padding:24px}.auth-card{width:min(100%,470px);border:1px solid var(--p-border);border-radius:18px;background:rgba(255,255,255,.97);box-shadow:var(--p-shadow-lg);padding:32px}.auth-logo{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:var(--p-navy);color:var(--p-gold);font-size:1.35rem;margin-bottom:18px}.auth-card h1{font-size:1.65rem;font-weight:800}.auth-card .helptext{font-size:.78rem;color:var(--p-muted)}
.landing-hero{min-height:610px;display:flex;align-items:center;background:linear-gradient(90deg,rgba(5,24,42,.9),rgba(5,24,42,.5)),url('../images/luxury.jpg') center/cover;color:#fff}.landing-hero .hero-copy{max-width:720px;padding:120px 0 90px}.landing-hero h1{font-size:clamp(2.5rem,6vw,4.7rem);font-weight:850;line-height:1.02;letter-spacing:-.05em}.landing-hero p{font-size:1.12rem;color:#d8e4ee;max-width:620px}.landing-feature{height:100%;padding:24px}.landing-feature i{font-size:1.3rem;color:var(--p-blue)}
@media(max-width:991.98px){.prophet-main{padding:92px 16px 32px}.navbar-collapse{padding:12px 0}.navbar .nav-link{padding:10px!important}.user-chip{background:transparent}.landing-hero{min-height:520px}.landing-hero .hero-copy{padding:90px 0 70px}}@media(max-width:575.98px){.prophet-main{padding-left:10px;padding-right:10px}.enterprise-panel,.card-body{padding:16px}.table td,.table th{padding:10px}.auth-card{padding:23px}.navbar-brand small{display:none}}

/* ==========================================================
   ENTERPRISE TEMPLATE NORMALIZATION + HTMX
   ========================================================== */
::view-transition-old(prophet-content){animation:.14s ease both prophetFadeOut}
::view-transition-new(prophet-content){animation:.22s ease both prophetFadeIn}
@keyframes prophetFadeOut{to{opacity:.2;transform:translateY(4px)}}
@keyframes prophetFadeIn{from{opacity:.25;transform:translateY(7px)}}
#prophet-content{view-transition-name:prophet-content}
.htmx-progress{position:fixed;z-index:2000;top:0;left:0;right:0;height:3px;pointer-events:none;opacity:0;transition:opacity .15s ease}.htmx-progress span{display:block;height:100%;width:38%;background:linear-gradient(90deg,var(--p-gold),#f4cf7a,var(--p-blue));box-shadow:0 0 14px rgba(213,168,75,.5);animation:prophetProgress 1s ease-in-out infinite}.htmx-request .htmx-progress,.htmx-request.htmx-progress{opacity:1}@keyframes prophetProgress{0%{transform:translateX(-120%)}100%{transform:translateX(360%)}}
.htmx-swapping{opacity:.45;transition:opacity .12s ease}.htmx-added{animation:prophetFadeIn .24s ease both}

/* Existing templates inherit the enterprise surface without rewrites. */
.prophet-main>.container,.prophet-main>.container-fluid{max-width:none!important;width:100%!important;padding-left:0!important;padding-right:0!important}
.prophet-main .container[style*="max-width"]{max-width:none!important}
.prophet-main h1:not(.page-title){font-size:clamp(1.55rem,2.7vw,2.15rem);font-weight:850;letter-spacing:-.035em;color:var(--p-navy);margin-bottom:1.25rem}
.prophet-main h2,.prophet-main h3{font-weight:800;color:var(--p-navy)}
.prophet-main .text-center>h1:first-child:after{content:"";display:block;width:42px;height:3px;border-radius:99px;background:var(--p-gold);margin:10px auto 0}
.prophet-main .list-group{border:1px solid var(--p-border);border-radius:14px;overflow:hidden;box-shadow:var(--p-shadow);background:#fff}
.prophet-main .list-group-item{border:0;border-bottom:1px solid var(--p-border);padding:15px 18px;background:#fff;color:var(--p-text);transition:background .16s ease,transform .16s ease}
.prophet-main .list-group-item:last-child{border-bottom:0}.prophet-main .list-group-item:hover{background:#f7fbff;color:var(--p-blue);padding-left:21px}.prophet-main .list-group-item h5{font-size:.98rem;font-weight:750;margin:0}
.prophet-main form:not(.d-inline):not(.navbar-form){accent-color:var(--p-blue)}
.prophet-main form.d-flex.justify-content-center{align-items:end!important;justify-content:flex-start!important;gap:10px;background:#fff;border:1px solid var(--p-border);border-radius:14px;padding:16px 18px;box-shadow:0 4px 16px rgba(15,35,55,.05);flex-wrap:wrap}
.prophet-main form.d-flex.justify-content-center .form-group{flex:1 1 320px;margin:0!important}.prophet-main form.d-flex.justify-content-center .mb-3{margin-bottom:0!important}
.prophet-main .alert-warning{background:#fff9e9;color:#7a5814}.prophet-main .pagination{gap:5px;flex-wrap:wrap}.prophet-main .page-link{border:1px solid var(--p-border);border-radius:8px!important;color:var(--p-navy);min-width:38px;text-align:center}.prophet-main .page-item.active .page-link{background:var(--p-blue);border-color:var(--p-blue)}
.prophet-main hr{border-color:var(--p-border);opacity:1}.prophet-main dl,.prophet-main .detail-card{background:#fff;border:1px solid var(--p-border);border-radius:14px;box-shadow:var(--p-shadow);padding:20px}
.prophet-main input,.prophet-main select,.prophet-main textarea{transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.prophet-main input:hover,.prophet-main select:hover,.prophet-main textarea:hover{border-color:#aebdcb}
.prophet-main .btn-success{background:var(--p-success);border-color:var(--p-success)}.prophet-main .btn-secondary{background:#53657a;border-color:#53657a}.prophet-main .btn-danger{background:var(--p-danger);border-color:var(--p-danger)}
.enterprise-list-page{position:relative}.enterprise-list-page>.container:first-child,.enterprise-list-page>.container-fluid:first-child{background:#fff;border:1px solid var(--p-border);border-radius:16px;box-shadow:var(--p-shadow);padding:24px!important}
.prophet-source-add{display:none!important}

/* Vertical floating action rail */
.prophet-float-rail{position:fixed;right:18px;top:50%;transform:translateY(-42%);z-index:1040;display:flex;flex-direction:column;gap:9px;padding:9px;border:1px solid rgba(203,213,225,.9);border-radius:18px;background:rgba(255,255,255,.92);box-shadow:0 16px 40px rgba(15,35,55,.16);backdrop-filter:blur(14px)}
.prophet-float-rail #prophetDynamicActions{display:flex;flex-direction:column;gap:9px}.float-action{width:44px;height:44px;border:0;border-radius:12px;display:grid;place-items:center;background:#f5f8fb;color:var(--p-navy);box-shadow:inset 0 0 0 1px var(--p-border);cursor:pointer;transition:transform .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}.float-action:hover,.float-action:focus{transform:translateX(-3px);background:var(--p-navy);color:#fff;box-shadow:0 8px 20px rgba(11,31,51,.2);outline:0}.float-action.float-add{background:var(--p-blue);color:#fff;box-shadow:0 8px 20px rgba(23,105,170,.25)}.float-action.float-add:hover{background:#12588f}.float-action.float-add i{font-size:1.1rem}.prophet-float-rail [data-prophet-top]{margin-top:2px;border-top:1px solid var(--p-border)}
body:has(.prophet-float-rail) .prophet-main{padding-right:92px}

/* Better responsive forms, tables and actions across legacy templates. */
@media(max-width:991.98px){body:has(.prophet-float-rail) .prophet-main{padding-right:74px}.prophet-float-rail{right:10px;padding:7px;gap:7px}.prophet-float-rail #prophetDynamicActions{gap:7px}.float-action{width:40px;height:40px}.enterprise-list-page>.container:first-child,.enterprise-list-page>.container-fluid:first-child{padding:18px!important}}
@media(max-width:575.98px){body:has(.prophet-float-rail) .prophet-main{padding-right:61px}.prophet-float-rail{right:6px;border-radius:14px;padding:5px}.float-action{width:36px;height:36px;border-radius:10px;font-size:.86rem}.prophet-main form.d-flex.justify-content-center{padding:13px}.enterprise-list-page>.container:first-child,.enterprise-list-page>.container-fluid:first-child{padding:14px!important}}

/* ==========================================================
   PROPHET OPERATIONS DASHBOARD
   ========================================================== */
.ops-dashboard{max-width:1560px;margin:0 auto}.ops-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:30px 32px;border-radius:20px;background:linear-gradient(120deg,#0b1f33,#153f61);color:#fff;box-shadow:0 18px 42px rgba(11,31,51,.18);overflow:hidden;position:relative}.ops-hero:after{content:"";position:absolute;width:310px;height:310px;border-radius:50%;right:-95px;top:-170px;border:55px solid rgba(255,255,255,.045)}.ops-eyebrow,.ops-label{font-size:.72rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.ops-eyebrow{color:#f2ce7a;margin-bottom:8px}.ops-eyebrow i{margin-right:7px}.ops-hero h1{color:#fff!important;margin:0!important;font-size:clamp(1.8rem,3.4vw,2.7rem)!important}.ops-hero p{margin:7px 0 0;color:#d6e3ee;max-width:680px}.ops-hero-actions{display:flex;align-items:center;gap:12px;position:relative;z-index:1;flex-wrap:wrap;justify-content:flex-end}.ops-date{font-size:.84rem;color:#dbe7ef;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);padding:10px 13px;border-radius:10px}.ops-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:18px 0}.ops-kpi{display:flex;align-items:center;gap:15px;padding:19px;border:1px solid var(--p-border);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(15,35,55,.055);color:var(--p-text);transition:.18s ease}.ops-kpi:hover{color:var(--p-text);transform:translateY(-2px);border-color:#aec8dc;box-shadow:0 12px 28px rgba(15,35,55,.1)}.ops-kpi-icon{width:48px;height:48px;flex:0 0 48px;border-radius:13px;display:grid;place-items:center;background:#eef5fb;color:var(--p-blue);font-size:1.15rem}.ops-kpi-copy{display:flex;flex-direction:column;min-width:0}.ops-kpi-copy small{font-size:.76rem;color:var(--p-muted);font-weight:750}.ops-kpi-copy strong{font-size:1.65rem;line-height:1.15;color:var(--p-navy)}.ops-kpi-copy em{font-style:normal;font-size:.75rem;color:#708094}.ops-grid{display:grid;gap:16px}.ops-grid-primary{grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr)}.ops-grid-secondary{grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);margin-top:16px}.ops-panel{background:#fff;border:1px solid var(--p-border);border-radius:16px;padding:21px;box-shadow:0 5px 20px rgba(15,35,55,.05)}.ops-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:18px}.ops-panel-head h2,.ops-section-title h2{font-size:1.05rem!important;margin:2px 0 0!important;color:var(--p-navy)}.ops-label{color:#77879a}.ops-panel-head>strong{font-size:1.8rem;color:var(--p-navy)}.occupancy-track{height:13px;background:#edf2f6;border-radius:99px;overflow:hidden;margin:26px 0 20px}.occupancy-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--p-blue),#37a6c8);min-width:2px}.occupancy-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.occupancy-stats div{padding:12px 14px;border-radius:11px;background:#f7f9fb;display:flex;flex-direction:column}.occupancy-stats span{font-size:.74rem;color:var(--p-muted)}.occupancy-stats b{font-size:1.05rem;color:var(--p-navy)}.ops-pulse-list{display:grid;gap:4px}.ops-pulse-list>div{display:flex;justify-content:space-between;align-items:center;padding:11px 3px;border-bottom:1px solid #edf1f5}.ops-pulse-list>div:last-child{border:0}.ops-pulse-list span{font-size:.86rem;color:#48576a}.ops-pulse-list i{width:24px;color:var(--p-blue)}.ops-pulse-list b{color:var(--p-navy)}.ops-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin:27px 2px 12px}.ops-section-note{font-size:.75rem;color:var(--p-muted)}.ops-finance-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.ops-finance-card{padding:17px 18px;background:#fff;border:1px solid var(--p-border);border-radius:14px;display:flex;flex-direction:column;box-shadow:0 4px 16px rgba(15,35,55,.04)}.ops-finance-card>span{font-size:.75rem;color:var(--p-muted);font-weight:750}.ops-finance-card strong{font-size:1.18rem;color:var(--p-navy);margin:5px 0 2px}.ops-finance-card small{font-size:.71rem;color:#8794a4}.ops-finance-emphasis{background:#0e2b44;border-color:#0e2b44}.ops-finance-emphasis>span,.ops-finance-emphasis small{color:#bcd0df}.ops-finance-emphasis strong{color:#fff}.ops-table-wrap{overflow:auto}.ops-table{width:100%;border-collapse:collapse}.ops-table th{padding:9px 10px;border-bottom:1px solid var(--p-border);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:#788698;text-align:left}.ops-table td{padding:12px 10px;border-bottom:1px solid #edf1f5;font-size:.8rem;color:#536174;white-space:nowrap}.ops-table tbody tr:last-child td{border-bottom:0}.ops-table td strong{color:#27384b}.ops-status{display:inline-flex;padding:5px 8px;border-radius:99px;font-size:.68rem;font-weight:800}.ops-status.active{background:#e9f8f0;color:#167044}.ops-status.upcoming{background:#edf5fb;color:#1769aa}.ops-status.complete{background:#f0f2f5;color:#657283}.ops-empty{text-align:center!important;padding:30px!important;color:var(--p-muted)!important}.ops-text-link{font-size:.76rem;font-weight:800;color:var(--p-blue)}.ops-count{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:9px;background:#fff2e8;color:#a75012;font-weight:850}.ops-stock-list{display:grid}.ops-stock-list>div{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 2px;border-bottom:1px solid #edf1f5}.ops-stock-list>div:last-child{border:0}.ops-stock-list span{display:flex;flex-direction:column}.ops-stock-list b{font-size:.8rem;color:#334256}.ops-stock-list small{font-size:.7rem;color:var(--p-muted)}.ops-stock-list>div>strong{font-size:.76rem;color:#a75012}.ops-good{justify-content:flex-start!important}.ops-good>i{font-size:1.35rem;color:var(--p-success)}.ops-mini-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.ops-mini{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--p-border);border-radius:14px;padding:16px}.ops-mini>i{width:39px;height:39px;border-radius:10px;display:grid;place-items:center;background:#f1f5f8;color:var(--p-blue)}.ops-mini span{display:flex;flex-direction:column;font-size:.72rem;color:var(--p-muted)}.ops-mini b{font-size:.93rem;color:var(--p-navy);margin-top:2px}.ops-history{margin-top:20px;background:#fff;border:1px solid var(--p-border);border-radius:14px;overflow:hidden}.ops-history summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:16px 19px;font-size:.82rem;font-weight:800;color:var(--p-navy)}.ops-history summary::-webkit-details-marker{display:none}.ops-history summary span i{margin-right:8px;color:var(--p-blue)}.ops-history[open] summary>i{transform:rotate(180deg)}.ops-history-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--p-border);border-top:1px solid var(--p-border)}.ops-history-grid>div{background:#fff;padding:15px 18px;display:flex;flex-direction:column}.ops-history-grid span{font-size:.72rem;color:var(--p-muted)}.ops-history-grid b{font-size:.9rem;color:var(--p-navy);margin-top:3px}
@media(max-width:1199.98px){.ops-kpi-grid,.ops-finance-grid,.ops-mini-grid{grid-template-columns:repeat(2,1fr)}.ops-grid-primary,.ops-grid-secondary{grid-template-columns:1fr}.ops-history-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:767.98px){.ops-hero{align-items:flex-start;flex-direction:column;padding:24px}.ops-hero-actions{justify-content:flex-start}.ops-kpi-grid,.ops-finance-grid,.ops-mini-grid{grid-template-columns:1fr 1fr}.occupancy-stats{grid-template-columns:1fr}.ops-history-grid{grid-template-columns:1fr}}
@media(max-width:520px){.ops-kpi-grid,.ops-finance-grid,.ops-mini-grid{grid-template-columns:1fr}.ops-hero-actions .btn{width:100%}.ops-date{width:100%}.ops-panel{padding:16px}.ops-section-title{align-items:flex-start;flex-direction:column}.ops-table th,.ops-table td{padding-left:8px;padding-right:8px}}

/* ==========================================================
   EXECUTIVE DASHBOARD — analytics, alerts, period controls
   ========================================================== */
.dashboard-floating-sources{display:none!important}.ops-hero-executive{border:1px solid rgba(255,255,255,.08)}
.ops-period-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:17px 0 0;padding:12px 15px;border:1px solid var(--p-border);border-radius:13px;background:#fff;box-shadow:0 4px 16px rgba(15,35,55,.04)}.ops-period-bar>div:first-child{display:flex;flex-direction:column}.ops-period-bar strong{font-size:.79rem;color:var(--p-navy)}.ops-period-bar span{font-size:.7rem;color:var(--p-muted)}.ops-period-switch{display:flex;padding:3px;background:#eef3f7;border-radius:9px}.ops-period-switch a{padding:7px 11px;border-radius:7px;font-size:.72rem;font-weight:800;color:#64748b}.ops-period-switch a.active{background:#fff;color:var(--p-blue);box-shadow:0 2px 7px rgba(15,35,55,.09)}
.ops-exec-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:14px 0 17px}.ops-exec-kpi{display:flex;flex-direction:column;min-height:126px;padding:16px 17px;background:#fff;border:1px solid var(--p-border);border-radius:14px;color:var(--p-text);box-shadow:0 5px 18px rgba(15,35,55,.045);transition:.17s ease}.ops-exec-kpi:hover{color:var(--p-text);border-color:#b5ccde;transform:translateY(-2px);box-shadow:0 10px 25px rgba(15,35,55,.085)}.ops-exec-kpi .kpi-top{font-size:.72rem;font-weight:800;color:#69798c}.ops-exec-kpi .kpi-top i{width:21px;color:var(--p-blue)}.ops-exec-kpi>strong{font-size:1.5rem;color:var(--p-navy);line-height:1.15;margin:13px 0 4px}.ops-exec-kpi>small{font-size:.7rem;color:#8794a4}.ops-kpi-alert{border-left:3px solid #d79a34}.ops-kpi-alert .kpi-top i{color:#b7791f}
.ops-chip{display:inline-flex;padding:6px 9px;border-radius:99px;background:#edf5fb;color:var(--p-blue);font-size:.7rem;font-weight:800}.ops-trend-panel{min-width:0}.ops-bar-chart{height:220px;display:flex;align-items:stretch;gap:6px;padding:8px 2px 0;border-bottom:1px solid var(--p-border);overflow:hidden}.ops-bar-col{flex:1;min-width:5px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;position:relative}.ops-bar-value{font-size:.6rem;font-weight:750;color:#758397;margin-bottom:4px;white-space:nowrap}.ops-bar-track{width:min(72%,28px);height:160px;background:#eff4f8;border-radius:7px 7px 0 0;display:flex;align-items:flex-end;overflow:hidden}.ops-bar-track span{width:100%;min-height:2px;background:linear-gradient(180deg,#42a7c8,var(--p-blue));border-radius:7px 7px 0 0;transition:height .3s ease}.ops-bar-col small{height:23px;padding-top:6px;font-size:.58rem;color:#8794a4;white-space:nowrap}.ops-chart-legend{display:flex;justify-content:space-between;gap:12px;padding-top:10px;font-size:.68rem;color:var(--p-muted)}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--p-blue);margin-right:5px}
.ops-finance-warning{border-left:3px solid #d79a34}.ops-finance-warning strong{color:#9a6418}.ops-attention-panel{align-self:start}.ops-alert-row{display:flex;align-items:center;gap:11px;padding:11px 3px;border-bottom:1px solid #edf1f5;color:var(--p-text)}.ops-alert-row:last-child{border-bottom:0}.ops-alert-row:hover{color:var(--p-text);background:#fbfdff}.ops-alert-row>i{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#eef5fb;color:var(--p-blue)}.ops-alert-row.warning>i{background:#fff4e5;color:#b36a12}.ops-alert-row.good>i{background:#eaf8f1;color:var(--p-success)}.ops-alert-row span{display:flex;flex-direction:column;flex:1;min-width:0}.ops-alert-row b{font-size:.78rem}.ops-alert-row small{font-size:.68rem;color:var(--p-muted)}.ops-alert-row>strong{font-size:.75rem;color:var(--p-navy);white-space:nowrap}.ops-table-action{font-size:.7rem;font-weight:800;color:var(--p-blue)}
@media(max-width:1199.98px){.ops-exec-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:767.98px){.ops-period-bar{align-items:flex-start;flex-direction:column}.ops-exec-kpis{grid-template-columns:1fr 1fr}.ops-bar-value{display:none}.ops-bar-chart{gap:3px}.ops-bar-track{width:75%}.ops-chart-legend{flex-direction:column}}
@media(max-width:520px){.ops-exec-kpis{grid-template-columns:1fr}.ops-exec-kpi{min-height:112px}.ops-period-switch{width:100%}.ops-period-switch a{flex:1;text-align:center}}

/* ==========================================================
   DASHBOARD INFORMATION HIERARCHY — sectioned enterprise view
   ========================================================== */
.ops-dashboard-heading{display:flex;align-items:center;gap:13px;margin:30px 2px 12px;padding-top:3px}.ops-dashboard-heading:first-of-type{margin-top:20px}.ops-heading-icon{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border:1px solid #dbe5ec;border-radius:12px;background:#f7fafc;color:var(--p-blue);font-size:1rem}.ops-dashboard-heading>div:nth-child(2){min-width:0}.ops-dashboard-heading .ops-label{display:block;margin-bottom:2px;font-size:.66rem;font-weight:850;letter-spacing:.09em}.ops-dashboard-heading h2{margin:0;color:var(--p-navy);font-size:1.06rem;font-weight:850}.ops-dashboard-heading p{margin:3px 0 0;color:var(--p-muted);font-size:.73rem;line-height:1.4}.ops-heading-with-note .ops-section-note{margin-left:auto;align-self:flex-end;padding-bottom:3px}.ops-dashboard-heading+ .ops-exec-kpis,.ops-dashboard-heading+ .ops-grid,.ops-dashboard-heading+ .ops-finance-grid,.ops-dashboard-heading+ .ops-mini-grid{margin-top:0}.ops-dashboard-heading:not(:first-of-type){border-top:1px solid #e7edf2;padding-top:22px}.ops-dashboard-heading+.ops-grid-secondary{margin-top:0}
@media(max-width:767.98px){.ops-dashboard-heading{align-items:flex-start;margin-top:24px}.ops-heading-icon{width:38px;height:38px;flex-basis:38px}.ops-heading-with-note{flex-wrap:wrap}.ops-heading-with-note .ops-section-note{width:100%;margin-left:51px}}
@media(max-width:520px){.ops-dashboard-heading p{font-size:.7rem}.ops-dashboard-heading h2{font-size:.98rem}.ops-heading-icon{display:none}.ops-heading-with-note .ops-section-note{margin-left:0}}

/* PROPHET USER MENU V2 - dependency-free account menu */
.prophet-user-dropdown {
    position: relative !important;
    z-index: 5000 !important;
}
#prophetUserMenu {
    cursor: pointer !important;
    pointer-events: auto !important;
    position: relative !important;
    z-index: 5001 !important;
}
#prophetAccountMenu {
    position: absolute !important;
    top: calc(100% + 8px) !important;
    right: 0 !important;
    left: auto !important;
    min-width: 230px !important;
    padding: 8px !important;
    background: #fff !important;
    border: 1px solid rgba(0,0,0,.12) !important;
    border-radius: 12px !important;
    box-shadow: 0 12px 35px rgba(0,0,0,.18) !important;
    z-index: 99999 !important;
}
#prophetAccountMenu[hidden] {
    display: none !important;
}
#prophetAccountMenu:not([hidden]) {
    display: block !important;
}
#prophetAccountMenu .dropdown-item {
    display: block;
    width: 100%;
    padding: 10px 12px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    text-align: left;
    text-decoration: none;
}


/* =========================================================
   ENTERPRISE LEGACY PAGE NORMALIZATION
   Applies a polished, consistent presentation to existing
   Django pages without changing application behaviour.
   ========================================================= */

main, .main-content, .content-wrapper {
    min-width: 0;
}

main .container,
main .container-fluid,
.enterprise-content .container,
.enterprise-content .container-fluid {
    max-width: 1440px;
}

main h1, main h2, main h3,
.enterprise-content h1, .enterprise-content h2, .enterprise-content h3 {
    letter-spacing: -.02em;
}

main h1, .enterprise-content h1 {
    font-size: clamp(1.55rem, 2vw, 2.15rem);
    font-weight: 750;
    margin-bottom: 1.25rem;
}

main h2, .enterprise-content h2 {
    font-size: 1.25rem;
    font-weight: 700;
}

main .card, .enterprise-content .card {
    border: 1px solid rgba(15, 23, 42, .09);
    border-radius: 16px;
    box-shadow: 0 8px 28px rgba(15, 23, 42, .06);
    overflow: hidden;
}

main .card-header, .enterprise-content .card-header {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    background: #fff;
    font-weight: 700;
}

main .card-body, .enterprise-content .card-body {
    padding: 1.25rem;
}

main table, .enterprise-content table {
    width: 100%;
    vertical-align: middle;
}

main .table, .enterprise-content .table {
    margin-bottom: 0;
}

main .table thead th, .enterprise-content .table thead th {
    white-space: nowrap;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .045em;
    font-weight: 750;
    border-bottom-width: 1px;
}

main .table td, main .table th,
.enterprise-content .table td, .enterprise-content .table th {
    padding: .85rem .9rem;
}

main .table tbody tr:hover, .enterprise-content .table tbody tr:hover {
    background: rgba(15, 23, 42, .025);
}

main form:not(.navbar form) label,
.enterprise-content form:not(.navbar form) label {
    font-weight: 650;
    margin-bottom: .4rem;
}

main form:not(.navbar form) input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
main form:not(.navbar form) select,
main form:not(.navbar form) textarea,
.enterprise-content form:not(.navbar form) input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.enterprise-content form:not(.navbar form) select,
.enterprise-content form:not(.navbar form) textarea {
    border-radius: 10px;
    min-height: 42px;
}

main form:not(.navbar form) textarea,
.enterprise-content form:not(.navbar form) textarea {
    min-height: 110px;
}

main .btn, .enterprise-content .btn {
    border-radius: 9px;
    font-weight: 650;
}

main dl, .enterprise-content dl {
    margin-bottom: 0;
}

main dt, .enterprise-content dt {
    color: #64748b;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 750;
    margin-bottom: .2rem;
}

main dd, .enterprise-content dd {
    color: #0f172a;
    font-weight: 600;
    margin-bottom: 1rem;
}

main .list-group, .enterprise-content .list-group {
    border-radius: 14px;
    overflow: hidden;
}

main .list-group-item, .enterprise-content .list-group-item {
    padding: .9rem 1.1rem;
    border-color: rgba(15, 23, 42, .08);
}

/* Legacy detail templates frequently use plain paragraphs and strong labels. */
.enterprise-detail-auto {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .09);
    border-radius: 16px;
    box-shadow: 0 8px 28px rgba(15, 23, 42, .06);
    padding: clamp(1rem, 2vw, 1.5rem);
    margin-bottom: 1.25rem;
}

.enterprise-detail-auto > p {
    display: grid;
    grid-template-columns: minmax(150px, 28%) 1fr;
    gap: .75rem 1rem;
    padding: .75rem 0;
    margin: 0;
    border-bottom: 1px solid rgba(15, 23, 42, .07);
    text-align: left;
}

.enterprise-detail-auto > p:last-child {
    border-bottom: 0;
}

.enterprise-detail-auto > p > strong:first-child,
.enterprise-detail-auto > p > b:first-child {
    color: #64748b;
    font-size: .82rem;
    letter-spacing: .02em;
}

.enterprise-page-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    align-items: center;
    margin-top: 1.1rem;
}

@media (max-width: 767.98px) {
    .enterprise-detail-auto > p {
        grid-template-columns: 1fr;
        gap: .25rem;
    }
    main .card-body, .enterprise-content .card-body {
        padding: 1rem;
    }
}


/* ==========================================================
   FULL ENTERPRISE MODULE SYSTEM V4
   Scope: all application templates except homepage/dashboard.
   Organization palette: deep navy + gold accent + neutral slate.
   ========================================================== */
:root {
    --org-primary: #0b2a4a;
    --org-primary-2: #123f69;
    --org-accent: #c59a32;
    --org-accent-soft: #fff8e7;
    --org-ink: #122033;
    --org-muted: #64748b;
    --org-border: #dfe6ee;
    --org-surface: #ffffff;
    --org-surface-2: #f6f8fb;
    --org-success: #177245;
    --org-danger: #b42318;
    --org-warning: #9a6700;
}

.enterprise-module-page {
    width: 100%;
    max-width: 1480px;
    margin: 0 auto;
    padding: .25rem 0 1.75rem;
    text-align: left;
    color: var(--org-ink);
}
.enterprise-module-page > .container,
.enterprise-module-page > .container-fluid {
    width: 100%;
    max-width: none;
}
.enterprise-module-page h1 {
    color: var(--org-primary);
    font-size: clamp(1.55rem, 2.2vw, 2.15rem);
    font-weight: 800;
    letter-spacing: -.035em;
    margin-bottom: 1.25rem;
}
.enterprise-module-page h2 {
    color: var(--org-primary);
    font-size: 1.35rem;
    font-weight: 750;
    letter-spacing: -.02em;
}
.enterprise-module-page h3,
.enterprise-module-page h4 {
    color: var(--org-ink);
    font-weight: 700;
}
.enterprise-module-page .text-muted { color: var(--org-muted) !important; }

/* Enterprise cards/panels */
.enterprise-module-page .card,
.enterprise-module-page .jumbotron,
.enterprise-module-page fieldset,
.enterprise-module-page .panel {
    background: var(--org-surface);
    border: 1px solid var(--org-border) !important;
    border-radius: 14px !important;
    box-shadow: 0 8px 28px rgba(11,42,74,.065) !important;
}
.enterprise-module-page .card {
    overflow: hidden;
}
.enterprise-module-page .card-header {
    padding: 1rem 1.2rem;
    color: var(--org-primary);
    background: linear-gradient(180deg,#fff,#fbfcfe);
    border-bottom: 1px solid var(--org-border);
    font-weight: 750;
}
.enterprise-module-page .card-body { padding: 1.2rem; }
.enterprise-module-page .card-footer {
    padding: .9rem 1.2rem;
    background: var(--org-surface-2);
    border-top: 1px solid var(--org-border);
}

/* Tables */
.enterprise-module-page .table-responsive {
    border: 1px solid var(--org-border);
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(11,42,74,.045);
}
.enterprise-module-page table {
    width: 100%;
    margin-bottom: 0;
    vertical-align: middle;
}
.enterprise-module-page table thead th {
    padding: .82rem .9rem;
    color: #fff;
    background: var(--org-primary);
    border-color: rgba(255,255,255,.13);
    font-size: .76rem;
    font-weight: 750;
    letter-spacing: .045em;
    text-transform: uppercase;
    white-space: nowrap;
}
.enterprise-module-page table tbody td,
.enterprise-module-page table tbody th {
    padding: .82rem .9rem;
    color: #334155;
    border-color: #edf1f5;
}
.enterprise-module-page table tbody tr:nth-child(even) { background: #fbfcfd; }
.enterprise-module-page table tbody tr:hover { background: var(--org-accent-soft); }

/* Forms */
.enterprise-module-page form:not(.navbar form) label {
    color: #344256;
    font-size: .9rem;
    font-weight: 700;
    margin-bottom: .38rem;
}
.enterprise-module-page form:not(.navbar form) input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
.enterprise-module-page form:not(.navbar form) select,
.enterprise-module-page form:not(.navbar form) textarea,
.enterprise-module-page .form-control,
.enterprise-module-page .form-select {
    width: 100%;
    min-height: 43px;
    color: var(--org-ink);
    background: #fff;
    border: 1px solid #cfd8e3;
    border-radius: 9px;
    box-shadow: none;
}
.enterprise-module-page textarea { min-height: 115px !important; }
.enterprise-module-page .form-control:focus,
.enterprise-module-page .form-select:focus,
.enterprise-module-page input:focus,
.enterprise-module-page select:focus,
.enterprise-module-page textarea:focus {
    border-color: var(--org-primary-2);
    box-shadow: 0 0 0 .2rem rgba(18,63,105,.12);
    outline: 0;
}
.enterprise-module-page .helptext,
.enterprise-module-page .form-text {
    color: var(--org-muted);
    font-size: .82rem;
}
.enterprise-module-page .errorlist {
    color: var(--org-danger);
    margin: .35rem 0;
    padding-left: 1.1rem;
}

/* Buttons — organization palette */
.enterprise-module-page .btn {
    border-radius: 9px;
    font-weight: 700;
    letter-spacing: .005em;
    padding: .5rem .85rem;
    box-shadow: none;
}
.enterprise-module-page .btn-primary,
.enterprise-module-page .btn-info {
    color: #fff;
    background: var(--org-primary);
    border-color: var(--org-primary);
}
.enterprise-module-page .btn-primary:hover,
.enterprise-module-page .btn-info:hover {
    color: #fff;
    background: var(--org-primary-2);
    border-color: var(--org-primary-2);
}
.enterprise-module-page .btn-success {
    background: var(--org-success);
    border-color: var(--org-success);
}
.enterprise-module-page .btn-warning {
    color: #251b00;
    background: var(--org-accent);
    border-color: var(--org-accent);
}
.enterprise-module-page .btn-danger {
    background: var(--org-danger);
    border-color: var(--org-danger);
}
.enterprise-module-page .btn-outline-primary {
    color: var(--org-primary);
    border-color: var(--org-primary);
}
.enterprise-module-page .btn-outline-primary:hover {
    color: #fff;
    background: var(--org-primary);
}

/* Detail/read-only records */
.enterprise-module-page dl {
    display: grid;
    grid-template-columns: minmax(160px, 28%) minmax(0,1fr);
    margin: 0;
    border: 1px solid var(--org-border);
    border-radius: 12px;
    overflow: hidden;
}
.enterprise-module-page dt,
.enterprise-module-page dd {
    padding: .8rem 1rem;
    margin: 0;
    border-bottom: 1px solid #edf1f5;
}
.enterprise-module-page dt {
    color: var(--org-muted);
    background: var(--org-surface-2);
    font-size: .78rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .035em;
}
.enterprise-module-page dd {
    color: var(--org-ink);
    background: #fff;
    font-weight: 600;
}
.enterprise-module-page p > strong:first-child,
.enterprise-module-page p > b:first-child {
    color: var(--org-primary);
}

/* Status/UI */
.enterprise-module-page .badge {
    padding: .42em .68em;
    border-radius: 999px;
    font-weight: 700;
}
.enterprise-module-page .alert {
    border: 0;
    border-left: 4px solid var(--org-primary);
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(11,42,74,.04);
}
.enterprise-module-page .list-group {
    border: 1px solid var(--org-border);
    border-radius: 12px;
    overflow: hidden;
}
.enterprise-module-page .list-group-item {
    padding: .85rem 1rem;
    border-color: #edf1f5;
}
.enterprise-module-page .pagination { gap: .28rem; }
.enterprise-module-page .page-link {
    color: var(--org-primary);
    border-color: var(--org-border);
    border-radius: 8px !important;
}
.enterprise-module-page .page-item.active .page-link {
    color: #fff;
    background: var(--org-primary);
    border-color: var(--org-primary);
}

/* Images on detail/profile pages */
.enterprise-module-page img.img-thumbnail,
.enterprise-module-page .card img {
    border-color: var(--org-border);
    border-radius: 12px;
}

/* Old Bootstrap contextual backgrounds are normalized within module pages. */
.enterprise-module-page .bg-primary,
.enterprise-module-page .bg-info,
.enterprise-module-page .bg-dark {
    background-color: var(--org-primary) !important;
}
.enterprise-module-page .bg-warning { background-color: var(--org-accent) !important; }
.enterprise-module-page .text-primary { color: var(--org-primary) !important; }

/* Action grouping */
.enterprise-module-page .btn + .btn,
.enterprise-module-page a.btn + a.btn { margin-left: .3rem; }

/* Mobile */
@media (max-width: 767.98px) {
    .enterprise-module-page { padding-bottom: 1rem; }
    .enterprise-module-page .card-body { padding: 1rem; }
    .enterprise-module-page dl { grid-template-columns: 1fr; }
    .enterprise-module-page dt { border-bottom: 0; padding-bottom: .3rem; }
    .enterprise-module-page dd { padding-top: .3rem; }
    .enterprise-module-page table thead th,
    .enterprise-module-page table tbody td,
    .enterprise-module-page table tbody th { padding: .7rem; }
}

/* ===== Prophet enterprise normalization: 2026-09-26 ===== */
:root{--prophet-navy:#0b2d49;--prophet-navy-dark:#071f33;--prophet-gold:#c69a2b;--prophet-border:#dce4eb;--prophet-surface:#f7f9fb;--prophet-muted:#6b7785}
.prophet-main .card:not(.dashboard-card){border:1px solid var(--prophet-border)!important;border-radius:12px!important;box-shadow:0 10px 30px rgba(11,45,73,.08)!important;overflow:hidden}
.prophet-main .card-header:not(.dashboard-card .card-header){background:var(--prophet-navy)!important;color:#fff!important;border-bottom:0!important;padding:1rem 1.35rem!important}
.prophet-main .card-header h1,.prophet-main .card-header h2,.prophet-main .card-header h3,.prophet-main .card-header h4,.prophet-main .card-header h5{color:#fff!important;margin-bottom:0;font-weight:700}
.prophet-main .card-body{padding:1.35rem!important}
.prophet-main form label{color:#344556;font-size:.8rem;font-weight:700;margin-bottom:.38rem}
.prophet-main form .form-control,.prophet-main form .form-select,.prophet-main form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.prophet-main form select,.prophet-main form textarea{border:1px solid #ccd6df;border-radius:6px;min-height:42px;box-shadow:none;background:#fff}
.prophet-main form .form-control:focus,.prophet-main form .form-select:focus,.prophet-main form input:focus,.prophet-main form select:focus,.prophet-main form textarea:focus{border-color:#315b7d!important;box-shadow:0 0 0 3px rgba(49,91,125,.09)!important}
.prophet-main table{border-color:var(--prophet-border)!important}
.prophet-main table thead th{background:#eef3f7!important;color:var(--prophet-navy)!important;font-size:.74rem;text-transform:uppercase;letter-spacing:.035em;border-bottom:2px solid #cfd9e2!important;white-space:nowrap}
.prophet-main table tbody td{vertical-align:middle;border-color:#e8edf2!important}
.prophet-main .btn{border-radius:6px;font-weight:700;box-shadow:none}
.prophet-main .btn-primary{background:var(--prophet-navy);border-color:var(--prophet-navy)}
.prophet-main .btn-primary:hover{background:var(--prophet-navy-dark);border-color:var(--prophet-navy-dark)}
.prophet-main .btn-warning{background:var(--prophet-gold);border-color:var(--prophet-gold);color:#172433}
.prophet-main .pagination .page-link{color:var(--prophet-navy);border-color:var(--prophet-border)}
.prophet-main .pagination .active>.page-link,.prophet-main .pagination .page-item.active .page-link{background:var(--prophet-navy);border-color:var(--prophet-navy)}

/* Searchable native select enhancement (Select2-like, dependency-free). */
.prophet-select-search{position:relative;margin-bottom:.35rem}
.prophet-select-search input{width:100%;min-height:38px!important;padding:.45rem .75rem .45rem 2rem!important;border:1px solid #ccd6df!important;border-radius:6px!important;background:#fbfcfd!important;font-size:.82rem}
.prophet-select-search .fa-magnifying-glass{position:absolute;left:.72rem;top:50%;transform:translateY(-50%);color:#8795a3;font-size:.75rem;pointer-events:none}
.prophet-select-search .select-count{position:absolute;right:.65rem;top:50%;transform:translateY(-50%);color:#8795a3;font-size:.68rem;pointer-events:none}
.prophet-searchable-select{background-image:none!important}
.prophet-select-empty{font-size:.72rem;color:#9b2c2c;margin-top:.25rem;display:none}


/* PROPHET ENTERPRISE DESIGN SYSTEM V4 - 2026-09-26 */
:root{
 --prophet-navy:#0b2d49;--prophet-navy-2:#123f64;--prophet-blue:#1769c2;
 --prophet-gold:#c79a24;--prophet-green:#11885b;--prophet-red:#c93632;
 --prophet-purple:#7953c6;--prophet-bg:#f5f8fb;--prophet-surface:#fff;
 --prophet-line:#dfe7ee;--prophet-text:#19324a;--prophet-muted:#718095;
 --prophet-radius:10px;--prophet-shadow:0 8px 26px rgba(19,49,76,.07);
}
body{background:var(--prophet-bg);color:var(--prophet-text)}
#prophet-content{background:var(--prophet-bg)}
#prophet-content>.container,#prophet-content>.container-fluid,
.enterprise-module-page{max-width:1240px;margin-left:auto;margin-right:auto}
.enterprise-module-page{padding:1.25rem 1rem 2.5rem}

/* Page identity */
.enterprise-module-page>h1,.enterprise-module-page>h2,
#prophet-content>.container>h1,#prophet-content>.container>h2,
#prophet-content>.container-fluid>h1,#prophet-content>.container-fluid>h2{
 color:var(--prophet-navy);font-weight:800;letter-spacing:-.02em
}
.page-kicker{color:var(--prophet-blue)!important;font-size:.68rem!important;font-weight:800!important;
 text-transform:uppercase;letter-spacing:.09em}
.page-title{font-size:1.55rem!important;color:var(--prophet-navy)!important;font-weight:800!important}
.page-subtitle{color:var(--prophet-muted)!important;font-size:.8rem!important}

/* Standard operational cards become enterprise panels */
#prophet-content .card:not(.dashboard-card){
 border:1px solid var(--prophet-line)!important;border-radius:var(--prophet-radius)!important;
 box-shadow:var(--prophet-shadow)!important;background:#fff!important;overflow:hidden
}
#prophet-content .card-header:not(.bg-danger){
 background:var(--prophet-navy)!important;color:#fff!important;border:0!important;
 padding:1rem 1.25rem!important
}
#prophet-content .card-header h1,#prophet-content .card-header h2,
#prophet-content .card-header h3,#prophet-content .card-header h4,
#prophet-content .card-header h5{color:#fff!important;margin:0!important;font-weight:750!important}
#prophet-content .card-body{padding:1.25rem!important}
.enterprise-panel{border:1px solid var(--prophet-line)!important;border-radius:var(--prophet-radius)!important;
 box-shadow:var(--prophet-shadow)!important;background:#fff!important;padding:1.25rem!important}

/* Forms */
#prophet-content form label{font-size:.74rem;font-weight:750;color:#344b60;margin-bottom:.38rem}
#prophet-content .form-control,#prophet-content .form-select,
#prophet-content input[type="text"],#prophet-content input[type="email"],
#prophet-content input[type="number"],#prophet-content input[type="date"],
#prophet-content input[type="tel"],#prophet-content input[type="password"],
#prophet-content textarea,#prophet-content select{
 border:1px solid #cbd7e1!important;border-radius:7px!important;min-height:42px;
 box-shadow:none!important;background-color:#fff;color:#1b3348;font-size:.82rem
}
#prophet-content textarea{min-height:100px}
#prophet-content .form-control:focus,#prophet-content .form-select:focus,
#prophet-content input:focus,#prophet-content textarea:focus,#prophet-content select:focus{
 border-color:#3c719a!important;box-shadow:0 0 0 3px rgba(23,105,194,.09)!important
}
#prophet-content .form-text,#prophet-content .helptext{color:var(--prophet-muted);font-size:.68rem}
#prophet-content .asteriskField{color:var(--prophet-red)}

/* Buttons: consistent hierarchy */
#prophet-content .btn{border-radius:6px!important;font-size:.74rem;font-weight:750;padding:.5rem .82rem;box-shadow:none!important}
#prophet-content .btn-primary,#prophet-content .btn-success:not(.status-pill){
 background:var(--prophet-navy)!important;border-color:var(--prophet-navy)!important;color:#fff!important
}
#prophet-content .btn-primary:hover,#prophet-content .btn-success:hover{background:var(--prophet-navy-2)!important}
#prophet-content .btn-warning{background:#fff8e5!important;border-color:#dfc979!important;color:#69500c!important}
#prophet-content .btn-secondary{background:#fff!important;border-color:#cbd7e1!important;color:var(--prophet-navy)!important}
#prophet-content .btn-danger{background:var(--prophet-red)!important;border-color:var(--prophet-red)!important;color:#fff!important}

/* Tables */
#prophet-content .table-responsive{border:1px solid var(--prophet-line);border-radius:8px;overflow:auto;background:#fff}
#prophet-content table.table{margin:0!important;font-size:.76rem;color:var(--prophet-text)}
#prophet-content table.table thead th{
 background:var(--prophet-navy)!important;color:#fff!important;border:0!important;
 padding:.72rem .8rem!important;font-size:.65rem;text-transform:uppercase;letter-spacing:.035em;white-space:nowrap
}
#prophet-content table.table tbody td{padding:.68rem .8rem!important;border-color:#edf1f4!important;vertical-align:middle}
#prophet-content table.table-striped>tbody>tr:nth-of-type(even)>*{background:#fafcfd!important}
#prophet-content table.table tbody tr:hover>*{background:#f2f7fb!important}

/* Lists/details */
#prophet-content .list-group{border:1px solid var(--prophet-line);border-radius:8px;overflow:hidden}
#prophet-content .list-group-item{border-color:#edf1f4;padding:.75rem 1rem}
#prophet-content .list-group-item:hover{background:#f6f9fb}
#prophet-content .badge{border-radius:5px;font-weight:750;font-size:.65rem}
#prophet-content hr{border-color:var(--prophet-line);opacity:1}

/* Filters/search blocks */
#prophet-content form[method="get"],#prophet-content form[method="GET"]{
 background:#fff;border:1px solid var(--prophet-line);border-radius:9px;padding:1rem;
 box-shadow:0 3px 12px rgba(19,49,76,.035);margin-bottom:1rem
}

/* Pagination */
#prophet-content .pagination{gap:4px}
#prophet-content .page-link{border:1px solid var(--prophet-line);border-radius:6px!important;color:var(--prophet-navy);font-size:.72rem}
#prophet-content .page-item.active .page-link{background:var(--prophet-navy);border-color:var(--prophet-navy)}

/* Searchable-select control */
.prophet-combobox{position:relative}
.prophet-combobox-native{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important}
.prophet-combobox-button{width:100%;min-height:42px;background:#fff;border:1px solid #cbd7e1;border-radius:7px;
 display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;color:#1b3348;font-size:.82rem;text-align:left}
.prophet-combobox-button:focus{outline:0;border-color:#3c719a;box-shadow:0 0 0 3px rgba(23,105,194,.09)}
.prophet-combobox-button .placeholder{color:#8492a2}
.prophet-combobox-menu{display:none;position:absolute;z-index:1060;left:0;right:0;top:calc(100% + 5px);
 background:#fff;border:1px solid #cbd7e1;border-radius:8px;box-shadow:0 14px 30px rgba(15,42,64,.14);overflow:hidden}
.prophet-combobox.open .prophet-combobox-menu{display:block}
.prophet-combobox-search{padding:9px;border-bottom:1px solid #edf1f4;position:relative}
.prophet-combobox-search i{position:absolute;left:20px;top:22px;color:#8392a2;font-size:.72rem}
.prophet-combobox-search input{width:100%;height:36px!important;min-height:36px!important;padding-left:31px!important}
.prophet-combobox-options{max-height:250px;overflow:auto;padding:5px}
.prophet-combobox-option{display:block;width:100%;border:0;background:#fff;text-align:left;padding:8px 10px;border-radius:5px;
 color:#263e54;font-size:.78rem;cursor:pointer}
.prophet-combobox-option:hover,.prophet-combobox-option.active{background:#edf5fb;color:#0c4d7b}
.prophet-combobox-option.selected{background:#e7f1f9;font-weight:750;color:var(--prophet-navy)}
.prophet-combobox-empty{padding:14px;text-align:center;color:var(--prophet-muted);font-size:.74rem}

/* Modals and alerts */
#prophet-content .modal-content{border:0;border-radius:10px;box-shadow:0 18px 45px rgba(13,39,60,.18)}
#prophet-content .modal-header{background:var(--prophet-navy);color:#fff;border:0}
#prophet-content .alert{border-radius:8px;font-size:.78rem}

/* Detail-page visual hierarchy */
#prophet-content .enterprise-detail-auto .row{row-gap:1rem}
#prophet-content .enterprise-detail-auto h3,#prophet-content .enterprise-detail-auto h4,
#prophet-content .enterprise-detail-auto h5{color:var(--prophet-navy);font-weight:800}
#prophet-content .enterprise-detail-auto p{margin-bottom:.55rem;font-size:.79rem}
#prophet-content .enterprise-detail-auto img{border:1px solid var(--prophet-line);box-shadow:0 5px 16px rgba(17,46,69,.08)}

/* Delete/confirmation pages */
#prophet-content form[action*="delete"],#prophet-content .delete-confirmation{max-width:760px;margin:auto}
#prophet-content .text-danger{color:#b42318!important}

/* Responsive operational shell */
@media(max-width:767px){
 .enterprise-module-page{padding:.8rem .55rem 2rem}
 #prophet-content .card-body,.enterprise-panel{padding:1rem!important}
 #prophet-content .btn{width:auto}
 #prophet-content table.table{font-size:.72rem}
}

/* ==========================================================
   PROPHET ENTERPRISE DESIGN SYSTEM V5
   Universal template alignment based on administrator/detail
   ========================================================== */
:root{
    --ae-navy:#0b2d49;
    --ae-navy-dark:#072238;
    --ae-navy-light:#123f64;
    --ae-blue:#1769c2;
    --ae-gold:#c79a24;
    --ae-green:#11885b;
    --ae-red:#c93632;
    --ae-purple:#7953c6;
    --ae-text:#19324a;
    --ae-muted:#718095;
    --ae-border:#dfe7ee;
    --ae-bg:#f5f8fb;
    --ae-white:#fff;
}

/* Global page shell: every template rendered through base.html gets this surface. */
.enterprise-page-shell{
    width:100%;
    max-width:1240px;
    margin:0 auto;
    color:var(--ae-text);
    font-size:.88rem;
}
.enterprise-page-shell>.enterprise-module-page,
.enterprise-page-shell>.container,
.enterprise-page-shell>.container-fluid,
.enterprise-template-root .enterprise-content-container{
    width:100%!important;
    max-width:1240px!important;
    margin-left:auto!important;
    margin-right:auto!important;
}
.enterprise-page-shell>.container,
.enterprise-page-shell>.container-fluid{
    padding-left:0!important;
    padding-right:0!important;
}
.enterprise-template-root{min-width:0}
.enterprise-module-page{max-width:1240px!important}

/* Strong, consistent focus treatment for keyboard users. */
.enterprise-page-shell a:focus-visible,
.enterprise-page-shell button:focus-visible,
.enterprise-page-shell input:focus-visible,
.enterprise-page-shell select:focus-visible,
.enterprise-page-shell textarea:focus-visible,
.prophet-float-rail .float-action:focus-visible{
    outline:3px solid rgba(23,105,194,.22)!important;
    outline-offset:2px;
}

/* Heading hierarchy mirrors the accepted administrator detail page. */
.enterprise-page-shell h1,
.enterprise-page-shell h2,
.enterprise-page-shell h3,
.enterprise-page-shell h4,
.enterprise-page-shell h5{
    color:var(--ae-navy);
}
.enterprise-page-shell h1{font-weight:800;letter-spacing:-.025em}
.enterprise-page-shell h2,
.enterprise-page-shell h3{font-weight:800}
.enterprise-page-shell .text-primary{color:var(--ae-blue)!important}
.enterprise-page-shell .text-secondary{color:var(--ae-navy)!important}
.enterprise-page-shell .text-muted{color:var(--ae-muted)!important}

/* Cards/panels: subdued borders and compact enterprise spacing. */
.enterprise-page-shell .card,
.enterprise-page-shell .enterprise-panel,
.enterprise-page-shell .content-panel{
    border:1px solid var(--ae-border)!important;
    border-radius:10px!important;
    background:#fff!important;
    box-shadow:0 8px 26px rgba(19,49,76,.07)!important;
}
.enterprise-page-shell .card-header{
    background:var(--ae-navy)!important;
    color:#fff!important;
    border:0!important;
    padding:13px 16px!important;
}
.enterprise-page-shell .card-header *{color:#fff!important}
.enterprise-page-shell .card-body{padding:18px!important}
.enterprise-page-shell .shadow-lg,
.enterprise-page-shell .shadow-sm{box-shadow:0 8px 26px rgba(19,49,76,.07)!important}
.enterprise-page-shell [style*="border-radius: 15px"],
.enterprise-page-shell [style*="border-radius:15px"]{border-radius:10px!important}

/* Neutralize legacy bright inline card/header styling. */
.enterprise-page-shell .card-header[style*="background"],
.enterprise-page-shell .input-group-text[style*="background"]{
    background:var(--ae-navy)!important;
    color:#fff!important;
}
.enterprise-page-shell .input-group-text{
    min-width:42px;
    justify-content:center;
    border-color:#cbd7e1!important;
    border-radius:7px 0 0 7px!important;
    font-weight:800;
}

/* Detail pages: a compact identity band and information rows, matching the admin profile language. */
.enterprise-detail-page .enterprise-primary-card>.card-body>h1:first-child,
.enterprise-detail-page .enterprise-primary-card>.card-body>h2:first-child,
.enterprise-detail-page .enterprise-primary-card>.card-body>h3:first-child,
.enterprise-detail-page .enterprise-primary-card>.card-body>h4:first-child,
.enterprise-detail-page .enterprise-primary-card>.card-body>.text-center:first-child h1,
.enterprise-detail-page .enterprise-primary-card>.card-body>.text-center:first-child h2,
.enterprise-detail-page .enterprise-primary-card>.card-body>.text-center:first-child h3{
    margin:-18px -18px 18px!important;
    padding:18px 20px!important;
    background:linear-gradient(110deg,var(--ae-navy),#0b416b)!important;
    color:#fff!important;
    text-align:left!important;
    font-size:1.35rem!important;
    border-radius:9px 9px 0 0;
}
.enterprise-detail-page .enterprise-primary-card>.card-body>p,
.enterprise-detail-page .enterprise-detail-auto .card-body>p{
    display:grid;
    grid-template-columns:minmax(135px, .42fr) minmax(0, 1fr);
    gap:14px;
    align-items:start;
    margin:0!important;
    padding:10px 2px;
    border-bottom:1px solid #edf1f4;
    line-height:1.45;
}
.enterprise-detail-page .enterprise-primary-card>.card-body>p:last-of-type,
.enterprise-detail-page .enterprise-detail-auto .card-body>p:last-of-type{border-bottom:0}
.enterprise-detail-page .card-body>p strong:first-child{color:#30485e;font-weight:800}
.enterprise-detail-page .list-group{
    box-shadow:none!important;
    border:1px solid var(--ae-border)!important;
    border-radius:9px!important;
}
.enterprise-detail-page .list-group-item{
    display:grid;
    grid-template-columns:minmax(130px,.45fr) minmax(0,1fr);
    gap:14px;
    color:var(--ae-text)!important;
    padding:11px 14px!important;
}
.enterprise-detail-page .list-group-item strong{color:#30485e}
.enterprise-detail-page img.card-img-top{
    max-height:320px!important;
    object-fit:cover!important;
    border-bottom:1px solid var(--ae-border);
}
.enterprise-detail-page .card-body>.text-center.mt-4,
.enterprise-detail-page .card-body>.d-flex.justify-content-center{
    border-top:1px solid var(--ae-border);
    margin-top:18px!important;
    padding-top:15px;
}

/* Forms: consistent compact controls and structured action row. */
.enterprise-form-page .enterprise-panel,
.enterprise-form-page .enterprise-primary-card{
    max-width:1000px;
}
.enterprise-form-page form:not(.d-inline):not(.navbar-form){
    background:#fff;
}
.enterprise-form-page form .row{row-gap:6px}
.enterprise-page-shell form label{
    color:#344b60!important;
    font-size:.74rem!important;
    font-weight:750!important;
}
.enterprise-page-shell .form-control,
.enterprise-page-shell .form-select,
.enterprise-page-shell input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
.enterprise-page-shell select,
.enterprise-page-shell textarea{
    min-height:42px;
    border:1px solid #cbd7e1!important;
    border-radius:7px!important;
    background:#fff!important;
    color:#1b3348!important;
    font-size:.82rem!important;
    box-shadow:none!important;
}
.enterprise-page-shell textarea{min-height:105px}
.enterprise-page-shell input:focus,
.enterprise-page-shell select:focus,
.enterprise-page-shell textarea:focus{
    border-color:#3c719a!important;
    box-shadow:0 0 0 3px rgba(23,105,194,.09)!important;
}
.enterprise-page-shell .form-text,
.enterprise-page-shell .helptext{font-size:.68rem;color:var(--ae-muted)!important}
.enterprise-page-shell .invalid-feedback{font-size:.7rem}
.enterprise-form-page form>.d-flex:last-child,
.enterprise-form-page form>.text-center:last-child{
    border-top:1px solid var(--ae-border);
    padding-top:15px;
}

/* Buttons use the same restrained hierarchy as administrator/detail. */
.enterprise-page-shell .btn{
    border-radius:6px!important;
    font-size:.74rem!important;
    font-weight:800!important;
    padding:.52rem .82rem!important;
    transition:background .15s ease,border-color .15s ease,transform .15s ease!important;
}
.enterprise-page-shell .btn:hover{transform:translateY(-1px)}
.enterprise-page-shell .btn-primary,
.enterprise-page-shell .btn-success{
    background:var(--ae-navy)!important;
    border-color:var(--ae-navy)!important;
    color:#fff!important;
}
.enterprise-page-shell .btn-primary:hover,
.enterprise-page-shell .btn-success:hover{background:var(--ae-navy-dark)!important;border-color:var(--ae-navy-dark)!important}
.enterprise-page-shell .btn-secondary,
.enterprise-page-shell .btn-light{
    background:#fff!important;
    border-color:#cbd7e1!important;
    color:var(--ae-navy)!important;
}
.enterprise-page-shell .btn-warning{
    background:#fff8e5!important;
    border-color:#dfc979!important;
    color:#69500c!important;
}
.enterprise-page-shell .btn-danger{
    background:var(--ae-red)!important;
    border-color:var(--ae-red)!important;
    color:#fff!important;
}
.enterprise-page-shell .btn-lg{font-size:.84rem!important;padding:.68rem 1rem!important}

/* Data/list pages. */
.enterprise-list-page .enterprise-content-container,
.enterprise-data-page .enterprise-content-container{
    background:#fff;
    border:1px solid var(--ae-border);
    border-radius:10px;
    box-shadow:0 8px 26px rgba(19,49,76,.055);
    padding:20px!important;
}
.enterprise-list-page form[method="get"],
.enterprise-list-page form[method="GET"]{
    background:#f8fafc!important;
    box-shadow:none!important;
}
.enterprise-page-shell .list-group{
    box-shadow:none!important;
    border:1px solid var(--ae-border)!important;
    border-radius:9px!important;
}
.enterprise-page-shell .list-group-item{
    border-color:#edf1f4!important;
    color:var(--ae-text)!important;
}
.enterprise-page-shell .list-group-item:hover{
    background:#f6f9fb!important;
    color:var(--ae-blue)!important;
}
.enterprise-page-shell .badge{
    border-radius:5px!important;
    font-size:.65rem!important;
    font-weight:800!important;
}
.enterprise-page-shell .bg-primary{background:var(--ae-blue)!important}

/* Any bare table receives an enterprise frame even when the old template omitted table-responsive. */
.enterprise-page-shell table{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
}
.enterprise-page-shell table:not(.table){
    background:#fff;
    border:1px solid var(--ae-border);
    border-radius:8px;
    overflow:hidden;
    font-size:.76rem;
}
.enterprise-page-shell table:not(.table) th{
    background:var(--ae-navy);
    color:#fff;
    padding:10px 12px;
    font-size:.66rem;
    text-transform:uppercase;
    letter-spacing:.035em;
}
.enterprise-page-shell table:not(.table) td{padding:10px 12px;border-bottom:1px solid #edf1f4}
.enterprise-page-shell .enterprise-unwrapped-table{display:block;overflow-x:auto;white-space:nowrap}
.enterprise-page-shell .table-responsive{border-color:var(--ae-border)!important}

/* Dashboard/summary pages get clean KPI cards without changing their data logic. */
.enterprise-dashboard-page .row{row-gap:16px}
.enterprise-dashboard-page .card{
    height:100%;
    position:relative;
}
.enterprise-dashboard-page .card:before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:3px;
    background:var(--ae-blue);
    z-index:2;
}
.enterprise-dashboard-page .card-header{
    background:#fff!important;
    color:var(--ae-navy)!important;
    border-bottom:1px solid var(--ae-border)!important;
}
.enterprise-dashboard-page .card-header *{color:var(--ae-navy)!important}
.enterprise-dashboard-page .card-body>.card-text:only-child,
.enterprise-dashboard-page .card-body>p:first-child:last-child{
    margin:0;
    color:var(--ae-navy);
    font-size:1.35rem!important;
    font-weight:800;
    font-variant-numeric:tabular-nums;
}

/* Delete pages remain clearly destructive, but visually part of the same system. */
.enterprise-delete-page .enterprise-panel,
.enterprise-delete-page .card{max-width:760px;margin-left:auto;margin-right:auto}
.enterprise-delete-page .module-icon{border:1px solid #f1c8cb}
.enterprise-delete-page form{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
.enterprise-delete-shell{max-width:700px;margin:clamp(18px,5vh,58px) auto;padding:0 12px}
.enterprise-delete-page .enterprise-delete-panel{overflow:hidden;padding:0!important;border-color:#e4e9ef;border-radius:20px;box-shadow:0 18px 48px rgba(16,42,67,.09)}
.enterprise-delete-heading{display:flex;align-items:center;gap:16px;padding:25px 28px;border-bottom:1px solid #edf0f3;background:linear-gradient(135deg,#fff,#fbfcfe)}
.enterprise-delete-icon{display:grid;width:54px;height:54px;flex:0 0 54px;place-items:center;border:1px solid #f1c8cb;border-radius:16px;background:#fff0f1;color:#b4232d;font-size:1.25rem}
.enterprise-delete-page .page-kicker{margin-bottom:4px;color:#9b3942;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.enterprise-delete-page .page-title{margin:0;color:#172b3d;font-size:clamp(1.3rem,3vw,1.7rem);font-weight:850;letter-spacing:-.025em}
.enterprise-delete-record{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 28px;padding:15px 17px;border:1px solid #e5eaf0;border-radius:12px;background:#f8fafc}
.enterprise-delete-record-label{color:#64748b;font-size:.74rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}
.enterprise-delete-record strong{color:#182f43;font-size:.98rem;text-align:right;overflow-wrap:anywhere}
.enterprise-delete-notice{display:flex;align-items:flex-start;gap:12px;margin:0 28px;padding:15px 17px;border:1px solid #f2d2a4;border-radius:12px;background:#fff8e9;color:#67491c}
.enterprise-delete-notice>i{margin-top:3px;color:#a76a08}
.enterprise-delete-notice p{margin:0;font-size:.86rem;line-height:1.6}
.enterprise-delete-notice-protected{border-color:#cfe3f2;background:#f2f8fc;color:#294b64}
.enterprise-delete-notice-protected>i{color:#1769aa}
.enterprise-delete-page form.enterprise-delete-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:24px;padding:18px 28px 24px!important;border-top:1px solid #edf0f3!important}
.enterprise-delete-actions .btn{min-height:43px;padding:10px 16px;font-weight:750}
@media(max-width:575.98px){.enterprise-delete-heading{align-items:flex-start;padding:21px 19px}.enterprise-delete-record{align-items:flex-start;flex-direction:column;margin:18px 19px}.enterprise-delete-record strong{text-align:left}.enterprise-delete-notice{margin:0 19px}.enterprise-delete-page form.enterprise-delete-actions{padding:16px 19px 20px!important}.enterprise-delete-actions .btn{width:100%}}

/* Floating rail: Back + Up + Down are a deliberate navigation group. */
.prophet-float-rail [data-prophet-top]{
    margin-top:2px;
    border-top:1px solid var(--ae-border);
}
.prophet-float-rail [data-prophet-down]{margin-top:-4px}
.prophet-float-rail [data-prophet-back],
.prophet-float-rail [data-prophet-top],
.prophet-float-rail [data-prophet-down]{background:#f7f9fc}
.prophet-float-rail [data-prophet-down]:hover,
.prophet-float-rail [data-prophet-down]:focus{background:var(--ae-navy);color:#fff}

/* Account menu gets the same enterprise shell. */
.prophet-user-dropdown{position:relative}
.prophet-account-menu{
    position:absolute;
    right:0;
    top:calc(100% + 8px);
    min-width:215px;
    padding:7px;
    background:#fff;
    border:1px solid var(--ae-border);
    border-radius:9px;
    box-shadow:0 16px 38px rgba(15,35,55,.16);
    z-index:1080;
}
.prophet-account-menu .dropdown-item{border-radius:6px;padding:9px 10px;font-size:.78rem;font-weight:650;color:var(--ae-text)}
.prophet-account-menu .dropdown-item:hover{background:#f2f6f9;color:var(--ae-blue)}

/* Empty states and alerts. */
.enterprise-page-shell .alert{border:1px solid transparent!important;border-radius:8px!important;box-shadow:none!important;font-size:.78rem}
.enterprise-page-shell .alert-warning{border-color:#eddba4!important}
.enterprise-page-shell .alert-danger{border-color:#efc4c4!important;background:#fff5f5!important;color:#8d2626!important}
.enterprise-page-shell .alert-success{border-color:#bfe2d3!important;background:#f0faf6!important;color:#126646!important}

/* Responsive behavior. */
@media(max-width:991.98px){
    .enterprise-page-shell{font-size:.86rem}
    .enterprise-list-page .enterprise-content-container,
    .enterprise-data-page .enterprise-content-container{padding:16px!important}
}
@media(max-width:767.98px){
    .enterprise-page-shell{max-width:100%}
    .enterprise-detail-page .enterprise-primary-card>.card-body>p,
    .enterprise-detail-page .enterprise-detail-auto .card-body>p,
    .enterprise-detail-page .list-group-item{grid-template-columns:1fr;gap:3px}
    .enterprise-form-page .row>[class*="col-"]{width:100%}
    .enterprise-page-shell .d-flex.justify-content-between{gap:8px;flex-wrap:wrap}
}
@media(max-width:575.98px){
    .enterprise-page-shell .card-body{padding:14px!important}
    .enterprise-detail-page .enterprise-primary-card>.card-body>h1:first-child,
    .enterprise-detail-page .enterprise-primary-card>.card-body>h2:first-child,
    .enterprise-detail-page .enterprise-primary-card>.card-body>h3:first-child,
    .enterprise-detail-page .enterprise-primary-card>.card-body>h4:first-child{
        margin:-14px -14px 14px!important;
        padding:15px!important;
        font-size:1.15rem!important;
    }
    .enterprise-page-shell .btn{white-space:normal}
}

@media(prefers-reduced-motion:reduce){
    *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

@media print{
    .prophet-navbar,.prophet-float-rail,.prophet-footer,.htmx-progress{display:none!important}
    .prophet-main{padding:0!important;max-width:none!important}
    .enterprise-page-shell .card,.enterprise-page-shell .enterprise-panel{box-shadow:none!important}
    .enterprise-page-shell a{color:inherit!important;text-decoration:none!important}
}
.enterprise-form-layout .ae-breadcrumb{display:flex;align-items:center;gap:8px;color:#64758a;font-size:.78rem}
.enterprise-form-layout .ae-breadcrumb a{color:var(--ae-navy);font-weight:700}
.enterprise-form-layout .enterprise-page-header{padding:18px 20px;background:linear-gradient(110deg,var(--ae-navy),#0b416b);border-radius:10px;color:#fff}
.enterprise-form-layout .enterprise-page-header .page-kicker{color:#d8b34e!important}
.enterprise-form-layout .enterprise-page-header .page-title{color:#fff!important;margin:.25rem 0!important}
.enterprise-form-layout .enterprise-page-header .page-subtitle{color:#dce7ef!important}
.enterprise-form-panel{border-radius:10px!important}
.enterprise-danger-icon{background:#fff0f1!important;color:var(--ae-red)!important}
body>.prophet-navbar+.prophet-main{padding-top:100px}

/* V5 finishing rules for legacy list/dashboard/auth templates. */
.enterprise-list-page .enterprise-content-container>.text-center:first-child,
.enterprise-list-page .enterprise-content-container>.mb-4.text-center:first-child{
    margin:-20px -20px 18px!important;
    padding:16px 20px!important;
    background:linear-gradient(110deg,var(--ae-navy),#0b416b);
    border-radius:9px 9px 0 0;
    text-align:left!important;
}
.enterprise-list-page .enterprise-content-container>.text-center:first-child h1,
.enterprise-list-page .enterprise-content-container>.mb-4.text-center:first-child h1{
    margin:0!important;
    color:#fff!important;
    font-size:1.35rem!important;
}
.enterprise-list-page .enterprise-content-container>.text-center:first-child h1:after,
.enterprise-list-page .enterprise-content-container>.mb-4.text-center:first-child h1:after{
    margin:8px 0 0!important;
    background:var(--ae-gold)!important;
}
.enterprise-dashboard-page .enterprise-content-container>h1:first-child,
.enterprise-dashboard-page>.container>h1:first-child,
.enterprise-form-page .enterprise-content-container>h1:first-child{
    padding:15px 18px;
    background:linear-gradient(110deg,var(--ae-navy),#0b416b);
    color:#fff!important;
    border-radius:9px;
    font-size:1.35rem!important;
}
.enterprise-page-shell img.img-fluid{
    border-radius:10px!important;
    border:1px solid var(--ae-border);
    box-shadow:0 8px 24px rgba(19,49,76,.08)!important;
}
.prophet-float-rail{
    max-height:calc(100vh - 110px);
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
}
@media(max-width:991.98px){
    .enterprise-list-page .enterprise-content-container>.text-center:first-child,
    .enterprise-list-page .enterprise-content-container>.mb-4.text-center:first-child{margin:-16px -16px 16px!important}
}

/* =========================================================
   ENTERPRISE SHELL V6 — reliable page-bottom/footer layout
   ========================================================= */
html {
    min-height: 100%;
}
body {
    min-height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}
@supports (min-height: 100dvh) {
    body { min-height: 100dvh !important; }
}
body > .prophet-main {
    flex: 1 0 auto !important;
    width: 100%;
}
body > .prophet-footer {
    margin-top: auto !important;
    flex: 0 0 auto !important;
    width: 100%;
    position: relative;
    z-index: 2;
}
/* Give the bottom control an explicit, stable hit target. */
.prophet-float-rail [data-prophet-down] {
    cursor: pointer;
    pointer-events: auto;
}


/* ENTERPRISE SHELL V7 — canonical document flow and native bottom navigation */
html {
    min-height: 100%;
    scroll-behavior: smooth;
}
body {
    min-height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow-x: hidden;
}
@supports (min-height: 100dvh) {
    body { min-height: 100dvh !important; }
}
body > .prophet-main {
    flex: 1 0 auto !important;
    width: 100% !important;
    min-height: 0;
    margin-bottom: 0 !important;
}
body > .prophet-footer {
    flex: 0 0 auto !important;
    width: 100% !important;
    margin: auto 0 0 !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
}
.prophet-float-rail [data-prophet-down] {
    cursor: pointer !important;
    pointer-events: auto !important;
    position: relative;
    z-index: 2;
}
#prophetFooter {
    scroll-margin-top: 90px;
}


/* =========================================================
   ENTERPRISE SHELL V8 — true viewport foot + unified rail hover
   ========================================================= */
:root {
    --prophet-footer-height: 58px;
}

/* Base application uses a fixed top navbar. Give main an explicit viewport
   floor so the site footer can never rise into the middle of a short page. */
body.prophet-fixed-shell {
    min-height: 100vh !important;
    min-height: 100dvh !important;
    display: flex !important;
    flex-direction: column !important;
}
body.prophet-fixed-shell > .prophet-main {
    box-sizing: border-box !important;
    min-height: calc(100vh - var(--prophet-footer-height)) !important;
    min-height: calc(100dvh - var(--prophet-footer-height)) !important;
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
body.prophet-fixed-shell > .prophet-main > .enterprise-page-shell {
    width: 100% !important;
    flex: 1 0 auto !important;
    min-height: 0 !important;
}
body.prophet-fixed-shell > .prophet-footer {
    width: 100% !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
}

/* Payment/gateway bases keep their navbar in normal flow and use flex fill. */
body.prophet-flow-shell {
    min-height: 100vh !important;
    min-height: 100dvh !important;
    display: flex !important;
    flex-direction: column !important;
}
body.prophet-flow-shell > .prophet-main {
    flex: 1 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
}
body.prophet-flow-shell > .prophet-main > .enterprise-page-shell {
    flex: 1 0 auto !important;
    width: 100% !important;
}
body.prophet-flow-shell > .prophet-footer {
    flex: 0 0 auto !important;
    margin-top: auto !important;
    position: static !important;
}

/* Back, Up and Down must look and behave exactly like every other rail item. */
.prophet-float-rail .float-action[data-prophet-back],
.prophet-float-rail .float-action[data-prophet-top],
.prophet-float-rail .float-action[data-prophet-down] {
    background: #f5f8fb !important;
    color: var(--p-navy) !important;
    border: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
}
.prophet-float-rail .float-action[data-prophet-back]:hover,
.prophet-float-rail .float-action[data-prophet-back]:focus,
.prophet-float-rail .float-action[data-prophet-back]:focus-visible,
.prophet-float-rail .float-action[data-prophet-top]:hover,
.prophet-float-rail .float-action[data-prophet-top]:focus,
.prophet-float-rail .float-action[data-prophet-top]:focus-visible,
.prophet-float-rail .float-action[data-prophet-down]:hover,
.prophet-float-rail .float-action[data-prophet-down]:focus,
.prophet-float-rail .float-action[data-prophet-down]:focus-visible {
    transform: translateX(-3px) !important;
    background: var(--p-navy) !important;
    color: #fff !important;
    box-shadow: 0 8px 20px rgba(11,31,51,.2) !important;
    outline: 0 !important;
    opacity: 1 !important;
}
.prophet-float-rail .float-action[data-prophet-back] i,
.prophet-float-rail .float-action[data-prophet-top] i,
.prophet-float-rail .float-action[data-prophet-down] i {
    color: currentColor !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Fragment scrolling is no longer used for the Down control. */
#prophetFooter { scroll-margin-top: 0 !important; }


/* Enterprise UI hardening layer */
.container-fluid, .container { width:100%; }
.prophet-main > * { max-width:100%; }
.page-header, .dashboard-header, .content-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    flex-wrap:wrap;
    margin-bottom:1.5rem;
}
.page-title { color:var(--p-navy); }
.text-center-card {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
}
.form-card, .table-card, .dashboard-card {
    background:var(--p-surface);
    border:1px solid var(--p-border);
    border-radius:16px;
    box-shadow:var(--p-shadow);
    padding:1.5rem;
    margin-bottom:1.25rem;
}
form p { margin-bottom:1rem; }
form label {
    display:block;
    font-weight:700;
    color:var(--p-navy);
    margin-bottom:.35rem;
}
input, select, textarea, .form-control {
    width:100%;
    min-height:44px;
    border:1px solid var(--p-border);
    border-radius:10px;
    padding:.65rem .8rem;
    background:#fff;
    color:var(--p-text);
}
input:focus, select:focus, textarea:focus, .form-control:focus {
    outline:none;
    border-color:var(--p-blue);
    box-shadow:0 0 0 .2rem rgba(23,105,170,.12);
}
.btn {
    border-radius:10px;
    font-weight:700;
    padding:.6rem 1rem;
}
.table-responsive {
    width:100%;
    overflow-x:auto;
    border-radius:12px;
}
table.table {
    width:100%;
    margin:0;
    background:#fff;
}
table.table thead th {
    background:#f8fafc;
    color:var(--p-navy);
    font-weight:800;
    white-space:nowrap;
    border-bottom:2px solid var(--p-border);
}
table.table td, table.table th {
    padding:.85rem 1rem;
    vertical-align:middle;
}
table.table tbody tr:hover {
    background:#f8fbff;
}
.dashboard-grid, .card-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:1.25rem;
}
.empty-state {
    padding:3rem 1rem;
    text-align:center;
    color:var(--p-muted);
}
.modal-content {
    border:0;
    border-radius:18px;
    box-shadow:var(--p-shadow-lg);
}
@media(max-width:768px){
    .prophet-main { padding:90px 14px 30px; }
    .card-body, .enterprise-panel, .form-card { padding:1rem; }
    .page-title { font-size:1.5rem; }
    .table-card { overflow:hidden; }
}

/* Keep the fixed quick-navigation rail above page content and tappable after
   scrolling, including when a small viewport needs to scroll the rail itself. */
.prophet-float-rail {
    z-index: 1045 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    max-height: calc(100vh - 24px) !important;
    max-height: calc(100dvh - 24px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    isolation: isolate;
}
.prophet-float-rail .float-action {
    position: relative;
    z-index: 1;
    pointer-events: auto !important;
    touch-action: manipulation;
}
@media (max-height: 620px) {
    .prophet-float-rail { gap: 5px !important; padding: 6px !important; }
    .prophet-float-rail #prophetDynamicActions { gap: 5px !important; }
    .prophet-float-rail .float-action { width: 38px; height: 38px; }
}
.navbar-brand .brand-name {
    color: #fff;
    font-size: 1.04rem;
    font-weight: 750;
    letter-spacing: .025em;
    line-height: 1.2;
    white-space: nowrap;
}
.navbar-brand:focus-visible {
    outline: 2px solid var(--p-gold);
    outline-offset: 4px;
    border-radius: 4px;
}
/* ===============================
   STAYNORTHGHANA PLATFORM LOGO
   =============================== */

.platform-logo {
    height: 48px;
    width: auto;
    display: block;
    object-fit: contain;
}

.navbar-brand {
    padding: 0;
}

.navbar-brand:hover {
    opacity: .9;
}


@media(max-width:768px){

    .platform-logo {
        height:40px;
    }

}


/* ===================================
   SENIOR STAFF ATTENDANCE
=================================== */


.attendance-header{

display:flex;
justify-content:space-between;
align-items:flex-end;
gap:2rem;
margin-bottom:2rem;

}



.hotel-context-badge{

display:inline-flex;
align-items:center;
gap:.6rem;

padding:.7rem 1.2rem;

background:#eef4f7;

border-radius:999px;

font-weight:700;

color:#082b49;

}




.attendance-filter-panel{

padding:1.5rem;

}



.attendance-filter-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(180px,1fr));

gap:1rem;

align-items:end;

}



.attendance-filter-btn{

height:42px;

padding:0 1.5rem;

}

.attendance-date-input{
max-width:260px;
margin:0 0 1.25rem;
}

.attendance-date-input .form-control{
min-height:42px;
}

.season-attendance-panel{
margin-top:1.5rem;
}

.attendance-report-note{
color:#64748b;
font-size:.84rem;
margin:1rem 0 0;
}

.attendance-progress-line{
width:100%;
height:7px;
overflow:hidden;
background:#e9eef3;
border-radius:999px;
margin:0 0 .35rem;
}

.attendance-progress-line span{
display:block;
height:100%;
background:#16a34a;
border-radius:inherit;
}

.attendance-stat-text{
font-size:1.15rem !important;
line-height:1.35;
}

.compact-empty-state{
padding:1.5rem 1rem;
}






.staff-attendance-stats{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:1rem;

margin-bottom:2rem;

}




.staff-attendance-stat{


background:white;

border:1px solid #e5edf3;

border-radius:18px;

padding:1.3rem;

box-shadow:0 10px 25px rgba(0,0,0,.04);

}




.staff-attendance-stat span{

font-size:.85rem;

font-weight:700;

color:#64748b;

}



.staff-attendance-stat strong{

display:block;

font-size:2.2rem;

font-weight:800;

color:#082b49;

margin:.4rem 0;

}



.staff-attendance-stat small{

color:#64748b;

}



.present-card{

border-left:5px solid #16a34a;

}



.absent-card{

border-left:5px solid #dc2626;

}



.pending-card{

border-left:5px solid #f59e0b;

}







.register-header{

display:flex;

justify-content:space-between;

align-items:center;

margin-bottom:1.5rem;

}




.date-pill{

background:#f1f5f9;

padding:.6rem 1rem;

border-radius:999px;

font-weight:600;

}





.staff-attendance-table{

border-radius:15px;

overflow:hidden;

}



.staff-attendance-table thead th{

background:#082b49;

color:white;

font-size:.75rem;

text-transform:uppercase;

padding:1rem;

}



.staff-attendance-table td{

padding:1rem;

}

.staff-attendance-table tbody tr:hover{
background:#f8fafc;
}

.staff-attendance-table .form-check-input{
width:1.15rem;
height:1.15rem;
cursor:pointer;
}



.attendance-present{

color:#15803d;

font-weight:700;

}



.attendance-absent{

color:#dc2626;

font-weight:700;

}



.attendance-pending{

color:#d97706;

font-weight:700;

}




.attendance-footer{

display:flex;

justify-content:space-between;

align-items:center;

margin-top:1.5rem;

}




@media(max-width:992px){

.staff-attendance-stats{

grid-template-columns:repeat(2,1fr);

}


.attendance-filter-grid{

grid-template-columns:1fr;

}

}




@media(max-width:576px){

.staff-attendance-stats{

grid-template-columns:1fr;

}




.attendance-header{

flex-direction:column;

align-items:flex-start;

}


.attendance-footer{

flex-direction:column;

gap:1rem;

align-items:flex-start;

}

}

/* Keep the StayNorthGhana workspace navigation consistent with the white public header. */
body .prophet-navbar {
    background: #fff !important;
    border-bottom: 1px solid #e4eaf0;
    box-shadow: 0 4px 18px rgba(15, 35, 55, .09);
}

body .prophet-navbar .navbar-brand,
body .prophet-navbar .navbar-brand:hover,
body .prophet-navbar .navbar-brand:focus {
    color: var(--p-navy) !important;
}

body .prophet-navbar .navbar-brand small {
    color: var(--p-muted);
}

body .prophet-navbar .navbar-nav .nav-link {
    color: #31465a !important;
}

body .prophet-navbar .navbar-nav .nav-link:hover,
body .prophet-navbar .navbar-nav .nav-link:focus {
    background: #f1f5f8;
    color: var(--p-navy) !important;
}

body .prophet-navbar .navbar-toggler {
    border-color: #d8e1e8;
    background: #fff;
}

body .prophet-navbar .user-chip {
    background: #f3f6f8 !important;
}

body .prophet-navbar .btn-light {
    border-color: #d8e1e8;
    background: #f3f6f8;
    color: var(--p-navy);
}
