@import url("/assets/portal/css/workspace_sidebar.css");

/* Global Logo Overrides for PTN Global Portal */

/* Desk Left Sidebar Header Logo (in front of App Name) */
.sidebar-header .header-logo img,
.sidebar-header img,
.sidebar-header .app-logo,
.desk-sidebar .sidebar-header img,
.desk-sidebar .header-logo img,
.app-switcher-icon img {
  content: url("/assets/portal/images/logo-ptn-notext.png") !important;
  max-height: 32px !important;
  max-width: 100% !important;
  width: auto !important;
  object-fit: contain !important;
}

/* Desk Top Navbar Brand & Header Logo */
.navbar-brand .app-logo,
.navbar-brand img,
.desk-sidebar>.app-logo {
  content: url("/assets/portal/images/logo-ptn.png") !important;
  max-height: 32px !important;
  width: auto !important;
  object-fit: contain !important;
}

/* Hide SVG default logo icon if present in navbar brand or sidebar header */
.navbar .navbar-brand svg.es-icon,
.navbar .navbar-brand .navbar-home-icon,
.navbar .navbar-brand svg.frappe-icon,
.sidebar-header svg.frappe-icon {
  display: none !important;
}

/* Inject logo image before brand text or container if SVG was hidden */
.navbar .navbar-brand:has(svg.es-icon)::before,
.navbar .navbar-brand:has(.navbar-home-icon)::before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 28px;
  background-image: url("/assets/portal/images/logo-ptn.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  margin-right: 8px;
  vertical-align: middle;
}

/* Ensure sidebar toggle button does not have injected logo and its icon is visible */
.sidebar-toggle-btn::before,
.sidebar-toggle-btn.navbar-brand::before {
  content: none !important;
  display: none !important;
}

.sidebar-toggle-btn svg,
.sidebar-toggle-btn svg.es-icon {
  display: inline-block !important;
}

/* Login Page Logo */
.page-card-head img.app-logo,
.for-login .page-card-head img,
.login-content .app-logo,
.website-brand-image {
  content: url("/assets/portal/images/logo-ptn.png") !important;
  max-height: 48px !important;
  width: auto !important;
  object-fit: contain !important;
}

/* Splash Screen / Loading Logo */
.splash img,
#splash img,
.splash-logo {
  content: url("/assets/portal/images/logo-ptn.png") !important;
  max-height: 60px !important;
  width: auto !important;
  object-fit: contain !important;
}

/* Frappe UI / Custom Web App navbar logo */
.frappe-ui-navbar .app-logo,
.brand-logo img {
  content: url("/assets/portal/images/logo-ptn.png") !important;
  max-height: 32px !important;
  width: auto !important;
}

/* Keep the manually configured social-login icon compact. */
.social-login-buttons .btn-office_365 img {
  width: 18px !important;
  height: 18px !important;
  margin-right: 6px;
  vertical-align: -4px;
  object-fit: contain;
}
/* Blog Details Custom Two-Column Layout & Related Posts Sidebar */
.blog-detail-wrapper {
  width: 100%;
}

.blog-main-column .blog-title {
  font-size: 2.35rem;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: -0.025em;
  color: #0f172a;
}

.blog-main-column .blog-breadcrumbs .breadcrumb-link {
  color: #64748b;
  text-decoration: none;
  font-weight: 500;
  font-size: 0.925rem;
  transition: color 0.15s ease-in-out;
}

.blog-main-column .blog-breadcrumbs .breadcrumb-link:hover,
.blog-main-column .blog-breadcrumbs .breadcrumb-link.active-category {
  color: #0f172a;
}

.blog-main-column .blog-intro {
  font-size: 1.15rem;
  line-height: 1.6;
  color: #475569;
  font-weight: 400;
}

.blog-main-column .blog-body-content {
  font-size: 1.075rem;
  line-height: 1.8;
  color: #334155;
}

.blog-main-column .blog-body-content p {
  margin-bottom: 1.5rem;
}

.blog-featured-image-wrapper {
  width: 100%;
  max-height: 480px;
  border-radius: 12px;
  overflow: hidden;
  background-color: #f8fafc;
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.blog-featured-image {
  width: 100%;
  max-height: 480px;
  object-fit: cover;
  display: block;
}

.blog-sidebar-sticky {

  position: sticky;
  top: 88px;
  z-index: 10;
}

.related-posts-widget,
.categories-widget,
.latest-news-widget,
.most-viewed-widget {
  background: #ffffff;
  border-radius: 14px;
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.04), 0 1px 2px -1px rgba(0, 0, 0, 0.04);
  padding: 1.25rem;
  overflow: hidden;
}

.related-posts-widget .sidebar-widget-header,
.categories-widget .sidebar-widget-header,
.latest-news-widget .sidebar-widget-header,
.most-viewed-widget .sidebar-widget-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 0.75rem;
  margin-bottom: 0.875rem;
  border-bottom: 1px solid #f1f5f9;
}

.related-posts-widget .sidebar-widget-title,
.categories-widget .sidebar-widget-title,
.latest-news-widget .sidebar-widget-title,
.most-viewed-widget .sidebar-widget-title {
  font-size: 1rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: #0f172a;
  margin: 0;
}

.related-posts-widget .sidebar-view-all,
.categories-widget .sidebar-view-all,
.latest-news-widget .sidebar-view-all,
.most-viewed-widget .sidebar-view-all {
  font-size: 0.825rem;
  font-weight: 600;
  color: #3b82f6;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  transition: color 0.15s ease;
}

.related-posts-widget .sidebar-view-all:hover,
.categories-widget .sidebar-view-all:hover,
.latest-news-widget .sidebar-view-all:hover,
.most-viewed-widget .sidebar-view-all:hover {
  color: #1d4ed8;
}

.related-posts-widget .sidebar-view-all .view-all-arrow,
.categories-widget .sidebar-view-all .view-all-arrow,
.latest-news-widget .sidebar-view-all .view-all-arrow,
.most-viewed-widget .sidebar-view-all .view-all-arrow {
  transition: transform 0.15s ease;
}

.related-posts-widget .sidebar-view-all:hover .view-all-arrow,
.categories-widget .sidebar-view-all:hover .view-all-arrow,
.latest-news-widget .sidebar-view-all:hover .view-all-arrow,
.most-viewed-widget .sidebar-view-all:hover .view-all-arrow {
  transform: translateX(3px);
}

/* Most Viewed Ranked Cards */
.most-viewed-card .rank-index {
  font-size: 1.15rem;
  font-weight: 750;
  color: #94a3b8;
  min-width: 26px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  transition: color 0.15s ease;
}

.most-viewed-card:hover .rank-index {
  color: #0f172a;
}

/* Category Tags Matrix */
.category-tags-matrix {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.category-tag-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.85rem;
  border-radius: 8px;
  font-size: 0.8125rem;
  font-weight: 550;
  text-decoration: none !important;
  color: #475569;
  background-color: #f8fafc;
  border: 1px solid #e2e8f0;
  transition: all 0.16s cubic-bezier(0.16, 1, 0.3, 1);
  line-height: 1.35;
}

.category-tag-chip:hover {
  background-color: #f1f5f9;
  border-color: #cbd5e1;
  color: #0f172a;
  transform: translateY(-1px);
}

.category-tag-chip.active {
  background-color: #059669;
  color: #ffffff;
  border-color: #059669;
  box-shadow: 0 2px 8px rgba(5, 150, 105, 0.2);
}

.related-posts-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.related-post-card {
  display: block;
  padding: 8px;
  margin: 0 -4px;
  border-radius: 10px;
  text-decoration: none !important;
  transition: background-color 0.2s ease, transform 0.15s ease;
  overflow: hidden;
}

.related-post-card:hover {
  background-color: #f8fafc;
}

.related-post-thumb-wrapper {
  width: 80px !important;
  min-width: 80px !important;
  max-width: 80px !important;
  height: 60px !important;
  min-height: 60px !important;
  max-height: 60px !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  background-color: #f1f5f9;
  border: 1px solid rgba(0, 0, 0, 0.05);
  flex-shrink: 0 !important;
  position: relative;
  margin-right: 10px;
}

.related-post-thumb {
  width: 80px !important;
  min-width: 80px !important;
  max-width: 80px !important;
  height: 60px !important;
  min-height: 60px !important;
  max-height: 60px !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.25s ease;
}

.related-post-card:hover .related-post-thumb {
  transform: scale(1.05);
}

.related-post-thumb-fallback {
  width: 80px !important;
  min-width: 80px !important;
  max-width: 80px !important;
  height: 60px !important;
  min-height: 60px !important;
  max-height: 60px !important;
  background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
  color: #94a3b8;
}

.related-post-details {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
}

.related-post-title {
  font-size: 0.915rem;
  font-weight: 600;
  line-height: 1.38;
  color: #1e293b;
  margin: 0 0 4px 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
  transition: color 0.15s ease-in-out;
}

.related-post-card:hover .related-post-title {
  color: #2563eb;
}

.related-post-meta {
  font-size: 0.775rem;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 4px;
}

.meta-dot {
  color: #cbd5e1;
  font-size: 0.75rem;
}

@media (max-width: 991.98px) {
  .blog-sidebar-sticky {
    position: static;
    margin-top: 3rem;
  }

  .blog-main-column .blog-title {
    font-size: 1.95rem;
  }
}

/* Blog Detail Footer, Engagement & Author Box */
.blog-footer {
  border-top: 1px solid #f1f5f9 !important;
}

.blog-feedback {
  display: flex !important;
  align-items: center !important;
  gap: 0.65rem !important;
}

.blog-feedback .feedback-item {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 6px 14px !important;
  border-radius: 9999px !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  font-size: 0.875rem !important;
  font-weight: 550 !important;
  color: #475569 !important;
  cursor: pointer !important;
  margin: 0 !important;
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1) !important;
  user-select: none !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02) !important;
}

.blog-feedback .feedback-item:hover {
  background: #f8fafc !important;
  border-color: #cbd5e1 !important;
  color: #0f172a !important;
  transform: translateY(-1px);
}

.blog-feedback .feedback-item.likes .like-icon {
  display: inline-flex !important;
  align-items: center !important;
  cursor: pointer !important;
}

.blog-feedback .feedback-item.likes .like-icon svg {
  width: 15px !important;
  height: 15px !important;
  stroke: currentColor !important;
  fill: none !important;
  transition: fill 0.2s ease, stroke 0.2s ease, transform 0.2s ease !important;
}

.blog-feedback .feedback-item.likes:hover .like-icon svg {
  transform: scale(1.1);
}

.blog-feedback .feedback-item.likes.liked,
.blog-feedback .feedback-item.likes:has(.like-icon.liked),
.blog-feedback .feedback-item.likes .like-icon.liked {
  color: #e11d48 !important;
}

.blog-feedback .feedback-item.likes.liked,
.blog-feedback .feedback-item.likes:has(.like-icon.liked) {
  background: #fff1f2 !important;
  border-color: #fecdd3 !important;
}

.blog-feedback .feedback-item.likes.liked .like-icon svg,
.blog-feedback .feedback-item.likes:has(.like-icon.liked) .like-icon svg,
.blog-feedback .feedback-item.likes .like-icon.liked svg {
  fill: #e11d48 !important;
  stroke: #e11d48 !important;
}

