/* Editorial refinement: one public palette, comfortable reading and purposeful motion. */
.radar-app .calendar-toolbar { padding:1rem 1.2rem; border-radius:1rem; margin-bottom:1rem; box-shadow:none; }
.radar-app .calendar-month-controls { gap:.6rem; flex-wrap:wrap; }.radar-app .calendar-month-controls strong { font-size:1.2rem; font-weight:750; letter-spacing:-.025em; min-width:12rem; text-transform:capitalize; }
.radar-app .calendar-month-controls a { display:inline-flex; align-items:center; justify-content:center; min-width:2.75rem; min-height:2.75rem; border:1px solid var(--radar-border); border-radius:.65rem; background:var(--radar-surface-soft); color:var(--radar-primary); text-decoration:none; font-weight:650; font-size:.8rem; padding:.4rem .7rem; }.radar-app .calendar-month-controls a:hover { border-color:var(--radar-primary); background:var(--radar-primary-soft); }
.calendar-month-total { color:var(--radar-muted); font-size:.82rem; }.radar-app .calendar-main { border-radius:1rem; padding:1.15rem; }.radar-app .calendar-grid { border-radius:.8rem; overflow:hidden; }
.radar-app .calendar-weekday { padding:.8rem .5rem; text-align:center; background:var(--radar-primary-soft); color:var(--radar-primary); font-size:.72rem; }
.radar-app .calendar-day { min-height:6.4rem; padding:.65rem; }.radar-app .calendar-day-number { width:2rem; height:2rem; font-size:.88rem; }.radar-app .calendar-day-today { background:var(--radar-primary-soft); box-shadow:inset 0 0 0 2px var(--radar-primary); }.radar-app .calendar-day-today .calendar-day-number { background:#087361; color:#fff; }
.radar-app .calendar-weekend,.radar-app .calendar-day-muted { background:var(--radar-surface-soft); }.radar-app .calendar-event { padding:.45rem; border-left:3px solid var(--radar-primary); border-radius:.4rem; background:var(--radar-primary-soft); color:var(--radar-primary); font-size:.7rem; line-height:1.4; text-decoration:none; }.radar-app .calendar-event span { white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.radar-app .calendar-upcoming { border-top:3px solid var(--radar-primary); border-radius:1rem; padding:1.3rem; }.radar-app .calendar-upcoming>a { grid-template-columns:3.2rem minmax(0,1fr) auto; padding:1rem 0; }.radar-app .calendar-upcoming time { display:grid; place-items:center; background:var(--radar-primary-soft); border-radius:.65rem; min-height:3.2rem; font-size:.85rem; }.radar-app .calendar-upcoming strong { font-size:.88rem; line-height:1.5; }.radar-app .calendar-upcoming small { font-size:.73rem; }.radar-app .calendar-legend { font-size:.72rem; padding-top:1rem; }
@media(max-width:767px) { .radar-app .calendar-layout { grid-template-columns:1fr; }.radar-app .calendar-main { padding:.55rem; }.radar-app .calendar-day { min-height:4.1rem; padding:.2rem; }.radar-app .calendar-day-number { font-size:.75rem; width:1.6rem; height:1.6rem; }.radar-app .calendar-weekday { padding:.6rem .15rem; font-size:.62rem; }.radar-app .calendar-event { width:1.25rem; height:.55rem; min-height:0; padding:0; margin:.25rem auto; background:var(--radar-primary); border:0; }.radar-app .calendar-event :is(span,i) { display:none; }.radar-app .calendar-month-controls { gap:.35rem; justify-content:center; }.radar-app .calendar-month-controls strong { font-size:1rem; min-width:9rem; }.radar-app .calendar-toolbar { padding:.8rem; }.radar-app .calendar-month-total { text-align:center; } }
.radar-app:not(.admin-app) { --radar-bg:#eef3f2; --radar-border:#d2e1dd; --radar-border-strong:#a8c7be; --radar-muted:#48616a; --radar-subtle:#536d74; --radar-shadow:0 8px 26px #123e3410; }
[data-bs-theme="dark"] .radar-app:not(.admin-app) { --radar-bg:#0c1b23; --radar-surface:#152b35; --radar-surface-soft:#1b3540; --radar-border:#304e58; --radar-border-strong:#4b747e; --radar-text:#eff8f5; --radar-muted:#bed2d3; --radar-subtle:#a8c3c6; --radar-primary:#82dfc3; --radar-primary-hover:#aeefd9; --radar-primary-soft:#1d443e; }
.radar-app .compact-intro { min-height:20rem; padding:clamp(1.6rem,3vw,3rem); border-radius:1.5rem; align-items:center; }
.radar-app .compact-intro::before { background:linear-gradient(90deg,#0c2d3b 0%,#0c2d3bf0 38%,#0c2d3b40 78%),url('../img/posts/portal-hero.png') right center/cover no-repeat; }
.radar-app .compact-intro h1 { font-size:clamp(2rem,3.7vw,3.35rem); line-height:1.12; letter-spacing:-.05em; max-width:46rem; }
.radar-app .compact-intro p:not(.eyebrow) { font-size:1rem; max-width:37rem; line-height:1.7; }
.radar-app .compact-intro .eyebrow { font-size:.68rem; }.radar-app .portal-updated { font-size:.75rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin:1.25rem 0; }
.hero-action { display:inline-flex; gap:.65rem; align-items:center; min-height:2.8rem; padding:.7rem 1rem; border:1px solid #8cdcc5; border-radius:.7rem; background:#98e6cc; color:#103440; font-size:.85rem; font-weight:700; text-decoration:none; }
.hero-action:hover { background:#b8f0dd; color:#103440; }.hero-action-secondary { background:#ffffff0a; border-color:#ffffff66; color:#f2fcf8; }.hero-action-secondary:hover { color:white; background:#ffffff20; }
.hero-action-info { border-color:#ffffff80; background:#ffffff18; color:#f2fcf8; cursor:pointer; }.hero-action-info:hover { background:#ffffff2c; color:#fff; }
.radar-app .portal-source-strip { gap:.6rem 1.4rem; padding:1.3rem .3rem; }.radar-app .portal-source-strip strong { font-size:.79rem; }
.radar-app .quick-stat { border-radius:1rem; border-top:3px solid #138e7e; box-shadow:0 4px 18px #183b3008; }.radar-app .quick-stat-urgent { border-top-color:#c85b6b; }.radar-app .quick-stat-deadline { border-top-color:#bb8840; }.radar-app .quick-stat-info { border-top-color:#418cb0; }
.radar-app .feed-heading h2 { font-size:1.55rem; letter-spacing:-.035em; }.radar-app .feed-note { font-size:.75rem; }
.radar-app .editorial-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; align-items:stretch; }
.radar-app .news-card-featured { grid-template-rows:clamp(12rem,20vw,18rem) 1fr; }
.radar-app .news-card-featured.has-media .news-card-media { height:100%; }
.radar-app .news-card-featured .news-card-content { display:flex; flex-direction:column; align-items:flex-start; padding:1.5rem; }
.radar-app .news-card-featured h3 { font-size:clamp(1.35rem,2.1vw,1.85rem); }
.radar-app .news-card-featured .news-action { margin-top:auto; padding-top:1rem; }
.radar-app .news-card-secondary { grid-template-columns:minmax(6rem,30%) minmax(0,1fr); min-height:0; }
.radar-app .news-card-secondary .news-card-content { padding:1.15rem; }.radar-app .news-card-secondary h3 { font-size:1.12rem; line-height:1.35; }
.radar-app .news-card-secondary .news-summary { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; margin-bottom:.5rem; }
.radar-app :is(.news-card,.topic-card) { transition:box-shadow .2s,border-color .2s,transform .2s; }
.radar-app :is(.news-card-media,.topic-card-media) { overflow:hidden; }
.radar-app :is(.news-card-media,.topic-card-media) img { transition:transform .65s cubic-bezier(.2,.65,.3,1); }
.radar-app .topic-card { border-radius:1rem; box-shadow:0 5px 20px #153b3008; }
.radar-app .topic-card-body { padding:1.2rem; }.radar-app .topic-card-body h3 { font-size:.97rem; line-height:1.45; font-weight:680; }
.radar-app .topic-card-body p { font-size:.82rem; line-height:1.65; }.radar-app .topic-card-label { font-size:.64rem; }
.radar-app .news-action { font-size:.82rem; gap:.65rem; }.radar-app .news-action i { transition:transform .2s; }
.radar-app .news-action:hover i { transform:translateX(3px); }
.radar-app :is(.recent-panel,.deadlines-panel) { border-top:3px solid var(--radar-primary); border-radius:1rem; }
.radar-app .recent-mini-list { border:0; padding:.25rem 0; background:transparent; }
.radar-app .recent-mini-list>a { padding:1rem 0; }.radar-app .recent-mini-list strong { font-size:.88rem; font-weight:650; }
.radar-app .demo-band { margin-top:2rem; border-radius:1.25rem; overflow:hidden; }.radar-app .demo-band-inner { padding:2.5rem; }.radar-app .demo-band-link { border-radius:999px; }
.radar-app .interest-floating { right:1.25rem; top:50%; bottom:auto; transform:translateY(calc(-50% + .5rem)); min-height:3.2rem; padding:.8rem 1.15rem; border:1px solid #b4ecd9; background:#94e1c6; color:#113943; box-shadow:0 7px 28px #103e3630; z-index:1025; }
.radar-app .interest-floating.is-visible { transform:translateY(-50%); }
[data-bs-theme="dark"] .radar-app .interest-floating { background:#65bba2; border-color:#91d4bf; color:#0c2b35; }
.radar-app .interest-modal .modal-content { border:1px solid var(--radar-border); border-radius:1.25rem; background:var(--radar-surface); color:var(--radar-text); overflow:hidden; }
.radar-app .interest-modal .modal-header { padding:1.5rem; border-top:4px solid var(--radar-primary); border-bottom:1px solid var(--radar-border); }.radar-app .interest-modal .modal-body { padding:1.5rem; }.radar-app .interest-modal .modal-footer { padding:1rem 1.5rem; background:var(--radar-surface-soft); border-color:var(--radar-border); }
.radar-app .interest-field { margin-top:1rem; }.radar-app .interest-field label { font-size:.82rem; font-weight:650; color:var(--radar-text); }.radar-app .interest-field input { min-height:2.9rem; border-radius:.7rem; font-size:.95rem; border:1px solid var(--radar-border-strong); color:var(--radar-text); background:var(--radar-surface); }
.interest-field input.is-invalid { border-color:var(--radar-danger)!important; }.interest-field-error { display:block; margin-top:.35rem; color:var(--radar-danger); font-size:.78rem; }.interest-privacy-note { margin:1.2rem 0 0; font-size:.74rem; line-height:1.6; color:var(--radar-muted); }.interest-privacy-note a { text-decoration:underline; }
.radar-app .interest-modal .btn-primary { background:#086d60; border-color:#086d60; color:#fff; }.radar-app .interest-modal .btn-light { background:var(--radar-surface); border:1px solid var(--radar-border-strong); color:var(--radar-text); }.radar-app .interest-modal .btn { border-radius:.65rem; padding:.65rem 1rem; font-size:.83rem; }
.radar-app :is(.auth-card,.page-intro) { box-shadow:0 7px 25px #153b3009; }.radar-app .auth-card { border-top:4px solid var(--radar-primary); border-radius:1.25rem; }.radar-app .auth-input { border-radius:.7rem; }.radar-app .auth-submit { background:#086d60; border-color:#086d60; color:white; border-radius:.7rem; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) { .radar-app :is(.news-card,.topic-card):hover { transform:translateY(-3px); box-shadow:0 12px 30px #103e3418; border-color:var(--radar-border-strong); }.radar-app :is(.news-card,.topic-card):hover img { transform:scale(1.045); } }
@media(min-width:1500px) { .radar-app .interest-floating { right:max(1rem,calc((100vw - 87rem)/2 - 10rem)); } }
@media(max-width:991px) { .radar-app .editorial-grid { grid-template-columns:1fr; }.radar-app .editorial-column { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto; }.radar-app .news-card-secondary { grid-template-columns:1fr; }.radar-app .news-card-secondary .news-card-media { height:9rem; }.radar-app .news-card-featured { grid-template-rows:15rem auto; }.radar-app .interest-floating { right:.8rem; padding:.65rem .8rem; } }
@media(max-width:575px) { .radar-app .compact-intro { min-height:0; padding:1.65rem 1.35rem; border-radius:1rem; }.radar-app .compact-intro::before { background:linear-gradient(90deg,#0c2d3bf5,#0c2d3bdc),url('../img/posts/portal-hero.png') center/cover; }.radar-app .compact-intro h1 { font-size:2rem; }.radar-app .compact-intro p:not(.eyebrow) { font-size:.9rem; }.hero-actions { gap:.6rem; }.hero-action { font-size:.78rem; padding:.65rem .8rem; }.radar-app .editorial-column { grid-template-columns:1fr; }.radar-app .news-card-secondary { grid-template-columns:6rem minmax(0,1fr); }.radar-app .news-card-secondary .news-card-media { height:100%; }.radar-app .news-card-featured .news-card-content { padding:1.2rem; }.radar-app .demo-band-inner { padding:1.5rem; }.radar-app .interest-floating { top:56%; width:3.1rem; height:3.1rem; min-height:3.1rem; padding:0; }.radar-app .interest-floating span { display:none; } }
@media(prefers-reduced-motion:reduce) { .radar-app :is(.news-card,.topic-card,.news-card-media img,.topic-card-media img,.interest-floating,.news-action i) { transition:none!important; animation:none!important; }.radar-app :is(.news-card,.topic-card):hover img { transform:none; } }
.portal-collection-status { margin: .65rem auto 0; padding: 0 .9rem; max-width: 72rem; }
.portal-collection-status-inner { display: flex; align-items: center; gap: .7rem; min-height: 2.25rem; padding: .35rem .75rem; border: 1px solid var(--radar-border); border-radius: .7rem; background: color-mix(in srgb, var(--radar-surface) 92%, var(--radar-primary) 8%); color: var(--radar-muted); font-size: .76rem; }
.portal-collection-status-label { display: inline-flex; align-items: center; gap: .35rem; font-weight: 700; color: var(--radar-text); }
.portal-collection-status-label i { color: var(--radar-primary); }
.portal-collection-countdown { min-width: 3.4rem; color: var(--radar-primary); font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.portal-collection-status-message { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portal-collection-status-updated { margin-left: auto; color: var(--radar-primary); font-weight: 700; white-space: nowrap; }
@media (max-width: 575.98px) { .portal-collection-status { padding: 0 .65rem; } .portal-collection-status-inner { gap: .45rem; font-size: .68rem; } .portal-collection-status-label { font-size: .66rem; } .portal-collection-countdown { min-width: 3rem; } .portal-collection-status-updated { display: none; } }
.radar-app .portal-source-strip .source-strip-refresh { display:inline-flex; align-items:center; gap:.38rem; margin:.1rem 0 .1rem auto; padding:0; max-width:none; color:var(--radar-muted); font-size:.68rem; white-space:nowrap; }
.radar-app .source-strip-refresh > i { color:var(--radar-primary); }
.radar-app .source-strip-refresh .portal-collection-countdown { min-width:3.1rem; color:var(--radar-primary); font-size:.76rem; }
.radar-app .source-strip-refresh .portal-collection-status-message { max-width:10rem; }
.radar-app .source-strip-refresh .portal-collection-status-updated { margin-left:.3rem; }
.radar-about-modal .modal-content { overflow:hidden; border:1px solid var(--radar-border); border-radius:1.25rem; background:var(--radar-surface); color:var(--radar-text); box-shadow:0 1.5rem 4rem #092b2630; }
.radar-about-modal .modal-header { padding:1.6rem 1.7rem 1.25rem; border-top:4px solid var(--radar-primary); border-bottom:1px solid var(--radar-border); }
.radar-about-modal .modal-title { max-width:34rem; margin:0; font-size:clamp(1.35rem,2.5vw,2rem); letter-spacing:-.035em; }
.radar-about-modal .modal-body { padding:1.5rem 1.7rem; }
.radar-about-lead { margin:0 0 1.35rem; color:var(--radar-text); font-size:1.08rem; line-height:1.65; }
.radar-about-introduction { margin:-.55rem 0 1.35rem; color:var(--radar-muted); font-size:.9rem; line-height:1.7; }
.radar-about-introduction p { margin:0 0 .85rem; }
.radar-about-introduction p:last-child { margin-bottom:0; }
.radar-about-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.radar-about-grid article { display:flex; gap:.8rem; min-height:7rem; padding:1rem; border:1px solid var(--radar-border); border-radius:.85rem; background:var(--radar-surface-soft); }
.radar-about-grid article > i { flex:0 0 2rem; display:grid; place-items:center; width:2rem; height:2rem; border-radius:.6rem; background:var(--radar-primary-soft); color:var(--radar-primary); font-size:1rem; }
.radar-about-badge { display:inline-block; margin:0 0 .45rem; color:var(--radar-primary); font-size:.59rem; font-weight:800; letter-spacing:.1em; line-height:1.3; }
.radar-about-grid h3,.radar-about-trust h3 { margin:0 0 .42rem; color:var(--radar-text); font-size:.92rem; }
.radar-about-grid p { margin:0 0 .58rem; color:var(--radar-muted); font-size:.78rem; line-height:1.6; }.radar-about-grid p:last-child { margin-bottom:0; }
.radar-about-trust { margin:1.3rem 0 0; padding:1.05rem 1.1rem; border:1px solid var(--radar-border); border-radius:.85rem; background:var(--radar-surface-soft); color:var(--radar-muted); }.radar-about-trust p { margin:0 0 .58rem; font-size:.8rem; line-height:1.65; }.radar-about-trust p:last-child { margin-bottom:0; }
.radar-about-modal .modal-footer { padding:1rem 1.7rem; border-color:var(--radar-border); background:var(--radar-surface-soft); }.radar-about-modal .modal-footer .btn { border-radius:.65rem; padding:.65rem 1rem; font-size:.82rem; }.radar-about-modal .modal-footer .btn-primary { border-color:#086d60; background:#086d60; color:#fff; }.radar-about-modal .modal-footer .btn-light { border:1px solid var(--radar-border-strong); background:var(--radar-surface); color:var(--radar-text); }
@media(max-width:767px) { .radar-app .portal-source-strip .source-strip-refresh { width:100%; margin:.25rem 0 0; justify-content:flex-start; }.radar-about-grid { grid-template-columns:1fr; }.radar-about-modal .modal-header,.radar-about-modal .modal-body { padding-inline:1.15rem; }.radar-about-modal .modal-footer { padding-inline:1.15rem; } }
