:root{--side:#1e293b;--side-hover:#334155;--accent:#2563eb;--bg:#f1f5f9}
body{background:var(--bg);font-family:'Segoe UI',system-ui,sans-serif}
.app{display:flex;min-height:100vh}
.sidebar{width:250px;background:var(--side);color:#cbd5e1;flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto}
.brand{display:flex;align-items:center;gap:.6rem;padding:1.1rem 1.2rem;font-size:1.15rem;font-weight:600;color:#fff;border-bottom:1px solid #334155}
.brand i{font-size:1.5rem;color:#60a5fa}
.menu{padding:.75rem}
.m-link,.m-sub{display:flex;align-items:center;gap:.7rem;padding:.65rem .85rem;border-radius:.5rem;color:#cbd5e1;text-decoration:none;font-size:.93rem;margin-bottom:2px}
.m-link:hover,.m-sub:hover{background:var(--side-hover);color:#fff}
.m-link.active,.m-sub.active{background:var(--accent);color:#fff}
.m-parent .arrow{margin-left:auto;font-size:.75rem;transition:transform .2s}
.m-parent.collapsed .arrow{transform:rotate(-90deg)}
.m-sub{padding-left:2.4rem;font-size:.88rem}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{background:#fff;display:flex;align-items:center;gap:.75rem;padding:.7rem 1.5rem;box-shadow:0 1px 3px rgba(0,0,0,.06);position:sticky;top:0;z-index:10}
.page-title{font-weight:600}
.user-chip{background:#eff6ff;color:#1d4ed8;border-radius:2rem;padding:.3rem .8rem;font-size:.85rem}
.content{padding:1.5rem}
.tile{display:flex;align-items:center;gap:1rem;padding:1.3rem;border-radius:1rem;color:#fff;text-decoration:none;position:relative;box-shadow:0 4px 14px rgba(0,0,0,.12);transition:transform .15s,box-shadow .15s}
.tile:hover{transform:translateY(-4px);box-shadow:0 10px 22px rgba(0,0,0,.2);color:#fff}
.tile-icon{width:58px;height:58px;border-radius:1rem;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:1.8rem}
.tile-label{opacity:.9;font-size:.9rem}.tile-value{font-size:1.7rem;font-weight:700;line-height:1.1}
.tile-go{margin-left:auto;font-size:1.3rem;opacity:.7}
.t-blue{background:linear-gradient(135deg,#2563eb,#60a5fa)}.t-green{background:linear-gradient(135deg,#16a34a,#4ade80)}
.t-orange{background:linear-gradient(135deg,#ea580c,#fb923c)}.t-purple{background:linear-gradient(135deg,#7c3aed,#a78bfa)}
.t-teal{background:linear-gradient(135deg,#0d9488,#2dd4bf)}.t-red{background:linear-gradient(135deg,#dc2626,#f87171)}
.card{border-radius:.9rem}
.table thead th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:#475569}
.login-body{background:#0f172a}
.login-wrap{display:flex;min-height:100vh}
.login-left{flex:1;align-items:center;justify-content:center;color:#fff;padding:3rem;background:linear-gradient(135deg,#1d4ed8,#0ea5e9 70%)}
.login-left .big{font-size:4.5rem;display:block;margin-bottom:1rem}
.login-left h1{font-weight:700}.login-left p{opacity:.9;font-size:1.1rem}
.login-right{flex:1;display:flex;align-items:center;justify-content:center;background:#f8fafc;padding:1.5rem}
.login-card{width:100%;max-width:400px;background:#fff;padding:2.2rem;border-radius:1rem;box-shadow:0 10px 35px rgba(15,23,42,.12)}
@media(max-width:991px){.sidebar{position:fixed;left:-260px;z-index:50;transition:left .25s}.sidebar.open{left:0}}
@media print{.sidebar,.topbar,.no-print{display:none!important}.content{padding:0}}
#fyBadge{font-weight:600}
#lines td{white-space:nowrap}
.bg-success-subtle{background:#dcfce7!important}
.bill-doc{font-size:.92rem}
@media print{
  body{background:#fff}.card{box-shadow:none!important;border:0!important}
  .bill-page{page-break-after:always}.bill-page:last-child{page-break-after:auto}
  .table-responsive{overflow:visible!important}
}

/* searchable dropdowns (Tom Select) */
.ts-wrapper{min-width:0}
.ts-control{min-height:calc(1.5em + .75rem + 2px)}
.ts-dropdown{z-index:1080}
