/* Shared visual system: profile, blog, cabinet and administration. */
*,*::before,*::after { box-sizing:border-box; }
:root { --bg-main:#f4f5f3; --bg-card:#fff; --bg-hover:#eef1ed; --text-primary:#24332e; --text-secondary:#5d6963; --text-muted:#68756d; --accent:#315e4b; --accent-hover:#214635; --accent-light:#e9f0eb; --border:#dce2db; --radius:4px; --radius-sm:3px; --shadow-sm:none; --shadow-md:none; --sidebar-width:248px; --content-max-width:1130px; }
body.dark-mode { --bg-main:#171e1b; --bg-card:#1e2822; --bg-hover:#2a352d; --text-primary:#e7ece8; --text-secondary:#bac6bd; --text-muted:#a3b3a7; --accent:#a7cbb4; --accent-hover:#d3e6db; --accent-light:#2a3c30; --border:#3c4b40; }
body { font-family:Arial,'Segoe UI',sans-serif; background:var(--bg-main); color:var(--text-primary); line-height:1.6; }
a { color:var(--accent); } button,input,textarea,select { font:inherit; } button,a,input,textarea { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.page-wrapper { padding:0; max-width:1536px; }
.sidebar { background:var(--bg-main); padding:34px 22px; box-shadow:none; border-right:1px solid var(--border); }
.portal-brand { display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--text-primary); letter-spacing:2px; font-size:16px; font-weight:700; margin-bottom:43px; }
.portal-brand small { display:block; font-size:10px; font-weight:400; letter-spacing:0; color:var(--text-secondary); margin-top:3px; }
.brand-mark { display:grid; place-items:center; flex-shrink:0; width:39px; height:39px; border:1px solid var(--accent); color:var(--accent); font:18px Georgia,serif; letter-spacing:0; }
.nav-section-title { font-size:10px; letter-spacing:1.2px; text-transform:uppercase; color:var(--text-muted); margin:24px 0 12px; padding:0 10px; }
.nav-menu a { padding:8px 10px; border-radius:2px; font-size:13px; font-weight:400; }
.nav-menu li { margin-bottom:2px; }.nav-menu a.active { background:var(--accent-light); color:var(--accent); box-shadow:inset 2px 0 var(--accent); }
.nav-menu.pet-projects a { font-size:12px; }.nav-menu a:hover { background:var(--bg-hover); }
.lang-switcher { margin-top:22px; }.lang-btn { border-radius:2px; font-size:11px; }
.theme-switcher-container { font-size:11px; }.contact-info { font-size:11px; border-top:1px solid var(--border); margin-top:20px; padding-top:18px; }.contact-info svg { width:14px; height:14px; }.contact-info p { margin:8px 0; }
.sidebar-user-section { margin-top:20px; }.sidebar-login-btn { border:1px solid var(--border); border-radius:2px; background:var(--bg-card); color:var(--text-primary); font-size:12px; }
.main-content { min-width:0; }.profile-page .main-content { padding:0 54px; background:var(--bg-card); }.page-content-container { max-width:1040px; margin:0 auto; padding:0; }
.document-header { display:flex; justify-content:space-between; gap:12px; border-bottom:1px solid var(--border); padding:29px 0; color:var(--text-muted); font-size:10px; letter-spacing:1.5px; }
.profile-hero { display:grid; grid-template-columns:1fr 176px; gap:45px; padding:53px 0 40px; }
.eyebrow { font-size:10px; letter-spacing:1.7px; text-transform:uppercase; color:var(--accent); margin:0 0 15px; font-weight:600; }
.profile-hero h1 { font:500 clamp(34px,3.4vw,52px)/1.12 Georgia,'Times New Roman',serif; letter-spacing:-1.5px; margin:0 0 13px; color:var(--text-primary); }
.profile-role { font-size:16px; line-height:1.45; margin:0 0 22px; color:var(--text-primary); }
.profile-summary { font-size:14px; line-height:1.8; color:var(--text-secondary); max-width:640px; margin:0; }
.profile-portrait { margin:4px 0 0; }.profile-portrait img { display:block; width:100%; height:211px; object-fit:cover; object-position:50% 25%; filter:grayscale(1); }.profile-portrait figcaption { font-size:11px; color:var(--text-muted); margin-top:12px; line-height:1.8; }
.profile-actions { display:flex; align-items:center; gap:24px; margin-top:27px; font-size:12px; }.profile-actions a { text-decoration:none; }.portal-button { display:inline-flex; align-items:center; justify-content:space-between; gap:26px; border:1px solid var(--accent); background:var(--accent); color:var(--bg-card); padding:10px 16px; border-radius:2px; cursor:pointer; font-size:12px; text-decoration:none; }.portal-button:hover { background:var(--accent-hover); color:var(--bg-card); }
.profile-facts { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:19px 0; gap:18px; }.profile-facts div+div { border-left:1px solid var(--border); padding-left:24px; }.profile-facts span { display:block; font-size:10px; color:var(--text-muted); margin-bottom:5px; }.profile-facts strong { font-size:12px; font-weight:500; }
.document-section { padding-top:39px; scroll-margin-top:30px; }.section-heading { display:flex; align-items:baseline; gap:12px; border-bottom:1px solid var(--border); padding-bottom:16px; margin-bottom:0; }.section-number { font:11px 'Courier New',monospace; color:var(--text-muted); }.section-heading h2 { font-size:19px; font-weight:500; margin:0; letter-spacing:-.4px; }.section-note { margin-left:auto; font-size:10px; color:var(--text-muted); }
.project-register { display:grid; grid-template-columns:repeat(3,1fr); }.project-record { padding:22px 20px 22px 0; }.project-record+.project-record { border-left:1px solid var(--border); padding-left:20px; }.project-name { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }.record-index { font:10px 'Courier New',monospace; color:var(--text-muted); }.project-name h3 { font-size:15px; font-weight:500; margin:0; }.project-name h3 a { color:var(--text-primary); text-decoration:none; }.project-status { display:table; flex-basis:100%; margin:3px 0 6px; color:var(--accent); font-size:10px; }.project-record p { font-size:12px; line-height:1.85; color:var(--text-secondary); margin:9px 0 15px; }.project-tags { font:10px/1.7 'Courier New',monospace; color:var(--text-muted); }
.career-row { display:grid; grid-template-columns:150px 1fr; gap:22px; padding:23px 0; border-bottom:1px solid var(--border); }.career-period { font-size:11px; color:var(--text-muted); padding-top:3px; }.career-row h3 { font-size:16px; font-weight:500; margin:0 0 2px; }.career-role { font-size:12px; color:var(--accent); margin:0 0 10px; }.career-row p:not(.career-role) { color:var(--text-secondary); font-size:13px; margin:0; line-height:1.8; }
.competency-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding-top:22px; }.competency-grid h3 { font-size:13px; font-weight:500; margin:0 0 10px; }.competency-grid p { font-size:12px; color:var(--text-secondary); line-height:1.9; margin:0; }
.advisory-row { display:grid; grid-template-columns:180px 1fr 100px; gap:16px; border-bottom:1px solid var(--border); padding:18px 0; align-items:baseline; }.advisory-row h3 { font-size:13px; font-weight:500; margin:0; }.advisory-row p,.advisory-row span { font-size:12px; color:var(--text-secondary); margin:0; }.advisory-row span { text-align:right; font-size:10px; }
.education-register { font-size:13px; color:var(--text-secondary); padding:15px 0; }.education-register p { margin:10px 0; }.language-register { border-top:1px solid var(--border); padding-top:15px; }
.portal-directory { padding:28px; background:var(--bg-main); margin-top:25px; border:1px solid var(--border); }.portal-directory h2 { font:25px Georgia,serif; margin:0 0 20px; }.portal-directory>div { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }.portal-directory a { display:flex; justify-content:space-between; gap:10px; border-top:1px solid var(--border); padding-top:12px; font-size:12px; text-decoration:none; }
.document-footer { display:flex; gap:24px; padding:29px 0; margin-top:20px; font-size:10px; color:var(--text-muted); }.document-footer span { margin-right:auto; }.document-footer a { text-decoration:none; }
.card { border-radius:3px; box-shadow:none; }.card:hover { box-shadow:none; }.mobile-brand { color:var(--text-primary); font-weight:600; letter-spacing:2px; font-size:13px; text-decoration:none; }.mobile-brand span { color:var(--text-muted); font-size:10px; font-weight:400; }
.skip-link { position:fixed; top:-100px; left:20px; background:var(--bg-card); z-index:500; padding:12px; }.skip-link:focus { top:10px; }
.preview-toolbar { position:relative; display:flex; width:100%; justify-content:center; align-items:center; gap:22px; padding:12px; background:#213b30; color:#fff; font-size:12px; box-sizing:border-box; }.preview-toolbar a { color:#d5e5db; text-decoration:none; }.preview-toolbar a[aria-current] { color:#fff; text-decoration:underline; text-underline-offset:5px; }.profile-page:has(.preview-toolbar) { flex-wrap:wrap; }
.variant-editorial { --bg-main:#f0eee9; --bg-card:#fcfbf7; --accent:#7a4937; --accent-hover:#603323; --border:#dfd9cf; --accent-light:#efe6dd; }.variant-editorial .profile-hero { grid-template-columns:1fr 205px; padding-top:62px; }.variant-editorial .profile-hero h1 { font-size:58px; }.variant-editorial .profile-role { font:23px/1.4 Georgia,serif; }.variant-editorial .profile-portrait img { height:265px; }.variant-editorial .document-header { border-bottom:3px double var(--border); }.variant-editorial .project-register { display:block; }.variant-editorial .project-record { display:grid; grid-template-columns:220px 1fr; gap:8px 20px; padding:20px 0; border:0; border-bottom:1px solid var(--border); }.variant-editorial .project-tags { grid-column:2; }.variant-editorial .project-record p { margin:0; }.variant-editorial .section-heading h2 { font-family:Georgia,serif; font-size:24px; }
.variant-workspace { --bg-main:#eef1f5; --bg-card:#fff; --accent:#2d527a; --accent-hover:#1f3f61; --accent-light:#e8eef6; --border:#dbe2eb; --text-primary:#243449; }.variant-workspace .sidebar { --text-primary:#edf2f7; --text-secondary:#bac9dc; --text-muted:#a8bbd2; --accent:#c4d7ed; --accent-light:#273f5d; --bg-hover:#273f5d; --bg-main:#192c43; --bg-card:#213751; --border:#364a62; background:var(--bg-main); }.variant-workspace .profile-hero h1 { font-family:Arial,sans-serif; font-size:44px; font-weight:600; }.variant-workspace .profile-facts { background:var(--bg-main); border:1px solid var(--border); padding:20px; }.variant-workspace .project-register { gap:14px; padding-top:20px; }.variant-workspace .project-record { padding:20px; background:var(--bg-main); border:1px solid var(--border); }.variant-workspace .section-heading { border:0; padding-bottom:0; }.variant-workspace .career-row { grid-template-columns:130px 1fr; }
.ops-page { max-width:1000px; padding:16px 0; }.ops-page h1 { font:34px Georgia,serif; margin:8px 0 16px; }.ops-page h2 { font-size:18px; font-weight:500; margin:0 0 18px; }.ops-intro { font-size:13px; color:var(--text-secondary); margin-bottom:24px; }.ops-fields { display:grid; grid-template-columns:2fr 1fr; gap:16px; }.ops-page label { font-size:13px; }.ops-page input:not([type=checkbox]),.ops-page textarea { display:block; width:100%; padding:10px; background:var(--bg-card); color:var(--text-primary); border:1px solid var(--border); border-radius:2px; margin:7px 0 15px; box-sizing:border-box; }.ops-page fieldset { border:1px solid var(--border); padding:16px; margin:5px 0 20px; }.ops-page legend { font-size:12px; padding:0 7px; }.scope-option { display:inline-flex; gap:7px; align-items:center; margin:7px 20px 7px 0; }.ops-row { padding:18px 0; border-top:1px solid var(--border); font-size:12px; overflow-wrap:anywhere; }.ops-row strong { margin-right:15px; }.ops-row p { margin:8px 0; }.ops-page button:not(.portal-button) { border:1px solid var(--border); background:var(--bg-card); color:var(--accent); padding:7px 12px; cursor:pointer; border-radius:2px; }.ops-page button:disabled { opacity:.5; cursor:wait; }.ops-page pre { white-space:pre-wrap; overflow-wrap:anywhere; margin-top:12px; max-height:320px; overflow:auto; }.ops-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }#opsMessage { margin-bottom:18px; font-size:13px; }#issuedKey { border-top:1px solid var(--border); margin-top:22px; padding-top:20px; }[hidden] { display:none!important; }
@media(min-width:769px) { .sidebar { position:sticky; top:0; height:100vh; overflow-y:auto; min-height:0; }.main-content { flex:1; } }
@media(max-width:1100px) { .profile-page .main-content { padding:0 30px; }.profile-hero { gap:25px; grid-template-columns:1fr 145px; }.profile-portrait img { height:190px; }.section-note { display:none; }.project-register { grid-template-columns:1fr; }.project-record,.project-record+.project-record { border-left:0; border-bottom:1px solid var(--border); padding:20px 0; }.advisory-row { grid-template-columns:140px 1fr; }.advisory-row span { grid-column:2; text-align:left; }.variant-workspace .project-register { grid-template-columns:1fr; }.variant-editorial .profile-hero { grid-template-columns:1fr 145px; }.variant-editorial .profile-hero h1 { font-size:44px; } }
@media(max-width:768px) { body { display:block; }.page-wrapper { padding:0; }.profile-page .main-content { margin:56px 0 0; padding:0 24px; width:100%; }.sidebar { position:fixed; top:0; left:-290px; width:270px; height:100dvh; min-height:0; overflow-y:auto; padding-top:45px; }.sidebar.open { left:0; }.mobile-top-bar { background:var(--bg-card); border-bottom:1px solid var(--border); padding:0 24px; }.hamburger { font-size:23px; }.sidebar-close-btn button { font-size:20px; }.document-header { padding:20px 0; font-size:8px; letter-spacing:1px; }.document-header span:last-child { display:none; }.profile-hero,.variant-editorial .profile-hero { grid-template-columns:1fr; padding:32px 0 27px; gap:25px; }.profile-hero h1,.variant-workspace .profile-hero h1 { font-size:39px; }.variant-editorial .profile-hero h1 { font-size:44px; }.profile-role { font-size:15px; }.profile-summary { font-size:13px; }.profile-portrait { display:flex; align-items:center; gap:18px; }.profile-portrait img,.variant-editorial .profile-portrait img { width:68px; height:82px; }.profile-portrait figcaption { margin:0; }.profile-actions { gap:20px; font-size:11px; }.profile-facts { gap:10px; }.profile-facts strong { font-size:11px; }.profile-facts div+div { padding-left:10px; }.profile-facts span { font-size:9px; }.document-section { padding-top:31px; scroll-margin-top:75px; }.section-heading h2 { font-size:18px; }.project-register,.competency-grid { grid-template-columns:1fr; }.project-record,.project-record+.project-record { padding:20px 0; }.career-row,.variant-workspace .career-row { grid-template-columns:1fr; gap:7px; }.competency-grid { gap:22px; }.advisory-row { grid-template-columns:1fr; gap:5px; }.advisory-row span { grid-column:1; }.portal-directory { padding:22px; }.portal-directory>div { grid-template-columns:1fr; gap:15px; }.document-footer { gap:16px; flex-wrap:wrap; }.preview-toolbar { margin-top:56px; padding:14px; gap:12px; flex-wrap:wrap; font-size:11px; }.profile-page:has(.preview-toolbar) .main-content { margin-top:0; }.variant-editorial .project-record { grid-template-columns:1fr; gap:9px; }.variant-editorial .project-tags { grid-column:1; }.variant-workspace .profile-facts { padding:14px 10px; }.variant-workspace .project-record { padding:20px; }.ops-page h1 { font-size:28px; }.ops-fields { grid-template-columns:1fr; }.ops-page .card { padding:18px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
@media(max-width:768px) {
  .profile-page .sidebar { transform:none; border-right:1px solid var(--border); z-index:1100; }
  .profile-page .sidebar.open { left:0; }
  .mobile-top-bar { display:flex; justify-content:space-between; }
  .sidebar-close-btn { display:block; }
  .sidebar.mobile-open { left:0; }
  .mobile-overlay.show { z-index:1050; }
  .profile-page .page-wrapper { display:block; }
}

@media(min-width:769px) {
  .profile-page .page-wrapper { flex-direction:row; align-items:stretch; padding:0; }
  .profile-page .sidebar { width:var(--sidebar-width); max-width:var(--sidebar-width); position:sticky; border-right:1px solid var(--border); padding:34px 22px; }
}
@media(max-width:768px) {
  .sidebar { z-index:1100; }
  .profile-page .sidebar { width:270px; }
}
.profile-page #about p { opacity:1; transform:none; }
.profile-page .section-heading h2::after, .profile-page .portal-directory h2::after { display:none; }
.profile-page .section-heading h2 { padding:0; color:var(--text-primary); }
.nav-menu a.active { color:var(--accent)!important; }
.lang-btn.active { color:var(--bg-card); }
.document-footer { flex-wrap:wrap; }
.not-found { margin:15vh auto; padding:24px; max-width:700px; }

/* Navigation follows the page; groups keep every section within easy reach. */
body { color-scheme:light; }
body.dark-mode { color-scheme:dark; }
.sidebar,.profile-page .sidebar { position:relative; top:auto; height:auto; min-height:0; overflow:visible; align-self:flex-start; padding:24px 20px; }
.sidebar .portal-brand { margin-bottom:20px; }
.nav-group { border-bottom:1px solid var(--border); }
.nav-group summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 8px; cursor:pointer; list-style:none; font-size:12px; font-weight:600; color:var(--text-primary); }
.nav-group summary::-webkit-details-marker { display:none; }
.nav-group summary::after { content:'+'; font-size:16px; font-weight:400; color:var(--text-muted); }
.nav-group[open]>summary::after { content:'−'; }
.sidebar .nav-menu { margin:0 0 10px; }
.sidebar .nav-menu a { padding:7px 8px; transform:none; }
.portal-primary button { display:block; width:100%; padding:7px 8px; border:0; border-radius:2px; background:transparent; color:var(--text-secondary); font:inherit; font-size:13px; text-align:left; cursor:pointer; }
.portal-primary button:hover { background:var(--bg-hover); }
.consultation-action { background:none; border:0; border-bottom:1px solid var(--border); padding:8px 0; color:var(--accent); cursor:pointer; font-size:inherit; }
.sidebar .pet-projects a::before { content:none; }
.sidebar-preferences { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:18px 0; }
.sidebar-preferences .lang-switcher { padding:0; margin:0; gap:2px; }
.sidebar-preferences .lang-btn { padding:5px 7px; }
.sidebar-preferences .theme-switcher-container { flex:1; gap:8px; margin:0; padding:0; font-size:10px; white-space:nowrap; }
.theme-switcher { flex-shrink:0; }
.theme-switcher input:focus-visible + .slider { outline:2px solid var(--accent); outline-offset:4px; }
.contact-group .contact-info { margin:0; padding:0 8px 12px; border:0; }
.sidebar-user-section { margin-top:14px; }
input[type=number] { -moz-appearance:textfield; appearance:textfield; }
input[type=checkbox],input[type=radio] { accent-color:var(--accent); }
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
@media(max-width:768px) {
  .sidebar,.profile-page .sidebar { display:none; transform:none; left:auto; bottom:auto; width:100%; max-width:none; min-width:0; border:0; }
  .sidebar.open,.profile-page .sidebar.open { display:flex; position:relative; left:0; padding:28px 24px; min-height:100dvh; }
  .sidebar-expanded .main-content,.sidebar-expanded .mobile-top-bar,.sidebar-expanded .preview-toolbar { display:none; }
  .sidebar-expanded .page-wrapper { display:block; }
  .sidebar-expanded .sidebar-close-btn { position:absolute; top:18px; right:18px; }
  .sidebar-expanded .nav-menu a,.sidebar-expanded .portal-primary button { min-height:44px; display:flex; align-items:center; }
  .sidebar-expanded .nav-group summary { min-height:48px; }
  .sidebar-expanded .sidebar-preferences { justify-content:space-between; }
  .sidebar-expanded .theme-switcher-container { flex:0 0 auto; font-size:12px; }
}
