:root{
  --navy:#111827; --navy-d:#0b1220; --brand:#007BFF; --brand-d:#0063d1; --blue:#007BFF; --red:#F5192B; --orange:#FF6B00; --yellow:#FFCC00; --green:#03C46F; --purple:#7F39FB; --ink:#1f2937; --muted:#6b7280; --line:#e5e7eb; --bg:#f6f7fb; --soft:#e8f1ff;
  --bs-primary:#007BFF; --bs-primary-rgb:0,123,255; --bs-link-color:#0063d1; --bs-link-hover-color:#004fa8;
  --bs-body-font-family:'Aptos','Segoe UI',system-ui,-apple-system,Roboto,sans-serif; --bs-body-color:var(--ink);
}
body{background:var(--bg);font-size:.925rem}
.btn-primary{--bs-btn-bg:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand-d);--bs-btn-hover-border-color:var(--brand-d);--bs-btn-active-bg:var(--brand-d);--bs-btn-active-border-color:var(--brand-d);--bs-btn-disabled-bg:var(--brand);--bs-btn-disabled-border-color:var(--brand)}
.btn-outline-primary{--bs-btn-color:var(--brand-d);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand);--bs-btn-hover-border-color:var(--brand);--bs-btn-active-bg:var(--brand)}
.btn-accent{background:var(--orange);border-color:var(--orange);color:#fff}.btn-accent:hover{background:#e05f00;border-color:#e05f00;color:#fff}
.text-navy{color:var(--navy)!important}.bg-navy{background:var(--navy)!important}

/* layout */
.sidebar{width:248px;background:#fff;border-right:1px solid var(--line);color:#374151;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:1030;transition:transform .2s}
.sidebar .brand{padding:1rem 1.1rem;border-bottom:1px solid var(--line);display:block;text-decoration:none}.sidebar .brand img{width:100%;max-width:190px;height:auto;display:block}.sidebar .brand small{display:block;margin-top:.35rem;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.sidebar .brand .logo{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--blue),#fff);color:var(--navy);display:grid;place-items:center;font-weight:800}
.sidebar nav{padding:.75rem .6rem;overflow-y:auto;flex:1}
.sidebar .sec{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:#9ca3af;padding:.9rem .75rem .3rem}
.sidebar a.nav-i{display:flex;align-items:center;gap:.65rem;padding:.5rem .75rem;border-radius:.55rem;color:#374151;text-decoration:none;margin-bottom:2px}
.sidebar a.nav-i:hover{background:#f3f4f6;color:#111827}
.sidebar a.nav-i.active{background:var(--soft);color:#0063d1;font-weight:600;box-shadow:inset 3px 0 0 var(--brand)}
.sidebar a.nav-i .bi{font-size:1.05rem;opacity:.9}
.sidebar .pill{margin-left:auto;background:var(--red);color:#fff;border-radius:99px;font-size:.68rem;padding:.05rem .45rem}
.sidebar .foot{padding:.8rem 1rem;border-top:1px solid var(--line);font-size:.8rem;color:#374151}.sidebar .foot .fw-semibold{color:#111827!important}.sidebar::after{content:"";height:4px;background:linear-gradient(90deg,#F5192B,#FFCC00,#03C46F,#007BFF,#7F39FB,#FF6B00)}
.main{margin-left:248px;min-height:100vh}
.topbar{background:#fff;border-bottom:1px solid var(--line);padding:.6rem 1.5rem;display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:1020}
.content{padding:1.5rem}
@media(max-width:991px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:none}.main{margin-left:0}.content{padding:1rem}}

/* cards */
.card{border:1px solid var(--line);border-radius:.8rem;box-shadow:0 1px 2px rgba(22,63,107,.04)}
.card-header{background:#fff;border-bottom:1px solid var(--line);font-weight:600;border-radius:.8rem .8rem 0 0!important}
.stat{padding:1rem 1.1rem}.stat .lbl{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.stat .val{font-size:1.65rem;font-weight:700;color:var(--navy);line-height:1.2}.stat .sub{font-size:.78rem;color:var(--muted)}
.stat .ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--soft);color:var(--navy);font-size:1.2rem}
.page-h{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem;flex-wrap:wrap}
.page-h h1{font-size:1.45rem;font-weight:700;color:var(--navy);margin:0}
.table{--bs-table-bg:transparent}.table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;border-bottom-width:1px;white-space:nowrap}
.table-hover>tbody>tr:hover>*{background:#f7fafd}
.table a.row-link{color:var(--ink);font-weight:600;text-decoration:none}.table a.row-link:hover{color:var(--navy);text-decoration:underline}

/* badges */
.badge{font-weight:600;padding:.38em .62em;border-radius:99px}
.badge-primary{background:#dbeafe;color:#1e4fa0}.badge-info{background:#d6f1fb;color:#0b6785}.badge-warning{background:#fff1cc;color:#8a6100}
.badge-success{background:#d8f5e3;color:#13703a}.badge-danger{background:#ffdcd9;color:#a8261d}.badge-secondary{background:#e8edf3;color:#4c5b6c}
.badge-dark{background:#dfe3e8;color:#222}.badge-purple{background:#e9e0ff;color:#5b34b5}

/* kanban */
.board{display:flex;gap:.8rem;overflow-x:auto;padding-bottom:.6rem}
.board .col-k{min-width:250px;width:250px;background:#eaf0f7;border-radius:.8rem;padding:.6rem}
.board .col-k h6{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--navy);display:flex;justify-content:space-between;margin:.2rem .3rem .6rem}
.board .kc{background:#fff;border:1px solid var(--line);border-radius:.6rem;padding:.6rem .7rem;margin-bottom:.5rem;display:block;color:inherit;text-decoration:none}
.board .kc:hover{border-color:var(--blue);box-shadow:0 2px 8px rgba(22,63,107,.1)}

/* timeline */
.tl{position:relative;padding-left:1.4rem}.tl:before{content:'';position:absolute;left:.45rem;top:.2rem;bottom:.2rem;width:2px;background:var(--line)}
.tl .it{position:relative;margin-bottom:1rem}.tl .it:before{content:'';position:absolute;left:-1.18rem;top:.3rem;width:10px;height:10px;border-radius:50%;background:var(--blue);border:2px solid #fff;box-shadow:0 0 0 1px var(--blue)}
.tl .it.t-status:before{background:var(--navy);box-shadow:0 0 0 1px var(--navy)}.tl .it.t-email:before{background:#8b5cf6;box-shadow:0 0 0 1px #8b5cf6}.tl .it.t-system:before{background:#9aa8b8;box-shadow:0 0 0 1px #9aa8b8}

/* email thread */
.msg{border:1px solid var(--line);border-radius:.8rem;padding:.8rem 1rem;margin-bottom:.75rem;background:#fff;max-width:92%}
.msg.out{margin-left:auto;background:#eef5ff;border-color:#cfe2fb}.msg.in{background:#fff7ec;border-color:#f5dcb5}
.msg pre{white-space:pre-wrap;font-family:inherit;margin:0}

/* resources */
.res-card{height:100%;transition:.15s}.res-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(22,63,107,.12)}
.res-thumb{height:130px;border-radius:.8rem .8rem 0 0;background:linear-gradient(135deg,#007BFF,#7F39FB);color:#fff;display:grid;place-items:center;font-size:2.6rem;background-size:cover;background-position:center}
.md-body h1{font-size:1.5rem}.md-body h2{font-size:1.2rem;margin-top:1.4rem;color:var(--navy)}.md-body table{width:100%;margin:1rem 0}.md-body th,.md-body td{border:1px solid var(--line);padding:.4rem .6rem}.md-body blockquote{border-left:4px solid var(--blue);padding:.2rem 1rem;color:#41546b;background:#f3f8ff}

/* auth/public */
.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}
.auth-hero{background:radial-gradient(circle at 85% 12%,rgba(127,57,251,.35),transparent 45%),radial-gradient(circle at 10% 95%,rgba(0,123,255,.35),transparent 45%),#0b1220;color:#fff;padding:3rem;display:flex;flex-direction:column;justify-content:center}
.auth-hero h2{font-weight:800;font-size:2.2rem}.auth-form{display:grid;place-items:center;padding:2rem}.auth-form .box{width:100%;max-width:440px}
@media(max-width:900px){.auth-wrap{grid-template-columns:1fr}.auth-hero{padding:1.5rem}.auth-hero h2{font-size:1.5rem}}
.form-label{font-weight:600;font-size:.82rem;color:#34495f;margin-bottom:.25rem}
.copy-box{background:#f1f6fc;border:1px dashed #b8cde6;border-radius:.6rem;padding:.55rem .75rem;font-family:ui-monospace,Consolas,monospace;font-size:.85rem;word-break:break-all}
.progress{height:8px}.progress-bar{background:var(--brand)}
.imp-banner{background:var(--orange);color:#fff;padding:.4rem 1rem;text-align:center;font-weight:600}.imp-banner a{color:#fff}

.brand-dark{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.brand-dark img{width:48px;height:48px}.brand-dark b{display:block;color:#fff;letter-spacing:.28em;font-size:1.15rem;line-height:1.1}.brand-dark small{display:block;color:#9ca3af;letter-spacing:.12em;font-size:.62rem}
.rainbow-bar{height:4px;background:linear-gradient(90deg,#F5192B,#FFCC00,#03C46F,#007BFF,#7F39FB,#FF6B00)}
.topbar{border-top:3px solid transparent;border-image:linear-gradient(90deg,#F5192B,#FFCC00,#03C46F,#007BFF,#7F39FB,#FF6B00) 1}

.brand-dark{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.brand-dark img{width:48px;height:48px}.brand-dark b{display:block;color:#fff;letter-spacing:.28em;font-size:1.15rem;line-height:1.1}.brand-dark small{display:block;color:#9ca3af;letter-spacing:.12em;font-size:.62rem}
.topbar{border-top:3px solid;border-image:linear-gradient(90deg,#F5192B,#FFCC00,#03C46F,#007BFF,#7F39FB,#FF6B00) 1}