.blog-feedback .feedback-item.comments .comment-icon {
  display: inline-flex !important;
  align-items: center !important;
}

.blog-feedback .feedback-item.comments .comment-icon svg {
  width: 15px !important;
  height: 15px !important;
  stroke: currentColor !important;
}

.social-share-btn {
  width: 32px !important;
  height: 32px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 8px !important;
  border: 1px solid #e2e8f0 !important;
  background: #ffffff !important;
  color: #64748b !important;
  font-size: 0.85rem !important;
  text-decoration: none !important;
  transition: all 0.15s ease !important;
}

.social-share-btn:hover {
  background: #f1f5f9 !important;
  color: #0f172a !important;
  border-color: #cbd5e1 !important;
}

.blog-publish-date {
  color: #64748b !important;
  font-size: 0.875rem !important;
}

/* Blog Author Byline */
.blog-author-byline {
  font-size: 0.875rem !important;
  color: #64748b !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  margin-left: 0.5rem !important;
}

.byline-label {
  color: #64748b !important;
  margin-right: 0.15rem !important;
}

.byline-author {
  color: #0f172a !important;
  font-weight: 600 !important;
  transition: color 0.15s ease !important;
}

.byline-author:hover {
  color: #2563eb !important;
}

/* Discussion & Comment Styling */
.blog-comments {
  border-top: 1px solid #f1f5f9;
}

.comment-view .no-comment p {
  padding: 1rem 1.25rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  color: #475569;
  font-size: 0.9rem;
}

.new-comment {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 14px !important;
  padding: 1.5rem !important;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.02) !important;
}

.new-comment .form-label {
  font-size: 0.95rem !important;
  font-weight: 650 !important;
  color: #0f172a !important;
  margin-bottom: 0.5rem !important;
}

.new-comment .comment-text-area textarea {
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  font-size: 0.925rem !important;
  padding: 0.75rem 1rem !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
  box-shadow: none !important;
}

.new-comment .comment-text-area textarea:focus {
  border-color: #0f172a !important;
  box-shadow: 0 0 0 3px rgba(15, 23, 42, 0.08) !important;
  outline: none !important;
}

#submit-comment {
  background-color: #0f172a !important;
  border-color: #0f172a !important;
  color: #ffffff !important;
  border-radius: 8px !important;
  padding: 0.5rem 1.25rem !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  transition: background-color 0.15s ease !important;
}

#submit-comment:hover {
  background-color: #1e293b !important;
  border-color: #1e293b !important;
}

.comment-content {
  border: 1px solid #e2e8f0 !important;
  border-radius: 12px !important;
  background-color: #ffffff !important;
  padding: 1rem 1.25rem !important;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.02) !important;
}

/* Blog Listing Page Styles */
.blog-list-wrapper {
  width: 100%;
}

.blog-list-hero {
  border-bottom: 1px solid #f1f5f9;
  padding-bottom: 2rem;
}

.blog-list-title {
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #0f172a;
}

.blog-list-intro {
  font-size: 1.15rem;
  color: #64748b;
  font-weight: 400;
}

.category-chips-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.category-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 1.15rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none !important;
  color: #475569;
  background-color: #f1f5f9;
  border: 1px solid #e2e8f0;
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1);
}

.category-chip:hover {
  background-color: #e2e8f0;
  color: #0f172a;
  transform: translateY(-1px);
}

.category-chip.active {
  background-color: #059669;
  color: #ffffff;
  border-color: #059669;
  box-shadow: 0 4px 12px rgba(5, 150, 105, 0.25);
}

/* Universal Blog Card & Media Lock */

.blog-card,
.blog-card-col {
  margin-bottom: 1.75rem;
}

.blog-card .card,
.blog-card-item {
  background: #ffffff !important;
  border: 1px solid #f1f5f9 !important;
  border-radius: 18px !important;
  box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.05), 0 2px 6px -1px rgba(0, 0, 0, 0.02) !important;
  transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.22s ease !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}

.blog-card .card:hover,
.blog-card-item:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 16px 32px -4px rgba(0, 0, 0, 0.08), 0 8px 16px -4px rgba(0, 0, 0, 0.04) !important;
  border-color: #e2e8f0 !important;
}

.blog-card .card-img-top,
.blog-card-media-wrapper {
  width: 100% !important;
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  overflow: hidden !important;
  background: #f8fafc !important;
  position: relative !important;
  border-top-left-radius: 18px !important;
  border-top-right-radius: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  flex-shrink: 0 !important;
  display: block !important;
}

.blog-card .card-img-top img,
.blog-card-media-wrapper img,
.blog-card-media {
  width: 100% !important;
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  transition: transform 0.35s ease !important;
}

.blog-card .card:hover .card-img-top img,
.blog-card-item:hover .blog-card-media {
  transform: scale(1.04) !important;
}

.blog-card .default-cover,
.blog-card-media-fallback {
  width: 100% !important;
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%) !important;
  color: #94a3b8 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
}

.blog-floating-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
  background: #059669;
  color: #ffffff;
  font-size: 0.725rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 5px 14px;
  border-radius: 9999px;
  box-shadow: 0 2px 8px rgba(5, 150, 105, 0.35);
  pointer-events: none;
}

.blog-card-meta {
  font-size: 0.825rem;
  color: #8592a3;
  font-weight: 500;
}

.blog-card-meta .meta-item svg {
  stroke: #8592a3;
  vertical-align: middle;
}

.blog-card-meta .meta-separator {
  color: #cbd5e1;
  font-size: 0.75rem;
}

.blog-card .card-body,
.blog-card-body {
  padding: 1.25rem 1.5rem !important;
  display: flex !important;
  flex-direction: column !important;
  flex-grow: 1 !important;
  justify-content: space-between !important;
}

.blog-card .card-body h5,
.blog-card-title {
  font-size: 1.15rem !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
  margin-top: 4px !important;
  margin-bottom: 8px !important;
  height: 3.22rem !important;
  min-height: 3.22rem !important;
  max-height: 3.22rem !important;
  overflow: hidden !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  line-clamp: 2 !important;
  text-overflow: ellipsis !important;
  word-break: break-word !important;
}

.blog-card .card-body h5 a,
.blog-card .card-body h5 span,
.blog-card-title a {
  color: #0f172a !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  line-clamp: 2 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  word-break: break-word !important;
  transition: color 0.15s ease !important;
}

.blog-card .card:hover .card-body h5 a,
.blog-card .card:hover .card-body h5 span,
.blog-card-item:hover .blog-card-title a {
  color: #0284c7 !important;
}

.blog-card .post-description,
.blog-card-intro {
  font-size: 0.885rem !important;
  line-height: 1.55 !important;
  color: #64748b !important;
  height: 4.15rem !important;
  min-height: 4.15rem !important;
  max-height: 4.15rem !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  line-clamp: 3 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  word-break: break-word !important;
  margin-bottom: 1rem !important;
}



.blog-card-action-footer {
  border-top: 1px solid #f1f5f9;
  padding-top: 12px;
  margin-top: auto;
}

.read-full-article-link {
  color: #0284c7;
  font-weight: 700;
  font-size: 0.925rem;
  transition: color 0.15s ease;
}

.read-full-article-link .action-arrow {
  transition: transform 0.2s ease;
}

.blog-card-item:hover .read-full-article-link {
  color: #0369a1;
}

.blog-card-item:hover .read-full-article-link .action-arrow {
  transform: translateX(4px);
}

.btn-load-more {
  font-weight: 600;
  font-size: 0.925rem;
  transition: all 0.15s ease;
}

/* ==========================================================================
   Portal Website Navbar UI & Navigation Links
   ========================================================================== */

/* Navbar Base Container */
.navbar,
.portal-website-navbar {
  background: rgba(255, 255, 255, 0.98) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border-bottom: 1px solid #eaeaea !important;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.02) !important;
  padding: 0.65rem 0 !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 1030 !important;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.portal-website-navbar .container,
.navbar .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.navbar-brand,
.portal-navbar-brand {
  display: inline-flex !important;
  align-items: center !important;
  padding: 0 !important;
  margin-right: 1.5rem !important;
  transition: opacity 0.15s ease;
}

.navbar-brand:hover,
.portal-navbar-brand:hover {
  opacity: 0.9;
}

.navbar-brand img,
.portal-navbar-brand img {
  max-height: 32px !important;
  width: auto !important;
}

/* Navbar Collapse Container */
.portal-website-navbar .navbar-collapse,
.navbar .navbar-collapse {
  flex-grow: 1 !important;
  justify-content: flex-end !important;
}

/* Nav list layout & items */
.navbar-nav {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 !important;
  list-style: none !important;
}

.navbar-nav.ml-auto,
.navbar-collapse .ml-auto {
  margin-left: auto !important;
}

.navbar-nav.mr-auto,
.navbar-collapse .mr-auto {
  margin-right: auto !important;
}

.navbar-nav .nav-item {
  display: flex !important;
  align-items: center !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Universal Nav Link Styling */
.navbar-nav .nav-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  font-size: 0.8125rem !important; /* 13px */
  font-weight: 550 !important;
  line-height: 1 !important;
  color: #475569 !important;
  padding: 5px 12px !important;
  border-radius: 8px !important;
  border: 1px solid transparent !important;
  background-color: transparent;
  text-decoration: none !important;
  transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1) !important;
  cursor: pointer;
  white-space: nowrap !important;
  height: 30px !important;
}

.navbar-nav .nav-link svg.nav-icon {
  width: 13.5px !important;
  height: 13.5px !important;
  flex-shrink: 0 !important;
  stroke: currentColor;
  stroke-width: 1.8 !important;
  vertical-align: middle;
  transition: transform 0.15s ease;
}

.navbar-nav .nav-link:hover {
  color: #0f172a !important;
  background-color: #f1f5f9 !important;
}

.navbar-nav .nav-link:hover svg.nav-icon {
  transform: translateY(-0.5px);
}

.navbar-nav .nav-link.active,
.navbar-nav .nav-item.active .nav-link {
  color: #0284c7 !important;
  background-color: #f0f9ff !important;
  border-color: #e0f2fe !important;
  font-weight: 600 !important;
}

/* Desk Pill Link Button */
.navbar-nav .nav-item-desk .nav-link,
.navbar-nav .nav-link-desk,
.navbar-nav a.nav-link[href*="/desk"],
.navbar-nav a.nav-link[href*="/app"] {
  background-color: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  color: #334155 !important;
  font-weight: 550 !important;
  font-size: 0.8125rem !important;
  border-radius: 9999px !important;
  padding: 4px 12px !important;
  height: 30px !important;
  gap: 5px !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02) !important;
}

.navbar-nav .nav-item-desk .nav-link svg.nav-icon,
.navbar-nav .nav-link-desk svg.nav-icon,
.navbar-nav a.nav-link[href*="/desk"] svg.nav-icon,
.navbar-nav a.nav-link[href*="/app"] svg.nav-icon {
  stroke: #475569 !important;
  stroke-width: 1.8 !important;
}

.navbar-nav .nav-item-desk .nav-link:hover,
.navbar-nav .nav-link-desk:hover,
.navbar-nav a.nav-link[href*="/desk"]:hover,
.navbar-nav a.nav-link[href*="/app"]:hover {
  background-color: #ffffff !important;
  border-color: #cbd5e1 !important;
  color: #0284c7 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04) !important;
}

