:root{--bs-primary:#4f46e5;--bs-primary-rgb:79,70,229;--bs-link-color:#4f46e5;--bs-link-hover-color:#4338ca;--ink:#0f172a;--muted:#64748b;--line:#e7eaf3;--navy:#111a3a;--bs-body-font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;--bs-body-color:#1e293b}
body{background:#f5f6fb;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5{color:var(--ink);letter-spacing:-.02em}
.btn{border-radius:10px;font-weight:600;min-height:40px}.btn-primary{--bs-btn-bg:#4f46e5;--bs-btn-border-color:#4f46e5;--bs-btn-hover-bg:#4338ca;--bs-btn-hover-border-color:#4338ca;--bs-btn-active-bg:#3730a3;--bs-btn-disabled-bg:#4f46e5;box-shadow:0 1px 2px rgba(79,70,229,.3)}
.btn-outline-primary{--bs-btn-color:#4f46e5;--bs-btn-border-color:#c7c9f5;--bs-btn-hover-bg:#4f46e5;--bs-btn-hover-border-color:#4f46e5}.btn-outline-secondary{--bs-btn-color:#475569;--bs-btn-border-color:#dbe0ee;--bs-btn-hover-bg:#f1f3fa;--bs-btn-hover-color:#0f172a;--bs-btn-hover-border-color:#cbd2e4}.btn-light{background:#fff;border:1px solid var(--line)}
.form-control,.form-select{border-radius:10px;border-color:#dfe3ef;padding:.6rem .85rem}.form-control:focus,.form-select:focus{border-color:#818cf8;box-shadow:0 0 0 .22rem rgba(79,70,229,.14)}.form-label{font-weight:600;font-size:.85rem;color:#334155}
.card{border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(15,23,42,.04)}
.card:has(>.stat){position:relative;overflow:hidden}.card:has(>.stat)::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#4f46e5,#818cf8)}
.stat{font-size:2rem;font-weight:700;letter-spacing:-.03em;color:var(--ink);line-height:1.1}.stat-label{color:var(--muted);font-size:.8rem;font-weight:500}
.table{--bs-table-bg:transparent}.table thead th{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);background:#fafbff;border-bottom:1px solid var(--line);padding:.85rem 1rem;white-space:nowrap}.table td{padding:.85rem 1rem;border-color:#f0f2f8}.table tbody tr:hover{background:#fafbff}.card>.table-responsive{border-radius:14px}
.badge{font-weight:600;border-radius:999px;padding:.4em .75em}.text-bg-primary{background:#eef0ff!important;color:#4338ca!important}.text-bg-success{background:#e7f7ef!important;color:#0f7a43!important}.text-bg-danger{background:#fdecec!important;color:#b42318!important}.text-bg-warning{background:#fff4dd!important;color:#9a5b00!important}.text-bg-secondary,.text-bg-light{background:#eef1f7!important;color:#475569!important}
.alert{border-radius:12px;border:0}.alert-success{background:#e7f7ef;color:#0f5132}.alert-danger{background:#fdecec;color:#842029}.alert-warning{background:#fff4dd;color:#7a4b00}
.brand{display:flex;align-items:center;gap:.55rem;font-weight:700;font-size:1.15rem;color:#fff;text-decoration:none;letter-spacing:-.02em}.brand i{background:linear-gradient(135deg,#6366f1,#4f46e5);padding:.35rem .45rem;border-radius:9px;font-size:1rem}.brand-dark{color:var(--ink)}
.sidebar{--bs-offcanvas-width:270px;border:0}.sidebar-in{flex:1;height:100%;display:flex;flex-direction:column;padding:1.4rem 1rem;background:linear-gradient(180deg,#111a3a 0%,#1a2357 100%)}
.side-label{margin:2rem .75rem .6rem;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#7f89bd}.side-nav{display:flex;flex-direction:column;gap:2px}
.side-nav a{display:flex;align-items:center;gap:.75rem;padding:.65rem .8rem;border-radius:10px;color:#b9c1e6;text-decoration:none;font-weight:500;font-size:.92rem}.side-nav a:hover{background:rgba(255,255,255,.07);color:#fff}.side-nav a.active{background:rgba(99,102,241,.28);color:#fff;box-shadow:inset 3px 0 0 #818cf8}
.side-user{margin-top:auto;display:flex;align-items:center;gap:.7rem;padding:.8rem;border-radius:12px;background:rgba(255,255,255,.06)}.side-user a{color:#9aa4d6;text-decoration:none}.side-user a:hover{color:#fff}.avatar{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;display:grid;place-items:center;font-weight:700}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;background:rgba(245,246,251,.85);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topbar-title{font-weight:600;color:var(--ink)}.content{padding:1.75rem 1.5rem 3rem;max-width:1240px}
.bell{width:40px;height:40px;padding:0;display:inline-grid;place-items:center}
@media(min-width:992px){.sidebar{position:fixed!important;top:0;left:0;bottom:0;width:270px!important;height:100vh!important;visibility:visible!important;transform:none!important}.app-main{margin-left:270px}}
.page-head h1{font-size:1.5rem;font-weight:700;margin:0}.page-head p{color:var(--muted);margin:.15rem 0 1.25rem}
.seg .nav-link{color:#475569;font-weight:600;border-radius:10px;background:#fff;border:1px solid var(--line);margin-right:.4rem}.seg .nav-link.active{background:#4f46e5;color:#fff;border-color:#4f46e5}.seg .count{font-size:.72rem;opacity:.75;margin-left:.25rem}
.rev-item{border-left:4px solid #4f46e5}.rev-item.overdue{border-left-color:#e5484d}
.notif-menu{width:370px;max-width:calc(100vw - 24px);border-radius:14px;border:1px solid var(--line);box-shadow:0 18px 40px rgba(15,23,42,.14);overflow:hidden}.notif-list{max-height:380px;overflow-y:auto}
.notif-item{display:block;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid #eef1f7;padding:.7rem 1rem;white-space:normal;word-break:break-word}.notif-item:hover{background:#f7f8fd}.unread{border-left:3px solid #4f46e5;background:#f5f6ff}.notif-card.unread{border-left:4px solid #4f46e5}
@media(max-width:576px){.notif-menu{position:fixed!important;left:12px!important;right:12px!important;top:64px!important;width:auto;transform:none!important}.content{padding:1.25rem 1rem 3rem}}
.auth{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.auth-brand{background:radial-gradient(600px 400px at 10% 0,rgba(129,140,248,.35),transparent),linear-gradient(160deg,#111a3a,#232d6b);color:#c9d0f3;padding:2.5rem 3.5rem;display:flex;flex-direction:column;justify-content:space-between}.auth-brand h2{color:#fff;font-size:2.3rem;font-weight:700;max-width:440px;line-height:1.15}.auth-brand p{max-width:420px;font-size:1.05rem}.auth-points{list-style:none;padding:0;margin:1.5rem 0 0}.auth-points li{margin:.6rem 0}.auth-points i{color:#a5b4fc;margin-right:.5rem}
.auth-form{display:grid;place-items:center;padding:2rem;background:#fff}.auth-box{width:100%;max-width:400px}.auth-box h1{font-size:1.65rem;font-weight:700}@media(max-width:991px){.auth{grid-template-columns:1fr}.auth-brand{display:none}}
.pub-nav{padding:.9rem 0;background:rgba(255,255,255,.8);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.hero{padding:4.5rem 0 3rem;background:radial-gradient(700px 380px at 85% 0,rgba(99,102,241,.14),transparent),radial-gradient(500px 300px at 0 20%,rgba(79,70,229,.07),transparent)}.hero h1{font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;line-height:1.08;margin:1rem 0}.hero .lead{color:var(--muted);max-width:30rem;margin-bottom:1.75rem}
.eyebrow{display:inline-block;font-size:.78rem;font-weight:600;color:#4338ca;background:#eef0ff;padding:.35rem .8rem;border-radius:999px}.preview{box-shadow:0 30px 60px -20px rgba(49,46,129,.25)}
.node{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:700;background:#eef1f7;color:#64748b}.node.done{background:#4f46e5;color:#fff}.node.now{background:#fff;color:#4f46e5;box-shadow:0 0 0 2px #4f46e5}.progress-bar{background:#4f46e5}
.icon-chip{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#eef0ff;color:#4f46e5;font-size:1.25rem;margin-bottom:1rem}.feature h2{font-size:1.15rem;font-weight:600}
