:root{
  --scope-blue:#0d6efd;--scope-blue-2:#1e88ff;--scope-cyan:#22c7ff;--scope-orange:#ff7a00;--scope-navy:#071a33;--scope-navy-2:#0a2748;
  --sidebar-bg:#071a33;--sidebar-bg-2:#0a294d;--sidebar-text:#d5e3f2;--sidebar-muted:#7f9ab8;--sidebar-line:rgba(255,255,255,.09);
  --page-bg:#f3f6fa;--topbar-bg:rgba(255,255,255,.96);--panel-bg:#fff;--panel-line:#dfe6ee;
  --heading:#10233d;--muted:#6f7f91;--shadow:0 7px 24px rgba(23,48,82,.07);--radius:13px;
}
[data-bs-theme="dark"]{
  --sidebar-bg:#041224;--sidebar-bg-2:#071d37;--sidebar-text:#dbe9f8;--sidebar-muted:#7892af;--sidebar-line:rgba(255,255,255,.08);
  --page-bg:#071321;--topbar-bg:rgba(8,24,43,.96);--panel-bg:#0d223a;--panel-line:#1b3a57;
  --heading:#eef6ff;--muted:#91a7bf;--shadow:0 7px 28px rgba(0,0,0,.18);
}
html,body{min-height:100%}body{margin:0;background:var(--page-bg);color:var(--heading);font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;transition:background-color .18s ease,color .18s ease}.app-shell{display:grid;grid-template-columns:258px minmax(0,1fr);min-height:100vh}.main{min-width:0}.sidebar{background:linear-gradient(180deg,var(--sidebar-bg),var(--sidebar-bg-2));border-right:1px solid var(--sidebar-line);padding:13px 12px 14px;flex-direction:column;position:sticky;top:0;height:100vh;z-index:1030;color:var(--sidebar-text);box-shadow:6px 0 22px rgba(0,27,61,.08)}
.brand{display:flex;align-items:center;justify-content:center;text-decoration:none;min-height:88px;padding:7px 9px 14px;border-bottom:1px solid var(--sidebar-line);margin-bottom:12px}.brand:before{content:"";position:absolute}.brand-logo{display:block;width:218px;max-width:100%;height:70px;object-fit:contain;background:rgba(255,255,255,.96);border-radius:11px;padding:5px 8px;box-shadow:0 5px 16px rgba(0,0,0,.12)}
.sidebar .nav{gap:4px;overflow-y:auto;overflow-x:hidden;padding:1px 1px 9px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}.sidebar .nav-link,.mobile-nav .nav-link{display:flex;gap:12px;align-items:center;border-radius:9px;padding:10px 11px;color:var(--sidebar-text);font-weight:600;font-size:13.5px;line-height:1.2;text-decoration:none;border:1px solid transparent;transition:.15s ease}.sidebar .nav-link i,.mobile-nav .nav-link i{width:20px;text-align:center;font-size:17px}.sidebar .nav-link:hover,.mobile-nav .nav-link:hover{background:rgba(255,255,255,.07);color:#fff}.sidebar .nav-link.active,.mobile-nav .nav-link.active{background:linear-gradient(135deg,#0d6efd,#1687ff);color:#fff;box-shadow:0 5px 13px rgba(13,110,253,.24);border-color:rgba(255,255,255,.08)}.sidebar .nav-link.disabled,.mobile-nav .nav-link.disabled{opacity:.48;cursor:not-allowed}.sidebar .nav-link small,.mobile-nav .nav-link small{margin-left:auto;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--sidebar-muted)}.nav-section{font-size:10px;color:var(--sidebar-muted);text-transform:uppercase;letter-spacing:.12em;padding:18px 11px 7px}.sidebar-footer{margin-top:auto;border-top:1px solid var(--sidebar-line);padding:13px 10px 1px;display:flex;flex-direction:column;color:var(--sidebar-muted);font-size:10.5px;line-height:1.5}
.topbar{height:66px;background:var(--topbar-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--panel-line);display:flex;align-items:center;padding:0 22px;position:sticky;top:0;z-index:1020;box-shadow:0 2px 10px rgba(15,42,75,.025)}.top-title{display:flex;flex-direction:column;line-height:1.15}.top-title strong{font-size:15px;color:var(--heading);font-weight:700}.top-title small{font-size:10px;color:var(--muted);margin-top:4px}.topbar-actions{display:flex;align-items:center;gap:7px}.topbar-icon{width:38px;height:38px;border:1px solid var(--panel-line);border-radius:9px;background:var(--panel-bg);color:var(--heading);display:grid;place-items:center;padding:0}.topbar-icon:hover{color:var(--scope-blue);border-color:rgba(13,110,253,.35)}.user-button{display:flex;align-items:center;gap:9px;border:1px solid transparent;background:transparent;color:var(--heading);padding:4px 7px;border-radius:9px}.user-button:hover{background:color-mix(in srgb,var(--panel-bg) 75%,var(--page-bg));border-color:var(--panel-line)}.user-copy{flex-direction:column;line-height:1.15}.user-copy strong{font-size:12px}.user-copy small{font-size:9px;color:var(--muted);margin-top:3px}.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--scope-blue),var(--scope-cyan));color:#fff;display:grid;place-items:center;font-weight:700;font-size:12px;box-shadow:0 4px 10px rgba(11,99,206,.22)}.logout-btn{display:flex;align-items:center;gap:6px;border-radius:9px;min-height:36px}.page-wrap{max-width:1600px;margin:auto;padding:25px 27px 38px}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:19px}.page-head h1{font-size:25px;line-height:1.15;margin:0;color:var(--heading);font-weight:750}.page-head p{color:var(--muted);margin:5px 0 0;font-size:13px}.kpi-card,.panel{background:var(--panel-bg);border:1px solid var(--panel-line);border-radius:var(--radius);box-shadow:var(--shadow)}.kpi-card{padding:18px 19px;min-height:127px;position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;right:-26px;top:-28px;width:86px;height:86px;border-radius:50%;background:linear-gradient(135deg,rgba(13,110,253,.10),rgba(255,122,0,.06))}.kpi-card:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--scope-blue),var(--scope-cyan));opacity:.85}.kpi-label{color:var(--muted);font-size:12px;font-weight:650}.kpi-value{font-size:30px;font-weight:780;margin-top:5px;color:var(--heading)}.panel{padding:20px}.panel-title{font-size:15px;font-weight:730;margin:0 0 14px;color:var(--heading)}.table{--bs-table-bg:transparent;--bs-table-color:var(--heading);--bs-table-border-color:var(--panel-line)}.table>:not(caption)>*>*{padding:.78rem .75rem}.table thead th{color:var(--muted);font-size:12px;font-weight:700}.list-group{--bs-list-group-bg:transparent;--bs-list-group-color:var(--heading);--bs-list-group-border-color:var(--panel-line)}.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:#ffc107}.status-dot.ok{background:#198754}.status-dot.bad{background:#dc3545}.breadcrumb{margin-bottom:17px}.breadcrumb,.breadcrumb a{color:var(--muted)}.dropdown-menu{--bs-dropdown-bg:var(--panel-bg);--bs-dropdown-color:var(--heading);--bs-dropdown-border-color:var(--panel-line);border-radius:10px}.form-control,.form-select,.input-group-text{background-color:var(--panel-bg);border-color:var(--panel-line);color:var(--heading)}.form-control:focus,.form-select:focus{background-color:var(--panel-bg);color:var(--heading);border-color:rgba(13,110,253,.55);box-shadow:0 0 0 .2rem rgba(13,110,253,.10)}.modal-content{background:var(--panel-bg);border-color:var(--panel-line);color:var(--heading)}.future-card{border-style:dashed!important;background:color-mix(in srgb,var(--panel-bg) 92%,var(--page-bg))}.form-note{font-size:12px;color:var(--muted)}.settings-secret{font-family:monospace;letter-spacing:.04em}.alert{border-radius:10px}.btn{font-weight:600}.btn-primary{background:linear-gradient(135deg,#0d6efd,#1687ff);border-color:#0d6efd}.btn-primary:hover{filter:brightness(.97)}
.login-body{min-height:100vh;background:radial-gradient(circle at 16% 8%,rgba(13,110,253,.16),transparent 31%),radial-gradient(circle at 88% 92%,rgba(255,122,0,.10),transparent 28%),var(--page-bg);display:grid;place-items:center;padding:26px;position:relative}.login-theme{position:fixed;right:22px;top:20px;z-index:10}.login-shell{width:min(1040px,100%);display:grid;grid-template-columns:minmax(330px,.92fr) minmax(400px,1.08fr);background:var(--panel-bg);border:1px solid var(--panel-line);border-radius:20px;box-shadow:0 26px 70px rgba(9,37,72,.18);overflow:hidden}.login-visual{display:flex;align-items:center;justify-content:center;padding:45px;background:linear-gradient(155deg,#061a33,#0b315a);border-right:1px solid rgba(255,255,255,.08);position:relative}.login-visual:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 35% 30%,rgba(34,199,255,.12),transparent 38%),radial-gradient(circle at 80% 75%,rgba(255,122,0,.10),transparent 34%);pointer-events:none}.login-visual img{display:block;width:min(365px,100%);height:auto;position:relative;z-index:1;background:rgba(255,255,255,.96);padding:13px;border-radius:16px;box-shadow:0 16px 35px rgba(0,0,0,.20)}.login-card{padding:49px 48px 38px;background:var(--panel-bg);display:flex;flex-direction:column;justify-content:center}.login-card h1{font-size:28px;font-weight:760;color:var(--heading);margin-bottom:7px}.login-card .lead-copy{font-size:14px;color:var(--muted);margin-bottom:24px}.login-card .btn{min-height:45px;border-radius:9px}.login-card .form-control,.login-card .input-group-text{min-height:46px}.login-card .form-control{border-radius:0 9px 9px 0}.login-card .input-group-text{border-radius:9px 0 0 9px}.login-card .form-label{font-size:12px;font-weight:650;color:var(--heading)}.login-separator{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:11px;margin:17px 0}.login-separator:before,.login-separator:after{content:"";height:1px;background:var(--panel-line);flex:1}.login-footer{font-size:10px;color:var(--muted);text-align:center;margin-top:24px}.login-local-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700;margin-bottom:12px}.login-logo-mobile{display:none;max-width:245px;height:auto;margin:0 auto 22px}.mobile-nav{background:linear-gradient(180deg,var(--sidebar-bg),var(--sidebar-bg-2));color:#fff}.mobile-brand img{display:block;width:210px;height:64px;object-fit:contain;background:#fff;border-radius:10px;padding:4px 7px}.mobile-nav .offcanvas-header{border-bottom:1px solid var(--sidebar-line)}.mobile-nav .offcanvas-body{display:flex;flex-direction:column}.mobile-nav-actions{margin-top:auto!important}.mobile-nav .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}
.error-body{min-height:100vh;background:var(--page-bg);display:grid;place-items:center;padding:24px}.error-card{width:min(600px,100%);background:var(--panel-bg);border:1px solid var(--panel-line);border-radius:18px;padding:40px;box-shadow:var(--shadow)}
@media(max-width:991.98px){.app-shell{display:block}.page-wrap{padding:20px}.topbar{padding:0 15px}.login-shell{grid-template-columns:1fr;max-width:520px}.login-visual{display:none}.login-logo-mobile{display:block}.mobile-nav .nav-link{color:var(--sidebar-text)}}
@media(max-width:575.98px){.page-wrap{padding:16px}.page-head{flex-direction:column}.page-head h1{font-size:23px}.login-body{padding:14px}.login-shell{border-radius:16px}.login-card{padding:30px 23px 25px}.login-card h1{font-size:24px}.logout-btn span{display:none!important}.topbar-actions{gap:4px}}

/* M2 – Portfolio & Projects */
.project-tabs{display:flex;gap:.45rem;flex-wrap:wrap}.project-facts>div{display:flex;flex-direction:column;gap:.25rem}.project-facts span{font-size:.78rem;color:var(--bs-secondary-color);text-transform:uppercase;letter-spacing:.03em}.project-facts strong{font-weight:600;overflow-wrap:anywhere}.project-notes{white-space:normal;overflow-wrap:anywhere}.timeline-mini{display:flex;flex-direction:column;gap:1rem}.timeline-mini-item{display:flex;gap:.8rem;position:relative}.timeline-dot{width:.7rem;height:.7rem;flex:0 0 .7rem;border-radius:50%;background:var(--bs-primary);margin-top:.35rem;box-shadow:0 0 0 4px rgba(13,110,253,.1)}.project-timeline{position:relative}.project-timeline-item{display:flex;gap:1rem;padding:0 0 1.25rem 0;position:relative}.project-timeline-item:not(:last-child):before{content:"";position:absolute;left:18px;top:38px;bottom:0;width:1px;background:var(--bs-border-color)}.project-timeline-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(13,110,253,.1);color:var(--bs-primary);flex:0 0 36px;z-index:1}.avatar.avatar-sm{width:34px;height:34px;font-size:.8rem}.table td,.table th{vertical-align:middle}
[data-bs-theme="dark"] .timeline-dot{box-shadow:0 0 0 4px rgba(70,150,255,.15)}

/* M3 – Knowledge Core */
.knowledge-total{min-width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--bs-primary-bg-subtle);color:var(--bs-primary);font-weight:800;font-size:1.15rem}
.knowledge-section-card{display:flex;align-items:center;gap:14px;height:100%;padding:18px;border:1px solid var(--bs-border-color);border-radius:16px;background:var(--bs-body-bg);color:var(--bs-body-color);box-shadow:0 8px 25px rgba(21,50,83,.05);transition:.18s ease}
.knowledge-section-card:hover{transform:translateY(-2px);border-color:rgba(13,110,253,.38);box-shadow:0 12px 30px rgba(21,50,83,.10)}
.knowledge-section-card small{display:block;color:var(--bs-secondary-color);margin-top:4px;line-height:1.35}
.knowledge-section-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#0d6efd,#0b5ed7);color:#fff;font-size:1.2rem;flex:0 0 auto}
.knowledge-value{white-space:normal;overflow-wrap:anywhere}
[data-bs-theme="dark"] .knowledge-section-card{box-shadow:none;background:rgba(255,255,255,.025)}

