:root{--dms-blue:#087ff5;--dms-navy:#0c294d;--dms-surface:#f2f6fa;--dms-line:#d9e3ef}.proits-shell{background:var(--dms-surface);min-height:100vh}.proits-shell .main-sidebar{width:250px;bottom:0;position:fixed;z-index:1040}.proits-shell .main-header,.proits-shell .content-wrapper,.proits-shell .main-footer{margin-left:250px}.proits-topbar{height:48px;left:250px;right:0;top:0;position:fixed;z-index:1035;border-bottom:1px solid var(--dms-line);box-shadow:0 2px 8px rgba(22,48,77,.08)}.proits-brand-link{height:48px;padding:6px 12px;display:flex}.proits-sidebar-logo{height:36px;width:142px;object-fit:contain;object-position:left}.proits-shell .content-wrapper{padding-top:68px;min-height:calc(100vh - 40px);background:var(--dms-surface)}.proits-shell .content{padding:18px}.proits-shell .main-footer{padding:10px 18px;border-top:1px solid var(--dms-line);background:#fff}.proits-sidebar .nav-link{border-radius:6px;margin:3px 8px;padding:.55rem .7rem;color:#243a56}.proits-sidebar .nav-link.active{background:var(--dms-blue);color:#fff}.proits-sidebar .nav-link.active .nav-icon{color:#fff}.proits-sidebar .nav-icon{color:var(--dms-blue);width:1.4rem}.proits-sidebar .nav-header{font-size:.7rem;color:#60758d;font-weight:700;padding:1rem .9rem .35rem}.page-title,.content h1.h3{color:var(--dms-navy);font-weight:700}.card{border:1px solid var(--dms-line);border-radius:8px;box-shadow:0 2px 8px rgba(25,55,85,.06)}.card-header{background:#fff;border-bottom:1px solid var(--dms-line);font-weight:600}.btn{border-radius:5px;font-weight:600}.btn i{margin-right:.35rem}.nav-tabs{border-bottom-color:var(--dms-line)}.nav-tabs .nav-link{color:#42617f;font-weight:600}.nav-tabs .nav-link.active{border-color:var(--dms-line) var(--dms-line) #fff;color:var(--dms-blue)}.table thead th{border-top:0;color:#294661;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.dms-page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1rem}.dms-page-header h1{margin:0;color:var(--dms-navy);font-size:1.6rem;font-weight:700}.dms-page-header p{margin:.25rem 0 0;color:#60758d}@media(max-width:767.98px){.proits-shell .main-header,.proits-shell .content-wrapper,.proits-shell .main-footer{margin-left:0}.proits-topbar{left:0}.proits-shell .content{padding:12px}.dms-page-header{display:block}}
/* Shell alignment: the navigation, application bar, content and footer use one fixed frame. */
html, body, .wrapper { min-height: 100%; }
.proits-shell .main-sidebar { position: fixed !important; top: 0 !important; bottom: 0 !important; height: 100vh !important; width: 250px !important; overflow-y: auto; overflow-x: hidden; }
.proits-shell .main-header { position: fixed !important; top: 0 !important; left: 250px !important; right: 0 !important; width: auto !important; height: 48px !important; margin-left: 0 !important; z-index: 1040 !important; }
.proits-shell .proits-topbar { left: 250px !important; right: 0 !important; width: auto !important; margin-left: 0 !important; }
.proits-shell .content-wrapper { margin-left: 250px !important; min-height: 100vh !important; padding: 68px 0 64px !important; }
.proits-shell .main-footer { position: fixed !important; left: 250px !important; right: 0 !important; bottom: 0 !important; margin-left: 0 !important; min-height: 40px !important; z-index: 1035 !important; }
.dms-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.dms-page-header h1 { margin: 0; color: var(--dms-navy); font-size: 1.7rem; font-weight: 700; }
.dms-page-header p { margin: 5px 0 0; color: #607891; }
.dms-table-card { border: 0; border-radius: 8px; box-shadow: 0 1px 4px rgba(17, 50, 82, .14); overflow: hidden; }
.dms-table-card .card-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; background: #fff; border-bottom: 1px solid var(--dms-line); }
.dms-table-card .table { margin-bottom: 0; }
.dms-table-card .table th { border-top: 0; background: #f8fafc; color: #264666; font-size: .78rem; text-transform: uppercase; letter-spacing: .03em; }
.dms-table-card .table td, .dms-table-card .table th { vertical-align: middle; padding: .82rem 1rem; }
.dms-actions { display: inline-flex; gap: 6px; white-space: nowrap; }
.dms-empty { padding: 46px 18px; text-align: center; color: #718399; }
@media (max-width: 767.98px) {
  .proits-shell .main-header, .proits-shell .proits-topbar, .proits-shell .main-footer { left: 0 !important; }
  .proits-shell .content-wrapper { margin-left: 0 !important; }
}
/* Shared management-page action standard. */
.dms-page-header .btn, .dms-table-card .btn, .dms-form-actions .btn { border-radius: 5px; font-weight: 600; box-shadow: none; }
.dms-page-header .btn i, .dms-table-card .btn i, .dms-form-actions .btn i { min-width: 14px; text-align: center; }
.dms-btn-add, .dms-btn-save, .dms-actions .btn-primary { background: #087ff5; border-color: #087ff5; color: #fff; }
.dms-btn-add:hover, .dms-btn-save:hover, .dms-actions .btn-primary:hover { background: #066aca; border-color: #066aca; color: #fff; }
.dms-btn-enable { color: #198754; border-color: #198754; background: #fff; }
.dms-btn-enable:hover { color: #fff; background: #198754; }
.dms-btn-disable { color: #b7790d; border-color: #d69e2e; background: #fff; }
.dms-btn-disable:hover { color: #fff; background: #d69e2e; }
.dms-btn-delete { color: #c53030; border-color: #e53e3e; background: #fff; }
.dms-btn-delete:hover { color: #fff; background: #dc3545; }
.dms-btn-cancel, .dms-btn-back { color: #4d6276; border-color: #b9c8d6; background: #fff; }
.dms-btn-cancel:hover, .dms-btn-back:hover { color: #1e3d5b; background: #edf2f7; }
.dms-form-actions { display: flex; align-items: center; gap: 8px; padding-top: 10px; border-top: 1px solid var(--dms-line); }
.dms-form-actions .dms-btn-back { margin-right: auto; }
.dms-confirm-delete { color: #a72828; font-weight: 600; }/* Navigation grouping and resilient management tables. */
.proits-sidebar .nav-divider { border-bottom: 1px solid #d9e3ef; padding-bottom: 4px; margin-bottom: 4px; }
.proits-sidebar .nav-treeview .nav-link.active { background: #e7f1ff; color: #086fda; }
.dms-table-card .card-header > .btn { margin-left: auto; }
.content-wrapper .card-outline { background:#fff; }
/* Keep all management action controls in the header's right edge. */
.dms-table-card .card-header { gap: 12px; }
.dms-table-card .card-header .card-title { margin: 0; }
.dms-table-card .card-header > .btn, .dms-table-card .card-header > form { margin-left: auto; }
/* Open groups indicate navigation structure only; only a selected child receives the active blue treatment. */
.proits-sidebar .nav-item.menu-open > .nav-link { background: transparent !important; color: #243a56 !important; }
.proits-sidebar .nav-item.menu-open > .nav-link .nav-icon { color: var(--dms-blue) !important; }
.proits-sidebar .nav-treeview .nav-link.active { background: var(--dms-blue) !important; color: #fff !important; }
.proits-sidebar .nav-treeview .nav-link.active .nav-icon { color: #fff !important; }
/* Top-bar profile photo remains an avatar, never a page image. */
.proits-topbar .proits-user-avatar {
  display: inline-flex;
  width: 32px;
  height: 32px;
  min-width: 32px;
  max-width: 32px;
  border-radius: 50%;
  vertical-align: middle;
  overflow: hidden;
  align-items: center;
  justify-content: center;
  object-fit: cover;
  object-position: center;
}
.proits-topbar img.proits-user-avatar {
  display: inline-block;
  width: 32px !important;
  height: 32px !important;
  max-height: 32px !important;
  object-fit: cover;
  object-position: center;
}
/* Interactive profile-photo crop preview. */
.profile-current-photo { width: 72px; height: 72px; object-fit: cover; object-position: center; }
.profile-cropper { margin-top: 10px; padding: 12px; max-width: 440px; border: 1px solid var(--dms-line); border-radius: 6px; background: #f8fafc; }
.profile-crop-stage { position: relative; display: inline-block; max-width: 100%; line-height: 0; touch-action: none; }
.profile-crop-stage img { display: block; max-width: 100%; max-height: 320px; width: auto; height: auto; }
.profile-crop-selection { position: absolute; box-sizing: border-box; border: 3px solid #087ff5; background: rgba(8,127,245,.12); box-shadow: 0 0 0 200vmax rgba(11,31,53,.38); cursor: move; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 18px; line-height: 1; }
.profile-crop-selection::after { content: ''; position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.8); }
.profile-crop-selection i { z-index: 1; text-shadow: 0 1px 3px #102a43; }
.profile-crop-handle { position: absolute; width: 14px; height: 14px; border: 2px solid #fff; border-radius: 2px; background: #087ff5; z-index: 2; }
.profile-crop-handle.nw { top: -8px; left: -8px; cursor: nwse-resize; }
.profile-crop-handle.ne { top: -8px; right: -8px; cursor: nesw-resize; }
.profile-crop-handle.se { right: -8px; bottom: -8px; cursor: nwse-resize; }
.profile-crop-handle.sw { bottom: -8px; left: -8px; cursor: nesw-resize; }
.profile-crop-selection.is-locked { cursor: not-allowed; border-color: #198754; background: rgba(25,135,84,.14); }
.profile-crop-selection.is-locked .profile-crop-handle { display: none; }

.dms-publish-summary{display:grid;gap:4px;padding:12px 14px;margin-bottom:14px;border:1px solid #cfe1f2;border-radius:9px;background:#f3f9ff;color:#315674}.dms-publish-summary strong{color:#052b52}.dms-publish-summary span{font-size:13px}

/* Keep column choices outside short table cards while retaining horizontal table scrolling. */
.dms-columns-host { overflow: visible !important; }
.dms-table-tools .dropdown-menu { max-height: min(420px, 65vh); overflow-y: auto; min-width: 240px; }
.dms-table-tools .dropdown-item { white-space: normal; }

/* Keep AdminLTE's collapsed rail and our fixed application frame aligned. */
.proits-shell .proits-brand-link { width:100% !important; justify-content:center; align-items:center; padding:2px 6px; }
.proits-shell .proits-sidebar-logo { width:238px; max-width:100%; height:44px; object-position:center; }
.proits-shell .proits-sidebar-icon { display:none; width:38px; height:38px; object-fit:contain; }
@media (min-width:992px) {
 .proits-shell.sidebar-collapse .main-sidebar, .proits-shell.sidebar-collapse .main-sidebar:hover { width:4.6rem !important; }
 .proits-shell.sidebar-collapse .main-header, .proits-shell.sidebar-collapse .proits-topbar, .proits-shell.sidebar-collapse .main-footer { left:4.6rem !important; }
 .proits-shell.sidebar-collapse .content-wrapper { margin-left:4.6rem !important; }
 .proits-shell.sidebar-collapse .proits-sidebar-logo { display:none; }
 .proits-shell.sidebar-collapse .proits-sidebar-icon { display:block; }
 .proits-shell.sidebar-collapse .main-sidebar .nav-link p, .proits-shell.sidebar-collapse .main-sidebar .nav-header, .proits-shell.sidebar-collapse .main-sidebar .nav-treeview { display:none !important; }
 .proits-shell.sidebar-collapse .main-sidebar .nav-link { width:auto !important; display:flex; justify-content:center; padding:.6rem; margin:3px 4px; }
 .proits-shell.sidebar-collapse .main-sidebar .nav-icon { margin:0; }
}
@media (max-width:991.98px) {
 .proits-shell .main-header, .proits-shell .proits-topbar, .proits-shell .main-footer { left:0 !important; }
 .proits-shell .content-wrapper { margin-left:0 !important; }
}

/* Branding must fit the sign-in panel, regardless of uploaded image resolution. */
.login-page .login-box { width:360px; max-width:calc(100vw - 32px); }
.login-page .login-logo { display:flex; justify-content:center; align-items:center; margin:0 0 20px; width:100%; }
.login-page .proits-auth-logo { display:block; width:100%; max-width:320px; height:auto; max-height:110px; object-fit:contain; }
@media(max-height:650px) { .login-page { justify-content:flex-start; padding:24px 0; } }

/* Fixed topbar uses left for its rail offset; AdminLTE must not add another margin. */
body.proits-shell.sidebar-mini.sidebar-collapse .main-header.proits-topbar { margin-left:0 !important; }
.dms-share-count[data-link-count].has-links { background:#d8f5e9; color:#078653; }
.dms-table-header > span { min-width:0; text-align:center; white-space:normal; }
