@font-face{font-family:AgapeAvant;src:url('../Fonts/AvantGardeBookBT.ttf')}@font-face{font-family:AgapeAvant;font-weight:800;src:url('../Fonts/AvantGardeDemiBT.ttf')}
*{box-sizing:border-box}body{margin:0;font-family:AgapeAvant,Arial,sans-serif;color:#172033;background:#edf5ff;min-height:100vh}body:before{content:"";position:fixed;inset:0;background:url('../agape/agape_background_mark.png') no-repeat center 58%;background-size:min(760px,70vw);opacity:.16;pointer-events:none}
a{color:#2f6fed;text-decoration:none}.top-shell{position:sticky;top:0;z-index:20;margin:16px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;background:rgba(255,255,255,.93);border:1px solid #d7e2f2;border-radius:20px;box-shadow:0 16px 45px rgba(61,86,121,.12);backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:18px}.brand img{height:70px;max-width:310px;object-fit:contain}.brand strong{display:block;font-size:22px}.brand span{display:block;color:#2f6fed;font-weight:800;margin-top:4px}.user-box{display:flex;align-items:center;gap:12px;font-weight:800}
.module-nav{position:sticky;top:116px;z-index:19;margin:0 16px 18px;padding:10px;display:flex;gap:8px;overflow:visible;background:rgba(255,255,255,.94);border:1px solid #d7e2f2;border-radius:18px;box-shadow:0 12px 30px rgba(61,86,121,.09)}
.nav-group{position:relative}.nav-group>.nav-group-toggle{display:block;border:0;background:transparent;border-radius:12px;padding:13px 18px;font:inherit;font-weight:900;color:#172033;cursor:pointer}.nav-group.active>.nav-group-toggle,.nav-group:hover>.nav-group-toggle{background:#e8f1ff;color:#2f6fed}.nav-group>.nav-direct{text-decoration:none}.nav-menu{display:none;position:absolute;top:100%;left:0;min-width:230px;background:#fff;border:1px solid #d7e2f2;border-radius:16px;padding:10px;box-shadow:0 20px 45px rgba(61,86,121,.18)}.nav-group:hover .nav-menu{display:grid;gap:5px}.nav-menu a{display:block;padding:12px 14px;border-radius:12px;color:#172033;font-weight:800}.nav-menu a.active,.nav-menu a:hover{background:#eef5ff;color:#2f6fed}
.page-wrap{position:relative;padding:10px 24px 50px}.page-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:18px 0}.page-title h1{font-size:34px;margin:0}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{background:rgba(255,255,255,.95);border:1px solid #d7e2f2;border-radius:16px;padding:20px;box-shadow:0 14px 40px rgba(61,86,121,.10)}.metric{border-top:4px solid #2f6fed}.grid .metric:nth-child(even){border-top-color:#dc7eb8}.grid .metric:nth-child(odd){border-top-color:#2f6fed}.metric strong{font-size:34px;display:block;margin-top:10px}.metric span{font-weight:900;color:#657289}.muted-field{opacity:.55}.muted-field input,.muted-field select{background:#eef4fb}
.table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #d7e2f2;border-radius:14px;overflow:visible}.table th,.table td{text-align:left;padding:16px 18px;border-bottom:1px solid #e5edf7}.table th{background:#eaf2fc;color:#34435a;font-weight:900}.table tr:last-child td{border-bottom:0}.table td.actions,.table td:last-child{padding-top:18px;padding-bottom:18px}
.jobs-table{table-layout:fixed}.jobs-table th:nth-child(1){width:46px}.jobs-table th:nth-child(2){width:100px}.jobs-table th:nth-child(3){width:130px}.jobs-table th:nth-child(4){width:280px}.jobs-table th:nth-child(5){width:150px}.jobs-table th:nth-child(6){width:130px}.jobs-table th:nth-child(7){width:60px}.jobs-table th:nth-child(8){width:130px}.jobs-table th:nth-child(9){width:160px}.jobs-table th:nth-child(10){width:120px}.jobs-table th:nth-child(11){width:210px}.jobs-table td{vertical-align:middle}.jobs-table .status{white-space:normal;line-height:1.1;max-width:118px;text-align:center;justify-content:center}.job-type-cell{line-height:1.2}.job-actions,.table td.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.compact-actions{align-items:center}.job-actions .stacked-action{width:320px}.job-actions .btn,.table td.actions .btn{margin:0}.action-row{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}.job-view-panel{gap:8px;text-align:left}.job-filters .btn{min-width:0}.nested-action{right:auto;left:0;top:40px}.section-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.section-heading h2{margin-bottom:4px}.section-heading p{margin-top:0;color:#657289}.dashboard-metrics .metric strong{font-size:30px}.dashboard-stats .grid.cols-2{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-chart{border:1px solid #d7e2f2;background:#f8fbff;border-radius:14px;padding:14px;min-height:210px}.stat-chart h3{margin:0 0 10px;font-size:16px}.mini-chart{width:100%;height:150px;display:block}.mini-chart text{font:800 10px AgapeAvant,Arial,sans-serif;fill:#657289}.mini-chart .chart-value{fill:#172033}.employee-tabs{display:flex;gap:10px;flex-wrap:wrap}.payroll-capture-page{overflow:auto}.payroll-capture input{min-width:120px}.payroll-actions select{max-width:180px}.payroll-actions input{max-width:130px}.login-card .btn[type=submit]{margin-top:18px;width:100%}.form-page{max-width:1180px;margin:0 auto}.form-page .card{padding:26px}.form-section-title{margin:0 0 14px;color:#657289;font-size:15px;text-transform:uppercase;letter-spacing:.04em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-radius:10px;border:1px solid #cbd8ea;background:#fff;color:#172033;font:inherit;font-weight:900;cursor:pointer;margin:2px 0}.btn.primary{background:#2f6fed;border-color:#2f6fed;color:#fff}.btn.success{background:#12a66a;border-color:#12a66a;color:#fff}.btn.danger{background:#dc2626;border-color:#dc2626;color:#fff}.btn.warning{background:#f59e0b;border-color:#f59e0b;color:#fff}.btn.ghost{background:#f8fbff}.btn.small{min-height:34px;padding:0 12px;font-size:13px}
.fire-request-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.fire-request-actions details{position:relative}.fire-request-actions summary{list-style:none}.fire-request-actions summary::-webkit-details-marker{display:none}.fire-request-actions .stacked-action{position:absolute;right:0;top:42px;z-index:30;width:320px;background:#fff;border:1px solid #d7e2f2;border-radius:14px;padding:14px;box-shadow:0 18px 38px rgba(38,65,105,.16)}.fire-request-actions .stacked-action textarea{min-height:90px}
form.inline{display:inline-flex;align-items:center;gap:10px;margin:0}details{display:inline-block;position:relative;margin:0}summary{list-style:none}summary::-webkit-details-marker{display:none}.stacked-action{position:absolute;right:0;top:44px;z-index:18;display:grid;gap:12px;width:320px;padding:16px;background:#fff;border:1px solid #d7e2f2;border-radius:14px;box-shadow:0 18px 45px rgba(61,86,121,.2)}label{display:block;font-weight:900;margin:14px 0 7px}input,select,textarea{width:100%;border:1px solid #cbd8ea;border-radius:10px;min-height:42px;padding:9px 11px;font:inherit;background:#fff}textarea{resize:none;min-height:92px}input[type=file]::file-selector-button{border:0;border-radius:9px;background:#2f6fed;color:#fff;font:inherit;font-weight:900;padding:8px 12px;margin-right:10px}.form-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:4px}.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.card>.actions,.panel-body>.actions,form>.actions{margin-top:16px}.status{display:inline-flex;border-radius:999px;padding:5px 10px;font-weight:900;font-size:12px}.status.green{background:#dcfce7;color:#166534}.status.red{background:#fee2e2;color:#991b1b}.status.blue{background:#dbeafe;color:#1d4ed8}.status.orange{background:#ffedd5;color:#9a3412}
.flash{padding:13px 15px;border-radius:12px;margin:12px 0;font-weight:900}.flash.success{background:#dcfce7;color:#166534}.flash.danger{background:#fee2e2;color:#991b1b}.flash.info{background:#dbeafe;color:#1d4ed8}
.login-screen{display:grid;place-items:center;padding:24px}.login-card{position:relative;z-index:1;width:min(430px,100%);background:#fff;border:1px solid #d7e2f2;border-radius:24px;padding:28px;box-shadow:0 22px 55px rgba(61,86,121,.16)}.login-card img{display:block;width:270px;max-width:100%;margin:0 auto 18px}.login-card h1{text-align:center;margin:0 0 18px}
.agape-login{min-height:100vh;display:grid;grid-template-columns:minmax(460px,1.18fr) minmax(440px,.82fr);padding:0;background:#f3f7fc;overflow:hidden}.agape-login:before{display:none}.login-hero-panel{position:relative;min-height:100vh;padding:70px min(6vw,86px);display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 78% 42%,rgba(47,111,237,.32),transparent 28%),linear-gradient(135deg,rgba(220,38,38,.18),transparent 28%),linear-gradient(145deg,#06121e,#0a1b2c 48%,#07111d);color:#fff;overflow:hidden}.login-hero-panel:before{content:"";position:absolute;inset:0;background:url('../agape/agape_background_mark.png') no-repeat 88% 42%;background-size:min(620px,62vw);opacity:.08;filter:grayscale(1) brightness(2.2)}.login-hero-panel:after{content:"";position:absolute;inset:auto -12% -22% 34%;height:58%;background:radial-gradient(ellipse at center,rgba(47,111,237,.20),transparent 64%);transform:rotate(-9deg)}.login-hero-brand{position:relative;z-index:2;margin-bottom:64px}.login-hero-brand img{width:min(370px,70%);filter:drop-shadow(0 20px 38px rgba(0,0,0,.38))}.login-hero-copy{position:relative;z-index:2;max-width:650px}.login-hero-copy small,.login-card small{display:block;color:#2f9cff;font-size:12px;font-weight:900;letter-spacing:.22em;text-transform:uppercase;margin-bottom:18px}.login-hero-copy h1{font-size:clamp(48px,5.2vw,78px);line-height:.98;letter-spacing:0;margin:0 0 24px;color:#fff}.login-hero-copy p{max-width:620px;margin:0;color:#d6e9ff;font-size:18px;line-height:1.65}.login-hero-meta{margin-top:52px;display:flex;align-items:center;gap:12px;color:#d9ecff;font-weight:900}.login-hero-meta span{width:14px;height:14px;border-radius:50%;background:#12a66a;box-shadow:0 0 0 7px rgba(18,166,106,.16)}.fire-network{position:absolute;z-index:1;right:0;top:18%;width:min(560px,54%);height:52%;opacity:.48}.fire-network:before,.fire-network:after,.fire-network span{content:"";position:absolute;border:1px solid rgba(93,159,255,.45);border-radius:12px;background:rgba(255,255,255,.035);box-shadow:0 0 34px rgba(47,111,237,.25)}.fire-network:before{left:16%;top:22%;width:72%;height:34%}.fire-network:after{left:34%;top:42%;width:58%;height:28%}.fire-network span:nth-child(1){left:4%;top:10%;width:64%;height:16%}.fire-network span:nth-child(2){left:24%;bottom:7%;width:30%;height:17%}.fire-network span:nth-child(3){right:2%;top:34%;width:18%;height:46%}.fire-network span:nth-child(4){left:0;bottom:23%;width:18%;height:18%}.login-form-panel{position:relative;min-height:100vh;display:grid;place-items:center;padding:42px;background:linear-gradient(135deg,#f8fbff,#edf3fa)}.login-form-panel:before{content:"";position:absolute;right:-190px;top:18%;width:620px;height:620px;background:url('../agape/agape_background_mark.png') no-repeat center;background-size:contain;opacity:.045}.agape-login .login-card{width:min(430px,100%);padding:40px 38px;border-radius:12px;border-color:#e2e9f3;box-shadow:0 18px 48px rgba(52,67,90,.12);text-align:left}.agape-login .login-card img{width:190px;margin:0 auto 28px}.agape-login .login-card h1{text-align:left;font-size:34px;margin:0 0 12px;font-weight:400}.agape-login .login-card p{margin:0 0 28px;color:#657289;line-height:1.5}.agape-login .login-card label{font-size:13px;margin-top:20px}.agape-login .login-card input{min-height:52px;border-radius:9px;background:#f7fbff}.agape-login .login-card input:focus{background:#eef5ff}.agape-login .login-card .btn[type=submit]{min-height:52px;border-radius:9px;margin-top:22px}.login-secure-note{margin-top:24px;padding-top:22px;border-top:1px solid #dfe7f2;color:#657289;font-size:12px;line-height:1.55}
.modal{position:fixed;inset:0;z-index:50;background:rgba(23,32,51,.48);display:grid;place-items:center;padding:20px;backdrop-filter:blur(7px)}.modal[hidden]{display:none}.modal-card{width:min(520px,100%);background:#fff;border-radius:24px;padding:28px;box-shadow:0 24px 70px rgba(0,0,0,.28);text-align:center;border:1px solid #d7e2f2}.modal-icon{width:74px;height:74px;border-radius:24px;margin:0 auto 16px;display:grid;place-items:center;font-size:42px;font-weight:900}.modal-card.success .modal-icon{background:#dcfce7;color:#12a66a}.modal-card.danger .modal-icon{background:#fee2e2;color:#dc2626}.modal-card.warning .modal-icon{background:#ffedd5;color:#f59e0b}.modal-card.info .modal-icon{background:#dbeafe;color:#2f6fed}.modal-card h3{font-size:26px;margin:0 0 10px}.modal-card p{font-size:17px;line-height:1.45;color:#657289;margin:0 0 22px}.modal-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.loading-overlay{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;overflow:hidden;padding:24px;background:radial-gradient(circle at 50% 42%,rgba(83,143,232,.18),transparent 30%),linear-gradient(145deg,#f7faff 0%,#eaf3ff 48%,#fdf8fc 100%);backdrop-filter:blur(14px);opacity:1;transition:opacity .48s ease,visibility .48s ease}.loading-overlay[hidden]{display:none}.loading-overlay.is-exiting{opacity:0;visibility:hidden}.loader-atmosphere{position:absolute;inset:0;pointer-events:none}.loader-atmosphere:before{content:"";position:absolute;inset:-20%;background-image:linear-gradient(rgba(74,134,220,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(74,134,220,.045) 1px,transparent 1px);background-size:54px 54px;mask-image:radial-gradient(circle,#000 0%,transparent 66%);animation:loaderGrid 18s linear infinite}.loader-atmosphere>i{position:absolute;border-radius:50%;filter:blur(3px);opacity:.7;animation:loaderFloat 8s ease-in-out infinite}.loader-atmosphere>i:nth-child(1){width:34vw;height:34vw;min-width:320px;min-height:320px;left:-12%;top:-18%;background:radial-gradient(circle,rgba(65,130,224,.15),transparent 68%)}.loader-atmosphere>i:nth-child(2){width:27vw;height:27vw;min-width:250px;min-height:250px;right:-7%;bottom:-14%;background:radial-gradient(circle,rgba(223,121,179,.18),transparent 68%);animation-delay:-3s}.loader-atmosphere>i:nth-child(3){width:16vw;height:16vw;min-width:170px;min-height:170px;right:18%;top:9%;background:radial-gradient(circle,rgba(89,151,235,.11),transparent 70%);animation-delay:-5s}.loading-card{position:relative;width:min(480px,calc(100% - 24px));padding:48px 48px 34px;overflow:hidden;text-align:center;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.95);border-radius:34px;box-shadow:0 34px 90px rgba(45,82,137,.18),inset 0 0 0 1px rgba(102,154,226,.08);transform:translateY(0) scale(1);animation:loaderCardIn .75s cubic-bezier(.2,.8,.2,1) both}.loading-card:before{content:"";position:absolute;left:-55%;top:0;width:42%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);transform:skewX(-17deg);animation:loaderSweep 2.8s ease-in-out infinite}.loader-brand-stage{position:relative;width:270px;height:122px;margin:0 auto 22px;display:grid;place-items:center}.loader-logo-shell{position:relative;z-index:2;width:238px;padding:20px 22px;background:rgba(255,255,255,.9);border:1px solid rgba(78,137,220,.16);border-radius:24px;box-shadow:0 18px 44px rgba(59,111,185,.14);animation:loaderLogo 3.2s ease-in-out infinite}.loader-logo-shell img{display:block;width:100%;height:auto}.loader-orbit{position:absolute;left:50%;top:50%;border:1px solid rgba(73,133,220,.25);border-radius:50%;transform:translate(-50%,-50%)}.loader-orbit:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#df79b3;box-shadow:0 0 18px rgba(223,121,179,.85)}.orbit-one{width:292px;height:112px;animation:loaderOrbit 5s linear infinite}.orbit-one:after{left:16px;top:16px}.orbit-two{width:258px;height:142px;border-color:rgba(223,121,179,.23);animation:loaderOrbitReverse 6.5s linear infinite}.orbit-two:after{right:18px;bottom:20px;background:#4d8bdc;box-shadow:0 0 18px rgba(77,139,220,.75)}.loader-kicker{display:block;margin-bottom:9px;color:#3977ce;font-size:11px;font-weight:950;letter-spacing:.2em}.loading-card strong{display:block;margin:0;color:#172033;font-size:25px;line-height:1.2;letter-spacing:-.02em}.loading-card>span{display:block;margin-top:9px;color:#6c7890;font-size:14px;font-weight:750}.loader-progress{position:relative;height:5px;margin:27px 0 18px;overflow:hidden;border-radius:99px;background:#e4edf9}.loader-progress i{position:absolute;inset:0 auto 0 0;width:38%;border-radius:inherit;background:linear-gradient(90deg,#397ce0,#72a5ee 58%,#df79b3);box-shadow:0 0 16px rgba(63,127,221,.4);animation:loaderProgress 1.55s cubic-bezier(.65,0,.35,1) infinite}.loader-status{display:flex;align-items:center;justify-content:center;gap:9px;color:#8390a7;font-size:9px;font-weight:950;letter-spacing:.17em}.loader-status>span{color:inherit}.loader-status b{display:flex;gap:4px}.loader-status b i{width:4px;height:4px;border-radius:50%;background:#4d8bdc;animation:loaderDot 1.2s ease-in-out infinite}.loader-status b i:nth-child(2){animation-delay:.16s}.loader-status b i:nth-child(3){animation-delay:.32s}.loading-overlay.is-working .loader-progress i{animation-duration:1.05s}
@keyframes loaderCardIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes loaderSweep{0%,28%{left:-55%}72%,100%{left:125%}}@keyframes loaderLogo{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes loaderOrbit{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes loaderOrbitReverse{to{transform:translate(-50%,-50%) rotate(-360deg)}}@keyframes loaderProgress{0%{left:-42%;width:38%}55%{width:55%}100%{left:105%;width:38%}}@keyframes loaderDot{0%,100%{opacity:.3;transform:scale(.75)}50%{opacity:1;transform:scale(1.25)}}@keyframes loaderFloat{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(18px,-14px,0) scale(1.05)}}@keyframes loaderGrid{to{transform:translate3d(54px,54px,0)}}

/* Keep the animated brand artwork in its own roomy, clipped stage so the
   orbits never pass over the loader wording. */
.loading-card{
    width:min(560px,calc(100% - 24px));
    padding:42px 52px 38px;
}
.loader-brand-stage{
    width:380px;
    height:190px;
    margin:0 auto 14px;
    overflow:hidden;
    isolation:isolate;
}
.loader-logo-shell{width:250px}
.loader-brand-stage .orbit-one{width:342px;height:126px}
.loader-brand-stage .orbit-two{width:304px;height:166px}
.loader-kicker,
.loading-card>strong,
.loading-card>span,
.loader-progress,
.loader-status{position:relative;z-index:3}
.loader-kicker{margin-top:0}
@media(max-width:560px){.loading-card{padding:32px 24px 28px;border-radius:28px}.loader-brand-stage{width:min(300px,100%);height:158px;margin-bottom:12px}.loader-logo-shell{width:215px;padding:17px 19px}.loader-brand-stage .orbit-one{width:282px;height:108px}.loader-brand-stage .orbit-two{width:250px;height:142px}.loading-card strong{font-size:22px}}
@media(prefers-reduced-motion:reduce){.loader-atmosphere:before,.loader-atmosphere>i,.loading-card,.loading-card:before,.loader-logo-shell,.loader-orbit,.loader-progress i,.loader-status b i{animation-duration:.001ms!important;animation-iteration-count:1!important}}

/* Cinematic system entrance shown before the secure login screen. */
body.entrance-active{overflow:hidden}.system-entrance{position:fixed;inset:0;z-index:2400;display:grid;place-items:center;overflow:hidden;background:#07152d;color:#fff;opacity:1;transition:opacity .9s cubic-bezier(.4,0,.2,1),filter .9s ease}.system-entrance.is-leaving{opacity:0;filter:blur(5px);pointer-events:none}.entrance-sky{position:absolute;inset:0;background:radial-gradient(circle at 50% 43%,rgba(75,137,226,.25),transparent 30%),radial-gradient(circle at 78% 22%,rgba(222,117,179,.13),transparent 25%),linear-gradient(145deg,#061124 0%,#0b2142 54%,#10192f 100%)}.entrance-sky:before{content:"";position:absolute;inset:-30%;background:conic-gradient(from 180deg at 50% 50%,transparent 0 18%,rgba(75,138,225,.08) 24%,transparent 31% 60%,rgba(222,117,179,.07) 68%,transparent 76%);animation:entranceAurora 13s linear infinite}.entrance-sky>i{position:absolute;border-radius:50%;filter:blur(2px);opacity:.55;animation:entranceDrift 7s ease-in-out infinite}.entrance-sky>i:nth-child(1){width:42vw;height:42vw;left:-20vw;top:-19vw;background:radial-gradient(circle,rgba(71,139,233,.22),transparent 67%)}.entrance-sky>i:nth-child(2){width:34vw;height:34vw;right:-13vw;bottom:-17vw;background:radial-gradient(circle,rgba(222,117,179,.2),transparent 67%);animation-delay:-3.5s}.entrance-sky>i:nth-child(3){width:18vw;height:18vw;right:14vw;top:6vh;background:radial-gradient(circle,rgba(86,151,239,.15),transparent 68%);animation-delay:-5s}.entrance-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(140,182,240,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(140,182,240,.045) 1px,transparent 1px);background-size:70px 70px;mask-image:linear-gradient(to bottom,transparent 4%,#000 45%,transparent 96%);transform:perspective(700px) rotateX(58deg) scale(1.8) translateY(20%);transform-origin:bottom;animation:entranceGrid 8s linear infinite}.entrance-horizon{position:absolute;left:8%;right:8%;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(113,170,244,.42),rgba(230,129,186,.35),transparent);box-shadow:0 0 30px rgba(83,147,235,.28);transform:scaleX(0);transition:transform 1.8s .25s cubic-bezier(.2,.8,.2,1)}.system-entrance.is-running .entrance-horizon{transform:scaleX(1)}.entrance-content{position:relative;width:min(830px,calc(100% - 42px));display:grid;justify-items:center;text-align:center;transform:translateY(14px) scale(.985);opacity:0;transition:opacity 1s .15s ease,transform 1.25s .15s cubic-bezier(.16,1,.3,1)}.system-entrance.is-running .entrance-content{opacity:1;transform:translateY(0) scale(1)}.entrance-emblem{position:relative;width:360px;height:152px;display:grid;place-items:center;margin-bottom:26px}.entrance-logo{position:relative;z-index:2;width:306px;padding:24px 28px;border-radius:28px;background:rgba(255,255,255,.96);box-shadow:0 25px 80px rgba(0,0,0,.34),0 0 65px rgba(81,147,235,.13);overflow:hidden}.entrance-logo:after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent);transform:skewX(-18deg);animation:entranceShine 2.9s 1s ease-in-out infinite}.entrance-logo img{display:block;width:100%;height:auto}.entrance-ring{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%);border:1px solid rgba(119,174,245,.28)}.entrance-ring:after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:#ea84bd;box-shadow:0 0 22px #ea84bd}.ring-a{width:386px;height:130px;animation:entranceOrbit 6s linear infinite}.ring-a:after{left:27px;top:17px}.ring-b{width:340px;height:176px;border-color:rgba(231,132,189,.23);animation:entranceOrbitBack 8s linear infinite}.ring-b:after{right:24px;bottom:24px;background:#69a7f4;box-shadow:0 0 22px #69a7f4}.entrance-copy small{display:block;color:#8fbdf8;font-size:11px;font-weight:950;letter-spacing:.3em;margin-bottom:14px}.entrance-copy h1{margin:0;color:#f8fbff;font-size:clamp(38px,5vw,67px);font-weight:780;line-height:1.02;letter-spacing:-.045em;text-shadow:0 8px 35px rgba(0,0,0,.28)}.entrance-copy h1 em{font-style:normal;background:linear-gradient(90deg,#8cbcf9,#f09acb);-webkit-background-clip:text;background-clip:text;color:transparent}.entrance-copy p{margin:18px 0 0;color:#b8c8df;font-size:clamp(14px,1.5vw,18px);font-weight:650;letter-spacing:.01em}.entrance-rail{width:min(430px,75vw);height:2px;margin:34px auto 17px;overflow:hidden;background:rgba(143,189,248,.14)}.entrance-rail i{display:block;width:34%;height:100%;background:linear-gradient(90deg,transparent,#70acf7,#ee8fc5,transparent);filter:drop-shadow(0 0 8px #70acf7);animation:entranceRail 1.45s cubic-bezier(.65,0,.35,1) infinite}.entrance-ready{display:flex;align-items:center;gap:9px;color:#7589a6;font-size:9px;font-weight:950;letter-spacing:.23em}.entrance-ready span{width:6px;height:6px;border-radius:50%;background:#55dfae;box-shadow:0 0 12px rgba(85,223,174,.8);animation:entrancePulse 1.5s ease-in-out infinite}
@keyframes entranceAurora{to{transform:rotate(360deg)}}@keyframes entranceDrift{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(25px,-18px,0) scale(1.06)}}@keyframes entranceGrid{to{background-position:0 70px,70px 0}}@keyframes entranceShine{0%,26%{left:-60%}70%,100%{left:130%}}@keyframes entranceOrbit{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes entranceOrbitBack{to{transform:translate(-50%,-50%) rotate(-360deg)}}@keyframes entranceRail{0%{transform:translateX(-120%)}100%{transform:translateX(390%)}}@keyframes entrancePulse{0%,100%{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}
@media(max-width:600px){.entrance-emblem{width:280px;height:125px;margin-bottom:23px}.entrance-logo{width:238px;padding:20px 22px;border-radius:23px}.ring-a{width:296px;height:108px}.ring-b{width:270px;height:145px}.entrance-copy small{font-size:9px;letter-spacing:.21em}.entrance-copy p{line-height:1.5}.entrance-rail{margin-top:27px}}
@media(prefers-reduced-motion:reduce){.entrance-sky:before,.entrance-sky>i,.entrance-grid,.entrance-logo:after,.entrance-ring,.entrance-rail i,.entrance-ready span{animation-duration:.001ms!important;animation-iteration-count:1!important}}

/* The entrance logo assembles from the original Agape artwork. */
.entrance-logo-build{width:min(610px,90vw);height:178px;display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:20px}.entrance-mark{position:relative;flex:0 0 156px;width:156px;height:156px}.entrance-feather{position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:contain;clip-path:inset(8% 9% 8% 9%);opacity:0;transform:translate3d(35px,-230px,0) rotate(24deg) scale(.72);filter:drop-shadow(0 10px 13px rgba(225,122,181,.24));animation:featherFall 1.55s .25s cubic-bezier(.22,.7,.18,1) forwards}.entrance-frame{position:absolute;z-index:3;inset:0;border-radius:25px}.entrance-frame i{position:absolute;display:block;background:#568cda;box-shadow:0 0 15px rgba(86,140,218,.35)}.entrance-frame i:nth-child(1),.entrance-frame i:nth-child(3){left:13px;width:calc(100% - 26px);height:6px;transform:scaleX(0)}.entrance-frame i:nth-child(1){top:7px;transform-origin:left;animation:frameAcross .42s 1.42s ease-out forwards}.entrance-frame i:nth-child(3){bottom:7px;transform-origin:right;animation:frameAcross .42s 2.12s ease-out forwards}.entrance-frame i:nth-child(2),.entrance-frame i:nth-child(4){top:13px;height:calc(100% - 26px);width:6px;transform:scaleY(0)}.entrance-frame i:nth-child(2){right:7px;transform-origin:top;animation:frameDown .38s 1.78s ease-out forwards}.entrance-frame i:nth-child(4){left:7px;transform-origin:bottom;animation:frameDown .38s 2.46s ease-out forwards}.entrance-frame i:nth-child(1),.entrance-frame i:nth-child(3){border-radius:6px}.entrance-frame i:nth-child(2),.entrance-frame i:nth-child(4){border-radius:6px}.entrance-frame:before,.entrance-frame:after{content:"";position:absolute;inset:7px;border-radius:20px;box-shadow:inset 0 0 0 1px rgba(86,140,218,.18);opacity:0;animation:frameSet .5s 2.72s ease forwards}.feather-impact{position:absolute;z-index:1;left:50%;bottom:17px;width:35px;height:7px;border-radius:50%;background:rgba(227,124,183,.5);filter:blur(5px);opacity:0;transform:translateX(-50%) scale(.3);animation:featherImpact .65s 1.38s ease-out forwards}.entrance-wordmark{position:relative;flex:0 0 350px;width:350px;height:145px;overflow:hidden;clip-path:inset(0 100% 0 0);animation:wordmarkReveal 1.35s 2.55s cubic-bezier(.2,.7,.2,1) forwards}.entrance-wordmark>img{position:absolute;left:-165px;top:0;height:145px;width:auto;max-width:none;filter:drop-shadow(0 8px 20px rgba(70,130,214,.2))}.wordmark-dust{position:absolute;z-index:3;inset:0;pointer-events:none;transform:translateX(-15%);animation:dustTravel 1.55s 2.42s ease-out forwards}.wordmark-dust:before{content:"";position:absolute;left:8%;top:18%;width:115px;height:64%;background:linear-gradient(90deg,transparent,rgba(129,178,239,.34),rgba(239,149,201,.25),transparent);filter:blur(12px);transform:skewX(-18deg)}.wordmark-dust b{position:absolute;left:12%;top:50%;width:4px;height:4px;border-radius:50%;background:#78aef0;box-shadow:0 0 8px currentColor;animation:dustScatter 1.25s 2.48s ease-out forwards}.wordmark-dust b:nth-child(2n){color:#eb8dc4;background:#eb8dc4}.wordmark-dust b:nth-child(3n){width:2px;height:2px}.wordmark-dust b:nth-child(1){top:18%;left:5%;--dust-y:-42px;--dust-x:235px}.wordmark-dust b:nth-child(2){top:29%;left:12%;--dust-y:25px;--dust-x:270px}.wordmark-dust b:nth-child(3){top:38%;left:3%;--dust-y:-18px;--dust-x:310px}.wordmark-dust b:nth-child(4){top:49%;left:17%;--dust-y:43px;--dust-x:240px}.wordmark-dust b:nth-child(5){top:62%;left:8%;--dust-y:-28px;--dust-x:290px}.wordmark-dust b:nth-child(6){top:75%;left:14%;--dust-y:15px;--dust-x:320px}.wordmark-dust b:nth-child(7){top:23%;left:22%;--dust-y:38px;--dust-x:270px}.wordmark-dust b:nth-child(8){top:84%;left:2%;--dust-y:-17px;--dust-x:260px}.wordmark-dust b:nth-child(9){top:13%;left:27%;--dust-y:24px;--dust-x:300px}.wordmark-dust b:nth-child(10){top:56%;left:26%;--dust-y:-48px;--dust-x:245px}.wordmark-dust b:nth-child(11){top:70%;left:20%;--dust-y:34px;--dust-x:290px}.wordmark-dust b:nth-child(12){top:35%;left:31%;--dust-y:-30px;--dust-x:255px}.wordmark-dust b:nth-child(13){top:90%;left:28%;--dust-y:-25px;--dust-x:310px}.wordmark-dust b:nth-child(14){top:7%;left:17%;--dust-y:48px;--dust-x:280px}.wordmark-dust b:nth-child(15){top:46%;left:36%;--dust-y:18px;--dust-x:235px}.wordmark-dust b:nth-child(16){top:79%;left:36%;--dust-y:-40px;--dust-x:265px}.entrance-copy{opacity:0;transform:translateY(16px);animation:entranceCopySet .9s 3.62s cubic-bezier(.16,1,.3,1) forwards}.entrance-rail,.entrance-ready{opacity:0;animation:entranceDetailsSet .7s 4.05s ease forwards}
@keyframes featherFall{0%{opacity:0;transform:translate3d(35px,-230px,0) rotate(24deg) scale(.72)}18%{opacity:1}58%{transform:translate3d(-14px,-72px,0) rotate(-11deg) scale(.9)}82%{transform:translate3d(7px,-15px,0) rotate(5deg) scale(.98)}100%{opacity:1;transform:translate3d(0,0,0) rotate(0) scale(1)}}@keyframes featherImpact{0%{opacity:0;transform:translateX(-50%) scale(.3)}45%{opacity:.65;transform:translateX(-50%) scale(2)}100%{opacity:0;transform:translateX(-50%) scale(3.4)}}@keyframes frameAcross{to{transform:scaleX(1)}}@keyframes frameDown{to{transform:scaleY(1)}}@keyframes frameSet{to{opacity:1}}@keyframes wordmarkReveal{to{clip-path:inset(0 0 0 0)}}@keyframes dustTravel{0%{opacity:0;transform:translateX(-15%)}15%{opacity:1}78%{opacity:.9}100%{opacity:0;transform:translateX(82%)}}@keyframes dustScatter{0%{opacity:0;transform:translate(0,0) scale(.4)}20%{opacity:1}100%{opacity:0;transform:translate(var(--dust-x),var(--dust-y)) scale(1.7)}}@keyframes entranceCopySet{to{opacity:1;transform:translateY(0)}}@keyframes entranceDetailsSet{to{opacity:1}}
@media(max-width:650px){.entrance-logo-build{width:340px;height:130px;gap:7px}.entrance-mark{flex-basis:112px;width:112px;height:112px}.entrance-frame{border-radius:18px}.entrance-frame i:nth-child(1),.entrance-frame i:nth-child(3){left:9px;width:calc(100% - 18px);height:4px}.entrance-frame i:nth-child(1){top:5px}.entrance-frame i:nth-child(3){bottom:5px}.entrance-frame i:nth-child(2),.entrance-frame i:nth-child(4){top:9px;height:calc(100% - 18px);width:4px}.entrance-frame i:nth-child(2){right:5px}.entrance-frame i:nth-child(4){left:5px}.entrance-wordmark{flex-basis:220px;width:220px;height:100px}.entrance-wordmark>img{left:-114px;height:100px}.entrance-copy h1{font-size:clamp(31px,9vw,43px)}}
@media(prefers-reduced-motion:reduce){.entrance-feather,.entrance-frame i,.entrance-frame:before,.entrance-frame:after,.feather-impact,.entrance-wordmark,.wordmark-dust,.wordmark-dust b,.entrance-copy,.entrance-rail,.entrance-ready{animation-duration:.001ms!important;animation-delay:.001ms!important;animation-iteration-count:1!important}}
.entrance-mark-complete{position:absolute;z-index:4;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;animation:completeMarkSet .38s 2.72s ease forwards}.entrance-frame{animation:sketchFrameOut .35s 2.77s ease forwards}.entrance-wordmark>img{left:-154px}@keyframes completeMarkSet{to{opacity:1}}@keyframes sketchFrameOut{to{opacity:0}}@media(max-width:650px){.entrance-wordmark>img{left:-107px}}

/* A soft, air-driven feather descent followed by the remaining logo build. */
.entrance-feather{animation:featherDriftDown 2.9s .12s linear forwards}.entrance-frame i:nth-child(1){animation-delay:2.92s}.entrance-frame i:nth-child(2){animation-delay:3.28s}.entrance-frame i:nth-child(3){animation-delay:3.62s}.entrance-frame i:nth-child(4){animation-delay:3.96s}.entrance-frame:before,.entrance-frame:after{animation-delay:4.27s}.feather-impact{animation-delay:2.87s}.entrance-mark-complete{animation-delay:4.27s}.entrance-frame{animation-delay:4.32s}.entrance-wordmark{animation-delay:4.08s}.wordmark-dust{animation-delay:3.94s}.wordmark-dust b{animation-delay:4s}.entrance-copy{animation-delay:5.22s}.entrance-rail,.entrance-ready{animation-delay:5.64s}
@keyframes featherDriftDown{0%{opacity:0;transform:translate3d(82px,-290px,0) rotate(31deg) scale(.7,.92);animation-timing-function:cubic-bezier(.35,0,.65,1)}8%{opacity:.7;transform:translate3d(66px,-267px,0) rotate(18deg) scale(.78,.95);animation-timing-function:ease-in-out}19%{opacity:1;transform:translate3d(19px,-238px,0) rotate(-17deg) scale(.94,1);animation-timing-function:ease-in-out}31%{transform:translate3d(-30px,-203px,0) rotate(-29deg) scale(.82,.97);animation-timing-function:ease-in-out}43%{transform:translate3d(-45px,-166px,0) rotate(12deg) scale(.94,1);animation-timing-function:ease-in-out}56%{transform:translate3d(-9px,-127px,0) rotate(25deg) scale(.86,.98);animation-timing-function:ease-in-out}68%{transform:translate3d(24px,-89px,0) rotate(-10deg) scale(.97,1);animation-timing-function:ease-in-out}78%{transform:translate3d(18px,-58px,0) rotate(-17deg) scale(.91,.99);animation-timing-function:ease-in-out}87%{transform:translate3d(-8px,-33px,0) rotate(7deg) scale(.98,1);animation-timing-function:ease-in-out}94%{transform:translate3d(-5px,-14px,0) rotate(3deg) scale(.99,1);animation-timing-function:cubic-bezier(.2,.8,.3,1)}100%{opacity:1;transform:translate3d(0,0,0) rotate(0) scale(1)}}

/* Independent movement layers remove the rigid image-tile effect. */
.feather-fall-track{position:absolute;z-index:2;inset:0;opacity:0;will-change:transform,opacity;animation:featherGravity 3.6s .12s cubic-bezier(.28,.05,.38,1) forwards}.feather-air-sway{position:absolute;inset:0;will-change:transform;animation:featherAir 3.6s .12s ease-in-out forwards}.feather-air-sway .entrance-feather{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;clip-path:inset(8% 9%);opacity:1;mix-blend-mode:screen;filter:drop-shadow(0 10px 13px rgba(225,122,181,.24));will-change:transform;animation:featherTurn 3.6s .12s ease-in-out forwards}.entrance-frame i:nth-child(1){animation-delay:3.68s}.entrance-frame i:nth-child(2){animation-delay:4.04s}.entrance-frame i:nth-child(3){animation-delay:4.38s}.entrance-frame i:nth-child(4){animation-delay:4.72s}.entrance-frame:before,.entrance-frame:after{animation-delay:5.03s}.feather-impact{animation-delay:3.53s}.entrance-mark-complete{animation-delay:5.03s}.entrance-frame{animation-delay:5.08s}.entrance-wordmark{animation-delay:4.84s}.wordmark-dust{animation-delay:4.7s}.wordmark-dust b{animation-delay:4.76s}.entrance-copy{animation-delay:5.98s}.entrance-rail,.entrance-ready{animation-delay:6.4s}
@keyframes featherGravity{0%{opacity:0;transform:translate3d(0,-310px,0)}8%{opacity:1}72%{transform:translate3d(0,-74px,0)}90%{transform:translate3d(0,-21px,0)}100%{opacity:1;transform:translate3d(0,0,0)}}@keyframes featherAir{0%{transform:translate3d(72px,0,0)}22%{transform:translate3d(-38px,0,0)}48%{transform:translate3d(30px,0,0)}70%{transform:translate3d(-17px,0,0)}86%{transform:translate3d(7px,0,0)}100%{transform:translate3d(0,0,0)}}@keyframes featherTurn{0%{transform:rotate(28deg) scaleX(.72)}18%{transform:rotate(-19deg) scaleX(.92)}38%{transform:rotate(17deg) scaleX(.78)}58%{transform:rotate(-12deg) scaleX(.95)}76%{transform:rotate(8deg) scaleX(.86)}90%{transform:rotate(-3deg) scaleX(.98)}100%{transform:rotate(0) scaleX(1)}}
@media(prefers-reduced-motion:reduce){.feather-fall-track,.feather-air-sway,.feather-air-sway .entrance-feather{animation-duration:.001ms!important;animation-delay:.001ms!important}}
.feather-air-sway .entrance-feather{clip-path:inset(9% 15% 8% 15%)}
.feather-air-sway .entrance-feather{clip-path:polygon(84% 7%,76% 20%,67% 29%,63% 27%,62% 38%,50% 41%,53% 47%,42% 52%,45% 57%,34% 62%,37% 68%,27% 73%,21% 83%,19% 94%,15% 91%,15% 78%,20% 67%,28% 57%,34% 48%,44% 39%,55% 33%,66% 25%,75% 14%)}
.feather-air-sway .entrance-feather{clip-path:none;mix-blend-mode:normal}
.entrance-frame{position:absolute;z-index:3;inset:0;width:100%;height:100%;overflow:visible;opacity:1;animation:none}.entrance-frame rect{fill:none;stroke:#4f8ad8;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 5px rgba(79,138,216,.35));animation:frameTrace 1.42s 3.62s cubic-bezier(.65,0,.25,1) forwards}@keyframes frameTrace{to{stroke-dashoffset:0}}
.panel-modal{position:fixed;inset:0;z-index:1000;background:rgba(23,32,51,.45);display:grid;place-items:center;padding:22px;backdrop-filter:blur(7px)}.panel-modal[hidden]{display:none}.panel-card{width:min(980px,100%);max-height:calc(100vh - 52px);overflow:auto;background:#fff;border:1px solid #d7e2f2;border-radius:22px;box-shadow:0 24px 70px rgba(23,32,51,.25)}.panel-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 22px;background:#fff;border-bottom:1px solid #e5edf7}.panel-head h2{margin:0}.panel-body{padding:22px}.list-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.list-toolbar h2{margin:0}.quick-summary{display:flex;gap:10px;flex-wrap:wrap}.compact-table td{vertical-align:middle}.compact-table .actions{min-width:110px}.muted{color:#657289}
@media(max-width:900px){.grid.cols-2,.grid.cols-3,.grid.cols-4,.form-row{grid-template-columns:1fr}.top-shell{align-items:flex-start;flex-direction:column}.module-nav{top:150px;overflow-x:auto}.brand img{height:56px}.page-title{align-items:flex-start;flex-direction:column}.agape-login{grid-template-columns:1fr;overflow:auto}.login-hero-panel{min-height:auto;padding:42px 24px}.login-hero-brand{margin-bottom:34px}.login-hero-copy h1{font-size:42px}.login-form-panel{min-height:auto;padding:28px 18px 44px}.fire-network{display:none}}

.dashboard-alerts{margin-top:24px;margin-bottom:18px}
.dashboard-alerts h3{display:flex;align-items:center;gap:8px;margin:18px 0 10px}
.dashboard-alerts .table{table-layout:fixed;margin-bottom:14px}
.dashboard-alerts .table th:nth-child(1){width:24%}
.dashboard-alerts .table th:nth-child(3){width:130px}
.dashboard-alerts .table th:nth-child(4){width:110px}
.dashboard-alerts .table td{vertical-align:middle}

.table-scroll{width:100%;overflow:auto;padding-bottom:4px}

.dashboard-page-title{margin-bottom:16px}
.dashboard-shell{display:grid;gap:18px}
.dashboard-top-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);gap:18px;align-items:stretch}
.dashboard-command-card{position:relative;overflow:hidden;min-height:230px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(239,246,255,.94))}
.dashboard-command-card:after{content:"";position:absolute;right:-55px;bottom:-70px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(47,111,237,.16),rgba(220,126,184,.08) 48%,transparent 70%);pointer-events:none}
.eyebrow{display:inline-flex;align-items:center;gap:6px;color:#2f6fed;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.12em}
.dashboard-command-head,.dashboard-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.dashboard-command-head h2,.dashboard-panel-head h2{margin:8px 0 6px;font-size:26px}
.dashboard-command-head p,.dashboard-panel-head p{margin:0;color:#657289}
.dashboard-command-pills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:32px;position:relative;z-index:1}
.dashboard-command-pills div,.dashboard-alert-summary div{border:1px solid #d7e2f2;border-radius:14px;background:rgba(255,255,255,.82);padding:16px}
.dashboard-command-pills span,.dashboard-alert-summary span{display:block;color:#657289;font-weight:900;font-size:13px}
.dashboard-command-pills strong,.dashboard-alert-summary strong{display:block;margin-top:8px;font-size:30px;line-height:1;color:#172033}
.dashboard-alert-panel{padding:18px;max-height:376px;overflow:hidden}
.dashboard-alert-total{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;border-radius:14px;background:#e7f0ff;color:#2f6fed;font-size:24px;font-weight:900}
.alert-topic-strip{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.alert-topic-strip span{display:inline-flex;align-items:center;gap:6px;border:1px solid #d7e2f2;background:#f8fbff;border-radius:999px;padding:7px 10px;color:#657289;font-weight:900;font-size:12px}
.alert-topic-strip strong{color:#172033}
.dashboard-alert-list{display:grid;gap:10px;max-height:242px;overflow:auto;padding-right:4px}
.dashboard-alert-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #d7e2f2;border-radius:14px;background:#fff;padding:12px}
.dashboard-alert-item small{display:block;color:#657289;font-weight:900;margin-bottom:4px}
.dashboard-alert-item strong{display:block;color:#172033}
.dashboard-alert-item p{margin:4px 0 0;color:#657289;line-height:1.35}
.dashboard-alert-action{display:flex;align-items:center;gap:8px}
.dashboard-empty-alert{display:grid;gap:6px;margin-top:18px;border:1px dashed #cbd8ea;border-radius:14px;background:#f8fbff;padding:20px;color:#657289}
.dashboard-empty-alert strong{color:#172033}
.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.dashboard-kpi-card{padding:16px;border-top:4px solid #2f6fed;min-height:112px}
.dashboard-kpi-card:nth-child(even){border-top-color:#dc7eb8}
.dashboard-kpi-card span{display:block;color:#657289;font-weight:900;font-size:13px;line-height:1.25}
.dashboard-kpi-card strong{display:block;margin-top:14px;font-size:28px;line-height:1.05;color:#172033}
.dashboard-insight-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px}
.dashboard-chart-panel,.dashboard-pipeline-card{padding:18px}
.dashboard-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.dashboard-chart-card{border:1px solid #d7e2f2;border-radius:14px;background:#f8fbff;padding:14px;min-height:178px}
.dashboard-chart-card.dashboard-chart-wide{grid-column:1/-1}
.dashboard-chart-card h3{margin:0 0 4px;font-size:16px}
.dashboard-chart-card span{color:#657289;font-weight:900;font-size:13px}
.dashboard-bars{display:flex;align-items:end;justify-content:space-between;gap:14px;height:126px;margin-top:8px}
.dashboard-bar-column{display:grid;grid-template-rows:22px 88px 18px;justify-items:center;align-items:end;min-width:0;flex:1}
.dashboard-bar-column strong{font-size:13px;color:#172033}
.dashboard-bar-column small{color:#657289;font-weight:900;font-size:12px}
.dashboard-bar{width:100%;max-width:44px;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,var(--bar-color),rgba(47,111,237,.62));box-shadow:0 8px 18px rgba(47,111,237,.18)}
.dashboard-pipeline-list{display:grid;gap:12px;margin-top:10px}
.dashboard-pipeline-row{display:grid;gap:10px;text-decoration:none;color:#172033;border:1px solid #d7e2f2;background:#fff;border-radius:14px;padding:13px}
.dashboard-pipeline-row span{display:flex;justify-content:space-between;gap:10px;align-items:center}
.dashboard-pipeline-row strong{font-size:14px}
.dashboard-pipeline-row em{font-style:normal;color:#657289;font-weight:900;font-size:12px}
.dashboard-pipeline-row i{display:block;height:9px;border-radius:999px;background:#e7f0ff;overflow:hidden}
.dashboard-pipeline-row b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f6fed,#dc7eb8)}
.dashboard-alert-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}

@media (max-width:1200px){
    .dashboard-top-grid,.dashboard-insight-grid{grid-template-columns:1fr}
    .dashboard-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:760px){
    .dashboard-command-head,.dashboard-panel-head,.dashboard-alert-item,.dashboard-alert-action{display:flex;align-items:flex-start;flex-direction:column}
    .dashboard-command-pills,.dashboard-kpi-grid,.dashboard-chart-grid,.dashboard-alert-summary{grid-template-columns:1fr}
    .dashboard-top-grid{grid-template-columns:1fr}
    .dashboard-alert-panel{max-height:none}
    .dashboard-alert-list{max-height:none}
}
.fire-equipment-table{min-width:1800px}
.fire-equipment-table th,.fire-equipment-table td{font-size:13px;vertical-align:middle}
.fire-equipment-table td:nth-child(13){min-width:220px}

/* Fire suppression themed login refresh */
.agape-login{background:#eef5fc}
.login-hero-panel{background:
    radial-gradient(circle at 72% 24%,rgba(126,191,255,.30),transparent 24%),
    radial-gradient(circle at 16% 100%,rgba(220,126,184,.12),transparent 30%),
    linear-gradient(145deg,#0b2b52 0%,#103d72 48%,#071a32 100%);
}
.login-hero-panel:before{background:
    linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px),
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px);
    background-size:92px 92px;
    opacity:.32;
    filter:none;
}
.login-hero-panel:after{inset:auto -18% -20% 22%;height:70%;background:
    radial-gradient(circle at 58% 44%,rgba(255,255,255,.08) 0 16%,transparent 17%),
    radial-gradient(circle at 58% 44%,transparent 0 25%,rgba(156,208,255,.20) 26% 27%,transparent 28%),
    radial-gradient(circle at 58% 44%,transparent 0 38%,rgba(156,208,255,.13) 39% 40%,transparent 41%),
    linear-gradient(145deg,rgba(102,174,255,.18),transparent 54%);
    border-radius:50%;
    transform:rotate(-8deg);
}
.login-hero-brand img{background:rgba(255,255,255,.92);border-radius:16px;padding:12px 16px;width:min(390px,74%);filter:drop-shadow(0 20px 34px rgba(0,0,0,.22))}
.login-hero-copy small{color:#9ed0ff}
.login-hero-copy h1{font-size:clamp(46px,4.8vw,70px);max-width:760px}
.login-hero-copy p{color:#e2f1ff}
.fire-network{right:4%;top:16%;width:min(580px,52%);height:60%;opacity:.92}
.fire-network:before{left:8%;top:18%;width:78%;height:10px;border-radius:999px;background:linear-gradient(90deg,rgba(178,219,255,.18),rgba(255,255,255,.52),rgba(178,219,255,.12));border:1px solid rgba(178,219,255,.36);box-shadow:0 0 35px rgba(104,177,255,.28)}
.fire-network:after{left:54%;top:18%;width:10px;height:34%;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.50),rgba(178,219,255,.14));border:1px solid rgba(178,219,255,.35)}
.fire-network span{border-color:rgba(178,219,255,.32);background:rgba(255,255,255,.045);box-shadow:0 20px 60px rgba(0,0,0,.12),0 0 30px rgba(104,177,255,.18)}
.fire-network span:nth-child(1){left:34%;top:48%;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.08) 0 30%,transparent 31%),conic-gradient(from 220deg,rgba(178,219,255,.55),rgba(47,111,237,.08),rgba(178,219,255,.40));}
.fire-network span:nth-child(1):before{content:"";position:absolute;inset:42px;border:10px solid rgba(255,255,255,.16);border-top-color:#9ed0ff;border-radius:50%}
.fire-network span:nth-child(1):after{content:"";position:absolute;left:50%;top:50%;width:58px;height:4px;background:#dc7eb8;border-radius:999px;transform-origin:left center;transform:rotate(-34deg)}
.fire-network span:nth-child(2){left:52%;top:52%;width:120px;height:58px;border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.04))}
.fire-network span:nth-child(2):before{content:"";position:absolute;left:52px;top:-84px;width:16px;height:84px;border-radius:999px;background:rgba(178,219,255,.42)}
.fire-network span:nth-child(2):after{content:"";position:absolute;left:20px;right:20px;bottom:-62px;height:62px;background:repeating-linear-gradient(90deg,rgba(178,219,255,.0) 0 12px,rgba(178,219,255,.55) 13px 15px);clip-path:polygon(48% 0,58% 0,100% 100%,0 100%)}
.fire-network span:nth-child(3){right:2%;top:22%;width:130px;height:190px;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.04))}
.fire-network span:nth-child(3):before{content:"";position:absolute;left:26px;right:26px;top:28px;height:62px;border-radius:12px;border:2px solid rgba(255,255,255,.36);background:linear-gradient(180deg,rgba(220,126,184,.24),rgba(47,111,237,.10))}
.fire-network span:nth-child(3):after{content:"";position:absolute;left:34px;right:34px;bottom:24px;height:44px;border-radius:12px;background:rgba(220,126,184,.28)}
.fire-network span:nth-child(4){left:6%;bottom:16%;width:220px;height:138px;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.04))}
.fire-network span:nth-child(4):before{content:"";position:absolute;left:24px;right:24px;top:24px;height:10px;border-radius:999px;background:rgba(178,219,255,.45);box-shadow:0 28px 0 rgba(178,219,255,.30),0 56px 0 rgba(178,219,255,.22)}
.login-form-panel{background:
    radial-gradient(circle at 100% 54%,rgba(47,111,237,.10),transparent 30%),
    linear-gradient(135deg,#f8fbff,#edf4fb);
}
.login-form-panel:before{opacity:.035}
.agape-login .login-card{border-radius:18px;box-shadow:0 24px 60px rgba(31,68,116,.14)}

/* Alternate login concept: light fire-maintenance workspace */
.agape-login{
    grid-template-columns:minmax(560px,1.06fr) minmax(460px,.94fr);
    background:
        radial-gradient(circle at 10% 14%,rgba(220,126,184,.20),transparent 24%),
        radial-gradient(circle at 72% 78%,rgba(83,139,216,.13),transparent 26%),
        linear-gradient(135deg,#f9fbff 0%,#edf4fb 54%,#f8fbff 100%);
}
.login-hero-panel{
    min-height:100vh;
    padding:72px min(5.5vw,82px);
    background:
        linear-gradient(90deg,rgba(4,18,33,.78) 0%,rgba(7,26,49,.56) 48%,rgba(7,26,49,.10) 100%),
        url('../agape/login_fire_command_background.svg') no-repeat center;
    background-size:cover;
    color:#fff;
}
.login-hero-panel:before,.login-hero-panel:after{display:none}
.login-hero-brand{
    width:max-content;
    margin-bottom:58px;
    background:rgba(255,255,255,.90);
    border:1px solid #d7e2f2;
    border-radius:24px;
    padding:18px 22px;
    box-shadow:0 18px 45px rgba(61,86,121,.12);
}
.login-hero-brand img{
    background:transparent;
    border-radius:0;
    padding:0;
    width:min(360px,70vw);
    filter:none;
}
.login-hero-copy small{color:#65b8ff}.login-card small{color:#538bd8}
.login-hero-copy h1{
    color:#fff;
    font-size:clamp(46px,4.7vw,72px);
    max-width:710px;
}
.login-hero-copy p{
    color:#dceeff;
    max-width:620px;
}
.login-hero-meta{
    color:#fff;
}
.login-hero-meta span{
    background:#dc7eb8;
    box-shadow:0 0 0 7px rgba(220,126,184,.16);
}
.fire-network{display:none}
.fire-network:before{
    left:4%;
    top:12%;
    width:84%;
    height:7px;
    background:linear-gradient(90deg,rgba(83,139,216,.10),rgba(83,139,216,.52),rgba(83,139,216,.12));
    border-color:rgba(83,139,216,.22);
}
.fire-network:after{
    left:51%;
    top:12%;
    width:7px;
    height:34%;
    background:linear-gradient(180deg,rgba(83,139,216,.46),rgba(83,139,216,.12));
    border-color:rgba(83,139,216,.18);
}
.fire-network span{box-shadow:none}
.fire-network span:nth-child(1){
    left:30%;
    top:40%;
    width:230px;
    height:230px;
    background:radial-gradient(circle,rgba(255,255,255,.72) 0 31%,transparent 32%),conic-gradient(from 220deg,rgba(83,139,216,.34),rgba(83,139,216,.08),rgba(220,126,184,.20));
    border-color:rgba(83,139,216,.22);
}
.fire-network span:nth-child(1):before{inset:42px;border:12px solid rgba(83,139,216,.13);border-top-color:#538bd8;border-right-color:#538bd8;border-radius:50%}
.fire-network span:nth-child(1):after{left:78px;top:154px;width:78px;height:18px;background:#dc7eb8;border-radius:999px;transform:rotate(-18deg)}
.fire-network span:nth-child(2){
    left:52%;
    top:48%;
    width:132px;
    height:62px;
    background:rgba(255,255,255,.62);
    border-color:rgba(83,139,216,.20);
}
.fire-network span:nth-child(2):before{left:62px;top:-96px;width:14px;height:96px;background:rgba(83,139,216,.34)}
.fire-network span:nth-child(2):after{left:14px;right:14px;bottom:-88px;height:88px;background:repeating-linear-gradient(90deg,rgba(83,139,216,0) 0 12px,rgba(83,139,216,.35) 13px 15px);clip-path:polygon(44% 0,56% 0,100% 100%,0 100%)}
.fire-network span:nth-child(3){
    right:0;
    top:17%;
    width:148px;
    height:190px;
    background:rgba(255,255,255,.56);
    border-color:rgba(83,139,216,.20);
}
.fire-network span:nth-child(3):before{left:20px;right:20px;top:20px;height:46px;border-color:rgba(83,139,216,.24);background:linear-gradient(180deg,rgba(220,126,184,.18),rgba(83,139,216,.08))}
.fire-network span:nth-child(3):after{left:24px;right:24px;bottom:22px;height:78px;background:linear-gradient(180deg,rgba(83,139,216,.22),rgba(220,126,184,.18));box-shadow:0 -28px 0 rgba(83,139,216,.12)}
.fire-network span:nth-child(4){
    left:0;
    bottom:15%;
    width:250px;
    height:150px;
    background:
        linear-gradient(90deg,rgba(83,139,216,.28),rgba(83,139,216,.05)) 22px 36px / 180px 8px no-repeat,
        linear-gradient(90deg,rgba(220,126,184,.26),rgba(220,126,184,.05)) 22px 68px / 150px 8px no-repeat,
        linear-gradient(90deg,rgba(83,139,216,.20),rgba(83,139,216,.04)) 22px 100px / 198px 8px no-repeat,
        rgba(255,255,255,.54);
    border-color:rgba(83,139,216,.20);
}
.fire-network span:nth-child(4):before{left:auto;right:22px;top:26px;width:46px;height:46px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.70) 0 36%,transparent 38%),conic-gradient(#538bd8,#dc7eb8,#538bd8);box-shadow:none}
.login-form-panel{
    background:
        radial-gradient(circle at 74% 48%,rgba(220,126,184,.12),transparent 25%),
        radial-gradient(circle at 100% 72%,rgba(83,139,216,.10),transparent 32%),
        linear-gradient(145deg,#ffffff,#f1f6fc);
}
.login-form-panel:before{
    right:-210px;
    top:22%;
    opacity:.035;
}
.agape-login .login-card{
    border-radius:24px;
    border-color:#dfe8f3;
    background:rgba(255,255,255,.88);
    backdrop-filter:blur(14px);
    box-shadow:0 28px 70px rgba(61,86,121,.14);
}
.agape-login .login-card img{width:205px}
.agape-login .login-card .btn.primary{
    background:#538bd8;
    border-color:#538bd8;
}

/* Bakkie photo login redesign */
body.agape-login{
    grid-template-columns:minmax(720px,1.15fr) minmax(460px,.85fr);
    background:
        radial-gradient(circle at 77% 28%,rgba(83,139,216,.12),transparent 24%),
        linear-gradient(135deg,#edf5ff 0%,#f8fbff 52%,#fff7fc 100%);
}
body.agape-login:after{
    content:"";
    position:fixed;
    right:-160px;
    bottom:-220px;
    width:620px;
    height:620px;
    background:url('../agape/agape_background_mark.png') no-repeat center/contain;
    opacity:.045;
    pointer-events:none;
}
body.agape-login .login-hero-panel{
    isolation:isolate;
    min-height:100vh;
    padding:42px;
    justify-content:space-between;
    background:
        linear-gradient(90deg,rgba(6,18,32,.74) 0%,rgba(6,18,32,.38) 46%,rgba(6,18,32,.10) 100%),
        linear-gradient(0deg,rgba(6,18,32,.52),rgba(6,18,32,.08) 44%,rgba(6,18,32,.40)),
        url('../agape/agape_bakkie_login.jpg') no-repeat center;
    background-size:cover;
    color:#fff;
}
body.agape-login .login-hero-panel:before{
    content:"";
    display:block;
    position:absolute;
    inset:0;
    z-index:-1;
    background:
        linear-gradient(90deg,rgba(47,111,237,.18) 1px,transparent 1px),
        linear-gradient(rgba(47,111,237,.15) 1px,transparent 1px);
    background-size:96px 96px;
    opacity:.22;
    filter:none;
}
body.agape-login .login-hero-panel:after{
    content:"";
    display:block;
    position:absolute;
    left:-14%;
    bottom:-28%;
    width:560px;
    height:560px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(220,126,184,.32),transparent 66%);
    z-index:-1;
    transform:none;
}
body.agape-login .fire-network{display:none}
body.agape-login .login-hero-brand{
    margin:0;
    width:max-content;
    max-width:72%;
    padding:14px 18px;
    border-radius:18px;
    background:rgba(255,255,255,.94);
    border:1px solid rgba(215,226,242,.92);
    box-shadow:0 22px 50px rgba(6,18,32,.20);
}
body.agape-login .login-hero-brand img{
    width:min(320px,52vw);
}
body.agape-login .login-hero-copy{
    width:min(690px,100%);
    padding:28px 30px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:22px;
    background:linear-gradient(135deg,rgba(6,18,32,.68),rgba(6,18,32,.38));
    box-shadow:0 26px 70px rgba(6,18,32,.32);
    backdrop-filter:blur(12px);
}
body.agape-login .login-hero-copy small{
    color:#96c7ff;
    margin-bottom:14px;
}
body.agape-login .login-hero-copy h1{
    max-width:640px;
    color:#fff;
    font-size:clamp(42px,4.1vw,64px);
    line-height:1.03;
    margin-bottom:18px;
}
body.agape-login .login-hero-copy p{
    max-width:610px;
    color:#edf6ff;
    font-size:17px;
    line-height:1.55;
}
body.agape-login .login-hero-meta{
    width:max-content;
    margin-top:24px;
    padding:10px 14px;
    border-radius:999px;
    background:rgba(255,255,255,.13);
    color:#fff;
    font-size:14px;
}
body.agape-login .login-hero-meta span{
    background:#dc7eb8;
    box-shadow:0 0 0 6px rgba(220,126,184,.18);
}
body.agape-login .login-form-panel{
    min-height:100vh;
    padding:48px;
    background:
        linear-gradient(90deg,rgba(255,255,255,.70),rgba(255,255,255,.92)),
        radial-gradient(circle at 70% 22%,rgba(83,139,216,.12),transparent 24%),
        radial-gradient(circle at 72% 78%,rgba(220,126,184,.10),transparent 28%);
}
body.agape-login .login-form-panel:before{
    display:none;
}
body.agape-login .login-card{
    width:min(440px,100%);
    padding:42px 38px;
    border-radius:22px;
    background:#fff;
    border:1px solid #d9e5f4;
    box-shadow:0 30px 80px rgba(61,86,121,.16);
}
body.agape-login .login-card img{
    width:190px;
    margin-bottom:30px;
}
body.agape-login .login-card small{
    color:#2f6fed;
}
body.agape-login .login-card h1{
    color:#172033;
    font-size:35px;
    font-weight:800;
}
body.agape-login .login-card input{
    min-height:50px;
    background:#f7fbff;
    border-color:#c8d9ef;
}
body.agape-login .login-card input:focus{
    outline:3px solid rgba(47,111,237,.14);
    border-color:#2f6fed;
}
body.agape-login .login-card .btn.primary{
    min-height:52px;
    background:#2f6fed;
    border-color:#2f6fed;
}
@media(max-width:1000px){
    body.agape-login{grid-template-columns:1fr;overflow:auto}
    body.agape-login .login-hero-panel{min-height:52vh;padding:28px}
    body.agape-login .login-hero-copy{margin-top:80px}
    body.agape-login .login-form-panel{min-height:auto;padding:28px 20px 46px}
}

/* Final login hero using supplied Agape service image */
body.agape-login{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    min-height:100vh;
    overflow:hidden;
    background:#eef5ff;
}
body.agape-login:after{display:none}
body.agape-login .login-hero-panel{
    position:fixed;
    inset:0;
    z-index:0;
    min-height:100vh;
    padding:0;
    background:url('../agape/agape_login_hero.png') no-repeat center;
    background-size:cover;
}
body.agape-login .login-hero-panel:before{
    content:"";
    display:block;
    position:absolute;
    inset:0;
    z-index:0;
    background:
        linear-gradient(90deg,rgba(6,18,32,.18) 0%,rgba(6,18,32,.06) 42%,rgba(255,255,255,.10) 58%,rgba(255,255,255,.58) 100%);
    opacity:1;
}
body.agape-login .login-hero-panel:after,
body.agape-login .login-hero-brand,
body.agape-login .fire-network,
body.agape-login .login-hero-copy{
    display:none;
}
body.agape-login .login-form-panel{
    position:relative;
    z-index:2;
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    padding:clamp(28px,5vw,70px) clamp(52px,9vw,150px);
    background:transparent;
}
body.agape-login .login-form-panel:before{display:none}
body.agape-login .login-card{
    width:min(430px,100%);
    padding:42px 38px;
    border-radius:24px;
    background:rgba(255,255,255,.88);
    border:1px solid rgba(214,226,242,.95);
    box-shadow:0 30px 90px rgba(61,86,121,.20);
    backdrop-filter:blur(18px);
}
body.agape-login .login-card img{
    width:205px;
    margin:0 auto 30px;
}
body.agape-login .login-card small{
    color:#2f6fed;
}
body.agape-login .login-card h1{
    font-size:36px;
    font-weight:800;
    color:#172033;
}
body.agape-login .login-card p{
    color:#657289;
}
body.agape-login .login-card input{
    background:rgba(239,246,255,.90);
    border-color:#c4d6ee;
}
body.agape-login .login-card .btn.primary{
    background:#2f6fed;
    border-color:#2f6fed;
}
@media(max-width:980px){
    body.agape-login{
        overflow:auto;
    }
    body.agape-login .login-hero-panel{
        position:absolute;
        background-position:30% center;
    }
    body.agape-login .login-hero-panel:before{
        background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.78));
    }
    body.agape-login .login-form-panel{
        min-height:100vh;
        justify-content:center;
        padding:28px 18px;
    }
}

/* Immersive operations-portal login */
body.agape-login{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,510px);align-items:stretch;justify-content:stretch;gap:0;min-height:100vh;padding:0;background:url('../agape/agape_login_hero.png') no-repeat center;background-size:cover;color:#fff}
body.agape-login:before{content:"";display:block;position:absolute;z-index:0;inset:0;background:linear-gradient(90deg,rgba(3,13,29,.92) 0%,rgba(4,19,39,.78) 39%,rgba(5,20,42,.38) 67%,rgba(5,17,35,.72) 100%),linear-gradient(180deg,rgba(4,14,29,.12),rgba(4,14,29,.62));pointer-events:none}
body.agape-login .login-hero-panel{position:relative;z-index:1;display:flex;min-height:100vh;justify-content:flex-end;padding:clamp(42px,6vw,90px) clamp(44px,7vw,110px);background:transparent;overflow:visible}
body.agape-login .login-hero-panel:before,body.agape-login .login-hero-panel:after{display:none}
body.agape-login .login-hero-brand{position:absolute;top:clamp(34px,5vw,68px);left:clamp(44px,7vw,110px);margin:0;padding:13px 17px;border:1px solid rgba(255,255,255,.2);border-radius:18px;background:rgba(255,255,255,.92);box-shadow:0 18px 55px rgba(0,0,0,.24);backdrop-filter:blur(14px)}
body.agape-login .login-hero-brand img{display:block;width:230px;max-width:31vw;margin:0;padding:0;background:none;border-radius:0;filter:none}
body.agape-login .login-hero-copy{width:min(760px,100%);max-width:none;margin:0;align-self:flex-end;padding-bottom:clamp(34px,5vh,70px)}
body.agape-login .login-hero-copy small{margin-bottom:18px;color:#86b9ff;font-size:11px;letter-spacing:.28em}
body.agape-login .login-hero-copy h1{max-width:760px;margin:0 0 22px;color:#fff;font-size:clamp(46px,5.2vw,76px);line-height:.98;letter-spacing:-.035em;text-shadow:0 18px 52px rgba(0,0,0,.35)}
body.agape-login .login-hero-copy p{max-width:670px;color:#d7e5f7;font-size:17px;line-height:1.65}
.login-capabilities{display:flex;gap:9px;flex-wrap:wrap;margin-top:28px}.login-capabilities span{padding:9px 13px;border:1px solid rgba(146,190,247,.24);border-radius:99px;background:rgba(9,32,65,.52);color:#dceaff;font-size:11px;font-weight:900;letter-spacing:.04em;backdrop-filter:blur(8px)}
body.agape-login .login-hero-meta{margin-top:28px;color:#aac1dc;font-size:12px;letter-spacing:.04em}body.agape-login .login-hero-meta span{width:8px;height:8px;box-shadow:0 0 0 5px rgba(18,166,106,.13),0 0 16px rgba(18,210,142,.65)}
body.agape-login .fire-network{display:none}
body.agape-login .login-form-panel{position:relative;z-index:2;display:grid;place-items:center;min-height:100vh;padding:clamp(28px,4vw,58px);background:linear-gradient(180deg,rgba(4,15,32,.42),rgba(4,15,32,.72));border-left:1px solid rgba(255,255,255,.12);backdrop-filter:blur(14px)}
body.agape-login .login-form-panel:before{content:"";display:block;position:absolute;inset:20px;border:1px solid rgba(125,174,238,.10);border-radius:30px;pointer-events:none}
body.agape-login .login-card{width:100%;max-width:410px;padding:36px 34px;border:1px solid rgba(145,188,244,.21);border-radius:28px;background:linear-gradient(145deg,rgba(11,31,61,.90),rgba(5,18,39,.92));box-shadow:0 35px 90px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.06);color:#fff;backdrop-filter:blur(24px)}
body.agape-login .login-card img{width:185px;margin:0 0 30px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 12px 30px rgba(0,0,0,.22)}
body.agape-login .login-card small{margin-bottom:13px;color:#7fb4fb;font-size:10px;letter-spacing:.24em}
body.agape-login .login-card h1{margin:0 0 9px;color:#fff;font-size:38px;font-weight:800;letter-spacing:-.025em;text-align:left}
body.agape-login .login-card p{margin-bottom:25px;color:#aebed3;font-size:14px}
body.agape-login .login-card label{margin-top:17px;color:#e9f2ff;font-size:12px;letter-spacing:.02em}
body.agape-login .login-card input{min-height:54px;color:#fff;border:1px solid rgba(126,174,236,.28);border-radius:12px;background:rgba(232,243,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
body.agape-login .login-card input:focus{color:#fff;border-color:#6da8f3;background:rgba(232,243,255,.13);box-shadow:0 0 0 4px rgba(79,138,216,.13)}
body.agape-login .login-card .btn.primary{min-height:54px;margin-top:24px;border:0;border-radius:12px;background:linear-gradient(100deg,#367bea,#4f8ad8 68%,#c96ea7);box-shadow:0 13px 30px rgba(40,105,210,.28);font-weight:950;transition:transform .18s ease,box-shadow .18s ease}
body.agape-login .login-card .btn.primary:hover{transform:translateY(-2px);box-shadow:0 17px 36px rgba(40,105,210,.38)}
body.agape-login .login-secure-note{margin-top:25px;padding-top:20px;color:#8497b1;border-color:rgba(151,187,233,.16);font-size:11px}
@media(max-width:980px){body.agape-login{display:block;overflow:auto;background-position:38% center}body.agape-login:before{background:linear-gradient(180deg,rgba(3,14,30,.72),rgba(3,14,30,.88))}body.agape-login .login-hero-panel{min-height:52vh;padding:32px 24px 42px}body.agape-login .login-hero-brand{position:relative;inset:auto;align-self:flex-start;margin-bottom:100px}body.agape-login .login-hero-brand img{max-width:100%;width:190px}body.agape-login .login-hero-copy{padding:0}body.agape-login .login-hero-copy h1{font-size:clamp(40px,10vw,58px)}body.agape-login .login-form-panel{min-height:auto;padding:38px 20px 54px;border-left:0;border-top:1px solid rgba(255,255,255,.12)}body.agape-login .login-form-panel:before{inset:12px}.login-capabilities{margin-top:22px}}

/* Split-panel login using supplied Agape hero image */
body.agape-login{
    display:grid;
    grid-template-columns:minmax(560px,1.02fr) minmax(470px,.98fr);
    min-height:100vh;
    overflow:hidden;
    background:linear-gradient(90deg,#061421 0%,#172a3d 45%,#edf4fb 56%,#f8fbff 100%);
}
body.agape-login:after{display:none}
body.agape-login .login-hero-panel{
    position:relative;
    inset:auto;
    z-index:1;
    min-height:100vh;
    padding:clamp(56px,7vw,110px) clamp(48px,6vw,96px);
    display:flex;
    flex-direction:column;
    justify-content:center;
    background:
        linear-gradient(90deg,rgba(4,18,33,.88) 0%,rgba(4,18,33,.72) 42%,rgba(4,18,33,.30) 78%,rgba(237,244,251,.78) 100%),
        url('../agape/agape_login_hero.png') no-repeat 34% center;
    background-size:cover;
    color:#fff;
    margin-right:-70px;
    padding-right:calc(clamp(48px,6vw,96px) + 70px);
}
body.agape-login .login-hero-panel:before{
    content:"";
    display:block;
    position:absolute;
    inset:0;
    z-index:0;
    background:
        linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px),
        linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px);
    background-size:92px 92px;
    opacity:.42;
}
body.agape-login .login-hero-panel:after{
    content:"";
    display:block;
    position:absolute;
    right:-18%;
    bottom:-20%;
    width:620px;
    height:620px;
    border-radius:50%;
    background:
        radial-gradient(circle,rgba(83,139,216,.16) 0 34%,transparent 35%),
        radial-gradient(circle,transparent 0 48%,rgba(83,139,216,.17) 49% 50%,transparent 51%),
        radial-gradient(circle,transparent 0 64%,rgba(220,126,184,.10) 65% 66%,transparent 67%);
    transform:none;
    z-index:0;
}
body.agape-login .login-hero-brand,
body.agape-login .login-hero-copy{
    display:block;
    position:relative;
    z-index:2;
}
body.agape-login .login-hero-brand{
    width:max-content;
    max-width:75%;
    margin:0 0 64px;
    padding:0;
    border-radius:0;
    background:transparent;
    border:0;
    box-shadow:none;
}
body.agape-login .login-hero-brand img{
    width:min(360px,70vw);
    filter:drop-shadow(0 18px 30px rgba(0,0,0,.38));
}
body.agape-login .login-hero-copy{
    max-width:680px;
    padding:0;
    background:transparent;
    border:0;
    box-shadow:none;
    backdrop-filter:none;
}
body.agape-login .login-hero-copy small{
    color:#65b8ff;
    margin-bottom:20px;
}
body.agape-login .login-hero-copy h1{
    max-width:640px;
    margin:0 0 24px;
    color:#fff;
    font-size:clamp(48px,5vw,76px);
    line-height:1.02;
}
body.agape-login .login-hero-copy p{
    max-width:600px;
    color:#e8f3ff;
    font-size:18px;
    line-height:1.6;
}
body.agape-login .login-hero-meta{
    width:max-content;
    margin-top:52px;
    padding:0;
    border-radius:0;
    background:transparent;
    color:#fff;
}
body.agape-login .login-hero-meta span{
    background:#dc7eb8;
    box-shadow:0 0 0 7px rgba(220,126,184,.18);
}
body.agape-login .fire-network{display:none}
body.agape-login .login-form-panel{
    position:relative;
    z-index:2;
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:clamp(34px,5vw,72px);
    background:
        linear-gradient(90deg,rgba(237,244,251,.42),rgba(248,251,255,.96) 18%,rgba(248,251,255,1) 100%),
        radial-gradient(circle at 82% 50%,rgba(83,139,216,.10),transparent 28%),
        linear-gradient(135deg,#f8fbff,#edf4fb);
}
body.agape-login .login-form-panel:before{
    content:"";
    display:block;
    position:absolute;
    right:-210px;
    top:20%;
    width:620px;
    height:620px;
    background:url('../agape/agape_background_mark.png') no-repeat center/contain;
    opacity:.035;
    pointer-events:none;
}
body.agape-login .login-card{
    width:min(430px,100%);
    padding:42px 38px;
    border-radius:18px;
    background:rgba(255,255,255,.94);
    border:1px solid #d9e5f4;
    box-shadow:0 28px 70px rgba(61,86,121,.14);
    backdrop-filter:none;
}
body.agape-login .login-card img{
    width:205px;
    margin:0 auto 30px;
}
body.agape-login .login-card h1{
    font-weight:400;
}
@media(max-width:1000px){
    body.agape-login{
        grid-template-columns:1fr;
        overflow:auto;
        background:#edf4fb;
    }
    body.agape-login .login-hero-panel{
        min-height:54vh;
        padding:32px 24px;
        background-position:26% center;
    }
    body.agape-login .login-hero-brand{margin-bottom:34px}
    body.agape-login .login-hero-copy h1{font-size:42px}
    body.agape-login .login-form-panel{
        min-height:auto;
        padding:28px 18px 44px;
    }
}

/* Unified full-image login layout */
body.agape-login{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    min-height:100vh;
    overflow:hidden;
    padding:clamp(28px,5vw,76px) clamp(58px,10vw,170px);
    background:
        linear-gradient(90deg,rgba(4,18,33,.16) 0%,rgba(4,18,33,.08) 35%,rgba(255,255,255,.12) 58%,rgba(255,255,255,.40) 100%),
        url('../agape/agape_login_hero.png') no-repeat center;
    background-size:cover;
}
body.agape-login:after{display:none}
body.agape-login .login-hero-panel{
    display:none;
}
body.agape-login .login-form-panel{
    position:relative;
    z-index:2;
    min-height:auto;
    display:block;
    padding:0;
    background:transparent;
}
body.agape-login .login-form-panel:before{
    display:none;
}
body.agape-login .login-card{
    width:min(440px,calc(100vw - 40px));
    padding:42px 38px;
    border-radius:24px;
    background:rgba(255,255,255,.84);
    border:1px solid rgba(215,226,242,.95);
    box-shadow:0 30px 90px rgba(61,86,121,.20);
    backdrop-filter:blur(18px);
}
body.agape-login .login-card img{
    width:205px;
    margin:0 auto 30px;
}
body.agape-login .login-card h1{
    font-size:36px;
    font-weight:800;
}
body.agape-login .login-card input{
    background:rgba(239,246,255,.92);
}
body.agape-login .login-card .btn.primary{
    background:#2f6fed;
    border-color:#2f6fed;
}
@media(max-width:980px){
    body.agape-login{
        justify-content:center;
        align-items:flex-end;
        overflow:auto;
        min-height:100vh;
        padding:36px 18px;
        background:
            linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.72) 55%,rgba(255,255,255,.92)),
            url('../agape/agape_login_hero.png') no-repeat 28% center;
        background-size:cover;
    }
}

/* Dashboard control-room layout */
.dash-board{display:grid;gap:18px}
.dash-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 26px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(239,246,255,.90));border-top:4px solid #2f6fed}
.dash-hero h1{font-size:34px;line-height:1.05;margin:8px 0 8px}
.dash-hero p{margin:0;color:#657289;font-weight:800}
.dash-hero-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.dash-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.dash-kpi{display:block;min-height:138px;padding:18px 18px 16px;text-decoration:none;color:#172033;border-top:4px solid #2f6fed;transition:.16s ease}
.dash-kpi.pink{border-top-color:#dc7eb8}.dash-kpi:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(61,86,121,.14)}
.dash-kpi span{display:block;color:#657289;font-weight:900;font-size:13px}
.dash-kpi strong{display:block;margin:14px 0 10px;font-size:32px;line-height:1}
.dash-kpi small{display:block;color:#657289;font-weight:800;line-height:1.35}
.test-kpi-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.test-kpi{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;align-items:center;min-height:120px;padding:17px 18px;border-top:4px solid #2f6fed}.test-kpi.pink{border-top-color:#dc7eb8}.test-kpi-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#e8f1ff;color:#2f6fed;font-size:21px;font-weight:900}.test-kpi.pink .test-kpi-icon{background:#fbe7f3;color:#bd3f82}.test-kpi span{display:block;color:#66758c;font-size:12px;font-weight:900}.test-kpi strong{display:block;margin:7px 0 5px;color:#172033;font-size:29px;line-height:1}.test-kpi small{display:block;color:#718098;font-size:11px;font-weight:750;line-height:1.35}@media(max-width:850px){.test-kpi-row{grid-template-columns:1fr}.test-kpi{min-height:96px}}
.dash-main-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.72fr);gap:18px;align-items:start}
.dash-alert-card{min-height:0;display:flex;flex-direction:column}
.dash-chart-card{grid-column:1/-1}
.dash-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}
.dash-card-head h2{margin:7px 0 0;font-size:24px}
.dash-alert-count{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:46px;border-radius:14px;background:#e8f1ff;color:#2f6fed;font-size:24px}
.dash-alert-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.dash-alert-tabs button{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid #d7e2f2;border-radius:999px;background:#f8fbff;color:#657289;font:inherit;font-size:12px;font-weight:900;cursor:pointer;transition:.18s ease}
.dash-alert-tabs button:hover{border-color:#8fb5f6;background:linear-gradient(135deg,#eaf2ff,#fff3fa);color:#245cc8;transform:translateY(-1px)}
.dash-alert-tabs button.active{border-color:#2f6fed;background:linear-gradient(135deg,#2f76ed,#4c83e8 55%,#d878b4);color:#fff;box-shadow:0 6px 16px rgba(47,111,237,.2)}
.dash-alert-tabs b{color:#172033}
.dash-alert-tabs button.active b{color:#fff}
.dash-alert-feed{display:grid;gap:10px;max-height:none;overflow:auto;padding-right:4px;flex:1}
.dash-alert-feed{max-height:520px}
.dash-alert-row[hidden]{display:none}
.dash-alert-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:14px;padding:15px 16px;border:1px solid #c9d9ed;border-left:4px solid #dc7eb8;border-radius:14px;background:#f3f7fd;box-shadow:0 4px 12px rgba(49,79,122,.045);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.dash-alert-row:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(49,79,122,.09)}
.dash-alert-row.warning{border-color:#ecd79b;border-left-color:#dda11d;background:linear-gradient(135deg,#fffaf0,#fff6df)}
.dash-alert-row.danger{border-color:#efc3c6;border-left-color:#dc2626;background:linear-gradient(135deg,#fff5f5,#ffebed)}
.dash-alert-row small{display:block;margin-bottom:4px;color:#5d6d85;font-size:12px;font-weight:900}
.dash-alert-row strong{display:block;color:#172033;font-size:15px}
.dash-alert-row p{margin:5px 0 0;color:#5b6980;font-size:13px;font-weight:600;line-height:1.4}
.dash-alert-dot{width:10px;height:10px;border-radius:50%;background:#dc7eb8;box-shadow:0 0 0 6px rgba(220,126,184,.12)}
.dash-alert-row.danger .dash-alert-dot{background:#dc2626;box-shadow:0 0 0 6px rgba(220,38,38,.12)}
.dash-alert-row.warning .dash-alert-dot{background:#dda11d;box-shadow:0 0 0 6px rgba(221,161,29,.14)}
.dash-empty{border:1px dashed #cbd8ea;border-radius:14px;background:#f8fbff;padding:18px;color:#657289;font-weight:900}
.dash-work-card{min-height:252px}
.dash-range{color:#657289;font-size:13px;font-weight:900}
.dash-pipeline,.dash-compliance-list{display:grid;gap:11px}
.dash-pipeline a,.dash-compliance-list a{display:grid;gap:9px;padding:12px;border:1px solid #d7e2f2;border-radius:14px;background:#fff;color:#172033;text-decoration:none}
.dash-pipeline a span,.dash-compliance-list a span{display:flex;justify-content:space-between;gap:10px;align-items:center}
.dash-pipeline b,.dash-compliance-list b{font-size:14px}.dash-pipeline em,.dash-compliance-list em{font-style:normal;color:#657289;font-weight:900}
.dash-pipeline i,.dash-compliance-list i{display:block;height:9px;border-radius:999px;background:#e7f0ff;overflow:hidden}
.dash-pipeline u,.dash-compliance-list u{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f6fed,#dc7eb8)}
.dash-compliance-list small{color:#657289;font-size:12px;font-weight:800;line-height:1.35}
.dash-mini-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.dash-mini-summary div{border:1px solid #d7e2f2;border-radius:14px;background:#f8fbff;padding:13px}
.dash-mini-summary strong{display:block;font-size:24px}.dash-mini-summary span{color:#657289;font-size:12px;font-weight:900}
.dash-performance-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);gap:14px;align-items:stretch}
.dash-job-chart,.dash-diesel-chart{border:1px solid #d7e2f2;border-radius:16px;background:linear-gradient(145deg,#fbfdff,#f4f8fe);padding:18px;min-height:310px}
.dash-chart-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.dash-chart-title strong{display:block;font-size:19px}.dash-chart-title span{display:block;margin-top:5px;color:#657289;font-size:14px;font-weight:800}.dash-chart-title>b{padding:7px 10px;border-radius:10px;background:#e8f1ff;color:#2f6fed;font-size:14px;white-space:nowrap}
.dash-chart-legend{display:flex;gap:16px;flex-wrap:wrap;margin:18px 0 10px}.dash-chart-legend span{display:flex;align-items:center;gap:7px;color:#657289;font-size:13px;font-weight:900}.dash-chart-legend i{width:10px;height:10px;border-radius:3px;background:var(--legend-color)}
.dash-grouped-bars{height:218px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:end;padding:14px 18px 0;border-bottom:1px solid #cbd8ea;background:repeating-linear-gradient(to top,transparent 0,transparent 63px,rgba(203,216,234,.48) 64px)}
.dash-month-group{height:100%;display:grid;grid-template-rows:1fr 24px;align-items:end}.dash-month-group>strong{text-align:center;color:#657289;font-size:12px}.dash-bar-cluster{height:174px;display:flex;align-items:end;justify-content:center;gap:10px}.dash-bar-cluster i{position:relative;width:min(32px,18%);height:var(--bar-height);min-height:5px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,var(--bar-color),color-mix(in srgb,var(--bar-color) 72%,white));box-shadow:0 7px 15px color-mix(in srgb,var(--bar-color) 18%,transparent)}.dash-bar-cluster em{position:absolute;left:50%;bottom:calc(100% + 5px);transform:translateX(-50%);color:#657289;font-size:11px;font-style:normal;font-weight:900}
.dash-chart-empty{min-height:158px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin-top:10px;border:1px dashed #cbd8ea;border-radius:14px;background:rgba(255,255,255,.72);color:#657289}.dash-chart-empty:before{content:'✓';display:grid;place-items:center;width:42px;height:42px;margin-bottom:10px;border-radius:14px;background:#e6f8f0;color:#12a66a;font-size:22px;font-weight:900}.dash-chart-empty b{color:#172033}.dash-chart-empty span{max-width:360px;margin-top:5px;font-size:12px;font-weight:800}.dash-chart-empty.compact{min-height:164px}
.dash-diesel-bars{display:grid;gap:22px;margin-top:30px}.dash-diesel-bars>div{display:grid;gap:8px}.dash-diesel-bars span{display:flex;align-items:center;justify-content:space-between;gap:10px}.dash-diesel-bars b{font-size:12px}.dash-diesel-bars em{color:#657289;font-size:12px;font-style:normal;font-weight:900}.dash-diesel-bars i{height:12px;border-radius:999px;background:#e7f0ff;overflow:hidden}.dash-diesel-bars u{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f6fed,#71a5ff)}
.dash-shortcuts{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:stretch}
.dash-shortcuts h2{margin:0 0 4px;font-size:24px}
.dash-shortcuts>.eyebrow,.dash-shortcuts>h2{grid-column:1/-1}
.dash-shortcuts a{display:block;padding:14px;border:1px solid #d7e2f2;border-radius:14px;background:#fff;color:#172033;text-decoration:none}
.dash-shortcuts a:hover{border-color:#2f6fed;background:#f8fbff}
.dash-shortcuts a strong{display:block}.dash-shortcuts a span{display:block;margin-top:4px;color:#657289;font-size:13px;font-weight:800}
@media(max-width:1280px){.dash-main-grid,.dash-performance-grid{grid-template-columns:1fr}.dash-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.dash-hero,.dash-card-head,.dash-chart-title{flex-direction:column}.dash-kpi-row,.dash-main-grid,.dash-performance-grid,.dash-mini-summary,.dash-shortcuts{grid-template-columns:1fr}.dash-chart-card,.dash-shortcuts{grid-column:auto}.dash-alert-row{grid-template-columns:12px minmax(0,1fr)}.dash-alert-row .btn{grid-column:2;justify-self:start}.dash-chart-legend{gap:9px}.dash-grouped-bars{gap:10px;padding-inline:4px}.dash-bar-cluster{gap:4px}}

/* Central client workspace */
.client-page-title>div>p{margin:6px 0 0;color:#657289;font-weight:800}.client-summary-row{display:grid;grid-template-columns:repeat(3,minmax(0,220px));gap:12px;margin-bottom:18px}.client-summary-row .card{padding:16px 18px}.client-summary-row strong{display:block;font-size:29px;color:#2f6fed}.client-summary-row span{color:#657289;font-size:13px;font-weight:900}.client-section{margin-bottom:18px}.client-section .list-toolbar h2{margin:5px 0 0}.client-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.client-card{display:grid;grid-template-columns:48px minmax(0,1fr);gap:13px;padding:16px;border:1px solid #d7e2f2;border-radius:15px;background:linear-gradient(145deg,#fff,#f6faff)}.client-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:linear-gradient(145deg,#2f6fed,#71a5ff);color:#fff;font-size:21px;font-weight:900}.client-card-body h3{margin:2px 0 7px;font-size:18px}.client-card-body p{margin:3px 0;color:#657289;font-size:12px;font-weight:800}.client-counts{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.client-counts span{padding:5px 8px;border-radius:999px;background:#e8f1ff;color:#2f6fed;font-size:11px;font-weight:900}.client-card-actions{grid-column:1/-1;display:flex;gap:8px;padding-top:10px;border-top:1px solid #e5edf7}.client-empty-state{padding:26px;border:1px dashed #cbd8ea;border-radius:14px;background:#f8fbff;color:#657289;text-align:center;font-weight:800}.check-label{display:flex;align-items:center;gap:8px}.check-label input[type=checkbox]{width:18px;height:18px;min-height:auto}
@media(max-width:1100px){.client-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.client-summary-row,.client-card-grid{grid-template-columns:1fr}.client-page-title .actions{width:100%}}

/* Client master-detail view */
.client-master-detail{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px;align-items:start}.client-directory{position:sticky;top:196px;padding:0;overflow:hidden}.client-directory-head{padding:19px 18px 14px;border-bottom:1px solid #d7e2f2}.client-directory-head h2{margin:5px 0 0;font-size:21px}.client-directory-list{display:grid;gap:5px;padding:10px;max-height:calc(100vh - 330px);overflow:auto}.client-directory-item{display:grid;grid-template-columns:42px minmax(0,1fr) 18px;gap:11px;align-items:center;padding:11px;border:1px solid transparent;border-radius:13px;color:#172033}.client-directory-item:hover{background:#f5f9ff;border-color:#d7e2f2}.client-directory-item.active{background:#eaf2ff;border-color:#a9c7fa}.client-directory-item .client-avatar{width:42px;height:42px;border-radius:13px;font-size:17px}.client-directory-item strong,.client-directory-item small{display:block}.client-directory-item small{margin-top:4px;color:#657289;font-size:11px;font-weight:800}.client-directory-item>b{color:#2f6fed;font-size:22px}.client-directory-add{width:calc(100% - 20px);margin:0 10px 12px}.client-detail{display:grid;gap:16px;min-width:0}.client-profile{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px}.client-profile-main{display:flex;align-items:center;gap:15px}.client-avatar.large{width:58px;height:58px;border-radius:17px;font-size:25px}.client-profile h2{margin:5px 0 7px;font-size:27px}.client-profile-contact{display:flex;gap:14px;flex-wrap:wrap;color:#657289;font-size:12px;font-weight:800}.client-profile-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.client-sites-heading{display:flex;justify-content:space-between;align-items:end;gap:14px;padding:4px 2px}.client-sites-heading h2{margin:5px 0 0}.client-site-stack{display:grid;gap:14px}.client-site-panel{padding:0;overflow:hidden}.client-site-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:17px 19px;background:linear-gradient(135deg,#fff,#f4f8fe);border-bottom:1px solid #d7e2f2}.client-site-panel-head h3{margin:5px 0 4px;font-size:20px}.client-site-panel-head p{margin:0;color:#657289;font-size:12px;font-weight:800}.client-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}.client-contact-card{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(150px,1fr) auto;gap:12px;align-items:center;padding:13px;border:1px solid #d7e2f2;border-radius:13px;background:#fff}.client-contact-card strong,.client-contact-card span{display:block}.client-contact-card strong{font-size:13px}.client-contact-card small{display:inline-block;margin-left:5px;padding:3px 6px;border-radius:999px;background:#dcfce7;color:#166534;font-size:9px;font-weight:900}.client-contact-card span{margin-top:4px;color:#657289;font-size:11px;font-weight:800}.client-no-contacts{grid-column:1/-1;padding:20px;border:1px dashed #cbd8ea;border-radius:12px;background:#f8fbff;color:#657289;text-align:center;font-weight:800}.client-welcome{display:grid;justify-items:center;gap:8px;padding:48px;text-align:center}.client-welcome.compact{padding:32px}.client-welcome h2,.client-welcome h3,.client-welcome p{margin:0}.client-welcome p{color:#657289}.client-welcome-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:17px;background:#e8f1ff;color:#2f6fed;font-size:30px;font-weight:900}
@media(max-width:1150px){.client-master-detail{grid-template-columns:280px minmax(0,1fr)}.client-contact-grid{grid-template-columns:1fr}.client-profile,.client-site-panel-head{align-items:flex-start;flex-direction:column}.client-profile-actions{justify-content:flex-start}}
@media(max-width:780px){.client-master-detail{grid-template-columns:1fr}.client-directory{position:static}.client-directory-list{max-height:300px}.client-profile-main{align-items:flex-start}.client-site-panel-head .actions{width:100%}.client-contact-card{grid-template-columns:1fr}}

/* Shared selected and hover treatment for primary navigation and client selection. */
.module-nav .nav-group>.nav-group-toggle{transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}
.module-nav .nav-group:not(.active)>.nav-group-toggle:hover{background:linear-gradient(135deg,#e9f2ff,#fff3fa);color:#245cc8;box-shadow:0 6px 16px rgba(47,111,237,.10);transform:translateY(-1px)}
.module-nav .nav-group.active>.nav-group-toggle{background:linear-gradient(135deg,#2f76ed,#4c83e8 55%,#d878b4);color:#fff;box-shadow:0 7px 18px rgba(47,111,237,.22)}
.module-nav .nav-menu a{transition:background .18s ease,color .18s ease,box-shadow .18s ease}
.module-nav .nav-menu a:not(.active):hover{background:linear-gradient(135deg,#e9f2ff,#fff3fa);color:#245cc8}
.module-nav .nav-menu a.active{background:linear-gradient(135deg,#2f76ed,#4c83e8 55%,#d878b4);color:#fff;box-shadow:0 6px 15px rgba(47,111,237,.18)}
.client-directory-item{transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.client-directory-item:not(.active):hover{background:linear-gradient(135deg,#e9f2ff,#fff3fa);border-color:#8fb5f6;box-shadow:0 7px 18px rgba(47,111,237,.10);transform:translateY(-1px)}
.client-directory-item.active{background:linear-gradient(135deg,#2f76ed,#4c83e8 55%,#d878b4);border-color:#2f6fed;color:#fff;box-shadow:0 8px 20px rgba(47,111,237,.22)}
.client-directory-item.active :is(strong,small,b){color:#fff}
.client-directory-item.active .client-avatar{background:rgba(255,255,255,.2);box-shadow:inset 0 0 0 1px rgba(255,255,255,.34)}

.client-contact-grid{display:block;padding:14px}
.client-contact-table-head,.client-contact-card{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(130px,.8fr) minmax(130px,.75fr) minmax(220px,1.25fr) auto;gap:16px;align-items:center}
.client-contact-table-head{padding:11px 16px;border:1px solid #d7e2f2;border-radius:12px 12px 0 0;background:#eaf2fc;color:#34435a;font-size:12px;font-weight:900}
.client-contact-card{width:100%;padding:14px 16px;border-radius:0;border-top:0}
.client-contact-card:last-child{border-radius:0 0 12px 12px}
.client-contact-card strong{font-size:14px}
.client-contact-card small{display:inline-flex;margin:0;font-size:10px}
.client-contact-card span{margin:0;font-size:13px}
.client-contact-name{display:flex;align-items:center;gap:8px;min-width:0}
.client-contact-actions{justify-self:end}
@media(max-width:900px){.client-contact-table-head{display:none}.client-contact-card{grid-template-columns:1fr;gap:8px;border-top:1px solid #d7e2f2;border-radius:12px;margin-bottom:10px}.client-contact-card:last-child{border-radius:12px;margin-bottom:0}.client-contact-actions{justify-self:start}}

/* Keep validation and result messages above slide-over creation panels. */
.modal{z-index:1300}

.back-link{display:inline-flex;align-items:center;gap:7px;margin-bottom:12px;padding:8px 12px;border:1px solid #bfd2ee;border-radius:10px;background:#fff;color:#245fc7;font-size:13px;font-weight:900;box-shadow:0 2px 7px rgba(61,86,121,.08);transition:background .15s,border-color .15s,transform .15s}.back-link span{font-size:23px;line-height:12px;margin-top:-2px}.back-link:hover{background:#eaf2ff;border-color:#8fb4ec;transform:translateX(-2px)}.page-title p{margin:6px 0 0;color:#657289;font-weight:800}.contractor-job-summary{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;margin-bottom:18px}.contractor-job-overview,.contractor-job-files{padding:22px}.contractor-job-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}.contractor-job-facts div{padding:14px;border:1px solid #d7e2f2;border-radius:12px;background:#f8fbff}.contractor-job-facts span,.contractor-job-description>span{display:block;margin-bottom:5px;color:#657289;font-size:11px;font-weight:900;text-transform:uppercase}.contractor-job-facts strong{font-size:14px}.contractor-job-description{margin-top:16px;padding:16px;border-radius:12px;background:#f8fbff}.contractor-job-description p{margin:0;line-height:1.55}.contractor-job-files{display:flex;flex-direction:column;align-items:stretch;gap:10px}.contractor-job-files .eyebrow{margin-bottom:6px}.contractor-job-workspace{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:18px;align-items:start}.contractor-job-workspace>.card,.contractor-job-side>.card{padding:22px}.contractor-job-workspace h2,.contractor-job-side h2,.contractor-job-history h2{margin-top:0}.contractor-job-side{display:grid;gap:18px}.contractor-job-history{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.contractor-job-history>.card{padding:22px}.contractor-update-item{display:grid;grid-template-columns:1fr auto;gap:6px 16px;padding:14px 0;border-top:1px solid #e5edf7}.contractor-update-item time{color:#657289;font-size:12px}.contractor-update-item p{grid-column:1/-1;margin:0;line-height:1.5}.contractor-document-list{display:flex;gap:10px;flex-wrap:wrap}.danger-zone{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:18px;padding:20px;border-color:#fecaca}.danger-zone h2,.danger-zone p{margin:0}.danger-zone p{margin-top:5px;color:#657289}@media(max-width:1000px){.contractor-job-summary,.contractor-job-workspace,.contractor-job-history{grid-template-columns:1fr}.contractor-job-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.contractor-job-facts{grid-template-columns:1fr}.danger-zone{align-items:flex-start;flex-direction:column}}

.danger-zone{width:100%;margin:0;padding:15px 16px}.danger-zone h2{font-size:19px}.danger-zone p{font-size:13px;line-height:1.45}.danger-zone .btn{white-space:nowrap}

.contractor-job-main{display:grid;gap:18px;min-width:0}.contractor-job-main>.card{padding:22px}.contractor-job-main .contractor-job-history{grid-template-columns:1fr 1fr;margin-top:0}.contractor-job-main .contractor-job-history>.card{min-width:0}

.latest-update-cell{display:grid;gap:6px;min-width:165px}.latest-update-cell strong{font-size:15px;line-height:1.45}.latest-update-cell span{color:#657289;font-size:13px;font-weight:800;white-space:nowrap}

/* Keep action cells as real table cells so their divider follows the full row height. */
.jobs-table td.job-actions{display:table-cell;vertical-align:middle}.jobs-table td.job-actions .action-row{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}

.job-filters .job-filter-alert-red,.job-filters .job-filter-alert-yellow{position:relative;padding-left:30px;font-weight:900}.job-filters .job-filter-alert-red:before,.job-filters .job-filter-alert-yellow:before{content:"";position:absolute;left:13px;top:50%;width:8px;height:8px;border-radius:50%;transform:translateY(-50%)}.job-filters .job-filter-alert-red{border-color:#f87171!important;background:#fee2e2!important;color:#991b1b!important;box-shadow:0 0 0 3px rgba(220,38,38,.08)}.job-filters .job-filter-alert-red:before{background:#dc2626;box-shadow:0 0 0 4px rgba(220,38,38,.12)}.job-filters .job-filter-alert-yellow{border-color:#fbbf24!important;background:#fef3c7!important;color:#92400e!important;box-shadow:0 0 0 3px rgba(245,158,11,.08)}.job-filters .job-filter-alert-yellow:before{background:#f59e0b;box-shadow:0 0 0 4px rgba(245,158,11,.13)}.job-filters .primary.job-filter-alert-red{background:#dc2626!important;color:#fff!important}.job-filters .primary.job-filter-alert-red:before{background:#fff}.job-filters .primary.job-filter-alert-yellow{background:#f59e0b!important;color:#fff!important}.job-filters .primary.job-filter-alert-yellow:before{background:#fff}

.table .contractor-due-row td{background:#fff1f2;border-bottom-color:#fecaca}.table .contractor-due-row td:first-child{border-left:4px solid #dc2626}.contractor-due-date{display:grid;gap:4px;color:#991b1b}.contractor-due-date strong{font-size:13px}.contractor-due-date span{font-size:11px;font-weight:900;text-transform:uppercase}

.contractor-jobs-table td.actions{display:table-cell;vertical-align:middle}.contractor-jobs-table td.actions>*{margin:2px 4px 2px 0}

.jobs-table th:nth-child(4){width:260px}.jobs-table th:nth-child(8){width:135px}.jobs-table th:nth-child(9){width:130px}.jobs-table th:nth-child(10){width:170px}.jobs-table th:nth-child(11){width:120px}.jobs-table th:nth-child(12){width:210px}.jobs-table .job-sla-warning-row td{background:#fffbeb;border-bottom-color:#fde68a}.jobs-table .job-sla-warning-row td:first-child{border-left:4px solid #f59e0b}.jobs-table .job-sla-danger-row td{background:#fff1f2;border-bottom-color:#fecaca}.jobs-table .job-sla-danger-row td:first-child{border-left:4px solid #dc2626}.job-sla-due-date{display:grid;gap:5px}.job-sla-due-date strong{font-size:15px}.job-sla-due-date span{font-size:13px;line-height:1.3;font-weight:900;text-transform:uppercase}.job-sla-warning-row .job-sla-due-date{color:#92400e}.job-sla-danger-row .job-sla-due-date{color:#991b1b}

.jobs-table tbody tr:not(.job-sla-warning-row):not(.job-sla-danger-row):nth-child(odd) td{background:#fff}.jobs-table tbody tr:not(.job-sla-warning-row):not(.job-sla-danger-row):nth-child(even) td{background:#f3f7fd}.jobs-table tbody td{border-bottom:1px solid #cbd8ea}.jobs-table tbody tr:not(.job-sla-warning-row):not(.job-sla-danger-row):hover td{background:#eaf2ff}.jobs-table tbody tr:not(.job-sla-warning-row):not(.job-sla-danger-row) td:first-child{border-left:4px solid #b7cff2}.jobs-table tbody tr:not(.job-sla-warning-row):not(.job-sla-danger-row):nth-child(even) td:first-child{border-left-color:#7fa9e8}

.contractor-jobs-table tbody tr:not(.contractor-due-row):nth-child(odd) td{background:#fff}.contractor-jobs-table tbody tr:not(.contractor-due-row):nth-child(even) td{background:#f3f7fd}.contractor-jobs-table tbody td{border-bottom:1px solid #cbd8ea}.contractor-jobs-table tbody tr:not(.contractor-due-row):hover td{background:#eaf2ff}.contractor-jobs-table tbody tr:not(.contractor-due-row) td:first-child{border-left:4px solid #b7cff2}.contractor-jobs-table tbody tr:not(.contractor-due-row):nth-child(even) td:first-child{border-left-color:#7fa9e8}

.job-column-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px 14px;margin:14px 0 18px;padding:16px;border:1px solid #d7e2f2;border-radius:14px;background:#f8fbff}.job-column-filters label{margin:0 0 6px;font-size:12px}.job-column-filters input,.job-column-filters select{min-height:39px}.job-filter-buttons{display:flex;align-items:flex-end;gap:9px;grid-column:1/-1}.job-filter-buttons .btn{min-height:39px}@media(max-width:1050px){.job-column-filters{grid-template-columns:repeat(2,minmax(160px,1fr))}}@media(max-width:620px){.job-column-filters{grid-template-columns:1fr}.job-filter-buttons{flex-wrap:wrap}}

.job-column-filters[hidden]{display:none}.filterable-heading{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.column-filter-toggle{display:inline-grid;place-items:center;width:22px;height:22px;padding:0;border:1px solid #b9cbe3;border-radius:6px;background:#fff;color:#52647e;font-size:13px;line-height:1;cursor:pointer}.column-filter-toggle:hover{border-color:#2f6fed;background:#eaf2ff;color:#2f6fed}.column-filter-toggle.active{border-color:#2f6fed;background:#2f6fed;color:#fff;box-shadow:0 0 0 3px rgba(47,111,237,.12)}

.filter-option-search{margin-bottom:7px;padding-left:34px!important;background:#fff linear-gradient(90deg,transparent 0,transparent 32px,#e5edf7 32px,#e5edf7 33px,transparent 33px)!important}.filter-option-search::placeholder{color:#7a879b}

/* Final login cascade: keep this after the legacy login variants. */
html body.agape-login{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,510px);align-items:stretch;justify-content:stretch;gap:0;min-height:100vh;padding:0;overflow:hidden;background:url('../agape/agape_login_hero.png') no-repeat center;background-size:cover;color:#fff}
html body.agape-login:before{content:"";display:block;position:absolute;z-index:0;inset:0;background:linear-gradient(90deg,rgba(3,13,29,.92),rgba(4,19,39,.76) 43%,rgba(5,20,42,.34) 70%,rgba(5,17,35,.70)),linear-gradient(180deg,rgba(4,14,29,.1),rgba(4,14,29,.62));pointer-events:none}
html body.agape-login .login-hero-panel{position:relative;z-index:1;display:flex;min-height:100vh;justify-content:flex-end;padding:clamp(42px,6vw,90px) clamp(44px,7vw,110px);background:transparent;overflow:visible}
html body.agape-login .login-hero-panel:before,html body.agape-login .login-hero-panel:after{display:none}
html body.agape-login .login-hero-brand{position:absolute;top:clamp(34px,5vw,68px);left:clamp(44px,7vw,110px);margin:0;padding:13px 17px;border:1px solid rgba(255,255,255,.2);border-radius:18px;background:rgba(255,255,255,.92);box-shadow:0 18px 55px rgba(0,0,0,.24)}
html body.agape-login .login-hero-brand img{display:block;width:230px;max-width:31vw;margin:0;padding:0;background:none;border-radius:0;filter:none}
html body.agape-login .login-hero-copy{display:block;width:min(760px,100%);max-width:none;margin:0;align-self:flex-end;padding-bottom:clamp(34px,5vh,70px)}
html body.agape-login .login-hero-copy small{margin-bottom:18px;color:#86b9ff;font-size:11px;letter-spacing:.28em}
html body.agape-login .login-hero-copy h1{max-width:760px;margin:0 0 22px;color:#fff;font-size:clamp(46px,5.2vw,76px);line-height:.98;letter-spacing:-.035em;text-shadow:0 18px 52px rgba(0,0,0,.35)}
html body.agape-login .login-hero-copy p{max-width:670px;color:#d7e5f7;font-size:17px;line-height:1.65}
html body.agape-login .login-hero-meta{margin-top:28px;color:#aac1dc;font-size:12px}
html body.agape-login .login-hero-meta span{width:8px;height:8px;box-shadow:0 0 0 5px rgba(18,166,106,.13),0 0 16px rgba(18,210,142,.65)}
html body.agape-login .fire-network{display:none}
html body.agape-login .login-form-panel{position:relative;z-index:2;display:grid;place-items:center;min-height:100vh;padding:clamp(28px,4vw,58px);background:linear-gradient(180deg,rgba(4,15,32,.42),rgba(4,15,32,.72));border-left:1px solid rgba(255,255,255,.12);backdrop-filter:blur(14px)}
html body.agape-login .login-form-panel:before{content:"";display:block;position:absolute;inset:20px;border:1px solid rgba(125,174,238,.10);border-radius:30px;pointer-events:none}
html body.agape-login .login-card{width:100%;max-width:410px;padding:36px 34px;border:1px solid rgba(145,188,244,.21);border-radius:28px;background:linear-gradient(145deg,rgba(11,31,61,.94),rgba(5,18,39,.96));box-shadow:0 35px 90px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.06);color:#fff;backdrop-filter:blur(24px)}
html body.agape-login .login-card img{width:185px;margin:0 0 30px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 12px 30px rgba(0,0,0,.22)}
html body.agape-login .login-card small{margin-bottom:13px;color:#7fb4fb;font-size:10px;letter-spacing:.24em}
html body.agape-login .login-card h1{margin:0 0 9px;color:#fff;font-size:38px;font-weight:800;text-align:left}
html body.agape-login .login-card p{margin-bottom:25px;color:#aebed3;font-size:14px}
html body.agape-login .login-card label{margin-top:17px;color:#e9f2ff;font-size:12px}
html body.agape-login .login-card input{min-height:54px;color:#fff;border:1px solid rgba(126,174,236,.28);border-radius:12px;background:rgba(232,243,255,.08)}
html body.agape-login .login-card input:focus{color:#fff;border-color:#6da8f3;background:rgba(232,243,255,.13);box-shadow:0 0 0 4px rgba(79,138,216,.13)}
html body.agape-login .login-card .btn.primary{min-height:54px;margin-top:24px;border:0;border-radius:12px;background:linear-gradient(100deg,#367bea,#4f8ad8 68%,#c96ea7);box-shadow:0 13px 30px rgba(40,105,210,.28);font-weight:950}
html body.agape-login .login-secure-note{margin-top:25px;padding-top:20px;color:#8497b1;border-color:rgba(151,187,233,.16);font-size:11px}
@media(max-width:980px){html body.agape-login{display:block;overflow:auto;background-position:38% center}html body.agape-login:before{background:linear-gradient(180deg,rgba(3,14,30,.72),rgba(3,14,30,.9))}html body.agape-login .login-hero-panel{min-height:52vh;padding:32px 24px 42px}html body.agape-login .login-hero-brand{position:relative;inset:auto;align-self:flex-start;margin-bottom:100px}html body.agape-login .login-hero-brand img{max-width:100%;width:190px}html body.agape-login .login-hero-copy{padding:0}html body.agape-login .login-hero-copy h1{font-size:clamp(40px,10vw,58px)}html body.agape-login .login-form-panel{min-height:auto;padding:38px 20px 54px;border-left:0;border-top:1px solid rgba(255,255,255,.12)}}

/* Login concept 03 — fire-safety studio */
html body.agape-login{position:relative;display:grid;grid-template-columns:minmax(0,1.42fr) minmax(410px,.58fr);min-height:100vh;padding:0;overflow:hidden;background:#07111f url('../agape/agape_login_control_room.png') no-repeat center;background-size:cover;color:#fff}
html body.agape-login:before{content:"";display:block;position:absolute;z-index:0;inset:0;background:linear-gradient(90deg,rgba(4,13,25,.18),rgba(4,13,25,.28) 48%,rgba(4,13,25,.76) 71%,rgba(4,13,25,.92)),linear-gradient(0deg,rgba(3,10,20,.72),transparent 55%);pointer-events:none}
html body.agape-login .login-hero-panel{position:relative;z-index:1;display:flex;min-height:100vh;padding:clamp(36px,5vw,72px) clamp(36px,6vw,100px);justify-content:flex-end;background:transparent;overflow:visible}
html body.agape-login .login-hero-panel:before,html body.agape-login .login-hero-panel:after{display:none}
html body.agape-login .login-hero-brand{position:absolute;top:clamp(34px,5vw,66px);left:clamp(36px,6vw,100px);margin:0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}
html body.agape-login .login-hero-brand img{display:block;width:238px;max-width:34vw;margin:0;padding:0;border:0;border-radius:0;background:transparent;filter:drop-shadow(0 9px 24px rgba(0,0,0,.42))}
html body.agape-login .login-hero-copy{display:block;width:min(720px,100%);max-width:none;margin:0;align-self:flex-end;padding:0 0 clamp(25px,4vh,54px)}
html body.agape-login .login-hero-copy small{margin:0 0 18px;color:#9cc5fb;font-size:11px;letter-spacing:.3em}
html body.agape-login .login-hero-copy h1{max-width:720px;margin:0 0 20px;color:#fff;font-size:clamp(54px,6.1vw,92px);font-weight:850;line-height:.88;letter-spacing:-.055em;text-shadow:0 20px 55px rgba(0,0,0,.45)}
html body.agape-login .login-hero-copy h1 em{font-style:normal;color:#fff;background:linear-gradient(100deg,#80aff0,#e182b9);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
html body.agape-login .login-hero-copy p{max-width:600px;margin:0;color:#d8e4f3;font-size:17px;line-height:1.6;text-shadow:0 8px 24px rgba(0,0,0,.6)}
html body.agape-login .login-capabilities{display:flex;gap:9px;flex-wrap:wrap;margin-top:25px}
html body.agape-login .login-capabilities span{padding:9px 13px;border:1px solid rgba(193,217,248,.25);border-radius:8px;background:rgba(4,17,35,.62);color:#e4eefb;font-size:11px;backdrop-filter:blur(10px)}
html body.agape-login .login-hero-meta{margin-top:23px;color:#c1d1e4;font-size:12px}
html body.agape-login .login-hero-meta span{width:8px;height:8px;background:#43d69e;box-shadow:0 0 0 5px rgba(67,214,158,.12),0 0 18px rgba(67,214,158,.6)}
html body.agape-login .fire-network{display:none}
html body.agape-login .login-form-panel{position:relative;z-index:2;display:grid;place-items:center;min-height:100vh;padding:clamp(28px,4vw,68px);background:transparent;border:0;backdrop-filter:none}
html body.agape-login .login-form-panel:before{content:"";display:block;position:absolute;left:0;top:8%;bottom:8%;width:1px;background:linear-gradient(transparent,rgba(142,179,226,.4),transparent);border:0;border-radius:0}
html body.agape-login .login-card{position:relative;width:100%;max-width:420px;padding:46px 42px 39px;border:1px solid rgba(160,194,236,.22);border-radius:4px;background:linear-gradient(145deg,rgba(7,24,48,.91),rgba(5,15,31,.96));box-shadow:0 38px 100px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.05);color:#fff;text-align:left;backdrop-filter:blur(22px)}
html body.agape-login .login-card:before{content:"";position:absolute;left:-1px;top:38px;width:3px;height:74px;background:linear-gradient(#4f8ad8,#dd79b5);box-shadow:0 0 22px rgba(93,147,222,.52)}
html body.agape-login .login-access-mark{display:grid;place-items:center;width:42px;height:42px;margin:0 0 28px;border:1px solid rgba(128,174,235,.32);border-radius:50%;background:rgba(79,138,216,.1)}
html body.agape-login .login-access-mark span{position:relative;width:15px;height:12px;border:2px solid #8ebbf3;border-radius:3px}
html body.agape-login .login-access-mark span:before{content:"";position:absolute;left:2px;right:2px;bottom:100%;height:9px;border:2px solid #8ebbf3;border-bottom:0;border-radius:8px 8px 0 0}
html body.agape-login .login-card>small{margin:0 0 12px;color:#8dbaf2;font-size:10px;letter-spacing:.29em}
html body.agape-login .login-card h1{margin:0 0 9px;color:#fff;font-size:42px;font-weight:850;letter-spacing:-.04em;text-align:left}
html body.agape-login .login-card>p{margin:0 0 30px;color:#9fb0c7;font-size:14px;line-height:1.55}
html body.agape-login .login-field{display:grid;gap:8px;margin-top:18px}
html body.agape-login .login-field label{margin:0;color:#d8e6f7;font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
html body.agape-login .login-field input{min-height:54px;padding:0 16px;color:#fff;border:1px solid rgba(135,173,222,.24);border-radius:3px;background:rgba(211,231,255,.07);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
html body.agape-login .login-field input::placeholder{color:#71849e}
html body.agape-login .login-field input:focus{color:#fff;border-color:#659fe8;background:rgba(211,231,255,.11);box-shadow:0 0 0 3px rgba(79,138,216,.12)}
html body.agape-login .login-card .btn.primary{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:56px;margin-top:26px;padding:0 19px;border:0;border-radius:3px;background:linear-gradient(100deg,#346fc6,#4f8ad8 66%,#bd69a0);box-shadow:0 14px 32px rgba(34,92,176,.28);font-weight:950}
html body.agape-login .login-card .btn.primary b{font-size:24px;font-weight:500;transition:transform .18s ease}
html body.agape-login .login-card .btn.primary:hover b{transform:translateX(4px)}
html body.agape-login .login-secure-note{display:flex;align-items:center;gap:9px;margin-top:25px;padding-top:20px;color:#778aa4;border-color:rgba(151,187,233,.14);font-size:10px}
html body.agape-login .login-secure-note span{width:6px;height:6px;border-radius:50%;background:#43d69e;box-shadow:0 0 9px rgba(67,214,158,.7)}
@media(max-width:980px){html body.agape-login{display:block;overflow:auto;background-position:38% center}html body.agape-login:before{background:linear-gradient(180deg,rgba(3,12,24,.35),rgba(3,12,24,.74) 46%,rgba(3,12,24,.96))}html body.agape-login .login-hero-panel{min-height:58vh;padding:28px 24px 38px}html body.agape-login .login-hero-brand{position:relative;inset:auto;align-self:flex-start;margin:0 0 130px}html body.agape-login .login-hero-brand img{width:190px;max-width:70vw}html body.agape-login .login-hero-copy{padding:0}html body.agape-login .login-hero-copy h1{font-size:clamp(46px,13vw,66px)}html body.agape-login .login-form-panel{min-height:auto;padding:36px 20px 52px}html body.agape-login .login-form-panel:before{display:none}html body.agape-login .login-card{max-width:520px;padding:36px 28px}}

/* Login concept 04 — white animated fire-safety studio */
html body.agape-login{position:relative;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(430px,.88fr);min-height:100vh;padding:0;overflow:hidden;background:#f8fbff;color:#172033}
html body.agape-login:before{content:"";display:block;position:absolute;z-index:0;inset:0;background:radial-gradient(circle at 19% 18%,rgba(79,138,216,.13),transparent 27%),radial-gradient(circle at 62% 78%,rgba(220,126,184,.12),transparent 24%),linear-gradient(120deg,#fff 0%,#f7faff 58%,#eef5ff 100%);pointer-events:none}
html body.agape-login:after{content:"";display:block;position:absolute;z-index:0;left:0;right:0;bottom:0;height:30%;opacity:.45;background:linear-gradient(90deg,rgba(79,138,216,.08) 1px,transparent 1px),linear-gradient(rgba(79,138,216,.08) 1px,transparent 1px);background-size:54px 54px;mask-image:linear-gradient(transparent,#000);transform:perspective(500px) rotateX(58deg) scale(1.3);transform-origin:bottom}
html body.agape-login .login-equipment-scene{position:absolute;z-index:1;inset:0;pointer-events:none;overflow:hidden}
.equipment-orbit{position:absolute;border:1px solid;border-radius:50%;opacity:.42}.orbit-blue{left:30%;top:20%;width:420px;height:420px;border-color:rgba(79,138,216,.28);animation:equipment-orbit 18s linear infinite}.orbit-pink{left:8%;bottom:1%;width:260px;height:260px;border-color:rgba(220,126,184,.25);animation:equipment-orbit 14s linear infinite reverse}
.equipment-item{position:absolute;will-change:transform;filter:drop-shadow(0 24px 30px rgba(35,66,108,.17))}.equipment-item img{display:block;width:100%;height:100%;object-fit:contain}
.reel-main{left:31%;top:8%;width:clamp(230px,23vw,390px);aspect-ratio:1;animation:reel-float 8s ease-in-out infinite}.reel-main img{animation:reel-turn 26s linear infinite}
.extinguisher-main{left:12%;bottom:-6%;width:clamp(155px,14vw,235px);height:clamp(360px,49vh,555px);animation:extinguisher-float 7.5s ease-in-out infinite}
.reel-echo{left:-5%;top:18%;width:clamp(110px,11vw,180px);aspect-ratio:1;opacity:.18;filter:grayscale(.3) drop-shadow(0 14px 22px rgba(35,66,108,.1));animation:reel-drift 11s ease-in-out infinite}.reel-echo img{animation:reel-turn 38s linear infinite reverse}
.extinguisher-echo{left:48%;bottom:3%;width:clamp(70px,7vw,110px);height:clamp(180px,27vh,300px);opacity:.16;filter:grayscale(.45);animation:extinguisher-float 9s 1.5s ease-in-out infinite reverse}
html body.agape-login .login-hero-panel{position:relative;z-index:2;display:flex;min-height:100vh;padding:clamp(34px,5vw,70px) clamp(40px,6vw,96px);justify-content:flex-end;background:transparent;overflow:visible}
html body.agape-login .login-hero-panel:before,html body.agape-login .login-hero-panel:after{display:none}
html body.agape-login .login-hero-brand{position:absolute;top:clamp(34px,5vw,66px);left:clamp(40px,6vw,96px);margin:0;padding:0;border:0;background:transparent;box-shadow:none}
html body.agape-login .login-hero-brand img{display:block;width:240px;max-width:32vw;margin:0;padding:0;background:none;border:0;border-radius:0;filter:none}
html body.agape-login .login-hero-copy{display:block;width:min(660px,100%);max-width:none;margin:0;align-self:flex-end;padding:0 0 clamp(30px,5vh,62px)}
html body.agape-login .login-hero-copy small{margin:0 0 17px;color:#4f8ad8;font-size:11px;letter-spacing:.3em;text-shadow:none}
html body.agape-login .login-hero-copy h1{max-width:660px;margin:0 0 20px;color:#172033;font-size:clamp(52px,5.8vw,86px);font-weight:850;line-height:.91;letter-spacing:-.055em;text-shadow:none}
html body.agape-login .login-hero-copy h1 em{font-style:normal;color:#172033;background:linear-gradient(100deg,#4f8ad8,#dc7eb8);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
html body.agape-login .login-hero-copy p{max-width:570px;margin:0;color:#657289;font-size:16px;line-height:1.65;text-shadow:none}
html body.agape-login .login-capabilities{display:flex;gap:9px;flex-wrap:wrap;margin-top:24px}
html body.agape-login .login-capabilities span{padding:9px 13px;border:1px solid #d5e2f3;border-radius:999px;background:rgba(255,255,255,.78);color:#43546d;font-size:11px;box-shadow:0 8px 20px rgba(53,82,121,.07);backdrop-filter:blur(9px)}
html body.agape-login .login-hero-meta{margin-top:22px;color:#657289;font-size:12px}
html body.agape-login .login-hero-meta span{width:8px;height:8px;background:#12a66a;box-shadow:0 0 0 5px rgba(18,166,106,.1)}
html body.agape-login .fire-network{display:none}
html body.agape-login .login-form-panel{position:relative;z-index:3;display:grid;place-items:center;min-height:100vh;padding:clamp(30px,5vw,78px);background:transparent;border:0;backdrop-filter:none}
html body.agape-login .login-form-panel:before{content:"";display:block;position:absolute;inset:7% 5% 7% 0;border:1px solid rgba(79,138,216,.13);border-radius:36px;background:rgba(255,255,255,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.8);backdrop-filter:blur(4px)}
html body.agape-login .login-card{position:relative;width:100%;max-width:420px;padding:42px 40px 36px;border:1px solid #d8e3f2;border-radius:24px;background:rgba(255,255,255,.9);box-shadow:0 30px 80px rgba(52,82,123,.16),inset 0 1px 0 #fff;color:#172033;text-align:left;backdrop-filter:blur(20px)}
html body.agape-login .login-card:before{content:"";position:absolute;left:34px;right:34px;top:0;height:3px;border-radius:0 0 6px 6px;background:linear-gradient(90deg,#4f8ad8,#dc7eb8)}
html body.agape-login .login-access-mark{display:grid;place-items:center;width:42px;height:42px;margin:0 0 27px;border:1px solid #c9dcf5;border-radius:14px;background:#edf5ff}
html body.agape-login .login-access-mark span{position:relative;width:15px;height:12px;border:2px solid #4f8ad8;border-radius:3px}
html body.agape-login .login-access-mark span:before{content:"";position:absolute;left:2px;right:2px;bottom:100%;height:9px;border:2px solid #4f8ad8;border-bottom:0;border-radius:8px 8px 0 0}
html body.agape-login .login-card>small{margin:0 0 11px;color:#4f8ad8;font-size:10px;letter-spacing:.29em}
html body.agape-login .login-card h1{margin:0 0 9px;color:#172033;font-size:42px;font-weight:850;letter-spacing:-.04em;text-align:left}
html body.agape-login .login-card>p{margin:0 0 29px;color:#657289;font-size:14px;line-height:1.55}
html body.agape-login .login-field{display:grid;gap:8px;margin-top:17px}
html body.agape-login .login-field label{margin:0;color:#34435a;font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
html body.agape-login .login-field input{min-height:54px;padding:0 16px;color:#172033;border:1px solid #cddbed;border-radius:10px;background:#f7faff;box-shadow:inset 0 1px 0 #fff}
html body.agape-login .login-field input::placeholder{color:#8a98aa}
html body.agape-login .login-field input:focus{color:#172033;border-color:#659fe8;background:#fff;box-shadow:0 0 0 4px rgba(79,138,216,.11)}
html body.agape-login .login-card .btn.primary{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:56px;margin-top:25px;padding:0 19px;border:0;border-radius:10px;background:linear-gradient(100deg,#346fc6,#4f8ad8 66%,#cf73ac);box-shadow:0 14px 30px rgba(47,111,197,.23);font-weight:950}
html body.agape-login .login-card .btn.primary b{font-size:24px;font-weight:500;transition:transform .18s ease}
html body.agape-login .login-card .btn.primary:hover b{transform:translateX(4px)}
html body.agape-login .login-secure-note{display:flex;align-items:center;gap:9px;margin-top:24px;padding-top:19px;color:#7b899d;border-color:#e1e9f4;font-size:10px}
html body.agape-login .login-secure-note span{width:6px;height:6px;border-radius:50%;background:#12a66a;box-shadow:0 0 0 4px rgba(18,166,106,.09)}
@keyframes reel-turn{to{transform:rotate(360deg)}}
@keyframes reel-float{0%,100%{transform:translate3d(0,0,0) rotate(-3deg)}50%{transform:translate3d(0,-18px,0) rotate(2deg)}}
@keyframes reel-drift{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(18px,12px,0)}}
@keyframes extinguisher-float{0%,100%{transform:translate3d(0,0,0) rotate(1deg)}45%{transform:translate3d(0,-14px,0) rotate(-2deg)}70%{transform:translate3d(4px,-8px,0) rotate(1deg)}}
@keyframes equipment-orbit{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.equipment-item,.equipment-item img,.equipment-orbit{animation:none!important}}
@media(max-width:980px){html body.agape-login{display:block;overflow:auto}html body.agape-login .login-equipment-scene{height:64vh}.reel-main{left:50%;top:15%;width:220px}.extinguisher-main{left:-3%;bottom:0;width:105px;height:270px}.reel-echo,.extinguisher-echo{display:none}html body.agape-login .login-hero-panel{min-height:62vh;padding:28px 24px 38px}html body.agape-login .login-hero-brand{position:relative;inset:auto;align-self:flex-start;margin:0 0 150px}html body.agape-login .login-hero-brand img{width:190px;max-width:70vw}html body.agape-login .login-hero-copy{padding:0}html body.agape-login .login-hero-copy h1{font-size:clamp(45px,13vw,66px)}html body.agape-login .login-form-panel{min-height:auto;padding:35px 20px 54px}html body.agape-login .login-form-panel:before{display:none}html body.agape-login .login-card{max-width:520px;padding:36px 28px}}

@media(min-width:981px){.extinguisher-main{left:-1.5%;bottom:-8%;width:clamp(125px,10vw,180px);height:clamp(310px,43vh,480px)}}

/* Login concept 05 — animated Agapé linework */
html body.agape-login{position:relative;display:block;min-height:100vh;padding:0;overflow:hidden;background:#f7faff;color:#172033}
html body.agape-login:before{content:"";display:block;position:absolute;z-index:0;inset:0;background:radial-gradient(circle at 50% 42%,#fff 0%,#fff 26%,rgba(234,243,255,.72) 62%,rgba(247,250,255,.92) 100%);pointer-events:none}
html body.agape-login:after{content:"";display:block;position:absolute;z-index:0;inset:0;background-image:linear-gradient(rgba(79,138,216,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(79,138,216,.04) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(circle at center,#000,transparent 73%);transform:none}
html body.agape-login .login-hero-panel{position:absolute;z-index:4;inset:0;display:block;min-height:0;padding:0;background:transparent;pointer-events:none}
html body.agape-login .login-hero-panel:before,html body.agape-login .login-hero-panel:after{display:none}
html body.agape-login .login-hero-brand{position:absolute;top:42px;left:50%;transform:translateX(-50%);margin:0;padding:0;border:0;background:transparent;box-shadow:none}
html body.agape-login .login-hero-brand img{display:block;width:225px;max-width:48vw;margin:0;padding:0;background:none;border:0;border-radius:0;filter:none}
html body.agape-login .login-hero-copy,html body.agape-login .fire-network{display:none}
html body.agape-login .login-equipment-scene{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}
html body.agape-login .equipment-line-art{position:absolute;top:50%;overflow:visible;filter:drop-shadow(0 14px 22px rgba(79,138,216,.11));opacity:.92}
html body.agape-login .hose-line-art{left:calc(50% - 555px);width:280px;transform:translateY(-43%)}
html body.agape-login .extinguisher-line-art{right:calc(50% - 525px);width:235px;transform:translateY(-42%)}
html body.agape-login .equipment-line-art path:not(.equipment-wash),html body.agape-login .equipment-line-art circle:not(.equipment-wash),html body.agape-login .equipment-line-art rect,html body.agape-login .equipment-line-art line,html body.agape-login .equipment-line-art polyline{stroke-dasharray:1500;stroke-dashoffset:1500;animation:draw-equipment 2.9s cubic-bezier(.62,.03,.25,1) forwards}
html body.agape-login .equipment-line-art path:nth-of-type(2n),html body.agape-login .equipment-line-art circle:nth-of-type(2n){animation-delay:.18s}
html body.agape-login .equipment-line-art path:nth-of-type(3n){animation-delay:.34s}
html body.agape-login .hose-line-art{animation:line-art-breathe 6s 3s ease-in-out infinite}
html body.agape-login .extinguisher-line-art{animation:line-art-breathe-right 6.8s 3.2s ease-in-out infinite}
html body.agape-login .login-form-panel{position:relative;z-index:3;display:grid;place-items:center;min-height:100vh;padding:145px 24px 45px;background:transparent;border:0;backdrop-filter:none}
html body.agape-login .login-form-panel:before{content:"";display:block;position:absolute;left:50%;top:50%;width:660px;height:660px;transform:translate(-50%,-43%);border:1px solid rgba(79,138,216,.1);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.86),rgba(255,255,255,.18) 64%,transparent 65%);box-shadow:none;animation:login-halo 7s ease-in-out infinite}
html body.agape-login .login-card{position:relative;width:100%;max-width:410px;padding:38px 38px 32px;border:1px solid #d5e1f1;border-radius:22px;background:rgba(255,255,255,.96);box-shadow:0 28px 70px rgba(61,86,121,.16),inset 0 1px 0 #fff;color:#172033;text-align:left;backdrop-filter:blur(16px)}
html body.agape-login .login-card:before{content:"";position:absolute;left:32px;right:32px;top:0;height:3px;border-radius:0 0 5px 5px;background:linear-gradient(90deg,#4f8ad8,#dc7eb8)}
html body.agape-login .login-access-mark{display:grid;place-items:center;width:40px;height:40px;margin:0 0 23px;border:1px solid #c9dcf5;border-radius:13px;background:#edf5ff}
html body.agape-login .login-card h1{font-size:39px}
html body.agape-login .login-card>p{margin-bottom:25px}
html body.agape-login .login-field{margin-top:15px}
html body.agape-login .login-field input{min-height:51px}
html body.agape-login .login-card .btn.primary{min-height:53px;margin-top:23px}
@keyframes draw-equipment{to{stroke-dashoffset:0}}
@keyframes line-art-breathe{0%,100%{transform:translateY(-43%) rotate(-1deg) scale(1)}50%{transform:translateY(-45%) rotate(1deg) scale(1.025)}}
@keyframes line-art-breathe-right{0%,100%{transform:translateY(-42%) rotate(1deg) scale(1)}50%{transform:translateY(-44%) rotate(-1deg) scale(1.025)}}
@keyframes login-halo{0%,100%{transform:translate(-50%,-43%) scale(.98);opacity:.72}50%{transform:translate(-50%,-43%) scale(1.025);opacity:1}}
@media(prefers-reduced-motion:reduce){html body.agape-login .equipment-line-art,html body.agape-login .equipment-line-art path,html body.agape-login .equipment-line-art circle,html body.agape-login .login-form-panel:before{animation:none!important;stroke-dashoffset:0!important}}
@media(max-width:1050px){html body.agape-login{overflow:auto}html body.agape-login .login-hero-brand{top:25px}html body.agape-login .login-form-panel{min-height:100vh;padding:120px 18px 35px}html body.agape-login .hose-line-art{left:-70px;width:220px}html body.agape-login .extinguisher-line-art{right:-60px;width:185px;opacity:.55}html body.agape-login .login-form-panel:before{width:560px;height:560px}}
@media(max-width:650px){html body.agape-login .equipment-line-art{opacity:.18}html body.agape-login .hose-line-art{left:-105px}html body.agape-login .extinguisher-line-art{right:-85px}html body.agape-login .login-form-panel:before{width:430px;height:430px}html body.agape-login .login-card{padding:34px 26px 29px}}

/* Login illustration refinements */
html body.agape-login .login-hero-brand{display:none}
html body.agape-login .login-form-panel{padding-top:32px}
html body.agape-login .login-form-panel:before{display:none}
html body.agape-login .login-card{max-width:430px;padding:35px 39px 32px}
html body.agape-login .login-panel-logo{display:block;width:205px;height:auto;margin:0 auto 28px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
html body.agape-login .equipment-line-art{filter:drop-shadow(0 18px 25px rgba(79,138,216,.13));opacity:.96}
html body.agape-login .equipment-line-art:before{display:none}
html body.agape-login .hose-line-art{left:calc(50% - 590px);width:315px}
html body.agape-login .extinguisher-line-art{right:calc(50% - 565px);width:265px}
html body.agape-login .equipment-line-art g{stroke-width:3.2}
html body.agape-login .equipment-line-art circle:not(.equipment-wash){fill:rgba(255,255,255,.34)}
html body.agape-login .equipment-line-art path,html body.agape-login .equipment-line-art circle{vector-effect:non-scaling-stroke}

/* Let the entrance dust dissolve before it reaches the wordmark's clipped edge. */
.wordmark-dust:before{display:none}
.wordmark-dust{mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 72%,transparent 98%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 72%,transparent 98%);animation-name:dustTravelSoft}
.wordmark-dust b{animation-name:dustScatterSoft}
@keyframes dustTravelSoft{0%{opacity:0;transform:translateX(-12%)}14%{opacity:.9}62%{opacity:.55}82%,100%{opacity:0;transform:translateX(55%)}}
@keyframes dustScatterSoft{0%{opacity:0;transform:translate(0,0) scale(.35);filter:blur(0)}18%{opacity:.9}68%{opacity:.42}100%{opacity:0;transform:translate(calc(var(--dust-x) * .52),calc(var(--dust-y) * .72)) scale(.7);filter:blur(3px)}}
@media(max-width:1050px){html body.agape-login .login-form-panel{padding-top:105px}html body.agape-login .hose-line-art{left:-64px;width:225px}html body.agape-login .extinguisher-line-art{right:-48px;width:195px}}

/* Reference-derived equipment illustrations */
html body.agape-login .equipment-line-art{display:none}
html body.agape-login .equipment-reference-art{position:absolute;top:50%;opacity:0;filter:drop-shadow(0 20px 28px rgba(79,138,216,.12));will-change:transform,opacity;animation:reference-art-reveal 1.9s 1.15s cubic-bezier(.2,.8,.2,1) forwards}
html body.agape-login .equipment-reference-art img{display:block;width:100%;height:100%;object-fit:contain}
html body.agape-login .hose-reference-art{left:calc(50% - 650px);width:350px;height:410px;transform:translateY(-48%) translateX(-24px);--rest-transform:translateY(-48%) translateX(0)}
html body.agape-login .extinguisher-reference-art{right:calc(50% - 610px);width:270px;height:430px;transform:translateY(-46%) translateX(24px);--rest-transform:translateY(-46%) translateX(0)}
html body.agape-login .equipment-reference-art:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.82) 48%,transparent 70%);transform:translateX(-130%);animation:reference-art-sheen 1.25s 2.25s ease-out forwards;mix-blend-mode:screen}
@keyframes reference-art-reveal{0%{opacity:0;clip-path:inset(0 100% 0 0)}35%{opacity:1}100%{opacity:.92;clip-path:inset(0 0 0 0);transform:var(--rest-transform)}}
@keyframes reference-art-sheen{to{transform:translateX(130%)}}
@media(max-width:1050px){html body.agape-login .hose-reference-art{left:-75px;width:245px;height:330px}html body.agape-login .extinguisher-reference-art{right:-55px;width:185px;height:340px}}
@media(max-width:650px){html body.agape-login .equipment-reference-art{opacity:.2!important}.hose-reference-art{left:-125px!important}.extinguisher-reference-art{right:-95px!important}}
@media(prefers-reduced-motion:reduce){html body.agape-login .equipment-reference-art{animation:none!important;opacity:.92;clip-path:none;transform:var(--rest-transform)}html body.agape-login .equipment-reference-art:after{display:none}}

/* Layered visual atmosphere around the login console */
html body.agape-login:before{background:radial-gradient(circle at 25% 48%,rgba(79,138,216,.13),transparent 23%),radial-gradient(circle at 76% 48%,rgba(220,126,184,.12),transparent 22%),radial-gradient(circle at 50% 48%,#fff 0%,#fff 19%,rgba(244,248,254,.88) 48%,rgba(239,245,253,.92) 100%)}
html body.agape-login .login-equipment-scene:before{content:"";position:absolute;left:7%;top:14%;width:34%;height:72%;border-radius:50%;background:radial-gradient(ellipse,rgba(79,138,216,.1),rgba(79,138,216,.035) 48%,transparent 70%);filter:blur(3px)}
html body.agape-login .login-equipment-scene:after{content:"";position:absolute;right:8%;top:17%;width:30%;height:66%;border-radius:50%;background:radial-gradient(ellipse,rgba(220,126,184,.1),rgba(220,126,184,.025) 48%,transparent 70%);filter:blur(3px)}
.visual-contour{position:absolute;border:1px solid rgba(79,138,216,.12);border-radius:50%;animation:visual-contour-drift 12s ease-in-out infinite}
.contour-one{left:calc(50% - 690px);top:50%;width:420px;height:420px;transform:translateY(-50%) rotate(-8deg);box-shadow:0 0 0 26px rgba(79,138,216,.025),0 0 0 70px rgba(79,138,216,.018)}
.contour-two{right:calc(50% - 645px);top:50%;width:350px;height:430px;transform:translateY(-50%) rotate(9deg);border-color:rgba(220,126,184,.13);box-shadow:0 0 0 24px rgba(220,126,184,.025),0 0 0 66px rgba(220,126,184,.017);animation-delay:-5s}
.visual-signal{position:absolute;display:flex;gap:8px;align-items:center}.visual-signal:before{content:"";position:absolute;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(79,138,216,.28),transparent)}.visual-signal i{position:relative;width:5px;height:5px;border-radius:50%;background:#4f8ad8;box-shadow:0 0 0 5px rgba(79,138,216,.06);animation:visual-signal-pulse 2.4s ease-in-out infinite}.visual-signal i:nth-child(2){animation-delay:.35s}.visual-signal i:nth-child(3){animation-delay:.7s}.signal-one{left:calc(50% - 610px);top:22%}.signal-one:before{left:-80px;width:150px}.signal-two{right:calc(50% - 565px);bottom:21%}.signal-two:before{right:-80px;width:150px}.signal-two i{background:#dc7eb8;box-shadow:0 0 0 5px rgba(220,126,184,.06)}
html body.agape-login .equipment-reference-art>span{position:absolute;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;left:50%;bottom:-14px;min-width:235px;padding:9px 11px;border:1px solid rgba(193,209,231,.78);border-radius:10px;background:rgba(255,255,255,.72);box-shadow:0 10px 28px rgba(55,82,121,.08);transform:translateX(-50%);backdrop-filter:blur(10px)}
html body.agape-login .equipment-reference-art>span b{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#eaf2ff;color:#4f8ad8;font-size:10px}
html body.agape-login .equipment-reference-art>span small{color:#56667c;font-size:9px;font-weight:950;letter-spacing:.12em;white-space:nowrap}
html body.agape-login .equipment-reference-art>span em{display:flex;align-items:center;gap:5px;color:#18865d;font-size:8px;font-style:normal;font-weight:950;letter-spacing:.1em}
html body.agape-login .equipment-reference-art>span em:before{content:"";width:5px;height:5px;border-radius:50%;background:#22b879;box-shadow:0 0 0 4px rgba(34,184,121,.09)}
html body.agape-login .login-card{box-shadow:0 34px 85px rgba(61,86,121,.18),0 0 0 8px rgba(255,255,255,.48),inset 0 1px 0 #fff}
html body.agape-login .login-card:after{content:"";position:absolute;z-index:-1;inset:-34px;border:1px solid rgba(79,138,216,.07);border-radius:42px;pointer-events:none}
@keyframes visual-contour-drift{0%,100%{margin-top:0}50%{margin-top:-12px}}
@keyframes visual-signal-pulse{0%,100%{opacity:.28;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
@media(max-width:1050px){.visual-contour,.visual-signal,html body.agape-login .equipment-reference-art>span{display:none}}
@media(prefers-reduced-motion:reduce){.visual-contour,.visual-signal i{animation:none!important}}

/* Flowing background lines replace the equipment caption cards. */
.login-wave-field{position:absolute;z-index:0;inset:0;width:100%;height:100%;overflow:visible;opacity:.48}
.login-wave-field path{fill:none;stroke:url(#loginWaveGradient);stroke-width:1.15;stroke-linecap:round;stroke-dasharray:7 16;animation:login-wave-flow 18s linear infinite}
.login-wave-field path:nth-of-type(2){opacity:.55;animation-duration:24s;animation-direction:reverse}
.login-wave-field path:nth-of-type(3){opacity:.46;animation-duration:21s}
.login-wave-field path:nth-of-type(4){opacity:.32;animation-duration:27s;animation-direction:reverse}
.login-wave-field .wave-accent{stroke-width:1.7;stroke-dasharray:2 22;opacity:.38;animation-duration:14s}
.visual-contour,.visual-signal,.equipment-reference-art{z-index:1}
@keyframes login-wave-flow{to{stroke-dashoffset:-460}}
@media(max-width:700px){.login-wave-field{opacity:.28}.login-wave-field path{stroke-width:1}}
@media(prefers-reduced-motion:reduce){.login-wave-field path{animation:none!important}}

html body.agape-login .login-card:before{display:none}

/* Stronger feathered dust plume for the entrance wordmark reveal. */
.wordmark-dust:before{content:"";display:block;position:absolute;left:2%;top:14%;width:190px;height:72%;border-radius:50%;background:radial-gradient(ellipse at 46% 50%,rgba(236,133,193,.58) 0%,rgba(115,171,239,.48) 31%,rgba(144,157,230,.24) 57%,transparent 76%);filter:blur(10px);mix-blend-mode:screen;animation:dustPlumePulse 1.45s 4.72s ease-out forwards}
.wordmark-dust b{width:5px;height:5px;background:#8bc0ff;box-shadow:0 0 6px 2px rgba(120,174,240,.75),0 0 15px rgba(120,174,240,.45)}
.wordmark-dust b:nth-child(2n){background:#f091c9;box-shadow:0 0 6px 2px rgba(235,141,196,.75),0 0 15px rgba(235,141,196,.42)}
.wordmark-dust b:nth-child(3n){width:3px;height:3px}
@keyframes dustPlumePulse{0%{opacity:0;transform:translateX(-18px) scale(.65)}18%{opacity:.95}62%{opacity:.78;transform:translateX(86px) scale(1.12)}100%{opacity:0;transform:translateX(165px) scale(.72)}}

.system-entrance .entrance-horizon{display:none}

/* Keep the entrance depth lines vertical so no horizontal edge crosses the dust reveal. */
.system-entrance .entrance-grid{
    background-image:linear-gradient(90deg,rgba(140,182,240,.045) 1px,transparent 1px);
    mask-image:linear-gradient(to bottom,transparent 12%,rgba(0,0,0,.35) 58%,#000 76%,transparent 100%);
    -webkit-mask-image:linear-gradient(to bottom,transparent 12%,rgba(0,0,0,.35) 58%,#000 76%,transparent 100%);
}

/* Large Agapé feather watermark on the final login screen. */
html body.agape-login .login-feather-watermark{
    position:absolute;
    z-index:0;
    left:50%;
    top:50%;
    width:min(72vw,1080px);
    height:auto;
    transform:translate(-50%,-50%) rotate(10deg);
    opacity:.14;
    filter:saturate(.82) drop-shadow(0 34px 75px rgba(79,138,216,.14));
    pointer-events:none;
    user-select:none;
    animation:agape-feather-watermark-drift 10s ease-in-out infinite;
}
html body.agape-login .login-equipment-scene:before,
html body.agape-login .login-equipment-scene:after{z-index:0}
html body.agape-login .login-wave-field{z-index:1}
html body.agape-login .visual-contour,
html body.agape-login .visual-signal,
html body.agape-login .equipment-reference-art{z-index:2}
@keyframes agape-feather-watermark-drift{
    0%,100%{transform:translate(-50%,-50%) rotate(10deg) scale(.985)}
    50%{transform:translate(-50%,-51.5%) rotate(12deg) scale(1.025)}
}
@media(max-width:700px){
    html body.agape-login .login-feather-watermark{width:145vw;opacity:.11}
}
@media(prefers-reduced-motion:reduce){
    html body.agape-login .login-feather-watermark{animation:none!important}
}
.fleet-tabs{display:flex;gap:8px;margin:0 0 18px;padding:8px;overflow-x:auto;background:rgba(255,255,255,.82);border:1px solid #d4e0f0;border-radius:18px;box-shadow:0 12px 32px rgba(49,91,147,.08)}
.fleet-tab{flex:1;min-width:max-content;padding:12px 17px;border-radius:12px;color:#53627a;font-weight:850;text-align:center;text-decoration:none}.fleet-tab:hover{background:#f0f5fc}.fleet-tab.active{color:#fff;background:linear-gradient(100deg,#3479eb,#5c94e5 62%,#d779b3);box-shadow:0 8px 18px rgba(54,121,235,.22)}
.fleet-dashboard-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.fleet-overview-metrics{margin-top:18px}.fleet-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}.fleet-info-grid>div{min-width:0;padding:14px;border:1px solid #d9e4f2;border-radius:13px;background:#f7faff}.fleet-info-grid span{display:block;margin-bottom:5px;color:#70809a;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.fleet-info-grid strong{display:block;overflow-wrap:anywhere;color:#182238;font-size:15px}.fleet-issue-list{display:grid;gap:10px;margin-top:16px}.fleet-issue{display:flex;justify-content:space-between;gap:14px;padding:13px 15px;border-left:4px solid #4d8bdc;border-radius:10px;background:#f3f7fd}.fleet-issue.danger{border-color:#e03535;background:#fff1f1}.fleet-issue.warning{border-color:#e5a522;background:#fff8e8}.fleet-issue.good{border-color:#1aa66a;background:#eefbf5}.table-wrap{width:100%;overflow-x:auto}.fleet-tabs~section.card{margin-top:18px}
.vehicle-info-workspace .list-toolbar{align-items:flex-start}.vehicle-info-workspace .list-toolbar p{margin:5px 0 0}.vehicle-info-fieldset{min-width:0;margin:0;padding:0;border:0}.vehicle-info-fieldset:disabled input,.vehicle-info-fieldset:disabled select,.vehicle-info-fieldset:disabled textarea{color:#253149;background:#f5f8fc;opacity:1;cursor:default}.vehicle-info-fieldset:disabled input[type=file]{color:#74829a}.vehicle-info-edit-actions{padding-top:4px}.stored-file-note{display:block;margin-top:6px;color:#66758d}.vehicle-info-workspace [hidden]{display:none!important}
.fleet-status-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:16px;border-bottom:1px solid #e4ebf5}.fleet-status-heading h2{margin:5px 0 0;font-size:21px}.fleet-status-card .fleet-info-grid{margin-top:16px}.fleet-standing{display:flex;align-items:center;justify-content:center;gap:10px;min-width:190px;min-height:46px;margin:0;padding:10px 16px;border:1px solid transparent;border-radius:12px;font-size:15px;font-weight:900;line-height:1.2;text-align:center;box-shadow:0 5px 14px rgba(28,43,68,.06)}.fleet-standing:before{content:"";flex:0 0 9px;width:9px;height:9px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px rgba(255,255,255,.72)}.fleet-standing.good{color:#11663f;border-color:#bfe8d1;background:#edf9f3}.fleet-standing.warning{color:#885900;border-color:#f1d48a;background:#fff7df}.fleet-standing.danger{color:#a7232d;border-color:#efbdc1;background:#fff0f1}
@media(max-width:620px){.fleet-status-heading{align-items:flex-start;flex-direction:column;gap:12px}.fleet-standing{width:100%;min-width:0}}
.job-detail-card>h2{margin-bottom:18px}.job-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.job-detail-list-wide{grid-template-columns:1fr}.job-detail-item{min-width:0;padding:15px 16px;border:1px solid #cfddf0;border-radius:11px;background:#f5f9ff}.job-detail-item strong{display:block;margin-bottom:7px;color:#172238;font-size:15px;font-weight:900;line-height:1.25}.job-detail-item span{display:block;color:#4f5e76;font-size:14px;font-weight:600;line-height:1.55;overflow-wrap:anywhere}.job-detail-list-wide .job-detail-item{min-height:82px}
@media(max-width:620px){.job-detail-list{grid-template-columns:1fr}}
.job-view-workspace{width:min(2100px,calc(100% - 220px));margin:0 auto}.job-review-editor{padding:26px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(246,250,255,.98))}.job-review-editor .section-heading{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #d4e1f2}.job-review-editor .section-heading .eyebrow{display:block;margin-bottom:5px;font-size:11px}.job-review-editor .section-heading h2{margin:0;font-size:23px}.job-review-editor .section-heading p{margin:6px 0 0;font-size:13px;line-height:1.5}.job-review-form{padding:18px 20px 20px;border:1px solid #cdddf2;border-radius:14px;background:#edf4fd;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}.job-review-form>.form-row{gap:16px;margin:0}.job-review-form>.form-row:nth-of-type(1){grid-template-columns:3fr 4fr 5fr}.job-review-form>.form-row:nth-of-type(2),.job-review-form>.form-row:nth-of-type(3),.job-review-form>.form-row:nth-of-type(4){grid-template-columns:repeat(3,minmax(0,1fr))}.job-review-form label{margin:11px 0 6px;color:#263650;font-size:13px;font-weight:900}.job-review-form input,.job-review-form select{min-height:42px;padding:8px 11px;border:1px solid #a9c2e6;border-radius:9px;background:#fff;color:#182238;font-size:14px;box-shadow:0 2px 5px rgba(62,94,139,.05)}.job-review-form textarea{min-height:92px;padding:10px 11px;border:1px solid #a9c2e6;border-radius:9px;background:#fff;color:#182238;font-size:14px;line-height:1.5;box-shadow:0 2px 5px rgba(62,94,139,.05)}.job-review-form input:focus,.job-review-form select:focus,.job-review-form textarea:focus{outline:0;border-color:#2f6fed;box-shadow:0 0 0 3px rgba(47,111,237,.13)}.job-review-form>.actions{margin-top:16px}.job-review-sla-cell{display:flex;align-items:end}.job-review-sla{display:flex!important;align-items:center;gap:11px;width:100%;min-height:42px;margin:11px 0 0!important;padding:9px 12px;border:1px solid #a9c2e6;border-radius:9px;background:#fff;box-shadow:0 2px 5px rgba(62,94,139,.05)}.job-review-sla input{flex:0 0 18px;width:18px!important;min-height:18px!important;margin:0}.job-review-sla span,.job-review-sla strong,.job-review-sla small{display:block}.job-review-sla strong{font-size:13px}.job-review-sla small{margin-top:2px;color:#64738b;font-size:10px;font-weight:700}.job-complete-card{display:flex;align-items:center;justify-content:space-between;gap:24px}.job-complete-card h2{margin:0}.job-complete-card form{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex:1}.job-complete-card form p{margin:0;font-size:13px}.job-complete-card form>.actions{margin:0}
@media(max-width:1400px){.job-view-workspace{width:min(1180px,100%)}.job-review-form>.form-row:nth-of-type(1){grid-template-columns:repeat(2,minmax(0,1fr))}.job-review-form>.form-row:nth-of-type(1)>div:last-child{grid-column:1/-1}}
@media(max-width:1050px){.job-review-form>.form-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}.job-review-form>.form-row>div:last-child:nth-child(odd){grid-column:1/-1}.job-complete-card,.job-complete-card form{align-items:flex-start;flex-direction:column}.job-complete-card form{width:100%}}
@media(max-width:620px){.job-review-editor{padding:19px}.job-review-form>.form-row{grid-template-columns:1fr!important}.job-review-form>.form-row>div{grid-column:auto!important}}
.standard-job-summary{margin-bottom:18px}.standard-job-summary .section-heading{align-items:center}.standard-job-summary .section-heading h2{margin:5px 0 0;font-size:24px}.standard-job-summary .eyebrow{font-size:11px}.standard-job-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.standard-job-facts div{padding:16px}.standard-job-facts span,.standard-job-summary .contractor-job-description>span{font-size:12px}.standard-job-facts strong{font-size:16px}.standard-job-summary .contractor-job-description p{font-size:14px}.standard-job-actions h2{margin:5px 0 4px;font-size:22px}.standard-job-actions form,.standard-job-actions form .btn{width:100%;margin:0}.standard-job-actions>.btn{width:100%;justify-content:flex-start;text-align:left;font-size:14px}.standard-job-actions>.btn.primary,.standard-job-actions>.btn.success{justify-content:center}.standard-job-actions .eyebrow{display:block}.job-view-workspace>.job-review-editor{border-top:3px solid #2f6fed}
@media(max-width:1000px){.standard-job-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.standard-job-facts{grid-template-columns:1fr}}

/* Platform-wide form readability: editable controls must remain visually distinct
   from the white cards that contain them. Specialised switches and buttons retain
   their component-specific styling. */
body:not(.agape-login) label{color:#263650;font-size:13px;font-weight:900;line-height:1.35}
body:not(.agape-login) input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]),body:not(.agape-login) select,body:not(.agape-login) textarea{border-color:#a9c2e6;background:#f4f8fe;color:#182238;font-size:14px;box-shadow:0 2px 5px rgba(62,94,139,.045);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
body:not(.agape-login) input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]):hover,body:not(.agape-login) select:hover,body:not(.agape-login) textarea:hover{border-color:#82a8dc;background:#f8fbff}
body:not(.agape-login) input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]):focus,body:not(.agape-login) select:focus,body:not(.agape-login) textarea:focus{outline:0;border-color:#2f6fed;background:#fff;box-shadow:0 0 0 3px rgba(47,111,237,.13)}
body:not(.agape-login) input::placeholder,body:not(.agape-login) textarea::placeholder{color:#7c8aa0;opacity:1}
body:not(.agape-login) input:disabled,body:not(.agape-login) select:disabled,body:not(.agape-login) textarea:disabled,body:not(.agape-login) input[readonly],body:not(.agape-login) textarea[readonly]{border-color:#d5dfec;background:#edf1f6;color:#66748a;box-shadow:none}
body:not(.agape-login) .card>h2,body:not(.agape-login) .panel-body>h2{color:#172238}
@media(max-width:1000px){.fleet-dashboard-grid{grid-template-columns:1fr}.fleet-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.fleet-tab{flex:0 0 auto}.fleet-info-grid,.fleet-overview-metrics{grid-template-columns:1fr}.fleet-issue{flex-direction:column}}

/* Reveal only the wordmark image with a soft leading edge; the old parent
   clip-path produced a visible vertical line through the dust plume. */
.system-entrance .entrance-wordmark{
    overflow:visible;
    clip-path:none;
    animation:none;
}
.system-entrance .entrance-wordmark>img{
    clip-path:inset(0 0 0 145px);
    -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 27%,rgba(0,0,0,.92) 31%,rgba(0,0,0,.62) 35%,rgba(0,0,0,.2) 39%,transparent 44%,transparent 100%);
    mask-image:linear-gradient(90deg,#000 0%,#000 27%,rgba(0,0,0,.92) 31%,rgba(0,0,0,.62) 35%,rgba(0,0,0,.2) 39%,transparent 44%,transparent 100%);
    -webkit-mask-size:300% 100%;
    mask-size:300% 100%;
    -webkit-mask-position:100% 0;
    mask-position:100% 0;
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    animation:wordmarkImageReveal 1.18s 4.63s cubic-bezier(.16,.72,.22,1) forwards;
}
@keyframes wordmarkImageReveal{
    from{-webkit-mask-position:100% 0;mask-position:100% 0}
    to{-webkit-mask-position:0 0;mask-position:0 0}
}

/* Nothing from the dust system is visible before the reveal begins. */
.system-entrance .wordmark-dust,
.system-entrance .wordmark-dust:before,
.system-entrance .wordmark-dust b{opacity:0}
.system-entrance .wordmark-dust{
    animation-delay:4.66s;
    animation-fill-mode:forwards;
}
.system-entrance .wordmark-dust:before{
    animation-delay:4.66s;
    animation-fill-mode:forwards;
}
.system-entrance .wordmark-dust b{
    animation-delay:4.69s;
    animation-fill-mode:forwards;
}

/* Payroll employee clocking review */
.payroll-employee-tabs{display:flex;gap:9px;flex-wrap:wrap;margin:4px 0 18px;padding-bottom:14px;border-bottom:1px solid #e2eaf5}.payroll-employee-tabs .btn[hidden]{display:none}.payroll-clocking-panel[hidden]{display:none}.clocking-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.clocking-summary-grid>div{padding:15px 17px;border:1px solid #d7e2f2;border-radius:14px;background:#f7faff}.clocking-summary-grid span{display:block;color:#657289;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.clocking-summary-grid strong{display:block;margin-top:5px;color:#172033;font-size:25px}.clocking-summary-grid .warning{border-color:#ffc5c5;background:#fff4f4}.clocking-summary-grid .warning strong{color:#d92525}.clocking-empty{display:flex;flex-direction:column;gap:5px;padding:28px;border:1px dashed #c8d5e8;border-radius:14px;background:#f8fbff;color:#657289;text-align:center}.clocking-empty strong{color:#172033}.clocking-incomplete-row{background:#fff3f3}.table-wrap{overflow-x:auto}.payroll-clockings .table{min-width:1050px}@media(max-width:760px){.clocking-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-clockings .list-toolbar{align-items:stretch;flex-direction:column}.payroll-clockings [data-clocking-search]{max-width:none!important}}
.payroll-full-day-setting{display:flex!important;align-items:center;flex-wrap:nowrap!important;gap:10px;padding:6px 7px 6px 13px;border:1px solid #c8d8ed;border-radius:12px;background:rgba(255,255,255,.92)}.payroll-full-day-setting label{flex:0 0 auto;margin:0!important;white-space:nowrap!important;font-size:13px}.payroll-full-day-setting input{flex:0 0 92px;width:92px!important;min-height:38px}.payroll-full-day-setting .btn{flex:0 0 auto;min-width:68px;min-height:38px;margin:0;white-space:nowrap}
.fleet-diesel-price-setting{display:flex!important;align-items:center;flex-wrap:nowrap!important;gap:9px;padding:6px 7px 6px 13px;border:1px solid #c8d8ed;border-radius:12px;background:rgba(255,255,255,.92)}.fleet-diesel-price-setting label{flex:0 0 auto;margin:0!important;white-space:nowrap!important;font-size:12px}.fleet-diesel-price-setting input{flex:0 0 90px;width:90px!important;min-height:38px}.fleet-diesel-price-setting .btn{flex:0 0 auto;min-width:62px;min-height:38px;margin:0;white-space:nowrap}
.clocking-weekend-row{background:#fff9ed}.clocking-holiday-row{background:#eef6ff}.clocking-status-form{min-width:145px}.clocking-status-form select{min-height:34px;padding:6px 30px 6px 9px}.clocking-reason{margin-top:6px;color:#657289;font-size:11px;max-width:210px}.payroll-clockings .table td{vertical-align:middle}

/* Fleet management overview */
.fleet-page-title{align-items:flex-end;margin-bottom:20px}
.fleet-page-title h1{margin:7px 0 5px;font-size:clamp(30px,3vw,42px)}
.fleet-page-title p{margin:0;color:#657289;font-weight:800}
.fleet-page-title .actions{justify-content:flex-end}
.fleet-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}
.fleet-stat{--fleet-accent:#2f6fed;--fleet-soft:#e8f1ff;--fleet-glow:rgba(47,111,237,.12);position:relative;overflow:hidden;display:grid;grid-template-columns:50px minmax(0,1fr);gap:14px;align-items:center;min-height:132px;padding:20px;border:1px solid #d7e2f2;border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 14px 34px rgba(61,86,121,.10)}
.fleet-stat::after{content:"";position:absolute;right:-38px;bottom:-52px;width:135px;height:135px;border-radius:50%;background:var(--fleet-glow)}
.fleet-stat.pink{--fleet-accent:#cf64a8;--fleet-soft:#fceaf5;--fleet-glow:rgba(207,100,168,.12)}
.fleet-stat-icon{position:relative;z-index:1;display:grid;place-items:center;width:50px;height:50px;border-radius:15px;background:var(--fleet-soft);color:var(--fleet-accent);font-size:14px;font-weight:900}
.fleet-stat>div:last-child{position:relative;z-index:1;min-width:0}
.fleet-stat span{display:block;color:#657289;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.fleet-stat strong{display:block;margin-top:7px;color:#172033;font-size:27px;line-height:1.05}
.fleet-stat strong small{font-size:14px;color:var(--fleet-accent)}
.fleet-stat em{display:block;margin-top:8px;color:#7a879b;font-size:11px;font-style:normal;font-weight:800}
@media(max-width:1150px){.fleet-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.fleet-stats-grid{grid-template-columns:1fr}.fleet-page-title{align-items:flex-start}.fleet-page-title .actions{justify-content:flex-start}.fleet-stat{min-height:112px}}

/* Employee document and misconduct libraries */
.employee-records-title{margin-bottom:18px}.employee-records-title h1{margin:7px 0 5px}.employee-records-title p{margin:0;color:#657289;font-weight:700}
.record-library-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.record-library-tabs a{position:relative;display:flex;flex-direction:column;gap:5px;padding:18px 20px;border:1px solid #cfdbed;border-radius:16px;background:rgba(255,255,255,.82);color:#172033;text-decoration:none;box-shadow:0 8px 24px rgba(61,86,121,.07);transition:.2s ease}.record-library-tabs a:hover{transform:translateY(-2px);border-color:#8eb3f4}.record-library-tabs a.active{border-color:#2f6fed;background:linear-gradient(135deg,#edf4ff,#fff 60%,#fff2fa);box-shadow:0 12px 30px rgba(47,111,237,.13)}.record-library-tabs a.active::after{content:"";position:absolute;left:20px;right:20px;bottom:-1px;height:3px;border-radius:3px;background:linear-gradient(90deg,#2f6fed,#d868ae)}.record-library-tabs strong{font-size:17px}.record-library-tabs span{color:#6a7890;font-size:12px;font-weight:700}
.record-layout{display:grid;grid-template-columns:minmax(360px,.72fr) minmax(0,1.28fr);gap:18px;align-items:start}.record-form-card{position:sticky;top:18px}.record-form{display:grid;gap:12px}.record-form .btn{justify-self:start}.record-form small{display:block;margin-top:5px;color:#7a879b;font-size:10px}.record-library-card{min-width:0}.record-library-card .list-toolbar input{max-width:300px}.record-table{min-width:940px}.record-table td{vertical-align:middle}.record-table td strong,.record-table td small{display:block}.record-table td small{max-width:270px;margin-top:5px;color:#6b7890;line-height:1.35}.record-table td .status{margin-top:6px}.compliance-note{display:flex;flex-direction:column;gap:5px;margin:0 0 15px;padding:13px 15px;border:1px solid #bcd3f7;border-radius:12px;background:#f0f6ff;color:#4e607b;font-size:12px;line-height:1.45}.compliance-note strong{color:#245fca}
@media(max-width:1200px){.record-layout{grid-template-columns:1fr}.record-form-card{position:static}}
@media(max-width:700px){.record-library-tabs{grid-template-columns:1fr}.record-library-card .list-toolbar{align-items:stretch;flex-direction:column}.record-library-card .list-toolbar input{max-width:none}}
.employee-edit-tabs{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1180px;margin-left:auto;margin-right:auto}.employee-edit-tabs a.disabled{pointer-events:none;opacity:.52}.employee-save-note{max-width:1150px;margin:0 auto 18px}.employee-record-panel{display:grid;gap:18px;max-width:1440px;margin:0 auto}.employee-record-panel>.card{padding:24px}.employee-record-panel .record-table{min-width:900px}
@media(max-width:850px){.employee-edit-tabs{grid-template-columns:1fr}}

/* Shared selectable-tab language: active tabs use the Agape blue-to-pink
   gradient; available tabs preview that selection with a lighter tint. */
:is(.fleet-tab,.record-library-tabs a,.employee-side-tabs a,.employee-tabs .btn,.payroll-employee-tabs .btn,.supplier-link){
    transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;
}
:is(.fleet-tab,.record-library-tabs a,.employee-side-tabs a,.employee-tabs .btn.ghost,.payroll-employee-tabs .btn.ghost,.status-tabs a.btn.ghost,.supplier-link):not(.disabled):not(.active):hover{
    color:#245fc9;
    border-color:#74a2ef;
    background:linear-gradient(105deg,#e7f0ff 0%,#f1f6ff 58%,#fceaf5 100%);
    box-shadow:0 8px 20px rgba(47,111,237,.13);
    transform:translateY(-1px);
}
:is(.fleet-tab.active,.record-library-tabs a.active,.employee-side-tabs a.active,.employee-tabs .btn.primary,.payroll-employee-tabs .btn.primary,.status-tabs a.btn.primary,.supplier-link.active){
    color:#fff;
    border-color:transparent;
    background:linear-gradient(100deg,#3479eb 0%,#5c94e5 62%,#d779b3 100%);
    box-shadow:0 8px 20px rgba(54,121,235,.24);
    transform:none;
}
:is(.record-library-tabs a.active,.employee-side-tabs a.active,.supplier-link.active) :is(strong,span,small,b){color:#fff}
:is(.fleet-tab,.record-library-tabs a,.employee-side-tabs a,.employee-tabs .btn,.payroll-employee-tabs .btn,.supplier-link):focus-visible{
    outline:3px solid rgba(47,111,237,.28);
    outline-offset:3px;
}

/* Employee editor: details remain open with record libraries alongside */
.employee-editor-layout{display:grid;grid-template-columns:minmax(720px,1.55fr) minmax(430px,.85fr);gap:18px;align-items:start;max-width:1800px;margin:0 auto}.employee-details-pane,.employee-side-panel{min-width:0}.employee-pane-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:0 0 10px;padding:0 4px}.employee-pane-heading p{margin:0;color:#6d7a90;font-size:12px;font-weight:700}.employee-main-form{max-width:none;margin:0}.employee-side-panel{position:sticky;top:18px;display:grid;gap:14px}.employee-side-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.employee-side-tabs a{display:flex;flex-direction:column;gap:4px;min-height:76px;padding:14px 16px;border:1px solid #cfdbed;border-radius:14px;background:rgba(255,255,255,.88);color:#172033;text-decoration:none;box-shadow:0 7px 20px rgba(61,86,121,.07);transition:.2s ease}.employee-side-tabs a:hover{transform:translateY(-2px);border-color:#91b6f5}.employee-side-tabs a.active{border-color:#2f6fed;background:linear-gradient(135deg,#edf4ff,#fff 62%,#fff2fa);box-shadow:0 10px 26px rgba(47,111,237,.13)}.employee-side-tabs a.disabled{pointer-events:none;opacity:.5}.employee-side-tabs strong{font-size:13px}.employee-side-tabs span{color:#6a7890;font-size:10px;line-height:1.35}.employee-side-panel .employee-record-panel{gap:14px}.employee-side-panel .employee-record-panel>.card{padding:20px}.employee-side-panel .section-heading h2{font-size:19px}.employee-side-panel .section-heading p{font-size:11px}.employee-side-panel .form-row{grid-template-columns:1fr}.employee-side-panel .record-form textarea{min-height:72px}.employee-side-panel .record-table{min-width:780px}.employee-side-empty{padding:28px;text-align:center}.employee-side-empty strong{font-size:18px}.employee-side-empty p{color:#6a7890;line-height:1.5}
@media(max-width:1350px){.employee-editor-layout{grid-template-columns:1fr}.employee-side-panel{position:static}.employee-side-panel .form-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.employee-side-tabs{grid-template-columns:1fr}.employee-side-panel .form-row{grid-template-columns:1fr}.employee-pane-heading{align-items:flex-start;flex-direction:column}}
.employee-side-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){.employee-side-tabs{grid-template-columns:1fr}}
.vehicle-fuel-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}.vehicle-fuel-stats .fleet-stat{min-height:122px;padding:16px}.vehicle-fuel-stats .fleet-stat strong{font-size:24px}.vehicle-fuel-stats .fleet-stat em{font-size:10px}
@media(max-width:1100px){.vehicle-fuel-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.vehicle-fuel-stats{grid-template-columns:1fr}}
.action-row:has(form input[name="action"][value="fuel_slip"]){display:flex;align-items:center;gap:7px;min-width:330px;flex-wrap:wrap}
.action-row form.inline.actions:has(input[name="action"][value="fuel_slip"]){display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:8px;width:100%;padding:10px;border:1px solid #bfd2ee;border-radius:12px;background:#eef5ff;box-shadow:0 4px 12px rgba(55,94,145,.07)}
.action-row form:has(input[name="action"][value="fuel_slip"])::before{content:"Petrol station receipt";grid-column:1/-1;color:#4d6280;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.action-row form:has(input[name="action"][value="fuel_slip"]) input[type="file"]{grid-column:1;min-width:0;min-height:38px;padding:4px;border-color:#a9c2e6;background:#fff;font-size:11px;box-shadow:none}
.action-row form:has(input[name="action"][value="fuel_slip"]) input[type="file"]::file-selector-button{padding:7px 10px;font-size:11px}
.action-row form:has(input[name="action"][value="fuel_slip"]) .btn{grid-column:2;align-self:stretch;min-height:38px;margin:0;white-space:nowrap}
.action-row:has(form input[name="action"][value="fuel_slip"])>a.btn{margin-top:1px;background:#f7faff}
.supplier-description{display:block;margin-top:4px;color:#718097;font-size:11px;line-height:1.35;max-width:260px}
.currency-input{position:relative}.currency-input>span{position:absolute;left:12px;top:50%;z-index:1;transform:translateY(-50%);color:#2f6fed;font-weight:900}.currency-input>input{padding-left:30px}
.maintenance-edit-list{display:none}.maintenance-edit-card{border-top:3px solid #2f6fed}.maintenance-edit-card .list-toolbar p{margin:4px 0 0}.maintenance-edit-form{display:grid;gap:12px}.maintenance-edit-form .maintenance-checks{display:flex;gap:18px;align-items:end}.maintenance-edit-form small{display:block;margin-top:5px;font-size:11px}.fleet-record-editor{max-width:1280px;margin:0 auto}.fleet-record-editor h2{margin-bottom:5px}
.fleet-inspection-history{min-width:1280px}.fleet-inspection-history td{vertical-align:top}.fleet-inspection-history th:nth-child(5){min-width:390px}.inspection-defect-list{display:grid;gap:9px}.inspection-defect-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 11px;border:1px solid #f2c5c5;border-left:4px solid #df3b3b;border-radius:10px;background:#fff6f6}.inspection-defect-item>div:first-child{min-width:0}.inspection-defect-item strong,.inspection-defect-item small,.inspection-defect-item>div:first-child>span{display:block}.inspection-defect-item strong{color:#8f2020;font-size:12px}.inspection-defect-item small{margin-top:3px;color:#59677e;line-height:1.35}.inspection-defect-item>div:first-child>span{margin-top:5px;color:#657289;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.inspection-defect-item .actions{justify-content:flex-end;flex:0 0 auto}.inspection-maintenance-panel{width:min(1120px,calc(100vw - 32px))}.inspection-maintenance-source{display:grid;gap:4px;margin-bottom:16px;padding:14px 16px;border:1px solid #f0c1c1;border-left:4px solid #df3b3b;border-radius:12px;background:#fff5f5}.inspection-maintenance-source span{color:#7c899d;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.inspection-maintenance-source strong{color:#8f2020;font-size:17px}.inspection-maintenance-source small{color:#58667d}.inspection-maintenance-panel form{padding:16px;border:1px solid #cdddf2;border-radius:14px;background:#f3f7fd}
.maintenance-required-note{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:9px 11px;border:1px solid #f2c15c;border-radius:9px;background:#fff9e9;color:#775514;font-size:11px;font-weight:850}.maintenance-required-note i{width:9px;height:9px;border-radius:50%;background:#e3a11b;box-shadow:0 0 0 4px rgba(227,161,27,.14)}.maintenance-required-field{padding:8px 10px 10px;border:2px solid #edae2b;border-radius:11px;background:#fff9e8;box-shadow:0 0 0 3px rgba(237,174,43,.09)}.maintenance-required-field label{margin-top:2px;color:#73500d}.maintenance-required-field label strong{float:right;padding:3px 6px;border-radius:99px;background:#ffe3a6;color:#8a5a00;font-size:8px;text-transform:uppercase;letter-spacing:.05em}.maintenance-required-field.is-complete{border-color:#61b78d;background:#f1fbf6;box-shadow:none}.maintenance-required-field.is-complete label strong{background:#d8f5e6;color:#197044}.maintenance-required-field.is-complete label strong{font-size:0}.maintenance-required-field.is-complete label strong::after{content:"Completed";font-size:8px}
.fleet-master-form{max-width:1320px}.fleet-master-form .card{padding:26px}.fleet-check{display:flex!important;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #cbdaf1;border-radius:10px;background:#f7faff}.fleet-check input{width:18px!important;min-height:18px!important;margin:2px 0 0}.fleet-check span{display:grid;gap:2px}.fleet-check small{color:#71809a}.fleet-inspection-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.fleet-master-form input[type=file]{padding:7px}.fleet-master-form .form-section-title{margin-top:24px;padding-bottom:8px;border-bottom:1px solid #dbe5f4;color:#2f6fed}@media(max-width:760px){.fleet-inspection-checks{grid-template-columns:1fr}}
#fuelPanel .form-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}#fuelPanel .form-row.fuel-meter-row{grid-template-columns:repeat(2,minmax(0,1fr))}#fuelPanel .form-row>div[hidden]{display:none}#fuelPanel .form-row>div{min-width:0}#fuelPanel .form-row input,#fuelPanel .form-row select{width:100%}
.asset-panel-card{width:min(1120px,calc(100vw - 32px));max-height:calc(100vh - 28px);overflow:auto}.asset-panel-card .panel-head{position:sticky;top:0;z-index:4;background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}.asset-panel-card .eyebrow{display:block;margin-bottom:3px;color:#2f6fed;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.asset-basic-section,.asset-type-fields{margin:0 0 16px;padding:18px;border:1px solid #d7e2f2;border-radius:16px;background:#fff}.asset-basic-section{background:linear-gradient(145deg,#fff,#f8fbff)}.asset-type-fields{background:#f7faff;border-color:#cdddf4}.asset-type-fields[hidden]{display:none}.asset-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:8px}.asset-section-heading span{display:block;margin-bottom:3px;color:#2f6fed;font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.asset-section-heading h3{margin:0;color:#172033;font-size:18px}.asset-section-heading small{color:#718097;font-size:10px;font-weight:800}.asset-category-placeholder{display:flex;flex-direction:column;align-items:center;gap:5px;margin:0 0 16px;padding:26px;border:1px dashed #afc5e6;border-radius:16px;background:#f7faff;color:#61718b;text-align:center}.asset-category-placeholder strong{color:#28364d}.asset-category-placeholder[hidden]{display:none}.asset-warranty{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(230px,.8fr);align-items:center;gap:18px;margin:0 0 18px;padding:17px 18px;border:1px solid #d7e2f2;border-radius:16px;background:linear-gradient(135deg,#fff,#faf7ff)}.asset-warranty-copy strong,.asset-warranty-copy span{display:block}.asset-warranty-copy span{margin-top:4px;color:#718097;font-size:11px;font-weight:700}.asset-switch{display:flex;align-items:center;gap:10px;margin:0;cursor:pointer}.asset-switch input{position:absolute;width:1px;height:1px;opacity:0}.asset-switch span{position:relative;width:46px;height:25px;border-radius:99px;background:#c6d1e2;box-shadow:inset 0 0 0 1px #adbad0;transition:.2s}.asset-switch span::after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(38,54,78,.25);transition:.2s}.asset-switch input:checked+span{background:linear-gradient(90deg,#2f6fed,#ca68ae);box-shadow:none}.asset-switch input:checked+span::after{transform:translateX(21px)}.asset-switch em{color:#28364d;font-size:12px;font-style:normal;font-weight:900}.asset-warranty-date[hidden]{display:none}.asset-warranty-date label{margin-top:0}.asset-table td{vertical-align:middle}.asset-table td strong,.asset-table td small{display:block}.asset-table td small{margin-top:4px;color:#718097;font-size:10px}.asset-category-pill{display:inline-flex;padding:6px 9px;border-radius:99px;background:#edf4ff;color:#2f6fed;font-size:10px;font-weight:900}.asset-table .status.grey{background:#eef1f5;color:#6b778b}.empty-state{padding:34px!important;text-align:center;color:#718097}.asset-list-card .table-wrap{overflow:auto}

/* Final authority for all application tab-like selectors, including module
   styles emitted after the shared stylesheet. */
:is(.fleet-tab,.record-library-tabs a,.employee-side-tabs a,.employee-tabs .btn.ghost,.payroll-employee-tabs .btn.ghost,.supplier-link):not(.disabled):not(.active):hover{
    color:#245fc9!important;border-color:#74a2ef!important;
    background:linear-gradient(105deg,#e7f0ff 0%,#f1f6ff 58%,#fceaf5 100%)!important;
    box-shadow:0 8px 20px rgba(47,111,237,.13)!important;transform:translateY(-1px)
}
:is(.fleet-tab.active,.record-library-tabs a.active,.employee-side-tabs a.active,.employee-tabs .btn.primary,.payroll-employee-tabs .btn.primary,.supplier-link.active){
    color:#fff!important;border-color:transparent!important;
    background:linear-gradient(100deg,#3479eb 0%,#5c94e5 62%,#d779b3 100%)!important;
    box-shadow:0 8px 20px rgba(54,121,235,.24)!important;transform:none
}
:is(.record-library-tabs a.active,.employee-side-tabs a.active,.supplier-link.active) :is(strong,span,small,b){color:#fff!important}
.status-tabs .job-create-action{background:#2f6fed!important;border-color:#2f6fed!important;color:#fff!important;box-shadow:0 7px 16px rgba(47,111,237,.20)!important}
.status-tabs .job-create-action:hover{background:#245fc9!important;border-color:#245fc9!important;box-shadow:0 9px 20px rgba(47,111,237,.28)!important;transform:translateY(-1px)}

/* October 2026 interface consistency pass */
.top-shell .brand>div{display:grid;gap:2px}.top-shell .brand strong{font-size:clamp(20px,2vw,29px);line-height:1.05}.top-shell .brand span{font-size:11px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.user-box{gap:16px}.top-welcome{display:grid;text-align:right}.top-welcome strong{font-size:14px}.top-welcome span{color:#657289;font-size:11px;font-weight:800}.top-logout{background:#dc2626!important;border-color:#dc2626!important;color:#fff!important;box-shadow:0 6px 14px rgba(220,38,38,.2)}.top-logout:hover{background:#b91c1c!important;border-color:#b91c1c!important}.nav-group-toggle{display:flex!important;align-items:center;gap:7px}.nav-alert-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#dc2626;color:#fff;font-size:10px;font-weight:900;box-shadow:0 0 0 3px rgba(220,38,38,.12)}.nav-group.active>.nav-group-toggle .nav-alert-badge{background:#fff;color:#c81e1e}.dash-hero{justify-content:center!important;text-align:center}.dash-hero>div{width:100%}.dash-hero h1{font-size:clamp(32px,4vw,48px)!important}.dash-kpi{cursor:default}.dash-alert-feed{scrollbar-width:thin;scrollbar-color:#5f8fe8 #eaf2fc}.dash-alert-feed::-webkit-scrollbar{width:10px}.dash-alert-feed::-webkit-scrollbar-track{background:#eaf2fc;border-radius:999px}.dash-alert-feed::-webkit-scrollbar-thumb{background:linear-gradient(#2f76ed,#d878b4);border:2px solid #eaf2fc;border-radius:999px}.client-site-panel{overflow:hidden}.client-site-panel-head{padding-bottom:16px;border-bottom:3px solid #d878b4;background:linear-gradient(135deg,#f5f9ff,#fff7fb)}.client-contact-card:nth-child(odd){background:#f7faff}.client-contact-card:nth-child(even){background:#fff8fc}.client-contact-card+.client-contact-card{border-top:2px solid #cbdaf0}.jobs-page-head{align-items:flex-start}.jobs-status-row{display:flex;gap:8px;flex-wrap:wrap;margin:-8px 0 16px}.job-card-preview-frame{display:block;width:100%;height:min(78vh,920px);border:0;background:#edf4fc}.expense-manage-panel .panel-card{width:min(1120px,calc(100vw - 32px))}.expense-manage-panel .panel-body{max-height:80vh;overflow:auto}
@media(max-width:900px){.top-welcome{text-align:left}.jobs-status-row{overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px}}
.fire-filter-row th{padding:6px;background:#f7faff}.fire-filter-row input{min-width:95px;min-height:32px;padding:6px 8px;border-radius:8px;font-size:10px}
@media(max-width:760px){.asset-panel-card .form-row{grid-template-columns:1fr}.asset-warranty{grid-template-columns:1fr;align-items:start}.asset-section-heading{align-items:flex-start;flex-direction:column}}
/* Employee export selector */
.export-selection-list{display:grid;gap:7px;max-height:48vh;overflow:auto;margin:12px 0 18px;padding:12px;border:1px solid #d7e2f2;border-radius:14px;background:#f7faff}.check-row{display:flex!important;align-items:center;gap:10px;padding:7px 9px;border-radius:9px}.check-row:hover{background:#eaf2ff}.check-row input{width:18px;height:18px;margin:0;accent-color:#3478ed}

/* Softer application canvas: white cards remain crisp without a white-heavy page. */
body:not(.login-screen){background:#e4e8ee}
body:not(.login-screen):before{opacity:.105;filter:saturate(.82) contrast(.9)}

/* The opening dove now uses a detailed transparent brand asset and hands the
   motion directly to the existing feather/logo assembly. */
.entrance-dove-flight{position:absolute;z-index:6;left:50%;top:calc(50% - 330px);width:clamp(330px,28vw,500px);aspect-ratio:3/2;margin-left:clamp(-250px,-14vw,-165px);opacity:0;pointer-events:none;will-change:transform,opacity;animation:doveFlightAcross 2.45s .1s cubic-bezier(.34,.02,.42,1) forwards}
.entrance-dove{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;opacity:0;filter:drop-shadow(0 18px 22px rgba(0,0,0,.2));will-change:opacity,transform}
.dove-frame-up{animation:doveFrameUp .54s steps(1,end) .1s infinite}.dove-frame-mid{animation:doveFrameMid .54s steps(1,end) .1s infinite}.dove-frame-down{animation:doveFrameDown .54s steps(1,end) .1s infinite}
@keyframes doveFlightAcross{0%{opacity:0;transform:translate3d(-68vw,54px,0) scale(.66) rotate(-3deg)}10%{opacity:.9}42%{opacity:1;transform:translate3d(-90px,8px,0) scale(.96) rotate(1deg)}55%{opacity:1;transform:translate3d(18px,-4px,0) scale(1) rotate(-1deg)}72%{opacity:.98;transform:translate3d(190px,-34px,0) scale(.92) rotate(-3deg)}100%{opacity:0;transform:translate3d(69vw,-105px,0) scale(.68) rotate(-7deg)}}
@keyframes doveFrameUp{0%,32%,100%{opacity:1;transform:translateY(-5px) rotate(-1deg)}33%,99%{opacity:0}}@keyframes doveFrameMid{0%,32%,66%,100%{opacity:0}33%,65%{opacity:1;transform:translateY(0) rotate(0)}}@keyframes doveFrameDown{0%,65%,100%{opacity:0}66%,99%{opacity:1;transform:translateY(6px) rotate(1deg)}}
/* The logo feather appears under the bird at centre, then continues its own
   controlled drift into the mark without a duplicate floating feather. */
.feather-fall-track,.feather-air-sway,.feather-air-sway .entrance-feather{animation-delay:1.38s}
.entrance-frame rect{animation-delay:4.88s}.feather-impact{animation-delay:4.79s}.entrance-wordmark{animation-delay:5.75s}.wordmark-dust{animation-delay:5.6s}.wordmark-dust b{animation-delay:5.66s}.entrance-copy{animation-delay:6.78s}.entrance-rail,.entrance-ready{animation-delay:7.15s}
@media(max-width:650px){.entrance-dove-flight{top:calc(50% - 265px);width:290px;margin-left:-145px}.entrance-dove{filter:drop-shadow(0 12px 16px rgba(0,0,0,.18))}}
@media(prefers-reduced-motion:reduce){.entrance-dove-flight,.entrance-dove{animation-duration:.001ms!important;animation-delay:.001ms!important;animation-iteration-count:1!important}.dove-frame-mid,.dove-frame-down{display:none}}

/* Do not simulate character animation with mismatched still images. Until a
   single rigged dove asset is supplied, retain the clean original feather-led
   Agape logo build. */
.entrance-dove-flight{display:none!important}
.feather-fall-track,.feather-air-sway,.feather-air-sway .entrance-feather{animation-delay:.12s}
.entrance-frame rect{animation-delay:3.62s}.feather-impact{animation-delay:3.53s}.entrance-wordmark{animation-delay:4.84s}.wordmark-dust{animation-delay:4.7s}.wordmark-dust b{animation-delay:4.76s}.entrance-copy{animation-delay:5.98s}.entrance-rail,.entrance-ready{animation-delay:6.4s}
