/* Neulbom's shared navy / mist-blue theme. Screen rules keep document print sizes intact. */
:root {
  --color-primary: #2b4d7a;
  --color-primary-hover: #203a5e;
  --color-accent: #416fa6;
  --color-soft: #eaf0f8;
  --color-line: #d4deeb;
  --color-ink: #203a5e;
  --color-muted: #52657d;
  --color-page: #f7f9fc;
  color: var(--color-ink);
  background: var(--color-page);
}
@media screen {
  body:not([data-screen="account"]) { background: var(--color-page); color: var(--color-ink); }
  a { color:var(--color-primary); text-underline-offset:4px; }
  body:not([data-screen="account"]) main { max-width:1440px; padding:0 40px 20px; justify-content:flex-start; }
  .entry-header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:28px 0; margin-bottom:32px; border-bottom:1px solid var(--color-line); }
  .entry-brand { display:flex; align-items:center; gap:18px; }
  .entry-brand strong,.entry-brand div>span { display:block; font-size:25px; line-height:1.4; letter-spacing:-.7px; }
  .entry-brand strong { font-weight:800; }
  .entry-header>a { color:var(--color-ink); font-size:17px; text-underline-offset:5px; }
  .university-mark { display:block; flex:0 0 64px; width:64px; height:64px; overflow:hidden; }
  .university-mark img { display:block; width:auto; height:64px; max-width:none; }
  body[data-screen="account"] .entry-header { display:none; }
  .auth-shell { display:grid; grid-template-columns:minmax(0,1.32fr) minmax(0,1fr); gap:28px; min-height:0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; align-items:start; }
  .auth-story { display:flex; flex-direction:column; padding:0; overflow:visible; background:transparent; color:var(--color-ink); }
  .auth-story::before { display:none; }
  .auth-brand { display:block; width:fit-content; padding:9px 18px; font-size:18px; letter-spacing:-.3px; border-radius:30px; background:#d5e3f4; position:absolute; top:40px; left:40px; z-index:2; max-width:calc(100% - 80px); }
  .auth-story .story-copy { position:relative; overflow:hidden; isolation:isolate; margin:0; min-height:440px; padding:108px 40px 32px; background:var(--color-soft); border-radius:22px; }
  .story-copy::after { content:""; position:absolute; z-index:-1; width:400px; height:400px; border-radius:50%; background:#dce7f5; right:-240px; bottom:-240px; pointer-events:none; }
  .story-kicker { display:none; }
  .auth-story .story-copy h1 { font-size:clamp(34px,3.5vw,50px); font-weight:800; line-height:1.4; letter-spacing:-1.8px; margin:20px 0 24px; word-break:keep-all; color:var(--color-ink); }
  .story-copy p { font-size:20px; line-height:1.85; color:#345578; }
  .story-bottom { display:block; position:static; margin-top:40px; font-size:15px; line-height:1.7; color:var(--color-muted); }
  .login-notices { flex:none; margin-top:24px; padding:26px 30px; background:#fff; border:1px solid var(--color-line); border-radius:18px; box-shadow:0 5px 24px #203a5e05; }
  .notice-heading h2 { font-size:24px; font-weight:700; }
  .notice-heading span { color:var(--color-muted); font-size:14px; }
  .notice-caption { font-size:15px; color:var(--color-muted); margin:10px 0 16px; }
  .login-notice-link { color:var(--color-ink); font-size:17px; border-color:var(--color-line); padding:16px 0; }
  .login-notice-link:last-child { border-color:var(--color-line); }
  .login-notice-link:hover { color:var(--color-primary); background:var(--color-page); }
  .login-notice-link time { color:var(--color-muted); font-size:14px; }
  .notice-empty { color:var(--color-muted); font-size:16px; border-color:var(--color-line); }
  .auth-content { padding:36px 38px; border:1px solid #e8edf5; border-radius:24px; background:white; box-shadow:0 12px 40px #203a5e08; }
  .auth-panel h2,.auth-panel .institution-login-title { font-size:34px; color:var(--color-ink); margin:0 0 12px; line-height:1.4; }
  .auth-description { font-size:18px; color:var(--color-muted); margin-bottom:28px; }
  .auth-panel label { font-size:18px; color:var(--color-ink); margin:24px 0 10px; }
  .auth-panel input { min-height:60px; font-size:18px; background:#fff; border-color:#bbcbdc; color:var(--color-ink); }
  .auth-panel input:focus { border-color:var(--color-primary); box-shadow:0 0 0 3px #416fa626; }
  .password-toggle { font-size:15px; min-height:44px; top:8px; color:var(--color-muted); }
  .auth-submit,.auth-submit:hover { background:var(--color-primary); border-color:var(--color-primary); color:#fff; min-height:60px; font-size:20px; }
  .auth-submit:hover { background:var(--color-primary-hover); }
  .auth-switch { background:#fff; color:var(--color-primary); border-color:var(--color-primary); min-height:56px; font-size:20px; font-weight:600; margin-top:16px; }
  .auth-help { font-size:15px; color:var(--color-muted); line-height:1.9; margin-top:26px; border-color:var(--color-line); word-break:keep-all; }
  .auth-help strong { color:var(--color-muted); }
  .auth-footer { font-size:13px; margin-top:26px; color:var(--color-muted); letter-spacing:1px; }
  .auth-footer span { font-size:14px; }
  .password-hint,.signup-consent { font-size:16px; color:var(--color-muted); }
  .auth-panel .consent-check { font-size:16px; }
  .signup-consent h3 { font-size:20px; }
  :is(input,select,textarea,button,a,summary):focus-visible { outline:3px solid #416fa6; outline-offset:3px; }
  :is(input[type="checkbox"],input[type="radio"]) { accent-color:var(--color-primary); }
  button:disabled { color:#65758a; background:#edf1f6; border-color:var(--color-line); }
  button:not(:disabled):hover { filter:brightness(.98); }
  body[data-screen="account"] { background:var(--color-page); font-size:17px; }
  .account-toolbar { flex-wrap:wrap; padding:18px 28px; gap:18px; }
  .account-brand strong { font-size:23px; color:var(--color-ink); }
  .account-brand small { font-size:15px; }
  .account-brand .university-mark { width:52px; height:52px; flex-basis:52px; }
  .account-brand .university-mark img { height:52px; }
  .account-identity { flex-wrap:wrap; gap:12px; }
  .account-identity #user-name { font-size:17px; }
  .account-identity button { font-size:15px; min-height:42px; }
  .mdi-shell { grid-template-columns:270px minmax(0,1fr); }
  .mdi-sidebar .system-nav .mdi-menu-item { font-size:16px; min-height:46px; padding:12px; }
  .mdi-menu-group summary { font-size:16px; }
  .mdi-tab-select { font-size:16px; min-height:46px; }
  .mdi-breadcrumb { font-size:14px; min-height:48px; }
  .mdi-status { font-size:13px; }
  .mdi-view>h2,.dashboard-heading h2 { font-size:30px; }
  #workspace .mdi-view h3 { font-size:21px; }
  #workspace .mdi-view :is(label,p,legend) { font-size:17px; }
  #workspace .mdi-view :is(input:not([type="checkbox"],[type="radio"]),select,textarea),.management-dialog :is(input:not([type="checkbox"],[type="radio"]),select,textarea) { font-size:17px; min-height:48px; }
  #workspace .mdi-view button,.management-dialog button { font-size:16px; min-height:44px; }
  #workspace .mdi-view :is(th,td) { font-size:16px; padding:14px 16px; }
  #workspace .mdi-view :is(th,td) p { font-size:16px; }
  #workspace .ui-primary,.management-dialog .ui-primary { background:var(--color-primary); border-color:var(--color-primary); color:white; }
  #workspace .ui-primary:hover,.management-dialog .ui-primary:hover { background:var(--color-primary-hover); border-color:var(--color-primary-hover); }
  #workspace .dashboard-card>span { font-size:17px; }
  .dashboard-step strong { font-size:18px; }
  .management-dialog { font-size:17px; }
  .report-view { --report-accent:var(--color-primary); --report-soft:var(--color-soft); --report-line:var(--color-line); --report-muted:var(--color-muted); }
  .site-legal-footer { font-size:14px; color:var(--color-muted); padding-top:28px; }
  .site-legal-footer a { color:var(--color-muted); }
}
@media screen and (max-width:1100px) {
  .auth-shell { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; }
  .auth-content { padding:30px 26px; }
  .auth-brand { left:28px; top:30px; max-width:calc(100% - 56px); font-size:16px; }
  .auth-story .story-copy { padding:95px 28px 30px; }
  .story-copy p { font-size:18px; }
  .mdi-shell { grid-template-columns:245px minmax(0,1fr); }
}
@media screen and (max-width:760px) {
  body:not([data-screen="account"]) main { padding:0 18px 18px; }
  .entry-header { padding:20px 0; margin-bottom:22px; gap:12px; }
  .entry-brand { gap:12px; }
  .entry-brand strong,.entry-brand div>span { font-size:20px; }
  .university-mark { width:50px; height:50px; flex-basis:50px; }
  .university-mark img { height:50px; }
  .entry-header>a { font-size:14px; white-space:nowrap; }
  .auth-shell { display:flex; flex-direction:column; gap:24px; }
  .auth-content { order:0; width:100%; padding:28px 24px; border-radius:20px; }
  .auth-story { order:1; width:100%; }
  .auth-brand { top:26px; left:24px; font-size:15px; max-width:calc(100% - 48px); }
  .auth-story .story-copy { padding:82px 24px 28px; min-height:340px; }
  .auth-story .story-copy h1 { font-size:34px; line-height:1.4; margin:12px 0 18px; }
  .story-copy p { display:block; font-size:17px; }
  .story-bottom { display:block; font-size:14px; margin-top:30px; }
  .login-notices { margin-top:20px; padding:24px; }
  .login-notice-title { white-space:normal; overflow-wrap:anywhere; }
  .notice-heading h2 { font-size:22px; }
  .auth-panel .institution-login-title { font-size:30px; }
  .auth-description { font-size:17px; }
  .auth-panel label,.auth-panel input { font-size:17px; }
  .auth-footer { margin-top:24px; }
  .account-toolbar { padding:14px; }
  .account-brand { flex-basis:100%; }
  .account-brand strong { font-size:19px; }
  .account-brand small { display:block; font-size:13px; }
  .account-identity { flex-basis:100%; justify-content:flex-end; gap:8px; }
  .account-identity button { font-size:14px; padding:8px 10px; }
  .mdi-shell { grid-template-columns:minmax(0,1fr); }
  .mdi-sidebar { width:min(300px,88vw); }
  .mdi-panel { padding:24px 16px; }
  .mdi-view>h2,.dashboard-heading h2 { font-size:26px; }
  .mdi-status { font-size:12px; }
  #workspace .mdi-view :is(th,td) { padding:12px; }
  .site-legal-footer .legal-owner { margin-left:0; text-align:center; flex-basis:100%; }
}

/* Requested bold text across entry and workspace screens, including legacy component weights. */
@media screen {
  body :is(.entry-header,.auth-shell,#account-panel,.site-legal-footer),
  body :is(.entry-header,.auth-shell,#account-panel,.site-legal-footer) * {
    font-weight:700!important;
  }
  body :is(.entry-header,.auth-shell,#account-panel) :is(h1,h2,h3,h4,strong,b) {
    font-weight:800!important;
  }
  .auth-panel input::placeholder,
  #workspace :is(input,textarea)::placeholder {
    font-weight:700;
  }
}
