:root{--ink:#0b1f3a;--blue:#0b1f3a;--cyan:#c89a3d;--gold:#c89a3d;--gold-dark:#a97a24;--paper:#f6f4ef}
body{background:var(--paper);color:var(--ink);font-family:Inter,system-ui,-apple-system,sans-serif}
.navbar{background:linear-gradient(100deg,#07162b,#0b1f3a);box-shadow:0 8px 30px #1233;border-bottom:3px solid var(--gold)}
.navbar .nav-link{border-radius:.6rem;margin:.1rem}.navbar .nav-link:hover{background:#ffffff18}
.brand-dot{display:none}.dashboard-logo{width:42px;height:42px;object-fit:contain;background:#fff;border-radius:50%;padding:3px}
.card{border:0;border-radius:1rem;box-shadow:0 10px 35px #1b37600d}.metric{border-left:4px solid var(--blue)}
.metric .value{font-size:1.8rem;font-weight:800}.table thead th{color:#61708b;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;border:0}
.badge-soft{background:#f4ead5;color:#8a641f}.btn-primary{background:var(--gold);border-color:var(--gold);color:#07162b;font-weight:700}.btn-primary:hover,.btn-primary:focus{background:var(--gold-dark);border-color:var(--gold-dark);color:#fff}.text-primary{color:var(--gold)!important}.btn-outline-primary{color:var(--gold-dark);border-color:var(--gold)}.btn-outline-primary:hover{background:var(--gold);border-color:var(--gold);color:#07162b}
.login-shell{min-height:85vh;display:grid;place-items:center}.invoice-paper{background:white;max-width:980px;margin:auto;padding:3rem;box-shadow:0 15px 50px #1221}
.login-brand-panel{background:linear-gradient(145deg,#07162b,#0b1f3a)!important;border-right:4px solid var(--gold)}.login-logo{width:88px;height:88px;object-fit:contain;background:#fff;border-radius:50%;padding:6px;box-shadow:0 10px 30px #0005}.login-links{display:flex;justify-content:center;gap:.65rem;font-size:.9rem}.login-links a{color:#8a641f;text-decoration:none}.forgot-card{width:min(500px,100%)}.modal-login-page{background:#fff}.modal-login-page main{padding:0!important}.modal-login-page .login-shell{height:739px;min-height:739px;padding:0;overflow:hidden}.modal-login-page .login-shell>.card{box-shadow:none!important;border-radius:0!important;max-width:none!important;height:739px;min-height:739px;margin:0!important}.modal-login-page .login-brand-panel{min-height:235px;padding:1.5rem!important;align-items:center;text-align:center;border-right:0;border-bottom:4px solid var(--gold)}.modal-login-page .login-brand-panel .lead{margin-bottom:0;font-size:1rem}.modal-login-page .col-lg-7{padding:1.75rem 3rem!important}.nav-avatar{width:32px;height:32px;object-fit:cover;border-radius:50%;margin-right:.5rem;border:2px solid var(--gold)}.profile-shell{max-width:920px;margin:auto}.profile-avatar{width:180px;height:180px;object-fit:cover;border-radius:50%;border:5px solid #fff;box-shadow:0 8px 28px #10213b22}#cropImage{display:block;max-width:100%;max-height:420px;margin:auto}
@media(max-width:575.98px){.modal-login-page .col-lg-7{padding:1.5rem!important}.modal-login-page .login-brand-panel{min-height:220px}.login-links{font-size:.82rem}}
.form-label{font-weight:650;font-size:.88rem}
@media print{.navbar,.no-print{display:none!important}body{background:#fff}.container-fluid{padding:0!important}.invoice-paper{box-shadow:none;max-width:none;padding:0}}

/* ===== OLIGATI premium portal login — 2026-09 ===== */
.premium-login-shell{padding:24px;min-height:100vh;background:linear-gradient(135deg,#eef1f4,#f8f7f3)}
.premium-login-card{width:min(704px,100%);overflow:hidden;border:1px solid rgba(11,31,58,.12)!important;border-radius:16px!important;box-shadow:0 26px 70px rgba(5,20,40,.18)!important;background:#fff}
.premium-login-hero{position:relative;min-height:300px;background:url('../../assets/images/hero-skyscraper.png') center 42%/cover no-repeat;color:#fff;overflow:hidden}
.premium-login-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,20,40,.98) 0%,rgba(7,30,56,.93) 48%,rgba(7,30,56,.66) 100%)}
.premium-login-hero:after{content:"";position:absolute;right:-45px;bottom:-85px;width:280px;height:280px;border:3px solid rgba(210,162,59,.65);transform:rotate(34deg);border-radius:2px}
.premium-login-brand{position:relative;z-index:2;min-height:300px;display:flex;align-items:center;justify-content:center;gap:30px;padding:44px 48px}
.premium-login-logo{width:138px;height:138px;object-fit:contain;background:#fff;border:5px solid #fff;border-radius:50%;box-shadow:0 12px 32px rgba(0,0,0,.32)}
.premium-login-divider{width:1px;height:150px;background:linear-gradient(transparent,rgba(210,162,59,.9),transparent)}
.premium-login-brand h1{margin:0 0 14px;font-size:2.25rem;line-height:1.08;font-weight:800;letter-spacing:.04em}
.premium-login-brand p{margin:0;font-size:1.05rem;line-height:1.55;color:rgba(255,255,255,.92)}
.premium-login-form{padding:38px 52px 34px;background:#fff}
.premium-login-form h2{font-size:2rem;font-weight:800;margin:0 0 4px;color:#071a31}
.premium-login-subtitle{color:#6b7280;margin-bottom:28px}
.premium-login-form .form-label{font-weight:700;color:#111827;margin-bottom:8px}
.premium-input{position:relative;display:flex;align-items:center;border:1px solid #cfd6df;border-radius:8px;background:#fff;transition:.2s}
.premium-input:focus-within{border-color:#cfa13b;box-shadow:0 0 0 3px rgba(207,161,59,.14)}
.premium-input>i{position:absolute;left:18px;color:#718096;font-size:1.15rem;z-index:2}
.premium-input .form-control{border:0!important;box-shadow:none!important;padding-left:52px;min-height:58px;background:transparent;font-size:1rem}
.premium-input .form-control::placeholder{color:#8a94a3}
.premium-input .password-toggle{width:58px;align-self:stretch;border:0;border-left:1px solid #d6dbe2;background:#fff;color:#6f7b8b;border-radius:0 8px 8px 0}
.premium-login-submit{margin-top:26px;min-height:58px;border:0!important;background:linear-gradient(90deg,#d1a039,#e0b54f)!important;color:#071a31!important;font-weight:800;display:flex;align-items:center;justify-content:center;gap:16px;box-shadow:0 10px 24px rgba(201,151,48,.22)}
.premium-login-submit:hover{filter:brightness(.97);transform:translateY(-1px)}
.premium-login-links{margin-top:22px}
.modal-login-page{background:transparent!important}
.modal-login-page main{padding:0!important}
.modal-login-page .premium-login-shell{min-height:0;height:auto;padding:0;background:transparent;display:block}
.modal-login-page .premium-login-card{width:100%;max-width:none;border:0!important;border-radius:0!important;box-shadow:none!important}
.modal-login-page .premium-login-hero{min-height:300px}
.modal-login-page .premium-login-brand{min-height:300px}
@media(max-width:640px){.premium-login-shell{padding:0}.premium-login-card{border-radius:0!important}.premium-login-brand{gap:18px;padding:34px 24px}.premium-login-logo{width:105px;height:105px}.premium-login-divider{height:120px}.premium-login-brand h1{font-size:1.8rem}.premium-login-brand p{font-size:.92rem}.premium-login-form{padding:32px 28px}.premium-login-form h2{font-size:1.7rem}}
@media(max-width:430px){.premium-login-brand{justify-content:flex-start}.premium-login-logo{width:86px;height:86px}.premium-login-divider{display:none}.premium-login-brand h1{font-size:1.55rem}.premium-login-brand p{font-size:.84rem}}

/* ===== OLIGATI portal modal compact correction — 2026-09-22 ===== */
.modal-login-page .premium-login-shell{height:auto!important;min-height:0!important;padding:0!important;overflow:visible!important;background:#fff!important}
.modal-login-page .premium-login-card{height:auto!important;min-height:0!important;width:100%!important;max-width:none!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.premium-login-hero{min-height:248px!important;background:linear-gradient(135deg,#06172d 0%,#0b2544 72%,#102f52 100%)!important}
.premium-login-hero-overlay{background:radial-gradient(circle at 85% 20%,rgba(210,162,59,.13),transparent 30%),linear-gradient(90deg,rgba(4,20,40,.18),rgba(4,20,40,.02))!important}
.premium-login-hero:before{content:"";position:absolute;right:-80px;top:-120px;width:330px;height:330px;border:1px solid rgba(210,162,59,.24);transform:rotate(45deg)}
.premium-login-hero:after{right:-20px!important;bottom:-145px!important;width:310px!important;height:310px!important;border:2px solid rgba(210,162,59,.38)!important}
.premium-login-brand{min-height:248px!important;padding:28px 44px!important;gap:26px!important}
.premium-login-logo{width:112px!important;height:112px!important;object-fit:contain!important;background:#fff!important;border:4px solid #fff!important}
.premium-login-divider{height:112px!important}
.premium-login-brand h1{font-size:2rem!important;margin-bottom:10px!important}
.premium-login-brand p{font-size:.96rem!important;line-height:1.48!important}
.premium-login-form{padding:28px 46px 26px!important}
.premium-login-form h2{font-size:1.7rem!important}
.premium-login-subtitle{margin-bottom:20px!important}
.premium-login-form .form-label{margin-bottom:6px!important}
.premium-input{min-height:52px!important}
.premium-input .form-control{min-height:50px!important;font-size:.95rem!important}
.premium-login-submit{margin-top:20px!important;min-height:52px!important}
.premium-login-links{margin-top:16px!important;margin-bottom:0!important}
@media(max-width:640px){.premium-login-brand{padding:24px!important;gap:18px!important}.premium-login-logo{width:90px!important;height:90px!important}.premium-login-divider{height:92px!important}.premium-login-brand h1{font-size:1.65rem!important}.premium-login-brand p{font-size:.86rem!important}.premium-login-form{padding:26px 24px!important}}


/* ===== OLIGATI surgical modal form-only mode — 2026-09-22 ===== */
.modal-login-page{background:#fff!important;overflow:hidden!important}
.modal-login-page main{padding:0!important;margin:0!important}
.modal-login-page .modal-login-form-only{box-sizing:border-box;width:100%;padding:28px 46px 24px;background:#fff;color:#071a31}
.modal-login-form-only h2{margin:0 0 4px;font-size:1.7rem;font-weight:800;color:#071a31}
.modal-login-form-only .modal-login-subtitle{margin:0 0 20px;color:#6b7280}
.modal-login-form-only .form-label{font-weight:700;color:#111827;margin-bottom:6px}
.modal-login-form-only .premium-login-submit{margin-top:20px!important;min-height:52px!important}
.modal-login-form-only .premium-login-links{margin-top:16px!important;margin-bottom:0!important}
@media(max-width:640px){.modal-login-page .modal-login-form-only{padding:25px 24px 22px}.modal-login-form-only h2{font-size:1.55rem}}
\n\n/* OLIGATI modal final alignment polish */\n.premium-input>i{top:50%!important;transform:translateY(-50%)!important;line-height:1!important;pointer-events:none}\n.modal-login-form-only .premium-input{display:flex!important;position:relative!important;align-items:center!important;width:100%!important;overflow:hidden!important}\n.modal-login-form-only .premium-input .form-control{width:100%!important;margin:0!important;padding-left:52px!important;border:0!important}\n.modal-login-form-only .premium-input .password-toggle{position:relative!important;flex:0 0 58px!important;width:58px!important;height:52px!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:center!important}\n.modal-login-form-only .premium-input>.input-group{display:contents!important}\n
/* ===== OLIGATI vertical dashboard — staging redesign 2026-09-22 ===== */
body.dashboard-shell{margin:0;background:#f5f5f2;overflow-x:hidden}
.dashboard-layout{min-height:100vh;display:flex;background:#f5f5f2}
.dashboard-sidebar{position:fixed;inset:0 auto 0 0;width:270px;z-index:1040;display:flex;flex-direction:column;background:linear-gradient(180deg,#06172d 0%,#081d36 58%,#07162b 100%);color:#fff;border-right:1px solid rgba(210,162,59,.25);box-shadow:12px 0 34px rgba(7,22,43,.08)}
.sidebar-brand{display:flex;align-items:center;gap:13px;padding:25px 20px 20px;border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar-brand img{width:58px;height:58px;object-fit:contain;border-radius:50%;background:#fff;padding:3px;border:2px solid #d2a23b}
.sidebar-brand strong{display:block;font-size:17px;letter-spacing:.025em}.sidebar-brand small{display:block;margin-top:2px;color:#d2a23b;font-size:10px;letter-spacing:.18em;font-weight:800}
.sidebar-user{display:flex;align-items:center;gap:11px;margin:18px 16px 10px;padding:12px;border-radius:12px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.06)}
.sidebar-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#d2a23b;color:#07162b;font-size:19px;overflow:hidden}.sidebar-avatar img{width:100%;height:100%;object-fit:cover}
.sidebar-user small{display:block;color:#d2a23b;text-transform:uppercase;font-size:9px;letter-spacing:.12em}.sidebar-user strong{display:block;font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:155px}
.sidebar-nav{padding:8px 12px;display:flex;flex-direction:column;gap:3px;overflow:auto}.sidebar-link{display:flex;align-items:center;gap:12px;min-height:46px;padding:0 13px;border-radius:9px;color:rgba(255,255,255,.78);text-decoration:none;font-size:14px;font-weight:600;transition:.18s}.sidebar-link i{width:20px;text-align:center;color:#d2a23b;font-size:16px}.sidebar-link:hover{background:rgba(255,255,255,.07);color:#fff}.sidebar-link.active{background:linear-gradient(90deg,#d2a23b,#bd8b2c);color:#07162b;box-shadow:0 8px 18px rgba(0,0,0,.15)}.sidebar-link.active i{color:#07162b}.sidebar-separator{height:1px;background:rgba(255,255,255,.08);margin:8px 8px}.sidebar-logout{margin-top:2px}.sidebar-foot{margin-top:auto;padding:18px 24px;color:rgba(255,255,255,.64);font-size:11px;border-top:1px solid rgba(255,255,255,.08)}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#48c78e;margin-right:7px;box-shadow:0 0 0 4px rgba(72,199,142,.1)}
.dashboard-content{width:calc(100% - 270px);margin-left:270px;min-height:100vh}.dashboard-topbar{height:76px;position:sticky;top:0;z-index:1020;display:flex;align-items:center;gap:14px;padding:0 34px;background:rgba(255,255,255,.96);border-bottom:1px solid #e8e6df;backdrop-filter:blur(12px)}.dashboard-topbar>div:nth-child(2){display:flex;flex-direction:column}.topbar-kicker{font-size:9px;letter-spacing:.2em;font-weight:900;color:#b48125}.dashboard-topbar strong{font-size:16px;color:#07162b}.topbar-user{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:#506078}.role-pill{padding:5px 9px;border-radius:999px;background:#f3e8cf;color:#8b641d;font-size:10px;text-transform:uppercase;font-weight:800;letter-spacing:.06em}.sidebar-toggle{display:none;width:40px;height:40px;border:1px solid #d9dce1;border-radius:9px;background:#fff;color:#07162b;font-size:22px}.dashboard-main{padding:30px 34px 46px;max-width:1700px;width:100%;margin:0 auto}.dashboard-main .card{border:1px solid #ebe9e2;box-shadow:0 10px 28px rgba(7,22,43,.045)}.dashboard-main .metric{border-left:0;border-top:3px solid #d2a23b}.dashboard-main .metric .value{color:#07162b}.dashboard-main h1,.dashboard-main h2,.dashboard-main h3{color:#07162b}.dashboard-main .table{margin-bottom:0}.dashboard-main .table>:not(caption)>*>*{padding:.9rem .8rem}.sidebar-backdrop{display:none}
@media(max-width:991.98px){.dashboard-sidebar{transform:translateX(-100%);transition:transform .22s ease}.dashboard-sidebar.open{transform:translateX(0)}.dashboard-content{width:100%;margin-left:0}.sidebar-toggle{display:grid;place-items:center}.sidebar-backdrop{position:fixed;inset:0;background:rgba(2,12,24,.58);z-index:1030}.sidebar-backdrop.show{display:block}.dashboard-topbar{padding:0 18px}.dashboard-main{padding:22px 18px 36px}.topbar-user>span:first-child{display:none}}
@media(max-width:575.98px){.dashboard-topbar{height:68px}.dashboard-main{padding:18px 12px 30px}.dashboard-main .row.g-3>[class*="col-md-3"]{width:50%}.dashboard-main .metric{padding:1rem!important}.dashboard-main .metric .value{font-size:1.35rem}.dashboard-sidebar{width:280px}.topbar-kicker{display:none}}
@media print{.dashboard-sidebar,.dashboard-topbar,.sidebar-backdrop{display:none!important}.dashboard-content{width:100%!important;margin-left:0!important}.dashboard-main{padding:0!important;max-width:none!important}}

/* OLIGATI Billing Suite operational modules */
.admin-credential-card{background:#fff8e7;border:1px solid rgba(207,161,59,.45);color:#071a31;border-left:4px solid #cfa13b}.admin-credential-card code{font-size:1rem;color:#071a31;background:#fff;border:1px dashed #cfa13b;border-radius:6px;padding:.35rem .55rem}.dashboard-main .table thead th{white-space:nowrap}.dashboard-main .card h1,.dashboard-main .card h2{color:#071a31}

/* Billing Suite Phase 2 */
.invoice-summary>div:not(.mt-2){display:flex;justify-content:space-between;gap:20px;padding:8px 0}.invoice-summary .grand-total{border-top:2px solid #d2a23b;margin-top:8px;padding-top:16px;font-size:1.25rem}.invoice-line{background:#fff}.invoice-line .line-total{white-space:nowrap;color:#071a31}.oligati-invoice{max-width:1050px;margin:0 auto;background:#fff;padding:0!important;overflow:hidden;border:1px solid #e4e7ec;box-shadow:0 16px 45px rgba(7,22,43,.08)}.invoice-brand-header{background:#071a31;color:#fff;padding:30px 38px;display:flex;align-items:center;justify-content:space-between;gap:30px}.invoice-brand-left{display:flex;align-items:center;gap:16px}.invoice-brand-left img{width:72px;height:72px;border-radius:50%;object-fit:cover;border:3px solid #fff}.invoice-brand-left strong{display:block;font-size:24px}.invoice-brand-left small{display:block;color:#d2a23b;letter-spacing:.12em;font-size:10px;margin-top:4px}.invoice-title{text-align:right}.invoice-title span{display:block;font-size:28px;font-weight:800;letter-spacing:.08em}.invoice-title strong{color:#d2a23b}.invoice-gold-rule{height:4px;background:#d2a23b}.invoice-meta-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;padding:32px 38px}.invoice-label{color:#b27d16;font-size:11px;font-weight:800;letter-spacing:.14em}.invoice-meta-grid h3{font-size:20px;margin:6px 0}.invoice-meta-grid p{color:#667085;line-height:1.6}.invoice-dates>div{display:flex;justify-content:space-between;border-bottom:1px solid #eceff3;padding:8px 0}.invoice-dates span{color:#667085}.invoice-status{color:#b27d16}.invoice-table{margin:0 38px;width:calc(100% - 76px)}.invoice-table thead th{background:#f5f6f8;color:#071a31;border-bottom:2px solid #d2a23b}.invoice-bottom{display:grid;grid-template-columns:1fr 380px;gap:40px;padding:30px 38px}.invoice-notes{color:#667085}.invoice-notes strong{color:#071a31}.invoice-totals>div{display:flex;justify-content:space-between;padding:7px 0}.invoice-total-main{border-top:2px solid #071a31;border-bottom:2px solid #071a31;margin-top:5px;font-size:1.2rem}.invoice-balance{color:#b27d16;font-size:1.1rem}.invoice-footer{background:#071a31;color:#dce3ec;padding:20px 38px;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:24px;font-size:12px;line-height:1.6}.invoice-footer strong{color:#fff}@media(max-width:767px){.invoice-brand-header,.invoice-meta-grid,.invoice-bottom,.invoice-footer{grid-template-columns:1fr;display:grid}.invoice-title{text-align:left}.invoice-table{margin:0 18px;width:calc(100% - 36px)}.invoice-meta-grid,.invoice-bottom{padding:24px 20px}.invoice-brand-header{padding:24px 20px}.invoice-footer{padding:20px}.invoice-line .remove-line{width:100%}}@media print{.dashboard-sidebar,.dashboard-topbar,.no-print,.sidebar-backdrop{display:none!important}.dashboard-content{margin:0!important}.dashboard-main{padding:0!important}.oligati-invoice{box-shadow:none;border:0;max-width:none}.invoice-paper{page-break-inside:avoid}}
/* Client-approved OLIGATI invoice letterhead */
.invoice-brand-left img{width:150px;height:108px;border-radius:0;object-fit:contain;border:0;background:#111;padding:4px}.invoice-brand-left{gap:22px}@media(max-width:767px){.invoice-brand-left img{width:130px;height:auto}}
