:root{
	--ruby-500:#174275;
	--ruby-600:#174275;
	--ruby-50:#fdebed;
	--slate-900:#7f0e19;
	--slate-600:#64748b;
	--slate-100:#f8fafc;
}

body{font-family:Inter,system-ui,-apple-system,'Segoe UI',Roboto,Arial;background:#f3f4f6;color:#1f2933}
.auth-body{background:linear-gradient(135deg,#fdebed,#f3f4f6)}
.app-body{background:#f3f4f6}

/* Utility classes to replace inline styles (CSP safe) */
.mw-280{max-width:280px}
.mw-720{max-width:720px}
.mw-820{max-width:820px}
.mw-840{max-width:840px}
.inline-form{display:inline-block;margin:0}
.mb-12{margin-bottom:12px}

.card{border-radius:12px;border:1px solid rgba(18,22,28,.05);box-shadow:0 10px 30px rgba(18,22,28,.05)}
.invoice-automation-card{background-color:#174275!important}
.invoice-automation-label{color:rgba(255,255,255,.8)}

.btn-primary{background:var(--ruby-500);border-color:var(--ruby-500)}
.btn-primary:hover,.btn-primary:focus{background:var(--ruby-600);border-color:var(--ruby-600)}
.btn-outline-primary{color:var(--ruby-500);border-color:var(--ruby-500)}
.btn-outline-primary:hover,.btn-outline-primary:focus{background:var(--ruby-500);border-color:var(--ruby-500);color:#fff}
.text-primary{color:var(--ruby-500)!important}
.link-primary{color:var(--ruby-500)!important}
.link-primary:hover{color:var(--ruby-600)!important}
.bg-primary{background:var(--ruby-500)!important}
.border-primary{border-color:var(--ruby-500)!important}

.app-shell{min-height:100vh}
.app-sidebar{width:260px;min-width:260px;height:100vh;position:fixed;top:0;left:0;z-index:1020;background:var(--ruby-500);background:linear-gradient(180deg,var(--ruby-500),#174275);display:flex;flex-direction:column;overflow-y:hidden;overflow-x:hidden;overscroll-behavior:contain;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) transparent}
.app-sidebar:hover{overflow-y:auto}
.app-sidebar::-webkit-scrollbar{width:8px}
.app-sidebar::-webkit-scrollbar-track{background:transparent}
.app-sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:999px}
.app-sidebar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.34)}
.app-sidebar .brand-link{color:#fff;font-weight:700;font-size:1.25rem;text-decoration:none}
.app-sidebar .brand-logo{width:32px;height:32px;border-radius:50%;display:inline-block}
.app-sidebar .nav-link{display:flex;align-items:center;padding:.65rem 1rem;border-radius:.75rem;color:rgba(255,255,255,.8);font-weight:500;transition:background .2s ease,color .2s ease}
.app-sidebar .nav-link:hover{background:rgba(255,255,255,.12);color:#fff}
.app-sidebar .nav-link.active{background:#fff;color:var(--ruby-500);box-shadow:0 8px 16px rgba(0,0,0,.15)}
.app-sidebar .nav-link span{flex-grow:1}
.app-content{margin-left:260px;width:calc(100% - 260px)}
.app-topbar{background:#fff;padding:1.25rem 2rem;border-bottom:1px solid rgba(18,22,28,.08)}
.app-main{padding:2rem;}
.app-main>.alert{margin:0 0 1.5rem}
.app-main .card{margin-bottom:1.5rem}

/* Chart containers */
.chart-box{position:relative;height:220px}
.chart-box canvas{width:100%!important;height:100%!important}

.text-ruby{color:var(--ruby-500)!important}
.bg-ruby{background:var(--ruby-500)!important}
.bg-ruby-soft{background:var(--ruby-50)!important}

.navbar-brand{font-weight:700}

.table thead th{text-transform:uppercase;font-size:.75rem;color:var(--slate-600);letter-spacing:.08em}

@media (max-width:992px){
	.app-shell{flex-direction:column}
	/* Sidebar behaves like a drawer on mobile */
	.app-topbar{position:sticky;top:0;z-index:1030}
	.app-sidebar{display:none;width:100%;min-width:100%;height:calc(100vh - 72px);position:static;top:auto;left:auto;z-index:auto;flex-direction:column;padding:.75rem 1rem;overflow-y:auto;overflow-x:hidden}
	.sidebar-open .app-sidebar{display:flex}
	.app-sidebar nav{flex-direction:column!important;gap:.5rem;overflow-y:visible;white-space:normal;-webkit-overflow-scrolling:touch}
	.app-sidebar .nav-link{border-radius:12px;padding:.75rem 1rem;white-space:normal;flex:0 0 auto}
	.app-content{min-height:auto;margin-left:0;width:100%}
	.app-main{padding:1rem}
}