/* M5 Authority Engine */
.authority-score-panel .display-4{letter-spacing:-.04em}.score-component{border:1px solid var(--bs-border-color);border-radius:12px;padding:.85rem;background:var(--bs-tertiary-bg)}.score-component .progress{height:7px}.authority-output-grid .authority-output-card{display:flex;align-items:center;gap:.75rem;border:1px solid var(--bs-border-color);border-radius:12px;padding:.9rem;background:var(--bs-body-bg);height:100%}.authority-output-card>i{font-size:1.35rem;color:var(--bs-primary)}.authority-output-card strong,.authority-output-card small{display:block}.authority-output-card small{color:var(--bs-secondary-color)}.authority-page-preview{background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:18px;overflow:hidden;box-shadow:var(--scope-shadow,0 8px 30px rgba(15,23,42,.07))}.authority-hero{padding:2rem;display:flex;gap:2rem;justify-content:space-between;align-items:center;background:linear-gradient(135deg,var(--bs-tertiary-bg),var(--bs-body-bg))}.authority-hero h2{font-size:2rem;font-weight:800}.authority-hero p{max-width:850px;color:var(--bs-secondary-color);margin-bottom:0}.authority-score-ring{width:104px;height:104px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;border:8px solid currentColor;flex:0 0 auto;background:var(--bs-body-bg)}.authority-score-ring strong{font-size:1.8rem;line-height:1}.authority-score-ring span{font-size:.75rem}.authority-score-ring.score-success{color:var(--bs-success)}.authority-score-ring.score-primary{color:var(--bs-primary)}.authority-score-ring.score-warning{color:var(--bs-warning)}.authority-score-ring.score-danger{color:var(--bs-danger)}.authority-page-preview section{padding:1.5rem 2rem;border-top:1px solid var(--bs-border-color)}.authority-page-preview section h3{font-size:1.15rem;font-weight:700;margin-bottom:1rem}.authority-fact,.authority-item{border:1px solid var(--bs-border-color);border-radius:10px;padding:.85rem;background:var(--bs-tertiary-bg);height:100%}.authority-fact span{display:block;color:var(--bs-secondary-color);font-size:.78rem}.authority-fact strong{display:block;margin-top:.2rem}.authority-item p{font-size:.9rem;color:var(--bs-secondary-color);margin:.35rem 0 0}.authority-code{white-space:pre-wrap;word-break:break-word;max-height:70vh;overflow:auto;font-size:.82rem;padding:1rem;border-radius:10px;background:var(--bs-tertiary-bg)}
@media(max-width:767.98px){.authority-hero{align-items:flex-start;flex-direction:column}.authority-page-preview section,.authority-hero{padding:1.25rem}}

/* M10 global search */
.topbar-search{width:min(360px,32vw);margin-left:auto;margin-right:1rem}.topbar-search .input-group-text,.topbar-search .form-control{background:var(--bs-tertiary-bg);border-color:var(--bs-border-color);}.topbar-search .form-control:focus{background:var(--bs-body-bg)}

/* v0.10.2 – Sidebar navigation: always one vertical column */
.sidebar .nav,
.mobile-nav .nav{
  flex-wrap:nowrap !important;
  flex-direction:column !important;
  width:100%;
  min-width:0;
}
.sidebar .nav{
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
}
.sidebar .nav-link,
.mobile-nav .nav-link,
.sidebar .nav-section{
  flex:0 0 auto;
  width:100%;
  min-width:0;
}
.sidebar .nav-link span,
.mobile-nav .nav-link span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