.navbar-nav .nav-item-desk .nav-link:hover svg.nav-icon,
.navbar-nav .nav-link-desk:hover svg.nav-icon,
.navbar-nav a.nav-link[href*="/desk"]:hover svg.nav-icon,
.navbar-nav a.nav-link[href*="/app"]:hover svg.nav-icon {
  stroke: #0284c7 !important;
}

/* Login CTA Button */
.navbar-nav li.btn-login-area,
.navbar-nav li#website-login,
.navbar-nav .nav-item:has(a.navbar-btn-login),
.navbar-nav .nav-item:has(a[href*="/login"]) {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}

.navbar-nav a.navbar-btn-login,
.navbar-nav a.btn-login-area,
.navbar-nav a.nav-link.navbar-btn-login,
.navbar-nav a.nav-link.btn-login-area,
.navbar-nav a.nav-link[href*="/login"] {
  background: #0284c7 !important;
  border: 1px solid #0284c7 !important;
  color: #ffffff !important;
  font-weight: 550 !important;
  font-size: 0.8125rem !important; /* 13px */
  border-radius: 9999px !important;
  padding: 4px 13px !important;
  height: 30px !important;
  gap: 5px !important;
  box-shadow: 0 1px 2px rgba(2, 132, 199, 0.2) !important;
}

.navbar-nav a.navbar-btn-login svg.nav-icon,
.navbar-nav a.btn-login-area svg.nav-icon,
.navbar-nav a.nav-link[href*="/login"] svg.nav-icon {
  stroke: #ffffff !important;
  stroke-width: 1.8 !important;
}

.navbar-nav a.navbar-btn-login:hover,
.navbar-nav a.btn-login-area:hover,
.navbar-nav a.nav-link.navbar-btn-login:hover,
.navbar-nav a.nav-link.btn-login-area:hover,
.navbar-nav a.nav-link[href*="/login"]:hover {
  background: #0369a1 !important;
  border-color: #0369a1 !important;
  color: #ffffff !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 2px 8px rgba(2, 132, 199, 0.28) !important;
}

.navbar-nav a.navbar-btn-login:active,
.navbar-nav a.btn-login-area:active,
.navbar-nav a.nav-link.navbar-btn-login:active,
.navbar-nav a.nav-link.btn-login-area:active,
.navbar-nav a.nav-link[href*="/login"]:active {
  transform: translateY(0) !important;
  box-shadow: 0 1px 2px rgba(2, 132, 199, 0.15) !important;
}

/* Hide Login link when logged in or marked hidden */
.btn-login-area.hide,
.btn-login-area.hidden,
.navbar-btn-login.hide,
.navbar-btn-login.hidden,
#website-login.hide,
#website-login.hidden,
.btn-login-area[style*="display: none"],
.navbar-btn-login[style*="display: none"],
#website-login[style*="display: none"],
.nav-item:has(.btn-login-area[style*="display: none"]),
.nav-item:has(.navbar-btn-login[style*="display: none"]),
.nav-item:has(.btn-login-area.hide),
.nav-item:has(.btn-login-area.hidden),
.nav-item:has(.navbar-btn-login.hide),
.nav-item:has(.navbar-btn-login.hidden),
.logged-in:not([style*="display: none"]):not(.hide):not(.hidden) ~ .nav-item:has(.navbar-btn-login),
.logged-in:not([style*="display: none"]):not(.hide):not(.hidden) ~ .nav-item:has(.btn-login-area),
.logged-in:not([style*="display: none"]):not(.hide):not(.hidden) ~ #website-login {
  display: none !important;
}

/* ==========================================================================
   Post Login User Profile Trigger Pill & Dropdown (Executive High-End Design)
   ========================================================================== */
.navbar-nav .logged-in {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
}

/* 1. Trigger Capsule Pill */
.navbar-nav .logged-in .nav-avatar {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  height: 38px !important;
  padding: 3px 12px 3px 5px !important;
  border-radius: 9999px !important;
  border: 1px solid #e2e8f0 !important;
  background-color: #ffffff !important;
  color: #1e293b !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 1px 1px rgba(0, 0, 0, 0.02) !important;
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1) !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

.navbar-nav .logged-in .nav-avatar:hover {
  background-color: #f8fafc !important;
  border-color: #cbd5e1 !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.03) !important;
  transform: translateY(-0.5px);
}

.navbar-nav .logged-in.show .nav-avatar,
.navbar-nav .logged-in .nav-avatar[aria-expanded="true"] {
  background-color: #f8fafc !important;
  border-color: #94a3b8 !important;
  box-shadow: 0 0 0 2.5px rgba(2, 132, 199, 0.12), 0 1px 2px rgba(0, 0, 0, 0.04) !important;
}

/* 2. Avatar Circle Framing */
.navbar-nav .logged-in .user-image-wrapper {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  overflow: hidden !important;
  flex-shrink: 0 !important;
  box-shadow: 0 0 0 1.5px #ffffff, 0 1px 3px rgba(0, 0, 0, 0.12) !important;
  background-color: #f1f5f9 !important;
}

.navbar-nav .logged-in .avatar,
.navbar-nav .logged-in .user-image-wrapper .avatar,
.navbar-nav .logged-in .user-image-wrapper img {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  display: block !important;
  border: none !important;
}

