:root{--primary:#4f46e5;--secondary:#0ea5a6;--accent:#f59e0b;--success:#10b981;--danger:#f43f5e;--ink:#172033;--muted:#64748b;--glass:rgba(255,255,255,.72);--border:rgba(255,255,255,.76);--shadow:0 18px 45px rgba(59,65,125,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;color:var(--ink);font-family:Inter,sans-serif;background:radial-gradient(circle at 8% 10%,rgba(79,70,229,.18),transparent 28%),radial-gradient(circle at 92% 12%,rgba(14,165,166,.16),transparent 28%),linear-gradient(135deg,#eef2ff,#f8fafc 52%,#ecfeff);background-attachment:fixed}h1,h2,h3,h4,h5,h6,.navbar-brand{font-family:Outfit,sans-serif;font-weight:600;letter-spacing:-.02em}.app-navbar{height:68px;background:rgba(255,255,255,.76);backdrop-filter:blur(18px);border-bottom:1px solid var(--border);box-shadow:0 8px 30px rgba(65,70,120,.08);z-index:1040}.navbar-brand{color:var(--ink);font-size:1.05rem}.brand-mark,.avatar{display:grid;place-items:center;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--secondary));box-shadow:0 7px 18px rgba(79,70,229,.25)}.brand-mark{width:38px;height:38px}.avatar{width:32px;height:32px;border-radius:50%;font-size:.8rem}.icon-btn,.profile-btn{min-width:44px;min-height:44px;border:0;background:rgba(255,255,255,.5);color:var(--ink);border-radius:12px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.notification-dot{position:absolute;top:0;right:0;min-width:18px;height:18px;padding:0 4px;border-radius:10px;background:var(--danger);color:#fff;font-size:.65rem;display:grid;place-items:center}.app-main{padding:28px 30px 100px}.sidebar-wrap{position:fixed;top:68px;bottom:0;left:0;padding:18px 10px 22px 18px}.glass-panel,.card,.offcanvas,.glass-dropdown{background:var(--glass);backdrop-filter:blur(14px);border:1px solid var(--border);box-shadow:var(--shadow)}.sidebar{height:100%;padding:16px 10px;border-radius:18px}.sidebar .nav-link{display:flex;align-items:center;gap:12px;color:#475569;border-radius:12px;padding:11px 13px;margin:3px 0;font-weight:500;transition:.2s}.sidebar .nav-link:hover,.sidebar .nav-link.active{color:#fff;background:linear-gradient(135deg,var(--primary),#675fed);transform:translateX(2px);box-shadow:0 8px 20px rgba(79,70,229,.22)}.nav-section{padding:18px 13px 6px;text-transform:uppercase;font-size:.66rem;letter-spacing:.12em;color:#94a3b8}.card{border-radius:16px;overflow:hidden;transition:.2s}.card:hover{transform:translateY(-2px);box-shadow:0 22px 48px rgba(59,65,125,.16)}.card-header,.card-footer{background:rgba(255,255,255,.38);border-color:rgba(148,163,184,.14);padding:16px 20px}.card-body{padding:20px}.btn{border-radius:11px;min-height:42px;font-weight:600;transition:.2s}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(51,65,85,.15)}.btn-primary{border:0;background:linear-gradient(135deg,var(--primary),#6366f1)}.btn-success{border:0;background:linear-gradient(135deg,var(--success),var(--secondary))}.form-control,.form-select{min-height:44px;border-radius:11px;border:1px solid rgba(148,163,184,.28);background:rgba(255,255,255,.72)}.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(79,70,229,.12);background:#fff}.table{--bs-table-bg:transparent;--bs-table-hover-bg:rgba(79,70,229,.045);color:var(--ink)}.table thead th{padding:14px 16px;color:#64748b;text-transform:uppercase;font-size:.72rem;letter-spacing:.055em;border-bottom-color:rgba(148,163,184,.22)}.table tbody td{padding:14px 16px;vertical-align:middle;border-bottom-color:rgba(148,163,184,.13)}.mobile-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:1050;display:flex;justify-content:space-around;background:rgba(255,255,255,.84);backdrop-filter:blur(18px);border-top:1px solid var(--border);box-shadow:0 -10px 30px rgba(51,65,85,.1);padding:7px 5px calc(7px + env(safe-area-inset-bottom))}.mobile-bottom-nav a,.mobile-bottom-nav button{flex:1;border:0;background:transparent;color:#64748b;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.67rem;min-height:48px}.mobile-bottom-nav i{font-size:1.25rem}.mobile-bottom-nav a:hover,.mobile-bottom-nav button:hover{color:var(--primary)}.mobile-sheet{height:auto!important;max-height:70vh;border-radius:22px 22px 0 0}.mobile-menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.mobile-menu-grid a{display:flex;min-height:90px;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-decoration:none;color:var(--ink);background:rgba(255,255,255,.65);border-radius:14px}.mobile-menu-grid i{font-size:1.4rem;color:var(--primary)}
@media(max-width:767.98px){.app-navbar{height:62px}.navbar-brand span:last-child{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-main{padding:18px 12px 100px;width:100%}h2{font-size:1.55rem}.card-body{padding:16px}.row.g-2>[class*=col],.row.g-3>[class*=col]{width:100%}.form-control,.form-select,.btn{min-height:46px}.table-responsive{overflow:visible}.table-responsive table:not(.invoice table){display:block}.table-responsive thead{display:none}.table-responsive tbody,.table-responsive tr,.table-responsive td{display:block;width:100%}.table-responsive tbody{padding:10px}.table-responsive tr{background:rgba(255,255,255,.56);border:1px solid rgba(255,255,255,.8);border-radius:14px;padding:10px 12px;margin-bottom:10px;box-shadow:0 6px 16px rgba(71,85,105,.06)}.table-responsive td{border:0;padding:6px 4px;text-align:right;min-height:30px}.table-responsive td:before{content:attr(data-label);float:left;color:var(--muted);font-weight:600;font-size:.76rem;text-transform:uppercase}.table-responsive td:first-child{text-align:left;font-weight:600}.table-responsive td:first-child:before{display:none}#lines tr{padding:14px}#lines td{text-align:left;margin-bottom:6px}#lines td:before{float:none;display:block;margin-bottom:4px}.invoice .row>div{width:100%!important;text-align:left!important}.invoice{padding:12px!important;font-size:11px}.invoice .table-responsive{overflow-x:auto}.invoice table{display:table;min-width:900px}.invoice thead{display:table-header-group}.invoice tbody{display:table-row-group;padding:0}.invoice tr{display:table-row;background:none;border:0;box-shadow:none;padding:0}.invoice td,.invoice th{display:table-cell;width:auto;text-align:inherit;padding:5px}.invoice td:before{display:none}}
@media(min-width:768px) and (max-width:1199px){.app-main{padding:24px 18px}.sidebar-wrap{padding-left:10px}.sidebar .nav-link{padding:10px 9px;font-size:.9rem}}@media print{body{background:#fff}.app-navbar,.sidebar-wrap,.mobile-bottom-nav,.no-print{display:none!important}.app-main{width:100%!important;margin:0!important;padding:0!important}.card,.invoice{box-shadow:none!important;border:0!important;transform:none!important}.invoice{font-size:11px}}

/* Content visibility must never depend on a third-party animation CDN. */
html:not(.aos-enabled) [data-aos]{opacity:1!important;transform:none!important;visibility:visible!important}

/* Consistent number fields without browser spinner controls. */
input[type=number]{appearance:textfield;-moz-appearance:textfield}
input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

.invoice .table-responsive{overflow:hidden}
.invoice table{width:100%;min-width:0;table-layout:fixed}
.invoice th,.invoice td{padding:5px 3px;font-size:clamp(6px,.72vw,10px);white-space:normal;overflow-wrap:anywhere;text-align:center}
.invoice th:nth-child(2),.invoice td:nth-child(2){width:12%;text-align:left}
.invoice .table-responsive tbody td:not(:nth-child(2)){font-size:8px;white-space:nowrap;overflow-wrap:normal}
.invoice .row .table{width:100%;max-width:100%;table-layout:fixed;min-width:0}.invoice .row .table td{width:auto;font-size:inherit;white-space:nowrap;overflow-wrap:normal;text-align:initial}
.invoice>.row{margin-left:0;margin-right:0}.invoice>.row>[class*=col-]{padding-left:8px;padding-right:8px}
@media(max-width:768px){.invoice .table-responsive th,.invoice .table-responsive td{font-size:5.5px!important;white-space:normal!important;overflow-wrap:anywhere!important;padding:2px 1px!important}}

@page{size:A4 landscape;margin:8mm}
@media print{
  html,body{width:100%;background:#fff}
  .invoice{width:100%;max-width:none;font-size:9px;padding:0!important;overflow:visible!important}
  .invoice .table-responsive{overflow:visible!important}
  .invoice table{display:table!important;width:100%!important;min-width:0!important;table-layout:fixed}
  .invoice thead{display:table-header-group!important}.invoice tbody{display:table-row-group!important}.invoice tr{display:table-row!important}
  .invoice th,.invoice td{display:table-cell!important;width:auto!important;font-size:8px;padding:3px!important;white-space:normal;overflow-wrap:anywhere}
  .invoice td:before{display:none!important}.invoice h2{font-size:20px}.invoice h4{font-size:15px}
}

/* Traditional GST invoice: compact, readable and A4 portrait friendly. */
.gst-invoice{max-width:900px;margin:0 auto;background:#fff;color:#111;border:1.5px solid #111;font-family:Arial,sans-serif;font-size:12px;line-height:1.25;box-shadow:0 12px 36px rgba(15,23,42,.1)}
.gst-invoice h1{font-family:Arial,sans-serif;font-size:20px;text-align:center;text-transform:capitalize;margin:7px 0;font-weight:700}.gst-invoice h2{font-family:Arial,sans-serif;font-size:17px;margin:0 0 3px}.gst-invoice h3{font-family:Arial,sans-serif;font-size:14px;margin:2px 0}.gst-invoice p{margin:0}.gst-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #111}.gst-seller{padding:7px;border-right:1px solid #111}.gst-buyer{margin:8px -7px -7px;padding:5px 7px 8px;border-top:1px solid #111;min-height:126px}.gst-buyer>span,.gst-meta span,.gst-words span{display:block;font-size:10px;font-weight:400}.gst-meta{display:grid;grid-template-columns:1fr 1fr}.gst-meta>div{min-height:47px;padding:4px 6px;border-right:1px solid #111;border-bottom:1px solid #111}.gst-meta>div:nth-child(even){border-right:0}.gst-meta strong{display:block;font-size:12px;margin-top:2px}.gst-meta .gst-meta-wide{grid-column:1/-1;border-right:0;min-height:70px}
.gst-invoice table{width:100%;border-collapse:collapse;table-layout:fixed}.gst-invoice th,.gst-invoice td{border:1px solid #111;padding:5px 4px;vertical-align:top;overflow-wrap:normal}.gst-invoice .num{text-align:right;white-space:nowrap}.gst-items{border-left:0!important;border-right:0!important}.gst-items th:first-child,.gst-items td:first-child{width:5%;border-left:0}.gst-items th:nth-child(2){width:32%}.gst-items th:nth-child(3){width:11%}.gst-items th:nth-child(4){width:10%}.gst-items th:nth-child(5){width:7%}.gst-items th:nth-child(6){width:11%}.gst-items th:nth-child(7){width:10%}.gst-items th:last-child,.gst-items td:last-child{width:14%;border-right:0}.gst-items thead th{text-align:center;font-size:11px;font-weight:600}.gst-items tbody tr:not(.tax-lines){height:43px}.gst-items .tax-lines{height:68px}.gst-items .tax-lines td{border-top:0;border-bottom:0}.gst-items tfoot td{vertical-align:middle;font-size:12px}.gst-grand{font-size:15px!important}.gst-words{position:relative;padding:5px 7px 8px;border-top:1px solid #111}.gst-words b{display:block;font-size:13px;margin-top:3px}.gst-words em{position:absolute;right:7px;top:5px}.gst-tax th,.gst-tax td{padding:3px 4px;text-align:center;font-size:10px}.gst-tax th{vertical-align:middle}.gst-tax-words{padding:7px;border-top:1px solid #111}.gst-footer-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #111}.gst-footer-grid>section{min-height:105px;padding:6px}.gst-footer-grid>section:first-child{border-right:1px solid #111}.gst-sign{text-align:right;display:flex;flex-direction:column;justify-content:space-between}.gst-computer{text-align:center;padding:6px;border-top:1px solid #111;font-size:11px}
@media(max-width:767.98px){.gst-invoice{font-size:9px}.gst-invoice h1{font-size:16px}.gst-party-head{grid-template-columns:1fr}.gst-seller{border-right:0}.gst-meta{border-top:1px solid #111}.gst-invoice th,.gst-invoice td{font-size:8px!important;padding:3px 2px}.gst-items th:nth-child(2){width:27%}.gst-items th:nth-child(3){width:12%}.gst-items th:last-child,.gst-items td:last-child{width:16%}.gst-footer-grid{grid-template-columns:1fr}.gst-footer-grid>section:first-child{border-right:0;border-bottom:1px solid #111}}
@page{size:A4 portrait;margin:7mm}
@media print{.gst-invoice{width:100%;max-width:none;margin:0;border:1.5px solid #111;box-shadow:none;font-size:10px;break-inside:avoid}.gst-invoice h1{font-size:18px}.gst-party-head{grid-template-columns:1fr 1fr}.gst-meta{border-top:0}.gst-invoice th,.gst-invoice td{font-size:9px!important;padding:3px}.gst-items tbody tr:not(.tax-lines){height:36px}.gst-items .tax-lines{height:55px}.gst-footer-grid{grid-template-columns:1fr 1fr}.gst-footer-grid>section:first-child{border-right:1px solid #111;border-bottom:0}}

/* Full-page invoice alignment and reliable centre divider. */
.gst-invoice{min-height:1273px;display:flex;flex-direction:column}
.gst-seller{border-right:0}.gst-meta{border-left:1px solid #111}
.gst-footer-grid{margin-top:auto}
@media(max-width:767.98px){.gst-invoice{min-height:0}.gst-meta{border-left:0}}
@media print{.gst-invoice{min-height:283mm}.gst-meta{border-left:1px solid #111}}

/* Branded sign-in experience. */
.login-page{overflow-x:hidden}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr)}.login-visual{position:relative;overflow:hidden;padding:54px 7vw;color:#fff;background:linear-gradient(145deg,#312e81 0%,#4f46e5 48%,#0e7490 100%);display:flex;flex-direction:column}.login-visual:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:42px 42px}.login-brand,.login-copy{position:relative;z-index:2}.login-brand{display:flex;align-items:center;gap:14px}.login-brand .brand-mark{width:52px;height:52px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28)}.login-brand small{color:#c7d2fe}.login-brand h1{font-size:1.5rem;margin:2px 0 0}.login-copy{max-width:650px;margin:auto 0}.login-copy h2{font-size:clamp(2.5rem,5vw,4.8rem);line-height:1.02;margin:22px 0}.login-copy p{font-size:1.08rem;max-width:560px;color:#e0e7ff}.login-pill{display:inline-flex;gap:8px;align-items:center;padding:8px 13px;border-radius:999px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2)}.login-features{display:flex;flex-wrap:wrap;gap:18px;margin-top:30px}.login-features span{display:flex;gap:7px;align-items:center}.login-features i{color:#5eead4}.login-orb{position:absolute;border-radius:50%;filter:blur(3px);background:rgba(255,255,255,.1)}.orb-one{width:380px;height:380px;right:-120px;top:-100px}.orb-two{width:250px;height:250px;left:-80px;bottom:-70px}.login-form-wrap{padding:40px;display:grid;place-items:center;background:rgba(248,250,252,.82);backdrop-filter:blur(18px)}.login-card{width:min(430px,100%);padding:38px;background:rgba(255,255,255,.86);border:1px solid #fff;border-radius:24px;box-shadow:0 30px 70px rgba(49,46,129,.14)}.login-card h2{font-size:2rem;margin:8px 0}.eyebrow{color:var(--primary);font-weight:700;font-size:.72rem;letter-spacing:.13em}.input-icon{position:relative}.input-icon>i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#64748b;z-index:2}.input-icon .form-control{padding-left:42px;padding-right:44px}.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#64748b;width:36px;height:36px}.login-support{text-align:center;color:#94a3b8;font-size:.78rem;margin:22px 0 0}.login-mobile-brand{display:none;align-items:center;gap:10px;margin-bottom:25px}
@media(max-width:900px){.login-shell{grid-template-columns:1fr}.login-visual{display:none}.login-form-wrap{min-height:100vh;padding:22px}.login-card{padding:28px}.login-mobile-brand{display:flex}}

/* Electrical-firm visual identity and precise top-bar controls. */
.login-visual{background:radial-gradient(circle at 82% 15%,rgba(250,204,21,.2),transparent 22%),linear-gradient(145deg,#071a33 0%,#0b3b72 48%,#087ea4 100%)}
.login-visual:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.7%,rgba(56,189,248,.18) 50%,transparent 50.3%),linear-gradient(0deg,transparent 49.7%,rgba(250,204,21,.12) 50%,transparent 50.3%);background-size:130px 130px;transform:rotate(-8deg) scale(1.2)}
.login-brand .brand-mark{color:#fde047;background:rgba(14,165,233,.18);border-color:rgba(125,211,252,.4);box-shadow:0 0 30px rgba(56,189,248,.25)}.login-pill i,.login-features i{color:#fde047}.login-copy h2{color:#f8fafc;text-shadow:0 10px 30px rgba(2,132,199,.18)}
.app-navbar .btn-primary{height:42px;line-height:1;white-space:nowrap;padding-top:0;padding-bottom:0}.app-navbar .icon-btn{flex:0 0 44px}