.navbar-nav .logged-in .avatar-frame {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.navbar-nav .logged-in .avatar-empty,
.navbar-nav .logged-in .avatar-frame.standard-image {
  font-size: 11px !important;
  font-weight: 600 !important;
  line-height: 28px !important;
  text-align: center !important;
  background: linear-gradient(135deg, #e0f2fe 0%, #bae6fd 100%);
  color: #0369a1;
}

/* 3. User Name & Chevron */
.navbar-nav .logged-in-user-name {
  font-size: 0.84rem !important;
  font-weight: 550 !important;
  color: #1e293b !important;
  letter-spacing: -0.01em !important;
  max-width: 140px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.navbar-nav .dropdown-chevron-icon {
  stroke: #64748b !important;
  flex-shrink: 0 !important;
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), stroke 0.15s ease !important;
}

.navbar-nav .logged-in.show .dropdown-chevron-icon,
.navbar-nav .logged-in .nav-avatar[aria-expanded="true"] .dropdown-chevron-icon {
  transform: rotate(180deg) !important;
  stroke: #0284c7 !important;
}

/* 4. Dropdown Container */
.portal-user-dropdown,
.navbar-nav .logged-in .dropdown-menu {
  background: #ffffff !important;
  border-radius: 14px !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: 0 16px 36px -8px rgba(15, 23, 42, 0.12), 0 6px 16px -4px rgba(15, 23, 42, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.02) !important;
  padding: 6px !important;
  margin-top: 8px !important;
  min-width: 240px !important;
  transform-origin: top right !important;
  animation: profileDropdownFade 0.18s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

@keyframes profileDropdownFade {
  from {
    opacity: 0;
    transform: scale(0.96) translateY(-6px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

/* 5. User Card Header inside Dropdown */
.dropdown-user-header {
  display: flex !important;
  align-items: center !important;
  gap: 11px !important;
  padding: 10px 12px !important;
  border-radius: 10px !important;
  background: #f8fafc !important;
  border: 1px solid #f1f5f9 !important;
  margin-bottom: 4px !important;
}

.dropdown-user-header .dropdown-header-avatar {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  border-radius: 50% !important;
  overflow: hidden !important;
  box-shadow: 0 0 0 1.5px #ffffff, 0 1px 3px rgba(0, 0, 0, 0.1) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-color: #e2e8f0 !important;
  flex-shrink: 0 !important;
}

.dropdown-user-header .dropdown-header-avatar .avatar,
.dropdown-user-header .dropdown-header-avatar img {
  width: 36px !important;
  height: 36px !important;
  object-fit: cover !important;
  border-radius: 50% !important;
}

.dropdown-user-header .dropdown-header-avatar .avatar-frame {
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.dropdown-user-header .dropdown-header-avatar .avatar-empty,
.dropdown-user-header .dropdown-header-avatar .avatar-frame.standard-image {
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 36px !important;
  text-align: center !important;
  background: linear-gradient(135deg, #e0f2fe 0%, #bae6fd 100%);
  color: #0369a1;
}

.dropdown-user-meta {
  min-width: 0 !important;
  flex: 1 !important;
}

.dropdown-user-name {
  font-size: 0.86rem !important;
  font-weight: 600 !important;
  color: #0f172a !important;
  line-height: 1.25 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.dropdown-user-email {
  font-size: 0.74rem !important;
  font-weight: 450 !important;
  color: #64748b !important;
  line-height: 1.2 !important;
  margin-top: 2px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* 6. Menu Action Items */
.navbar-nav .portal-user-dropdown .dropdown-item,
.navbar-nav .logged-in .dropdown-menu .dropdown-item {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 8px 12px !important;
  min-height: 38px !important;
  border-radius: 8px !important;
  font-size: 0.84rem !important;
  font-weight: 500 !important;
  color: #334155 !important;
  text-decoration: none !important;
  transition: all 0.14s ease !important;
  cursor: pointer !important;
}

.navbar-nav .portal-user-dropdown .dropdown-item:hover,
.navbar-nav .logged-in .dropdown-menu .dropdown-item:hover {
  background-color: #f1f5f9 !important;
  color: #0f172a !important;
  transform: translateX(1px);
}

.navbar-nav .portal-user-dropdown .dropdown-item svg.nav-icon,
.navbar-nav .logged-in .dropdown-menu .dropdown-item svg.nav-icon {
  width: 15px !important;
  height: 15px !important;
  stroke: #64748b !important;
  flex-shrink: 0 !important;
  transition: stroke 0.14s ease !important;
}

.navbar-nav .portal-user-dropdown .dropdown-item:hover svg.nav-icon,
.navbar-nav .logged-in .dropdown-menu .dropdown-item:hover svg.nav-icon {
  stroke: #0284c7 !important;
}

.navbar-nav .portal-user-dropdown .dropdown-divider,
.navbar-nav .logged-in .dropdown-menu .dropdown-divider {
  margin: 4px 0 !important;
  border-top: 1px solid #f1f5f9 !important;
}

/* Logout Button Special Styling */
.navbar-nav .portal-user-dropdown .dropdown-item-logout,
.navbar-nav .logged-in .dropdown-menu .dropdown-item-logout,
.navbar-nav .logged-in .dropdown-menu .dropdown-item.text-danger {
  color: #64748b !important;
}

.navbar-nav .portal-user-dropdown .dropdown-item-logout svg.nav-icon,
.navbar-nav .logged-in .dropdown-menu .dropdown-item-logout svg.nav-icon,
.navbar-nav .logged-in .dropdown-menu .dropdown-item.text-danger svg.nav-icon {
  stroke: #64748b !important;
}

.navbar-nav .portal-user-dropdown .dropdown-item-logout:hover,
.navbar-nav .logged-in .dropdown-menu .dropdown-item-logout:hover,
.navbar-nav .logged-in .dropdown-menu .dropdown-item.text-danger:hover {
  background-color: #fef2f2 !important;
  color: #ef4444 !important;
}

.navbar-nav .portal-user-dropdown .dropdown-item-logout:hover svg.nav-icon,
.navbar-nav .logged-in .dropdown-menu .dropdown-item-logout:hover svg.nav-icon,
.navbar-nav .logged-in .dropdown-menu .dropdown-item.text-danger:hover svg.nav-icon {
  stroke: #ef4444 !important;
}

/* Mobile Toggler Button & Dual-State Icons */
.portal-navbar-toggler,
.navbar-toggler {
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  min-height: 38px !important;
  padding: 0 !important;
  border-radius: 8px !important;
  border: 1px solid #e2e8f0 !important;
  background-color: #ffffff !important;
  color: #334155 !important;
  outline: none !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03) !important;
  cursor: pointer !important;
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1) !important;
  position: relative !important;
}

@media (min-width: 992px) {
  .portal-navbar-toggler,
  .navbar-toggler,
  .navbar-expand-lg .navbar-toggler,
  .navbar-expand-lg .portal-navbar-toggler {
    display: none !important;
  }
}

.portal-navbar-toggler:hover,
.navbar-toggler:hover {
  background-color: #f8fafc !important;
  border-color: #cbd5e1 !important;
  color: #0f172a !important;
  transform: translateY(-0.5px);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.04) !important;
}

.portal-navbar-toggler:focus,
.portal-navbar-toggler:active,
.navbar-toggler:focus,
.navbar-toggler:active {
  outline: none !important;
  box-shadow: 0 0 0 2.5px rgba(2, 132, 199, 0.15) !important;
  border-color: #93c5fd !important;
}

/* Force stroke and fill for toggler icons - overrides Frappe core .navbar-light .navbar-toggler .icon { stroke: none } */
.portal-navbar-toggler svg,
.portal-navbar-toggler .portal-icon-menu,
.portal-navbar-toggler .portal-icon-close,
.portal-navbar-toggler .icon,
.navbar-toggler .icon,
.navbar-light .navbar-toggler .icon,
.portal-navbar-toggler line {
  stroke: currentColor !important;
  stroke-width: 2 !important;
  fill: none !important;
  vertical-align: middle !important;
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.15s ease !important;
}

.portal-toggler-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 20px !important;
  height: 20px !important;
  position: relative !important;
}

/* Icon Switching between Menu & Close */
/* Collapsed state (default): show Menu icon, hide Close icon */
.portal-navbar-toggler.collapsed .portal-icon-menu,
.navbar-toggler.collapsed .portal-icon-menu {
  display: block !important;
  opacity: 1 !important;
  transform: scale(1) rotate(0deg) !important;
}

.portal-navbar-toggler.collapsed .portal-icon-close,
.navbar-toggler.collapsed .portal-icon-close {
  display: none !important;
  opacity: 0 !important;
  transform: scale(0.8) rotate(-90deg) !important;
}

/* Expanded state: show Close icon, hide Menu icon */
.portal-navbar-toggler:not(.collapsed) .portal-icon-menu,
.navbar-toggler:not(.collapsed) .portal-icon-menu,
.portal-navbar-toggler[aria-expanded="true"] .portal-icon-menu {
  display: none !important;
  opacity: 0 !important;
  transform: scale(0.8) rotate(90deg) !important;
}

.portal-navbar-toggler:not(.collapsed) .portal-icon-close,
.navbar-toggler:not(.collapsed) .portal-icon-close,
.portal-navbar-toggler[aria-expanded="true"] .portal-icon-close {
  display: block !important;
  opacity: 1 !important;
  transform: scale(1) rotate(0deg) !important;
  color: #0f172a !important;
}

@media (max-width: 991.98px) {
  .portal-navbar-toggler,
  .navbar-toggler,
  .navbar-expand-lg .navbar-toggler,
  .navbar-expand-lg .portal-navbar-toggler {
    display: inline-flex !important;
  }

  .navbar,
  .portal-website-navbar {
    padding: 0.5rem 0 !important;
    min-height: 56px !important;
  }

  .portal-website-navbar .container,
  .navbar .container {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .navbar-brand,
  .portal-navbar-brand {
    margin-right: 0 !important;
  }

  .navbar-brand img,
  .portal-navbar-brand img {
    max-height: 28px !important;
  }

  /* Mobile Dropdown Menu Drawer */
  .navbar-collapse {
    background: #ffffff !important;
    border-radius: 12px !important;
    padding: 10px 12px 14px 12px !important;
    margin-top: 10px !important;
    margin-bottom: 8px !important;
    border: 1px solid #eaeaea !important;
    box-shadow: 0 12px 28px -4px rgba(0, 0, 0, 0.08), 0 4px 12px -2px rgba(0, 0, 0, 0.03) !important;
  }

  .navbar-nav {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 4px !important;
    width: 100% !important;
  }

  .navbar-nav .nav-item {
    width: 100% !important;
  }

  .navbar-nav .nav-link {
    width: 100% !important;
    justify-content: flex-start !important;
    padding: 10px 14px !important;
    height: 42px !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    border-radius: 8px !important;
    gap: 10px !important;
    color: #334155 !important;
  }

  .navbar-nav .nav-link svg.nav-icon {
    width: 16px !important;
    height: 16px !important;
    stroke: #64748b !important;
  }

  .navbar-nav .nav-link:hover {
    background-color: #f8fafc !important;
    color: #0f172a !important;
  }

  .navbar-nav .nav-link.active,
  .navbar-nav .nav-item.active .nav-link {
    color: #0284c7 !important;
    background-color: #f0f9ff !important;
    border-color: #e0f2fe !important;
    font-weight: 600 !important;
  }

  .navbar-nav .nav-link.active svg.nav-icon,
  .navbar-nav .nav-item.active .nav-link svg.nav-icon {
    stroke: #0284c7 !important;
  }

  /* Desk Link on Mobile */
  .navbar-nav .nav-item-desk .nav-link,
  .navbar-nav .nav-link-desk,
  .navbar-nav a.nav-link[href*="/desk"],
  .navbar-nav a.nav-link[href*="/app"] {
    border-radius: 8px !important;
    height: 42px !important;
    padding: 10px 14px !important;
    justify-content: flex-start !important;
    background-color: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
  }

  /* Dropdown Sub-menu on Mobile */
  .navbar-nav .dropdown-menu {
    position: static !important;
    float: none !important;
    box-shadow: none !important;
    border: 1px solid #f1f5f9 !important;
    background: #f8fafc !important;
    margin: 4px 0 6px 0 !important;
    padding: 4px !important;
    border-radius: 8px !important;
    width: 100% !important;
  }

  .navbar-nav .logged-in {
    width: 100% !important;
  }

  .navbar-nav .logged-in .nav-avatar {
    width: 100% !important;
    justify-content: flex-start !important;
    height: 44px !important;
    padding: 6px 12px !important;
    border-radius: 8px !important;
    margin-bottom: 2px !important;
  }

  .navbar-nav .logged-in .dropdown-chevron-icon {
    margin-left: auto !important;
  }

  .navbar-nav .logged-in-user-name {
    max-width: none !important;
  }

  .navbar-nav .portal-user-dropdown {
    box-shadow: none !important;
    border: 1px solid #e2e8f0 !important;
    background: #f8fafc !important;
    animation: none !important;
  }

  .navbar-nav .dropdown-item {
    padding: 9px 12px !important;
    font-size: 0.85rem !important;
  }

  /* Login CTA Button on Mobile */
  .navbar-nav a.navbar-btn-login,
  .navbar-nav a.btn-login-area,
  .navbar-nav a.nav-link.navbar-btn-login,
  .navbar-nav a.nav-link.btn-login-area,
  .navbar-nav a.nav-link[href*="/login"] {
    justify-content: center !important;
    margin-top: 8px !important;
    height: 40px !important;
    border-radius: 8px !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    width: 100% !important;
    background-color: #0284c7 !important;
    color: #ffffff !important;
    box-shadow: 0 1px 2px rgba(2, 132, 199, 0.2) !important;
  }

  /* Logged In User Avatar on Mobile */
  .navbar-nav .logged-in .nav-avatar {
    width: 100% !important;
    border-radius: 8px !important;
    padding: 8px 12px !important;
    height: auto !important;
    justify-content: flex-start !important;
  }

  .navbar-nav .logged-in-user-name {
    display: inline-block !important;
    max-width: none !important;
  }
}

/* ==========================================================================
   Calendar View - Dragged Timeslot & Selection Mirror Overrides
   ========================================================================== */

/* Temporary Dragged Timeslot / Event Mirror (when creating or moving an event) */
.fc .fc-event-mirror,
.fc-event-mirror,
.fc-timegrid-event.fc-event-mirror,
.fc-daygrid-event.fc-event-mirror,
.fc-v-event.fc-event-mirror,
.fc-h-event.fc-event-mirror,
.fc .fc-timegrid-col-events .fc-event-mirror,
.fc-timegrid-event-harness .fc-event-mirror {
  background-color: #2563eb !important;
  background: #2563eb !important;
  border: 1.5px solid #1d4ed8 !important;
  color: #ffffff !important;
  border-radius: 6px !important;
  box-shadow: 0 4px 14px rgba(37, 99, 235, 0.35), 0 1px 3px rgba(0, 0, 0, 0.1) !important;
  opacity: 0.95 !important;
  z-index: 1000 !important;
  overflow: hidden !important;
}

/* Ensure text inside dragged timeslot preview is sharp, prominent, and clearly readable */
.fc .fc-event-mirror .fc-event-main,
.fc-event-mirror .fc-event-main,
.fc-event-mirror .fc-event-main-frame,
.fc-event-mirror .fc-event-time,
.fc-event-mirror .fc-event-title,
.fc-timegrid-event.fc-event-mirror .fc-event-main,
.fc-timegrid-event.fc-event-mirror .fc-event-main-frame,
.fc-timegrid-event.fc-event-mirror .fc-event-time,
.fc-timegrid-event.fc-event-mirror .fc-event-title,
.fc-daygrid-event.fc-event-mirror .fc-event-main,
.fc-daygrid-event.fc-event-mirror .fc-event-main-frame,
.fc-daygrid-event.fc-event-mirror .fc-event-time,
.fc-daygrid-event.fc-event-mirror .fc-event-title {
  color: #ffffff !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  padding: 4px 6px !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;
  display: block !important;
}

/* Background highlight when dragging across cells */
.fc .fc-timegrid-col-bg .fc-highlight,
.fc .fc-daygrid-day-bg .fc-highlight,
.fc .fc-highlight,
.fc-highlight {
  background: rgba(37, 99, 235, 0.16) !important;
  border-radius: 4px !important;
}

/* Dark theme support for calendar selection & dragged timeslot */
[data-theme="dark"] .fc .fc-event-mirror,
[data-theme="dark"] .fc-event-mirror,
[data-theme="dark"] .fc-timegrid-event.fc-event-mirror,
[data-theme="dark"] .fc-daygrid-event.fc-event-mirror,
[data-theme="dark"] .fc-v-event.fc-event-mirror,
[data-theme="dark"] .fc-h-event.fc-event-mirror,
[data-theme="dark"] .fc .fc-timegrid-col-events .fc-event-mirror,
[data-theme="dark"] .fc-timegrid-event-harness .fc-event-mirror {
  background-color: #3b82f6 !important;
  background: #3b82f6 !important;
  border-color: #60a5fa !important;
  color: #ffffff !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5) !important;
}

[data-theme="dark"] .fc .fc-timegrid-col-bg .fc-highlight,
[data-theme="dark"] .fc .fc-daygrid-day-bg .fc-highlight,
[data-theme="dark"] .fc .fc-highlight,
[data-theme="dark"] .fc-highlight {
  background: rgba(59, 130, 246, 0.25) !important;
}

.department-list-view .dropdown-menu [data-view="Report"],
.department-list-view .dropdown-menu [data-view="Kanban"],
.department-list-view .list-row-col[data-fieldname="leave_block_list"],
.department-list-view .comment-count,
.department-list-view .list-row-activity > .mx-2,
.department-list-view .list-row-like,
.department-list-view .list-liked-by-me {
	display: none !important;
}

.department-list-view .department-tree-prefix {
	position: relative;
	display: inline-block;
	width: 14px;
	height: 18px;
	flex: 0 0 14px;
	vertical-align: middle;
}

.department-list-view .department-tree-prefix.is-child::before {
	position: absolute;
	top: 1px;
	left: 3px;
	width: 8px;
	height: 9px;
	border-bottom: 1px solid var(--border-color);
	border-left: 1px solid var(--border-color);
	content: "";
}

.department-list-view .department-tree-node-icon {
	--icon-stroke: currentColor;
	display: inline-flex;
	width: 24px;
	height: 24px;
	flex: 0 0 24px;
	align-items: center;
	justify-content: center;
	margin-right: 6px;
	border-radius: 50%;
	vertical-align: middle;
}

.department-list-view .department-tree-node-icon .icon {
	width: 16px;
	height: 16px;
}

.department-list-view .department-tree-node-icon.is-all {
	background: var(--bg-purple);
	color: var(--text-on-purple);
}

.department-list-view .department-tree-node-icon.is-department,
.department-list-view .department-tree-node-icon.is-default-parent {
	background: var(--bg-blue);
	color: var(--text-on-blue);
}

.department-list-view .department-tree-node-icon.is-group {
	background: var(--bg-green);
	color: var(--text-on-green);
}

.department-list-view .department-tree-node-icon.is-team {
	background: var(--bg-gray);
	color: var(--text-on-gray);
}

.department-list-view .department-tree-node-icon.is-default-leaf {
	background: var(--bg-gray);
	color: var(--text-on-gray);
}

.employee-directory-list .list-row-like,
.employee-directory-list .list-liked-by-me {
	display: none !important;
}

/* 0 rows: native no-result / Add Employee. Hide table chrome that Frappe still paints. */
.employee-directory-list.employee-directory-empty .result-container,
.employee-directory-list.employee-directory-empty .frappe-list > .result {
	display: none !important;
	height: auto !important;
	min-height: 0 !important;
	overflow: hidden !important;
}

.employee-directory-list.employee-directory-empty .no-result {
	display: flex !important;
}

/* Rows present: keep one horizontal scroller on Frappe's result-container. */
.employee-directory-list.employee-directory-has-rows:not(.employee-directory-image-view) .result-container {
	overflow-x: auto !important;
}

.employee-directory-list.employee-directory-has-rows:not(.employee-directory-image-view) .list-row,
.employee-directory-list.employee-directory-has-rows:not(.employee-directory-image-view) .list-row-head {
	flex-wrap: nowrap !important;
}

/* Let long Employee values grow rows instead of hiding content behind ellipsis. */
.employee-directory-list.employee-directory-has-rows:not(.employee-directory-image-view)
	.list-row {
	align-items: stretch;
}

.employee-directory-list.employee-directory-has-rows:not(.employee-directory-image-view)
	.list-row
	.level-left {
	min-width: 0;
	overflow: visible;
}

.employee-directory-list.employee-directory-has-rows:not(.employee-directory-image-view)
	.list-row
	.list-row-col[data-fieldname],
.employee-directory-list.employee-directory-has-rows:not(.employee-directory-image-view)
	.list-row
	.list-row-col[data-fieldname]
	.ellipsis {
	min-width: 0;
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
	overflow-wrap: anywhere;
}

.employee-directory-list.employee-directory-has-rows:not(.employee-directory-image-view)
	.list-row-col[data-fieldname="cell_number"],
.employee-directory-list.employee-directory-has-rows:not(.employee-directory-image-view)
	.list-row-head
	.list-row-col[data-fieldname="cell_number"] {
	flex: 0 1 7rem !important;
	width: 7rem !important;
	max-width: 7rem !important;
}

.employee-directory-list.employee-directory-has-rows:not(.employee-directory-image-view)
	.list-row-col[data-fieldname="custom_supervisor"],
.employee-directory-list.employee-directory-has-rows:not(.employee-directory-image-view)
	.list-row-head
	.list-row-col[data-fieldname="custom_supervisor"] {
	flex: 0 1 8rem !important;
	width: 8rem !important;
	max-width: 8rem !important;
}

.employee-directory-list.employee-directory-has-rows:not(.employee-directory-image-view)
	.list-row
	.level-right {
	align-self: stretch;
}

/* Align search and quick filters on ListViews that opt into the portal layout. */
.portal-list-page-form .standard-filter-section {
	flex: 1;
	align-items: flex-start;
}

.employee-directory-page-form .standard-filter-section [data-fieldname="name"],
.employee-directory-page-form .standard-filter-section [data-fieldname="department"],
.employee-directory-page-form .standard-filter-section [data-fieldname="employee_name"],
.employee-directory-page-form .standard-filter-section > *:has([data-fieldname="name"]),
.employee-directory-page-form .standard-filter-section > *:has([data-fieldname="department"]),
.employee-directory-page-form .standard-filter-section > *:has([data-fieldname="employee_name"]) {
	display: none !important;
}

.portal-list-search {
	flex: 0 0 360px;
	max-width: 360px;
	margin: 0 0 8px 0;
}

.portal-list-search .control-label {
	display: none;
}

.portal-list-search input {
	min-height: 32px;
}

/* Hide table list-row-head in Employee Directory Image View without affecting data rows or other doctypes */
.employee-directory-list.employee-directory-image-view .list-row-head,
.employee-directory-list.employee-directory-image-view > .list-row-container:has(.list-row-head),
.employee-directory-list.employee-directory-image-view .layout-main-section-wrapper.image-view .list-row-head {
	display: none !important;
}

.employee-directory-card {
	height: 270px !important;
}

.employee-directory-card .image-view-body > a,
.employee-directory-card .image-view-body .image-field,
.employee-directory-card .image-view-body .image-field img {
	display: block;
	width: 100%;
	height: 100%;
}

.employee-directory-card .image-view-body .image-field img {
	max-height: 100%;
	object-fit: contain;
	object-position: center;
}

.employee-directory-card .image-view-body.no-image > a,
.employee-directory-card .image-view-body.no-image .image-field {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.employee-directory-card .image-view-body.no-image .placeholder-text {
	color: var(--gray-600);
}

.employee-directory-card .employee-card-detail-icon {
	align-items: center;
	justify-content: center;
}

.employee-directory-card .employee-card-detail-value {
	flex: 1 1 auto;
}

.employee-directory-card .employee-card-email {
	color: inherit;
	text-decoration: none;
}

.employee-directory-card .employee-card-email:hover,
.employee-directory-card .employee-card-email:focus {
	color: inherit;
	text-decoration: none;
}

.portal-list-page-form .filter-section > .portal-list-quick-filter {
	display: block;
	position: relative !important;
	flex: 0 0 auto;
	margin: 0;
}

.portal-list-page-form .filter-section {
	align-items: center;
}

.portal-organization-filter-panel,
.employee-organization-filter-panel {
	display: block !important;
	position: fixed !important;
	z-index: 1060;
	box-sizing: border-box !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: min(420px, calc(100vh - 160px)) !important;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	padding: 12px !important;
	border: 1px solid var(--border-color) !important;
	border-radius: var(--border-radius-md) !important;
	background: var(--fg-color) !important;
	box-shadow: var(--shadow-lg) !important;
}

.portal-organization-filter-panel[hidden],
.employee-organization-filter-panel[hidden] {
	display: none !important;
}

.portal-organization-filter-section.has-separator,
.portal-organization-filter-section + .portal-organization-filter-section,
.employee-organization-filter-section + .employee-organization-filter-section {
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid var(--border-color);
}

.portal-organization-filter-items,
.employee-organization-filter-items {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 2px;
}

.portal-organization-filter-section h6,
.employee-organization-filter-section h6 {
	margin: 0 0 6px;
	color: var(--text-muted);
	font-size: var(--text-xs);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.portal-organization-filter-row,
.employee-organization-filter-row {
	display: flex !important;
	width: 100% !important;
	align-items: center;
	gap: 8px;
	min-height: 34px;
	margin: 0;
	padding: 5px 6px;
	border-radius: var(--border-radius-sm);
	cursor: pointer;
}

.portal-organization-filter-row:hover,
.employee-organization-filter-row:hover {
	background: var(--subtle-fg);
}

.portal-organization-filter-row input,
.employee-organization-filter-row input {
	flex: 0 0 auto;
	margin: 0;
}

.portal-organization-filter-name,
.employee-organization-filter-name {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.portal-organization-filter-count,
.employee-organization-filter-count {
	flex: 0 0 auto;
	min-width: 24px;
	color: var(--text-muted);
	font-size: var(--text-sm);
	text-align: right;
}

@media (max-width: 767px) {
	.portal-list-page-form .filter-section > .portal-list-quick-filter {
		margin-right: 0;
	}

	.portal-organization-filter-panel,
	.employee-organization-filter-panel {
		position: fixed;
		max-height: 60vh !important;
	}
}
/* Hide Attendance dashboard connections on Leave Application form */
.form-dashboard [data-doctype="Attendance"],
.form-links [data-doctype="Attendance"],
.badge-link[data-doctype="Attendance"],
.document-link[data-doctype="Attendance"],
.form-graph [data-doctype="Attendance"],
[data-page-route*="leave-application"] [data-doctype="Attendance"],
[data-page-route*="Leave Application"] [data-doctype="Attendance"],
[data-doctype="Leave Application"] .form-dashboard [data-doctype="Attendance"],
[data-doctype="Leave Application"] .form-links [data-doctype="Attendance"] {
  display: none !important;
}

/* ==========================================================================
   Leave Application List View Customization
   - Hide Like & Comment Column
   - Expand Row Width
   - Action Column & Dropdown Styles
   ========================================================================== */

/* Hide like and comment column for Leave Application list view */
[data-page-route*="Leave Application"] .list-liked-by-me,
[data-page-route*="Leave Application"] .list-row-like,
[data-page-route*="Leave Application"] .comment-count,
[data-page-route*="Leave Application"] .list-row-activity .mx-2,
[data-page-route*="Leave Application"] .list-row-activity,
[data-page-route*="Leave Application"] .list-row-head .level-right,
[data-page-route*="Leave Application"] .list-row .level-right,
[data-page-route*="leave-application"] .list-liked-by-me,
[data-page-route*="leave-application"] .list-row-like,
[data-page-route*="leave-application"] .comment-count,
[data-page-route*="leave-application"] .list-row-activity .mx-2,
[data-page-route*="leave-application"] .list-row-activity,
[data-page-route*="leave-application"] .list-row-head .level-right,
[data-page-route*="leave-application"] .list-row .level-right,
.leave-app-list-view .list-liked-by-me,
.leave-app-list-view .list-row-like,
.leave-app-list-view .comment-count,
.leave-app-list-view .list-row-activity .mx-2,
.leave-app-list-view .list-row-activity,
.leave-app-list-view .list-row-head .level-right,
.leave-app-list-view .list-row .level-right {
  display: none !important;
}

/* Allow table columns to use the full row width smoothly */
[data-page-route*="Leave Application"] .list-row .level-left,
[data-page-route*="Leave Application"] .list-row-head .level-left,
[data-page-route*="leave-application"] .list-row .level-left,
[data-page-route*="leave-application"] .list-row-head .level-left,
.leave-app-list-view .list-row .level-left,
.leave-app-list-view .list-row-head .level-left {
  flex: 1 1 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 100% !important;
}

/* Ensure column cells containing action buttons do not clip and have adequate width */
.leave-app-list-view .list-row-col[data-fieldname="custom_actions"],
.leave-app-list-view .list-row-col:has(.leave-action-btn-group),
[data-page-route*="Leave Application"] .list-row-col[data-fieldname="custom_actions"],
[data-page-route*="Leave Application"] .list-row-col:has(.leave-action-btn-group),
[data-page-route*="leave-application"] .list-row-col[data-fieldname="custom_actions"],
[data-page-route*="leave-application"] .list-row-col:has(.leave-action-btn-group) {
  overflow: visible !important;
  text-overflow: clip !important;
  min-width: 210px !important;
  display: flex !important;
  align-items: center !important;
}

/* Action Button Group (Inline on the same line) */
.leave-action-btn-group {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  white-space: nowrap !important;
  flex-wrap: nowrap !important;
}

/* Base Action Button */
.btn-leave-action {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
  padding: 3px 8px !important;
  font-size: 0.725rem !important; /* 11.5px */
  font-weight: 600 !important;
  line-height: 1.2 !important;
  border-radius: 5px !important;
  height: 24px !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1) !important;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03) !important;
}

.btn-leave-action .action-btn-icon {
  flex-shrink: 0;
}

/* Approve Button */
.btn-leave-approve {
  background: #ecfdf5 !important;
  border: 1px solid #a7f3d0 !important;
  color: #065f46 !important;
}

.btn-leave-approve:hover {
  background: #059669 !important;
  border-color: #059669 !important;
  color: #ffffff !important;
  transform: translateY(-0.5px);
  box-shadow: 0 2px 5px rgba(5, 150, 105, 0.25) !important;
}

.btn-leave-approve:active {
  transform: translateY(0);
}

/* Reject Button */
.btn-leave-reject {
  background: #fef2f2 !important;
  border: 1px solid #fecaca !important;
  color: #991b1b !important;
}

.btn-leave-reject:hover {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: #ffffff !important;
  transform: translateY(-0.5px);
  box-shadow: 0 2px 5px rgba(220, 38, 38, 0.25) !important;
}

.btn-leave-reject:active {
  transform: translateY(0);
}

/* Cancel Button */
.btn-leave-cancel {
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  color: #475569 !important;
}

.btn-leave-cancel:hover {
  background: #64748b !important;
  border-color: #64748b !important;
  color: #ffffff !important;
  transform: translateY(-0.5px);
  box-shadow: 0 2px 5px rgba(100, 116, 139, 0.2) !important;
}

.btn-leave-cancel:active {
  transform: translateY(0);
}

/* Empty state indicator */
.leave-action-empty {
  font-size: 13px;
  color: #94a3b8;
  padding-left: 12px;
}

/* Dark mode adjustments for inline buttons */
[data-theme="dark"] .btn-leave-approve {
  background: rgba(5, 150, 105, 0.15) !important;
  border-color: rgba(5, 150, 105, 0.35) !important;
  color: #34d399 !important;
}

[data-theme="dark"] .btn-leave-approve:hover {
  background: #059669 !important;
  border-color: #059669 !important;
  color: #ffffff !important;
}

[data-theme="dark"] .btn-leave-reject {
  background: rgba(220, 38, 38, 0.15) !important;
  border-color: rgba(220, 38, 38, 0.35) !important;
  color: #f87171 !important;
}

[data-theme="dark"] .btn-leave-reject:hover {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: #ffffff !important;
}

[data-theme="dark"] .btn-leave-cancel {
  background: rgba(100, 116, 139, 0.15) !important;
  border-color: rgba(100, 116, 139, 0.35) !important;
  color: #cbd5e1 !important;
}

[data-theme="dark"] .btn-leave-cancel:hover {
  background: #64748b !important;
  border-color: #64748b !important;
  color: #ffffff !important;
}

[data-fieldname="custom_resume_lines"] > .control-label,
[data-fieldname="custom_skill_lines"] > .control-label,
[data-fieldname="custom_resume_lines"] .form-grid-container,
[data-fieldname="custom_skill_lines"] .form-grid-container,
[data-fieldname="custom_resume_lines"] .form-grid,
[data-fieldname="custom_skill_lines"] .form-grid,
[data-fieldname="custom_resume_lines"] .grid-heading-row,
[data-fieldname="custom_skill_lines"] .grid-heading-row,
[data-fieldname="custom_resume_lines"] .grid-body,
[data-fieldname="custom_skill_lines"] .grid-body,
[data-fieldname="custom_resume_lines"] .grid-buttons,
[data-fieldname="custom_skill_lines"] .grid-buttons,
[data-fieldname="custom_resume_lines"] .grid-custom-buttons,
[data-fieldname="custom_skill_lines"] .grid-custom-buttons,
[data-fieldname="custom_resume_lines"] .grid-footer,
[data-fieldname="custom_skill_lines"] .grid-footer,
[data-fieldname="custom_resume_lines"] .grid-empty,
[data-fieldname="custom_skill_lines"] .grid-empty,
[data-fieldname="custom_resume_lines"] .grid-add-row,
[data-fieldname="custom_skill_lines"] .grid-add-row,
[data-fieldname="custom_resume_lines"] .grid-field,
[data-fieldname="custom_skill_lines"] .grid-field {
  display: none !important;
}

.portal-edit-type-dialog .modal-dialog {
  max-width: 480px;
}

.portal-resume-line-dialog .modal-dialog {
  max-width: 520px;
  width: calc(100% - 2rem);
}

.portal-resume-line-dialog .modal-header,
.portal-resume-line-dialog .modal-footer {
  padding: 16px 20px;
}

.portal-resume-line-dialog .modal-body {
  padding: 12px 20px;
}

.portal-resume-line-dialog .modal-body .section-body {
  margin-top: 0;
  padding-top: 0;
}

.portal-resume-line-dialog .form-group {
  margin-bottom: 8px;
}

/* Frappe .ql-snow .ql-editor is 300px; inline height in employee.js wins at runtime. */
.portal-resume-line-dialog .ql-container {
  height: auto;
  max-height: none;
  overflow: visible;
}

.portal-resume-line-dialog .ql-container.ql-snow .ql-editor {
  height: 80px;
  min-height: 80px;
  max-height: none;
  overflow-y: auto;
  resize: vertical;
}

.portal-resume-line-dialog .frappe-control[data-fieldname="employee"] .control-input-wrapper,
.portal-resume-line-dialog .frappe-control[data-fieldname="employee"] input.portal-resume-employee-link-input {
  cursor: pointer !important;
}

.portal-resume-line-dialog .frappe-control[data-fieldname="employee"] input.portal-resume-employee-link-input {
  color: var(--text-color);
  background-color: var(--control-bg);
  caret-color: transparent;
  user-select: none;
}

.portal-resume-duration-inputs {
  display: grid !important;
  grid-template-columns: 1fr 28px 1fr;
  align-items: start;
  column-gap: 10px;
  width: 100%;
}

.portal-resume-duration-inputs .form-group {
  margin-bottom: 0;
}

.portal-resume-line-dialog .form-control {
  height: 36px;
  min-height: 36px;
}

/* Frappe pins the select chevron and placeholder at top: 3px, which only centers
   them against the default input height. Controls here are 36px, so center them. */
.portal-resume-line-dialog .frappe-control[data-fieldtype="Select"] .control-input .select-icon,
.portal-resume-line-dialog .frappe-control[data-fieldtype="Select"] .control-input .placeholder,
.portal-resume-line-dialog .frappe-control[data-fieldtype="Select"].form-group .select-icon,
.portal-resume-line-dialog .frappe-control[data-fieldtype="Select"].form-group .placeholder {
  top: 50%;
  transform: translateY(-50%);
}

.portal-resume-duration-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  line-height: 1;
  color: var(--text-muted);
}

@media (max-width: 767px) {
  .portal-resume-line-dialog .datepicker.active {
    max-width: calc(100vw - 24px);
  }
}

.portal-profile-empty {
  padding: 0.5rem 0 1rem;
  color: var(--text-muted);
}

.portal-resume-group {
  margin-bottom: 1.25rem;
}

.portal-resume-timeline .portal-resume-items {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  gap: 10px;
}

.portal-resume-timeline .portal-resume-items::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 0.7rem;
  bottom: 0.7rem;
  width: 2px;
  background: var(--border-color, #d1d8dd);
  pointer-events: none;
  z-index: 1;
}

.portal-resume-group-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 600;
  margin-bottom: 0.35rem;
  gap: 8px;
}

.portal-resume-timeline .portal-resume-group-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  font: inherit;
  font-weight: 600;
  color: inherit;
  text-align: left;
  min-width: 0;
}

.portal-resume-timeline .portal-resume-group-chevron {
  display: inline-flex;
  align-items: center;
  transition: transform 0.15s ease;
}

.portal-resume-timeline .portal-resume-group.is-collapsed .portal-resume-group-chevron {
  transform: rotate(-90deg);
}

.portal-resume-timeline .portal-resume-group.is-collapsed .portal-resume-items {
  display: none;
}

.portal-resume-timeline .portal-resume-add {
  background: var(--control-bg, #f3f3f3);
  border: 0;
  color: var(--text-color);
  padding: 4px 14px;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
}

.portal-resume-timeline .portal-resume-line {
  display: flex;
  flex-direction: row;
  align-items: center;
  align-self: stretch;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-height: 0;
  gap: 12px;
  position: relative;
  margin: 0;
  padding: 16px 8px 16px 28px;
  cursor: pointer;
  border: none;
  background: transparent;
}

.portal-resume-timeline .portal-resume-line::after {
  content: "";
  position: absolute;
  left: 24px;
  right: 0;
  top: 0;
  bottom: 0;
  border-radius: 8px;
  background: transparent;
  pointer-events: none;
  z-index: 0;
}

.portal-resume-timeline .portal-resume-line:hover::after {
  background: #f4f5f7;
}

.portal-skills {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.portal-skill-group {
  border: 1px solid var(--border-color, #e5e7eb);
  border-radius: 8px;
  background: var(--fg-color, #fff);
  overflow: hidden;
}

.portal-skill-group-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
}

.portal-skill-type-kicker {
  font-weight: 500;
  color: var(--text-color);
}

.portal-skill-type-name {
  font-weight: 700;
}

.portal-skill-type-kicker button.portal-skill-type-name {
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
}

.portal-skill-add {
  flex-shrink: 0;
  background: var(--control-bg, #f3f3f3);
  border: 1px solid var(--border-color, #e5e7eb);
  color: var(--text-color);
  padding: 4px 12px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
}

.portal-skills-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 13px;
}

.portal-skills-table th,
.portal-skills-table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--border-color, #e5e7eb);
  text-align: left;
  vertical-align: middle;
  overflow: hidden;
  text-overflow: ellipsis;
}

.portal-skills-table th:last-child,
.portal-skills-table td:last-child {
  width: 72px;
  text-align: center;
  padding-left: 8px;
  padding-right: 8px;
}

.portal-skills-table th {
  background: #f4f5f6;
  font-weight: 500;
  font-size: 12px;
  color: var(--text-muted);
}

.portal-skills-table tbody tr.portal-skill-line {
  cursor: pointer;
}

.portal-skills-table tbody tr:hover td {
  background: #f9fafb;
}

.portal-skills-table tbody tr:last-child td {
  border-bottom: 0;
}

.portal-skills-table th:nth-child(4),
.portal-skills-table td:nth-child(4) {
  width: 28%;
}

.portal-skill-name {
  font-weight: 700;
  color: var(--text-color);
}

.portal-resume-timeline .portal-resume-dot {
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 10px;
  margin: 0;
  border-radius: 50%;
  background: var(--green-500, #59ba8b);
  box-shadow: 0 0 0 2px var(--fg-color, #fff);
  flex-shrink: 0;
  z-index: 2;
}

.portal-resume-timeline .portal-resume-body,
.portal-resume-timeline .portal-resume-delete {
  position: relative;
  z-index: 1;
}

.portal-resume-timeline .portal-resume-body {
  flex: 1;
  min-width: 0;
}

.portal-resume-timeline .portal-resume-dates {
  font-size: 12px;
  font-weight: 400;
  color: var(--text-muted);
}

.portal-resume-timeline .portal-resume-title {
  font-size: 14px;
  font-weight: 600;
  margin-top: 2px;
}

.portal-resume-timeline .portal-resume-desc {
  color: var(--text-muted);
  font-size: 13px;
  margin-top: 2px;
}

.portal-resume-timeline .portal-resume-desc:empty {
  display: none;
}

.portal-resume-timeline .portal-resume-desc .ql-container,
.portal-resume-timeline .portal-resume-desc .ql-editor {
  min-height: 0;
  height: auto;
  padding: 0;
  border: 0;
}

.portal-resume-desc p {
  margin: 0;
}

.portal-resume-desc ul,
.portal-resume-desc ol {
  margin: 0.25rem 0 0 1.25rem;
  padding: 0;
}

.portal-resume-timeline .portal-resume-delete {
  flex-shrink: 0;
  background: transparent;
  border: 0;
  padding: 0;
  opacity: 1;
  color: #dc2626;
}

.portal-resume-timeline .portal-resume-delete svg {
  stroke: currentColor;
  width: 18px;
  height: 18px;
}

.portal-resume-line-dialog [data-fieldname="certification"] .portal-cert-search-more {
  display: none !important;
}

.portal-certification-search .modal-dialog {
  max-width: min(1100px, calc(100vw - 2rem));
}

.portal-certification-search [data-fieldname="body"] {
  margin-bottom: 0;
}

.portal-certification-toolbar {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border-color, #e5e7eb);
}

.portal-cert-search-group {
  display: flex;
  align-items: stretch;
  width: 100%;
  height: 32px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--border-color, #d1d5db);
  border-radius: 6px;
}

.portal-certification-search .portal-cert-search-group .portal-cert-txt {
  flex: 1;
  min-width: 0;
  height: 30px;
  border: 0;
  box-shadow: none;
  background-color: transparent;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' viewBox='0 0 24 24'><circle cx='11' cy='11' r='7'/><path d='M20 20l-3.5-3.5'/></svg>");
  background-repeat: no-repeat;
  background-position: 10px center;
  background-size: 14px;
  padding: 4px 8px 4px 32px;
}

.portal-certification-search .portal-cert-search-group .portal-cert-txt:focus {
  box-shadow: none;
}

.portal-certification-search-meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
  padding-top: 4px;
  color: var(--text-muted);
  font-size: var(--text-sm);
  white-space: nowrap;
}

.portal-cert-nav {
  width: 28px;
  height: 28px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
}

.portal-cert-nav:disabled {
  background: var(--control-bg, #f3f3f3);
}

.portal-certification-table-wrap {
  overflow-x: auto;
}

.portal-certification-table {
  margin-bottom: 0;
  font-size: var(--text-sm);
}

.portal-certification-table th,
.portal-certification-table td {
  white-space: nowrap;
  vertical-align: middle;
}

.portal-certification-row {
  cursor: pointer;
}

.portal-certification-row:hover {
  background: var(--subtle-fg, var(--control-bg));
}

.portal-certification-title {
  font-weight: 600;
}

.portal-cert-trophy {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-left: 6px;
  background: #98a2b3;
  vertical-align: -1px;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M7 4h10v2h3a2 2 0 0 1 2 2v1a5 5 0 0 1-5 5h-1.1A5 5 0 0 1 12 17a5 5 0 0 1-3.9-3H7a5 5 0 0 1-5-5V8a2 2 0 0 1 2-2h3V4zm2 2v1h6V6H9zM8 19h8v2H8z'/></svg>")
    center / contain no-repeat;
}

.portal-cert-person {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
}

.portal-cert-avatar,
.portal-cert-avatar-letter {
  display: inline-flex;
  box-sizing: border-box;
  width: 22px;
  min-width: 22px;
  height: 22px;
  margin: 0;
  border-radius: 4px;
  object-fit: cover;
  flex-shrink: 0;
}

.portal-cert-avatar-letter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
}

.portal-skill-progress {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.portal-skill-bar {
  flex: 1;
  height: 10px;
  margin: 0;
  background: #e5e7eb;
  border-radius: 999px;
  overflow: hidden;
  min-width: 4rem;
}

.portal-skill-bar span {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: #ea580c;
}

.portal-skill-pct {
  min-width: 2.75rem;
  font-size: 12px;
  color: var(--text-muted);
  text-align: right;
  white-space: nowrap;
}

.portal-skill-delete {
  background: transparent;
  border: 0;
  padding: 4px;
  line-height: 1;
  color: #dc2626;
}

.portal-skill-delete svg {
  stroke: currentColor;
  width: 16px;
  height: 16px;
}

.portal-skill-dialog .portal-skill-type-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 2px;
}

.portal-skill-dialog .portal-skill-type-option {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-weight: 500;
  cursor: pointer;
  color: inherit;
}

.portal-skill-dialog .portal-skill-type-option input {
  margin: 0;
  accent-color: var(--primary, #171717);
}

.portal-skill-dialog .portal-skill-level-pair {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}

.portal-skill-dialog .portal-skill-level-pair .frappe-control[data-fieldname="skill_level"] {
  width: 100%;
  max-width: 100%;
  margin-bottom: 0;
}

.portal-skill-dialog .portal-skill-level-pair .frappe-control[data-fieldname="skill_level_progress_html"] {
  width: 100%;
  margin-bottom: 8px;
}

.portal-skill-dialog .portal-skill-progress-wrap {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  height: 24px;
}

.portal-skill-dialog .portal-skill-progress-bar {
  flex: 1;
  height: 8px;
  background: var(--control-bg, #e5e7eb);
  border-radius: 999px;
  overflow: hidden;
}

.portal-skill-dialog .portal-skill-progress-bar span {
  display: block;
  height: 100%;
  background: var(--primary, #171717);
}

.portal-skill-dialog .portal-skill-progress-pct {
  min-width: 2.6rem;
  font-size: 12px;
  color: var(--text-muted);
  text-align: right;
}

.portal-skill-dialog .btn-modal-secondary {
  background-color: #171717 !important;
  border-color: #171717 !important;
  color: #fff !important;
  opacity: 1 !important;
}

.portal-skill-dialog .frappe-control[data-fieldname="skill_type"],
.portal-skill-dialog .frappe-control[data-fieldname="level_progress"] {
  display: none !important;
}

.portal-skill-dialog .form-control {
  height: 36px;
  min-height: 36px;
}

.portal-skill-dialog .frappe-control.has-error .form-control,
.portal-skill-dialog .frappe-control.has-error input.form-control {
  background-color: var(--control-bg);
  box-shadow: none;
}

.portal-skill-dialog .frappe-control.has-error .form-control:focus,
.portal-skill-dialog .frappe-control.has-error input.form-control:focus {
  background-color: var(--control-bg);
  box-shadow: none;
}

.portal-skill-type-grid .grid-add-multiple-rows {
  display: none !important;
}

.portal-skill-type-grid .grid-heading-row .col {
  font-weight: 500;
  font-size: 12px;
  color: var(--text-muted, #9ca3af);
}

/* Trailing gear/edit cell is a bare Bootstrap .col (flex: 1 0 0%), so it grows
   and eats the row. Frappe only caps it in its horizontal-scroll variant. */
.portal-skill-type-grid .grid-row > .data-row:not(.filter-row) > .col:last-child {
  flex: 0 0 40px !important;
  width: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;
}

/* Data Level Name otherwise flex-grows and leaves Progress/Default as stubs. */
.portal-skill-type-grid .grid-static-col[data-fieldname="level_name"] {
  flex: 3 1 0% !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
}

.portal-skill-type-grid .grid-heading-row .grid-static-col[data-fieldname="level_progress"],
.portal-skill-type-grid .grid-static-col[data-fieldname="level_progress"] {
  flex: 6 1 0% !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
}

.portal-skill-type-grid .grid-static-col[data-fieldname="skill_name"].portal-skill-name-invalid {
  box-shadow: inset 0 0 0 1px var(--error-border, #e03636);
}

.portal-skill-type-grid .grid-heading-row .grid-static-col[data-fieldname="level_progress"],
.portal-skill-type-grid .grid-heading-row .grid-static-col[data-fieldname="level_progress"].text-right {
  display: flex !important;
  align-items: center;
  justify-content: flex-start !important;
  text-align: left !important;
}

.portal-skill-type-grid .form-grid .grid-heading-row .grid-static-col[data-fieldname="level_progress"] > .static-area,
.portal-skill-type-grid .form-grid .grid-heading-row .grid-static-col[data-fieldname="level_progress"].text-right > .static-area {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  text-align: left !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  overflow: visible !important;
}

.portal-skill-type-grid .form-grid .grid-body .grid-static-col[data-fieldname="level_progress"],
.portal-skill-type-grid .form-grid .editable-row .grid-static-col[data-fieldname="level_progress"] {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 4.5rem;
  align-items: center;
  column-gap: 8px;
  justify-content: stretch !important;
  text-align: left !important;
  padding: var(--grid-padding, 8px) !important;
  box-sizing: border-box;
  overflow: hidden;
  min-width: 0;
}

/* Body cells only. Unscoped, this hides heading .static-area and the Progress title vanishes. */
.portal-skill-type-grid .form-grid .grid-body .grid-static-col[data-fieldname="level_progress"] > :not(.portal-skill-type-progress-bar):not(.portal-skill-type-progress-value) {
  display: none !important;
}

.portal-skill-type-grid .grid-static-col[data-fieldname="level_progress"] .portal-skill-type-progress-bar {
  grid-column: 1;
  min-width: 0;
  width: auto;
  max-width: 100%;
  height: 8px;
  background: var(--control-bg, #e5e7eb);
  border-radius: 999px;
  overflow: hidden;
}

.portal-skill-type-grid .grid-static-col[data-fieldname="level_progress"] .portal-skill-type-progress-bar span {
  display: block;
  height: 100%;
}

.portal-skill-type-grid .grid-static-col[data-fieldname="level_progress"] .portal-skill-type-progress-value {
  grid-column: 2;
  width: 4.5rem;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  height: 100%;
  cursor: text;
  z-index: 2;
}

.portal-skill-type-grid .grid-static-col[data-fieldname="level_progress"] .portal-skill-type-progress-input {
  flex: 0 0 2.5rem;
  width: 2.5rem;
  min-width: 2.5rem;
  height: 28px;
  margin: 0;
  padding: 0 2px;
  border: none;
  outline: none;
  box-shadow: none;
  background: transparent;
  appearance: none;
  -webkit-appearance: none;
  text-align: right;
  line-height: 28px;
  font: inherit;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  color: inherit;
  cursor: text;
  pointer-events: auto;
}

.portal-skill-type-grid .grid-static-col[data-fieldname="level_progress"] .portal-skill-type-progress-suffix {
  flex: 0 0 auto;
  line-height: 20px;
}

.portal-skill-type-grid .grid-heading-row .grid-static-col[data-fieldname="default_level"],
.portal-skill-type-grid .grid-static-col[data-fieldname="default_level"] {
  display: flex !important;
  align-items: center;
  justify-content: center;
  text-align: center;
  flex: 0 0 100px !important;
  width: 100px !important;
  min-width: 100px !important;
  max-width: 100px !important;
}

.portal-skill-type-grid .grid-heading-row .grid-static-col[data-fieldname="default_level"] .static-area {
  width: 100%;
  text-align: center;
  white-space: nowrap;
  overflow: visible;
  text-overflow: unset;
}

.portal-skill-type-grid .grid-heading-row .grid-static-col[data-fieldname="default_level"] .field-area {
  display: none !important;
}

.portal-skill-type-grid .grid-static-col[data-fieldname="default_level"] .switch-text,
.portal-skill-type-grid .grid-static-col[data-fieldname="default_level"] .help,
.portal-skill-type-grid .grid-static-col[data-fieldname="default_level"] .help-box {
  display: none !important;
}

.portal-skill-type-grid .grid-static-col[data-fieldname="default_level"] .field-area,
.portal-skill-type-grid .grid-static-col[data-fieldname="default_level"] .frappe-control,
.portal-skill-type-grid .grid-static-col[data-fieldname="default_level"] .form-group {
  display: flex !important;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

.portal-skill-type-grid .grid-static-col[data-fieldname="default_level"] .switch-control {
  position: static;
  transform: none;
  width: max-content !important;
  max-width: none;
  justify-content: center !important;
  gap: 0 !important;
  padding: 0;
  margin: 0;
}

/* Native is 26×16 / thumb 12 / travel 10. Modest bump; travel = 36 − 2·2 − 18. */
.portal-skill-type-grid .grid-static-col[data-fieldname="default_level"] .switch-control .switch-visual {
  width: 36px !important;
  height: 22px !important;
}

.portal-skill-type-grid .grid-static-col[data-fieldname="default_level"] .switch-control .switch-thumb {
  width: 18px !important;
  height: 18px !important;
  transform: translateX(0) !important;
}

.portal-skill-type-grid .grid-static-col[data-fieldname="default_level"] .switch-control .input-area:has(input:checked) ~ .switch-visual .switch-thumb {
  transform: translateX(14px) !important;
}

/* ==========================================================================
   Home Page - Mobile Horizontal Padding & Content Width Optimization
   ========================================================================== */
@media (max-width: 991.98px) {
  /* Match Blog page margin exactly: 12px */
  body[data-path="home"] .section > .container,
  body[data-path="home"] main > .container,
  [data-path="home"] .section > .container,
  [data-path="home"] main > .container,
  #page-test-page .section > .container,
  #page-test-page .container {
    padding-left: 12px !important;
    padding-right: 12px !important;
    max-width: 100% !important;
  }

  /* Eliminate nested inner container padding to prevent double-guttering */
  body[data-path="home"] .container .container,
  body[data-path="home"] .workspace-portal-section .container,
  body[data-path="home"] .blog-latest-section .container,
  [data-path="home"] .container .container,
  [data-path="home"] .workspace-portal-section .container,
  [data-path="home"] .blog-latest-section .container,
  #page-test-page .container .container,
  body[data-path="home"] .container.px-3,
  [data-path="home"] .container.px-3,
  #page-test-page .container.px-3 {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
  }

  /* Dashboard Panel spacing */
  .workspace-portal-section {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }

  .workspace-dashboard-panel {
    padding: 16px 12px !important;
    border-radius: 14px !important;
  }

  .workspace-grid {
    gap: 10px !important;
  }

  .workspace-item {
    padding: 14px 8px 12px !important;
    border-radius: 12px !important;
  }

  /* Latest Articles section on Home: align cards to exact 12px margin */
  .blog-latest-section {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .blog-latest-section .container.px-3 {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .blog-latest-section .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .blog-latest-section .col-12 {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Align top navbar gutters to 12px */
  .portal-website-navbar .container,
  .navbar .container {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}

@media (max-width: 575.98px) {
  /* Match Blog page phone margin exactly: 10px */
  body[data-path="home"] .section > .container,
  body[data-path="home"] main > .container,
  [data-path="home"] .section > .container,
  [data-path="home"] main > .container,
  #page-test-page .section > .container,
  #page-test-page .container {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .portal-website-navbar .container,
  .navbar .container {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .workspace-dashboard-panel {
    padding: 12px 10px !important;
    border-radius: 12px !important;
  }

  .workspace-grid {
    gap: 8px !important;
  }
}

/* ==========================================================================
   Blog Pages (List & Detail) - Mobile Padding & Layout Optimization
   ========================================================================== */
/* Hide empty page breadcrumbs and empty page header wrappers across all pages */
.page-breadcrumbs:empty,
.page-header-wrapper:empty,
.page-header:empty,
.page-header-actions-block:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
}

@media (max-width: 991.98px) {
  /* Prevent large Frappe core wrapper margins on blog pages */
  body[data-path="blog"] .page-content-wrapper,
  body[data-path*="blog"] .page-content-wrapper,
  #page-portal .page-content-wrapper,
  div[data-doctype="Blog Post"] .page-content-wrapper,
  div[data-path="blog"] .page-content-wrapper {
    margin-top: 0.5rem !important;
    margin-bottom: 1.5rem !important;
  }
}

@media (max-width: 767.98px) {
  /* Reduce side gutters on Blog pages to maximize content real-estate */
  #page-portal .container,
  [data-path="blog"] .container,
  [data-doctype="Blog Post"] .container,
  body[data-path="blog"] .page-content-wrapper .container,
  body[data-path*="blog"] .page-content-wrapper .container,
  .page-content-wrapper:has(.blog-list-wrapper) .container,
  .page-content-wrapper:has(.blog-detail-wrapper) .container,
  .blog-list-wrapper,
  .blog-detail-wrapper {
    padding-left: 12px !important;
    padding-right: 12px !important;
    max-width: 100% !important;
  }

  /* Compact top spacing on blog listing page - eliminates large empty void */
  .blog-list-wrapper {
    padding-top: 0.75rem !important;
    padding-bottom: 2rem !important;
  }

  .blog-list-hero {
    padding-bottom: 1.25rem !important;
    margin-bottom: 1.25rem !important;
  }

  .blog-list-title {
    font-size: 1.85rem !important;
    line-height: 1.2 !important;
    margin-bottom: 0.35rem !important;
  }

  .blog-list-intro {
    font-size: 0.95rem !important;
    line-height: 1.45 !important;
  }

  .category-chips-bar {
    gap: 0.45rem !important;
    margin-top: 0.85rem !important;
  }

  .category-chip {
    padding: 0.35rem 0.85rem !important;
    font-size: 0.8125rem !important;
  }

  /* Blog Cards on mobile list */
  .blog-list.result {
    --bs-gutter-x: 0.85rem !important;
    --bs-gutter-y: 1rem !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .blog-card,
  .blog-card-col {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-bottom: 1rem !important;
  }

  .blog-card .card,
  .blog-card-item {
    border-radius: 14px !important;
  }

  .blog-card .card-img-top,
  .blog-card-media-wrapper {
    height: 195px !important;
    min-height: 195px !important;
    max-height: 195px !important;
    border-top-left-radius: 14px !important;
    border-top-right-radius: 14px !important;
  }

  .blog-card .card-img-top img,
  .blog-card-media-wrapper img,
  .blog-card-media {
    height: 195px !important;
    min-height: 195px !important;
    max-height: 195px !important;
  }

  /* Single Blog Post Detail Page */
  .blog-detail-wrapper {
    padding-top: 0.75rem !important;
    padding-bottom: 2rem !important;
  }

  .blog-main-column .blog-header {
    margin-bottom: 1.25rem !important;
  }

  .blog-main-column .blog-breadcrumbs {
    margin-bottom: 0.5rem !important;
    font-size: 0.8125rem !important;
  }

  .blog-main-column .blog-title {
    font-size: 1.7rem !important;
    line-height: 1.25 !important;
    margin-bottom: 0.65rem !important;
  }

  .blog-main-column .blog-intro {
    font-size: 1rem !important;
    line-height: 1.55 !important;
    margin-bottom: 0.75rem !important;
  }

  .blog-featured-image-wrapper {
    max-height: 280px !important;
    border-radius: 12px !important;
    margin-bottom: 1.25rem !important;
  }

  .blog-featured-image {
    max-height: 280px !important;
    object-fit: cover !important;
  }

  .blog-main-column .blog-body-content {
    font-size: 1rem !important;
    line-height: 1.75 !important;
  }

  .blog-sidebar-sticky {
    margin-top: 2rem !important;
  }

  .sidebar-widget {
    border-radius: 12px !important;
    padding: 1rem !important;
  }
}

@media (max-width: 575.98px) {
  #page-portal .container,
  [data-path="blog"] .container,
  [data-doctype="Blog Post"] .container,
  body[data-path="blog"] .page-content-wrapper .container,
  body[data-path*="blog"] .page-content-wrapper .container,
  .page-content-wrapper:has(.blog-list-wrapper) .container,
  .page-content-wrapper:has(.blog-detail-wrapper) .container {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .blog-list-wrapper,
  .blog-detail-wrapper {
    padding-top: 0.5rem !important;
  }

  .blog-card .card-img-top,
  .blog-card-media-wrapper,
  .blog-card .card-img-top img,
  .blog-card-media-wrapper img,
  .blog-card-media {
    height: 180px !important;
    min-height: 180px !important;
    max-height: 180px !important;
  }
}

/* IN-791: hide unused Desk views and collaboration chrome on all modules.
   Keep Edit and Print action icons. */
.custom-btn-group [data-view="Report"],
.custom-btn-group [data-view="Kanban"] {
	display: none !important;
}

.frappe-list .list-row-like,
.frappe-list .list-liked-by-me,
.frappe-list .comment-count,
.frappe-list .list-row-activity .mx-2 {
	display: none !important;
}

.form-sidebar .liked-by,
.form-sidebar .form-assignments,
.form-sidebar .form-attachments,
.form-sidebar .form-tags,
.form-sidebar .form-shared,
.comment-box {
	display: none !important;
}
