/* =====================================================================
   NodeSpace WorkNET - classic portal theme (shared with the OMT portal)
   Colors come from the theme variables below; each user (or the admin
   default) picks a theme, which sets a class on <body>.
   ===================================================================== */
:root, .theme-nodespace {
    --c-primary: #1b385d; --c-primary-dark: #122741; --c-primary-light: #2b5180; --c-accent: #318fff;
    --c-head-from: #f5f9fe; --c-head-to: #dfeaf8; --c-head-text: #1b385d; --c-border: #c3d3e6;
    --c-link: #1665c1; --c-page-bg: #eaeff5; --c-tint: #e8f1fd; --c-button: #1f74d6; --c-button-dark: #165cad;
}
.theme-classic {
    --c-primary: #2a5a8c; --c-primary-dark: #1c4470; --c-primary-light: #4a7fb5; --c-accent: #f0a30a;
    --c-head-from: #f4f8fd; --c-head-to: #d3e3f4; --c-head-text: #1c4470; --c-border: #a9c2dd;
    --c-link: #1a56a0; --c-page-bg: #eef3f9; --c-tint: #e4eef9; --c-button: #2a6db3; --c-button-dark: #1f5590;
}
.theme-slate {
    --c-primary: #3d4650; --c-primary-dark: #2a3138; --c-primary-light: #59646f; --c-accent: #7aa2d6;
    --c-head-from: #f7f8f9; --c-head-to: #e3e6e9; --c-head-text: #2a3138; --c-border: #c7cdd3;
    --c-link: #2d5c8c; --c-page-bg: #eceef0; --c-tint: #edf0f3; --c-button: #3e6d9e; --c-button-dark: #2f5680;
}
.theme-forest {
    --c-primary: #2f5d3a; --c-primary-dark: #21432a; --c-primary-light: #44794f; --c-accent: #d1ab3f;
    --c-head-from: #f5faf5; --c-head-to: #dcebdd; --c-head-text: #21432a; --c-border: #b7d0bb;
    --c-link: #2b6a3b; --c-page-bg: #edf2ed; --c-tint: #e6f1e7; --c-button: #357a46; --c-button-dark: #285e35;
}
.theme-burgundy {
    --c-primary: #6b2234; --c-primary-dark: #4c1724; --c-primary-light: #8a3449; --c-accent: #d8a628;
    --c-head-from: #fcf6f7; --c-head-to: #f0dde2; --c-head-text: #4c1724; --c-border: #dbbcc4;
    --c-link: #8a2840; --c-page-bg: #f4eff0; --c-tint: #f6e8eb; --c-button: #8a2840; --c-button-dark: #6b1f32;
}

body.omt-portal { background: var(--c-page-bg); font-family: "Segoe UI", Tahoma, Verdana, Arial, sans-serif; font-size: 13px; color: #2b3138; }
.omt-portal a { color: var(--c-link); }
.omt-portal .btn-primary { background: var(--c-button); border-color: var(--c-button-dark); }
.omt-portal .btn-primary:hover, .omt-portal .btn-primary:focus, .omt-portal .btn-primary:active { background: var(--c-button-dark); border-color: var(--c-button-dark); }
.omt-portal .btn-link { color: var(--c-link); }
.omt-portal .container { width: auto; max-width: 1480px; padding-left: 18px; padding-right: 18px; }
.main-container { min-height: 0; padding-top: 14px; padding-bottom: 8px; }
.omt-skip:focus { position: absolute; z-index: 2000; top: 6px; left: 6px; padding: 6px 10px; background: #fff; }
.omt-badge-alert { background: #d9534f; color: #fff; }

/* ---- Masthead ---- */
.omt-masthead { background: linear-gradient(180deg, var(--c-primary-light) 0%, var(--c-primary) 55%, var(--c-primary-dark) 100%); color: #fff; }
.omt-masthead-inner { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 74px; padding: 10px 0; }
.omt-brand { display: flex; align-items: center; gap: 12px; color: #fff !important; text-decoration: none !important; min-width: 0; }
.omt-logo { display: inline-flex; align-items: center; justify-content: center; min-width: 50px; height: 50px; padding: 0 8px; background: #fff; color: var(--c-primary); border-radius: 6px; font: 800 17px/1 Verdana, Tahoma, sans-serif; letter-spacing: .5px; box-shadow: inset 0 -3px 0 var(--c-accent), 0 1px 3px rgba(0,0,0,.35); }
.omt-brand-text { display: flex; flex-direction: column; min-width: 0; }
.omt-brand-title { font-size: 22px; font-weight: 700; line-height: 1.15; text-shadow: 0 1px 1px rgba(0,0,0,.35); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.omt-brand-tagline { font-size: 12px; color: rgba(255,255,255,.78); letter-spacing: .4px; text-transform: uppercase; }
.omt-masthead-tools { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.omt-masthead-meta { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 8px; font-size: 12px; color: rgba(255,255,255,.85); }
.omt-masthead-meta a, .omt-masthead-meta .btn-link { color: #fff; }
.omt-masthead-meta .btn-link { padding: 0; font-size: 12px; border: 0; }
.omt-masthead-meta .btn-link:hover, .omt-user-menu > a:hover { color: #fff; text-decoration: underline; }
.omt-meta-sep { color: rgba(255,255,255,.4); }
.omt-add-mylink { display: inline; margin: 0; }
.omt-masthead-search { width: 340px; }
.omt-masthead-search .form-control { border-color: rgba(0,0,0,.25); box-shadow: inset 0 1px 2px rgba(0,0,0,.15); }
.omt-masthead-search .btn { color: #333 !important; }
.omt-user-menu .dropdown-menu { margin-top: 6px; }

/* ---- Tab bar ---- */
.omt-tabbar { min-height: 0; margin: 0; border: 0; border-radius: 0; background: var(--c-primary-dark); border-bottom: 3px solid var(--c-accent); box-shadow: 0 2px 3px rgba(0,0,0,.08); }
.omt-tabbar .navbar-collapse { padding-left: 0; padding-right: 0; }
.omt-tabbar .navbar-nav > li > a { padding: 9px 14px 8px; margin-top: 4px; color: #dfe7f0; font-weight: 600; border-radius: 4px 4px 0 0; text-shadow: 0 1px 0 rgba(0,0,0,.3); }
.omt-tabbar .navbar-nav > li > a:hover, .omt-tabbar .navbar-nav > li > a:focus { background: rgba(255,255,255,.12); color: #fff; }
.omt-tabbar .navbar-nav > li.active > a, .omt-tabbar .navbar-nav > li.active > a:hover, .omt-tabbar .navbar-nav > .open > a, .omt-tabbar .navbar-nav > .open > a:hover, .omt-tabbar .navbar-nav > .open > a:focus { background: var(--c-accent); color: #fff; text-shadow: none; }
.omt-tabbar .navbar-nav > li > a .caret { opacity: .75; }
.omt-tabbar .navbar-brand { color: #fff; font-size: 14px; padding: 12px 15px; height: auto; }
.omt-tabbar .navbar-toggle { border-color: rgba(255,255,255,.35); margin-top: 6px; margin-bottom: 6px; }
.omt-tabbar .navbar-toggle .icon-bar { background: #fff; }
.omt-site-actions > a { background: rgba(255,255,255,.08); }
.omt-site-actions > a .silk-icon { margin-right: 5px; }

/* Drop-downs and mega menus */
.omt-menu > li > a, .omt-mega-menu .omt-menu > li > a { display: block; padding: 5px 14px; color: #263342; white-space: nowrap; }
.omt-menu > li > a:hover, .omt-menu > li > a:focus { background: var(--c-tint); color: var(--c-link); text-decoration: none; }
.omt-menu > li.active > a { font-weight: 700; color: var(--c-link); background: transparent; }
.omt-menu > li > a small { display: block; margin-left: 22px; color: #7a8794; font-size: 11px; white-space: normal; }
.omt-menu .silk-icon { margin-right: 7px; }
.omt-menu .omt-depth-1 > a { padding-left: 28px; }
.omt-menu .omt-depth-2 > a, .omt-menu .omt-depth-3 > a { padding-left: 42px; }
.omt-menu-subhead { padding: 8px 14px 3px; color: #6a7783; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; }
.omt-menu-subhead.omt-depth-1 { padding-left: 28px; }
.dropdown-menu.omt-menu { min-width: 230px; padding: 6px 0; border-top: 3px solid var(--c-accent); border-radius: 0 0 4px 4px; }
.omt-mega-menu { padding: 0; border-top: 3px solid var(--c-accent); border-radius: 0 0 4px 4px; min-width: 300px; }
.omt-mega-cols { display: flex; }
.omt-mega-col { min-width: 220px; padding: 10px 0 8px; border-right: 1px solid #e8edf2; }
.omt-mega-col:last-child { border-right: 0; }
.omt-mega-col .omt-menu { margin: 0; }
.omt-mega-heading { margin: 0 14px 6px; padding-bottom: 5px; border-bottom: 1px solid #e3e8ee; color: var(--c-head-text); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; }
.omt-mega-heading a { color: inherit; }
.dropdown-header { color: #6a7783; font-weight: 700; text-transform: uppercase; font-size: 11px; }

/* ---- Portlets / web parts ---- */
.portal-columns { margin-bottom: 4px; }
.portlet { margin-bottom: 14px; background: #fff; border: 1px solid var(--c-border); border-top: 3px solid var(--c-primary-light); border-radius: 3px; box-shadow: 0 1px 2px rgba(20,35,55,.06); }
.portlet-head { display: flex; align-items: center; gap: 6px; min-height: 32px; padding: 5px 6px 5px 10px; background: linear-gradient(180deg, var(--c-head-from), var(--c-head-to)); border-bottom: 1px solid var(--c-border); }
.portlet-title { flex: 1 1 auto; min-width: 0; margin: 0; color: var(--c-head-text); font-size: 13px; font-weight: 700; line-height: 1.3; }
.portlet-title a { color: inherit; }
.portlet-icon .silk-icon { margin: 0; vertical-align: -3px; }
.portlet-badge { background: var(--c-primary-light); font-size: 11px; }
.portlet-required_reading .portlet-badge { background: #e08e0b; }
.portlet-controls { display: flex; align-items: center; gap: 1px; margin: 0; }
.portlet-btn { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; padding: 0; border: 1px solid transparent; border-radius: 3px; background: transparent; opacity: .75; cursor: pointer; }
.portlet-btn:hover, .portlet-btn:focus { opacity: 1; background: #fff; border-color: var(--c-border); }
.portlet-btn[disabled] { opacity: .25; cursor: default; }
.portlet-btn .silk-icon { margin: 0; }
.portlet-lock { cursor: help; opacity: .6; }
.portlet-body { padding: 10px 12px; overflow-wrap: break-word; }
.portlet-body > :last-child { margin-bottom: 0; }
.portlet-foot { padding: 5px 12px; border-top: 1px solid #e8ecf0; background: #fafbfc; font-size: 12px; }
.portlet-foot .pull-right { margin-left: 12px; }
.portlet.is-collapsed .portlet-body, .portlet.is-collapsed .portlet-foot { display: none; }
.portlet.is-collapsed .portlet-head { border-bottom: 0; }
.portlet-empty { font-style: italic; }
.portlet-meta { color: #6f7b87; font-size: 12px; margin-bottom: 4px; }
.portlet-meta-right { float: right; margin-left: 8px; font-size: 12px; }
.portlet-list { margin: 0; padding: 0; list-style: none; }
.portlet-list > li { padding: 6px 0; border-bottom: 1px dotted #d6dde5; }
.portlet-list > li:first-child { padding-top: 0; }
.portlet-list > li:last-child { border-bottom: 0; padding-bottom: 0; }
.portlet-list .silk-icon { margin-right: 6px; }
.portlet-list-compact > li { padding: 4px 0; }
.portlet-list > li.active > a { font-weight: 700; }
.portlet-news { padding-bottom: 10px; margin-bottom: 10px; border-bottom: 1px dotted #d6dde5; }
.portlet-news:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: 0; }
.portlet-news h3 { margin: 0 0 2px; font-size: 14px; font-weight: 700; line-height: 1.35; }
.portlet-news.is-lead h3 { font-size: 17px; }
.portlet-news p { margin-bottom: 0; }
.portlet-greeting { margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px dotted #d6dde5; }
.portlet-welcome-text h1, .portlet-welcome-text h2 { margin-top: 0; font-size: 19px; color: var(--c-head-text); }
.portlet-welcome-text p { color: #4a5561; }
.portlet-tasks .task-warning > a, .portlet-tasks .task-danger > a { font-weight: 700; }
.portlet-tasks .task-danger > a { color: #b52b27; }
.portlet-allclear { color: #3c763d; margin: 0; }
.portlet-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.portlet-tile { display: flex; flex-direction: column; align-items: center; gap: 5px; padding: 9px 4px 7px; border: 1px solid transparent; border-radius: 4px; color: #2b3138 !important; font-size: 12px; text-align: center; text-decoration: none !important; }
.portlet-tile .silk-icon { margin: 0; padding: 8px; box-sizing: content-box; background: var(--c-tint); border: 1px solid var(--c-border); border-radius: 50%; }
.portlet-tile:hover, .portlet-tile:focus { background: var(--c-tint); border-color: var(--c-border); }
.portlet-eventlist > li { overflow: hidden; }
.portlet-datebox { float: left; width: 38px; margin: 1px 9px 2px 0; border: 1px solid var(--c-border); border-radius: 3px; text-align: center; background: #fff; overflow: hidden; }
.portlet-datebox span { display: block; background: var(--c-primary-light); color: #fff; font-size: 10px; text-transform: uppercase; line-height: 15px; }
.portlet-datebox strong { display: block; font-size: 16px; line-height: 21px; color: var(--c-head-text); }
.portlet-table { margin-bottom: 0; }
.portlet-table > thead > tr > th { border-bottom-width: 1px; color: #6a7783; font-size: 11px; text-transform: uppercase; }
.portlet-table .silk-icon { margin-right: 6px; }
.portlet-people > li { overflow: hidden; }
.portlet-avatar { float: left; width: 32px; height: 32px; margin: 1px 9px 2px 0; border-radius: 50%; object-fit: cover; background: var(--c-tint); }
.portlet-avatar-lg { width: 48px; height: 48px; }
.portlet-avatar-blank { display: flex; align-items: center; justify-content: center; }
.portlet-avatar-blank .silk-icon { margin: 0; }
.portlet-profile { overflow: hidden; }
.portlet-profile .silk-icon { margin-right: 4px; }
.mini-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.mini-cal-head a { padding: 0 8px; font-size: 15px; text-decoration: none; }
.mini-cal { width: 100%; table-layout: fixed; border-collapse: collapse; }
.mini-cal th { padding: 2px 0 4px; color: #7a8794; font-size: 11px; text-align: center; }
.mini-cal td { padding: 1px; text-align: center; font-size: 12px; line-height: 24px; }
.mini-cal td.has-event a { display: block; border-radius: 3px; background: var(--c-tint); font-weight: 700; text-decoration: none; }
.mini-cal td.has-event a:hover { background: var(--c-head-to); }
.mini-cal td.is-today { outline: 2px solid var(--c-accent); outline-offset: -2px; border-radius: 3px; font-weight: 700; }
.portal-personalize-link { margin: 0 0 6px; text-align: right; font-size: 12px; }

/* Customize mode */
.portal-customize-bar { margin-bottom: 16px; padding: 12px 14px; background: #fff8dc; border: 1px solid #e6d28a; border-radius: 3px; }
.portal-customize-title h1 { margin: 0 0 3px; font-size: 18px; font-weight: 700; }
.portal-customize-title p { margin: 0 0 10px; color: #6b5d2a; }
.portal-customize-tools { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 22px; padding-bottom: 12px; border-bottom: 1px solid #ecdfa8; }
.portal-customize-group { margin: 0; }
.portal-customize-group > label { display: block; margin-bottom: 4px; font-size: 11px; text-transform: uppercase; color: #6b5d2a; }
.portal-customize-actions { display: flex; gap: 6px; margin-left: auto; }
.portal-customize-actions form { margin: 0; }
.layout-picker, .theme-picker { display: flex; flex-wrap: wrap; gap: 6px; }
.layout-choice, .theme-swatch { padding: 3px; border: 2px solid transparent; border-radius: 4px; background: #fff; cursor: pointer; }
.layout-choice.active, .layout-choice:hover, .theme-swatch.active, .theme-swatch:hover { border-color: var(--c-accent); }
.layout-thumb { display: flex; gap: 2px; width: 46px; height: 28px; }
.layout-thumb i { flex: 1; background: #b9c6d4; border-radius: 1px; }
.layout-thumb-three .lt-center, .layout-thumb-wide_right .lt-center, .layout-thumb-wide_left .lt-center { flex: 2; background: #8ea3b9; }
.theme-swatch { display: inline-block; width: 30px; height: 30px; border-color: #d6d6d6; }
.theme-swatch-nodespace { background: linear-gradient(135deg, #1b385d 50%, #318fff 50%); }
.theme-swatch-classic { background: linear-gradient(135deg, #2a5a8c 50%, #f0a30a 50%); }
.theme-swatch-slate { background: linear-gradient(135deg, #3d4650 50%, #7aa2d6 50%); }
.theme-swatch-forest { background: linear-gradient(135deg, #2f5d3a 50%, #d1ab3f 50%); }
.theme-swatch-burgundy { background: linear-gradient(135deg, #6b2234 50%, #d8a628 50%); }
.theme-swatch.active { box-shadow: 0 0 0 2px #fff inset; }
.portal-gallery h2 { margin: 12px 0 8px; font-size: 14px; font-weight: 700; }
.portal-gallery-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.portal-gallery-list form { display: flex; align-items: center; gap: 8px; height: 100%; padding: 7px 8px; background: #fff; border: 1px solid #e6d28a; border-radius: 3px; }
.portal-gallery-text { flex: 1; min-width: 0; }
.portal-gallery-text strong, .portal-gallery-text small { display: block; }
.portal-gallery-text small { color: #6f7b87; line-height: 1.3; }
.portal-gallery-add { display: flex; gap: 4px; }
.portal-gallery-add select { width: auto; }
.portal-columns.is-customizing .portal-column { min-height: 140px; padding-top: 8px; padding-bottom: 8px; outline: 2px dashed #c4ced8; outline-offset: -4px; }
.portal-columns.is-customizing .portlet[draggable="true"] .portlet-head { cursor: move; }
.portlet-grip { color: #9aa6b2; font-size: 12px; letter-spacing: -3px; cursor: move; user-select: none; }
.portlet.is-dragging { opacity: .45; }
.portal-drop-placeholder { height: 44px; margin-bottom: 14px; border: 2px dashed var(--c-accent); border-radius: 3px; background: var(--c-tint); }
.portal-drop-hint { padding: 10px; color: #8a96a2; font-size: 12px; text-align: center; }
.portal-columns.is-customizing .portlet-body { max-height: 220px; overflow: hidden; }

/* Restyle Bootstrap panels and module pages so the whole site matches */
.omt-portal .panel-default { border-color: var(--c-border); border-radius: 3px; }
.omt-portal .panel-default > .panel-heading { background: linear-gradient(180deg, var(--c-head-from), var(--c-head-to)); border-color: var(--c-border); color: var(--c-head-text); padding: 7px 12px; }
.omt-portal .page-header.omt-module-header { margin: 4px 0 16px; padding-bottom: 8px; border-bottom: 2px solid var(--c-border); }
.omt-portal .omt-module-header h1 { margin: 0 0 4px; font-size: 24px; color: var(--c-head-text); }
.omt-portal .omt-module-header p { margin: 0; }
.omt-portal h1, .omt-portal h2, .omt-portal h3 { font-family: "Segoe UI", Tahoma, Verdana, Arial, sans-serif; }
.omt-portal .omt-content-header h1 { color: var(--c-head-text); }
.omt-portal .page-body { border-color: var(--c-border); border-top: 3px solid var(--c-primary-light); border-radius: 3px; }
.omt-portal .nav-tabs > li.active > a { border-top: 3px solid var(--c-accent); }
.omt-sidebar-widget { border-top: 3px solid var(--c-primary-light) !important; }
.news-item .portlet-title { font-size: 15px; }

/* Admin: grouped navigation, site settings, portal layout */
.omt-admin-nav { margin-bottom: 18px; }
.omt-admin-groups { margin-bottom: 0; }
.omt-admin-groups .silk-icon { margin-right: 6px; }
.omt-admin-subnav { padding: 7px 8px; background: #fff; border: 1px solid #ddd; border-top: 0; border-radius: 0 0 3px 3px; }
.omt-admin-subnav > li > a { padding: 5px 11px; }
.omt-admin-subnav > li.active > a { background: var(--c-button); }
.omt-settings-list > li { padding: 7px 0; }
.omt-nav-help p:last-child { margin-bottom: 0; }
.omt-nav-label { display: flex; align-items: center; gap: 4px; }
.omt-nav-elbow { color: #9aa6b2; }
.omt-nav-table .nav-depth-0 td { border-top: 2px solid #d5dde5; }
.omt-nav-order { width: 70px; }
.nav-dest + .nav-dest { margin-top: 4px; }
.js .omt-nav-form .nav-dest, .js .omt-nav-table .nav-dest { display: none; }
.js .omt-nav-form .nav-dest.is-shown, .js .omt-nav-table .nav-dest.is-shown { display: block; }
.portal-admin-preview { display: grid; grid-template-columns: 1fr 1.4fr 1fr; gap: 8px; margin-bottom: 10px; }
.portal-admin-col { padding: 6px; background: #f3f6f9; border: 1px dashed #c4ced8; border-radius: 3px; }
.portal-admin-col-head { margin-bottom: 6px; color: #6a7783; font-size: 11px; font-weight: 700; text-align: center; text-transform: uppercase; }
.portal-admin-chip { margin-bottom: 6px; padding: 6px 7px; background: #fff; border: 1px solid var(--c-border); border-top: 3px solid var(--c-primary-light); border-radius: 3px; }
.portal-admin-chip.is-inactive { opacity: .55; }
.portal-admin-chip.is-optional { border-style: dashed; border-top-style: solid; }
.portal-admin-chip-title { font-weight: 700; }
.portal-admin-chip-title .silk-icon { margin-right: 5px; }
.portal-admin-chip-flags .label { display: inline-block; margin: 3px 3px 0 0; font-weight: 400; }
.portal-admin-chip-flags .silk-icon { width: 10px; height: 10px; margin-right: 2px; vertical-align: -1px; }
.portal-admin-chip-edit { display: flex; gap: 4px; margin-top: 5px; }
.portal-admin-chip-edit select { flex: 1.4; } .portal-admin-chip-edit input { flex: 1; min-width: 0; }
.portal-admin-flags { margin: 4px 0 14px; }
.portal-admin-flags .checkbox-inline { margin-right: 14px; }
.theme-picker-radios { gap: 12px; }
.theme-radio, .layout-radio { display: inline-flex; flex-direction: column; align-items: center; gap: 3px; font-weight: 400; font-size: 12px; cursor: pointer; }
.theme-radio input, .layout-radio input { margin: 0; }
.layout-radio { padding: 4px; border: 1px solid #e1e6eb; border-radius: 3px; background: #fff; }
.mylinks-table td { vertical-align: top !important; }
.mylinks-table form.form-inline .form-control { margin-bottom: 4px; }

/* ---- Footer ---- */
.footer.omt-footer { margin-top: 22px; padding: 14px 0 18px; background: var(--c-primary-dark); color: rgba(255,255,255,.7); border-top: 3px solid var(--c-accent); font-size: 12px; }
.omt-footer-links { margin-bottom: 6px; }
.omt-footer-links > li { padding-left: 0; padding-right: 14px; }
.omt-footer a { color: #fff; }
.omt-footer-meta { color: rgba(255,255,255,.6); }

body.login-only { background: var(--c-page-bg); }

@media (max-width: 991px) {
    .omt-masthead-search { width: 260px; }
    .portal-admin-preview { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
    .omt-portal .container { padding-left: 12px; padding-right: 12px; }
    .omt-masthead-inner { flex-direction: column; align-items: stretch; gap: 8px; min-height: 0; }
    .omt-logo { min-width: 40px; height: 40px; font-size: 14px; }
    .omt-brand-title { font-size: 18px; }
    .omt-masthead-tools { align-items: stretch; }
    .omt-masthead-meta { justify-content: flex-start; }
    .omt-masthead-search { width: 100%; }
    .omt-tabbar .navbar-collapse { border-top: 1px solid rgba(255,255,255,.15); box-shadow: none; }
    .omt-tabbar .navbar-nav { margin: 4px 0; }
    .omt-tabbar .navbar-nav > li > a { margin-top: 0; border-radius: 0; }
    .omt-tabbar .navbar-nav .open .dropdown-menu, .omt-tabbar .omt-mega-menu { background: #fff; border-top: 0; }
    .omt-tabbar .navbar-nav .open .dropdown-menu > li > a { color: #263342; }
    .omt-mega-cols { flex-direction: column; }
    .omt-mega-col { border-right: 0; border-bottom: 1px solid #e8edf2; }
    .omt-menu > li > a { white-space: normal; }
    .portal-customize-actions { margin-left: 0; }
    .portal-gallery-list { grid-template-columns: 1fr; }
    .portal-gallery-list form { flex-wrap: wrap; }
}

/* ---- Existing module styles (v3.0) ---- */
.omt-tabs { display: flex; flex-wrap: wrap; margin-bottom: 20px; }
.omt-tabs:before, .omt-tabs:after { display: none; }
.omt-content-page-frame { width: 100%; max-width: 1240px; margin: 0 auto; }
.omt-content-page { padding-top: 14px; }
.omt-content-breadcrumb { margin: 0 0 12px; padding: 7px 10px; background: transparent; }
.omt-content-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 14px; padding: 0 2px; }
.omt-content-header-main { min-width: 0; }
.omt-content-header h1 { margin: 0 0 5px; color: #2b3440; font-size: 30px; line-height: 1.2; }
.omt-content-meta { margin: 0; color: #6f7882; font-size: 13px; }
.omt-content-meta .label { margin-left: 5px; vertical-align: 1px; }
.omt-content-actions { flex: 0 0 auto; padding-bottom: 1px; }
.page-body { background: #fff; padding: 21px 23px; border: 1px solid #d9dee4; border-radius: 4px; box-shadow: 0 1px 2px rgba(0,0,0,.025); }
.omt-rich-content { color: #30363d; line-height: 1.55; overflow-wrap: break-word; }
.omt-rich-content > :first-child { margin-top: 0; }
.omt-rich-content > :last-child { margin-bottom: 0; }
.omt-rich-content h1 { margin-top: 22px; font-size: 28px; }
.omt-rich-content h2 { margin-top: 22px; font-size: 24px; }
.omt-rich-content h3 { margin-top: 20px; font-size: 20px; }
.omt-rich-content img { max-width: 100%; height: auto; }
.omt-rich-content table { max-width: 100%; }
.omt-rich-content .table { margin-bottom: 16px; }
.omt-comments { margin-top: 18px; padding-top: 15px; border-top: 1px solid #dde3e8; }
.omt-comments h3 { margin-top: 0; font-size: 20px; }
.omt-content-note { margin: 14px 2px 0; padding-top: 11px; border-top: 1px solid #e1e5e9; font-size: 12px; }

.comment-box { background: #fff; border: 1px solid #ddd; border-left: 4px solid #337ab7; padding: 12px; margin-bottom: 12px; }
.inline-form { display: inline; }
.installer-form h3 { margin-top: 30px; border-bottom: 1px solid #ddd; padding-bottom: 8px; }
.no-top { margin-top: 0; }
.omt-post-card h3 { margin-top: 0; }
.top-margin-xs { margin-top: 4px; }
.nav-active { margin-top: 27px; }
.dropdown-submenu { position: relative; }
.dropdown-submenu > .dropdown-menu { top: 0; left: 100%; margin-top: -6px; margin-left: -1px; border-radius: 0 6px 6px 6px; }
.dropdown-submenu:hover > .dropdown-menu { display: block; }
.dropdown-submenu > a:after { display: block; content: " "; float: right; width: 0; height: 0; border-color: transparent; border-style: solid; border-width: 5px 0 5px 5px; border-left-color: #ccc; margin-top: 5px; margin-right: -10px; }
.dropdown-submenu:hover > a:after { border-left-color: #fff; }
@media (max-width: 1199px) {
    .dropdown-submenu > .dropdown-menu { position: static; float: none; margin-left: 15px; border: 0; box-shadow: none; }
}
.summernote-editor { min-height: 420px; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; }
.note-editor.note-frame { background: #fff; margin-bottom: 8px; }
.note-editor .note-editable { min-height: 420px; line-height: 1.55; }
.note-editor .note-editable img { max-width: 100%; height: auto; }
.note-editor .note-editable table { width: 100%; margin: 10px 0; }
.note-editor .note-editable td, .note-editor .note-editable th { min-width: 60px; }
.note-toolbar .dropdown-menu { z-index: 1060; }
@media (max-width: 767px) {
    .note-editor .note-toolbar .note-btn-group { margin-bottom: 4px; }
}


.login-wrapper { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; }
.login-card { width: 100%; max-width: 420px; }
.login-only .login-panel { margin-bottom: 0; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.login-only .login-panel .panel-heading { background: #fff; }
.login-only .login-panel .panel-title { font-size: 18px; font-weight: 600; }
.login-button-wrap { margin-top: 20px; margin-bottom: 0; }
/* Sign-in page (Active Directory form) */
.login-masthead { position: fixed; top: 0; left: 0; right: 0; height: 170px; z-index: 0; background: linear-gradient(180deg, var(--c-primary-light) 0%, var(--c-primary) 55%, var(--c-primary-dark) 100%); border-bottom: 3px solid var(--c-accent); }
.login-only .login-wrapper { position: relative; z-index: 1; align-items: flex-start; padding-top: 48px; }
.login-brand { margin: 0 auto 16px; padding: 10px 16px; width: max-content; max-width: 100%; background: #fff; border-radius: 6px; box-shadow: inset 0 -3px 0 var(--c-accent), 0 1px 4px rgba(0,0,0,.35); }
.login-brand img { display: block; height: 46px; width: auto; max-width: 100%; }
.login-only .login-panel .panel-heading { background: linear-gradient(180deg, var(--c-head-from), var(--c-head-to)); border-color: var(--c-border); }
.login-only .login-panel .panel-title { color: var(--c-head-text); }
.login-only .login-panel { border-color: var(--c-border); }
.login-only .login-panel .help-block { font-size: 12px; margin-bottom: 0; }
.login-only .login-panel .btn-primary { margin-top: 6px; }
.login-only .login-panel .btn-primary .silk-icon { margin-right: 4px; vertical-align: -2px; }
.login-help { margin: 14px 0 0; text-align: center; }
.login-notice { margin-top: 16px; padding: 10px 12px; border: 1px solid var(--c-border); border-left: 4px solid #d9a128; border-radius: 3px; background: #fffdf5; color: #5b5440; font-size: 11px; line-height: 1.5; }
.login-notice h2, .login-notice h3, .login-notice h4 { margin: 0 0 4px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: #4c432a; }
.login-notice p { margin: 0; }

.omt-sidebar-widget .panel-body { overflow-wrap: break-word; }
.omt-sidebar-widget .panel-body p:last-child { margin-bottom: 0; }
.omt-sidebar-widget img { max-width: 100%; height: auto; }
.omt-sidebar-widget table { width: 100%; }
.omt-banner p:last-child { margin-bottom: 0; }
.omt-banner img { max-width: 100%; height: auto; }

.form-card .panel-body { min-height: 150px; }
.form-card-desc { min-height: 48px; margin-bottom: 12px; }
.omt-form-heading { margin-top: 28px; border-bottom: 1px solid #eee; padding-bottom: 7px; }
.omt-form-paragraph { background: #f9f9f9; }

.silk-icon { display: inline-block; vertical-align: -3px; margin-right: 4px; image-rendering: auto; }
.btn .silk-icon { margin-right: 3px; }
.omt-module-header h1 .silk-icon, .dashboard-section h2 .silk-icon { margin-right: 7px; }


.omt-filter-bar { margin-bottom: 22px; padding: 12px; }
.omt-form-button { margin-top: 25px; }
.omt-form-checkbox { margin-top: 29px; }
.omt-manage-row { padding: 8px 0; border-top: 1px solid #eee; }
.document-card { min-height: 210px; }
.document-card h3 { font-size: 19px; line-height: 1.3; }
.document-card-icon { padding-right: 12px; }
.document-card-icon .silk-icon { margin-top: 4px; }
.document-meta { color: #697887; font-size: 12px; }

.event-month { padding-bottom: 7px; border-bottom: 1px solid #d7dfe7; font-size: 22px; }
.event-card .panel-body { padding: 18px; }
.event-date-block { text-align: center; border-right: 1px solid #e2e7ec; }
.event-day, .event-weekday { display: block; }
.event-day { color: #1d6397; font-size: 34px; font-weight: 700; line-height: 1; }
.event-weekday { margin-top: 4px; color: #6b7784; text-transform: uppercase; }
.event-when { color: #4f6071; }
.omt-view-switch { margin-bottom: 20px; }
.omt-editor-details { margin-top: 12px; }
.omt-editor-details summary { color: #337ab7; cursor: pointer; }

.resource-category { margin: 25px 0 12px; font-size: 21px; }
.resource-row { margin-bottom: 8px; }
.resource-link-card { display: flex; align-items: flex-start; min-height: 82px; margin-bottom: 14px; padding: 15px; color: #26384d; background: #fff; border: 1px solid #dce3ea; border-radius: 4px; text-decoration: none; }
.resource-link-card:hover, .resource-link-card:focus { border-color: #86b4d8; background: #f7fbff; text-decoration: none; }
.resource-link-card strong, .resource-link-card small { display: block; }
.resource-link-card small { margin-top: 5px; color: #6f7d8a; line-height: 1.35; }
.resource-link-icon { margin: 2px 10px 0 0; }

.profile-avatar, .directory-avatar-large { object-fit: cover; background: #eef2f6; }
.profile-avatar { width: 96px; height: 96px; }
.directory-avatar { width: 58px; height: 58px; object-fit: cover; background: #eef2f6; }
.directory-avatar-large { width: 150px; height: 150px; }
.profile-avatar-placeholder, .directory-avatar-placeholder { display: flex; align-items: center; justify-content: center; margin: 0 auto; background: #e9eef3; border-radius: 50%; }
.profile-avatar-placeholder { width: 96px; height: 96px; }
.directory-avatar-placeholder { width: 150px; height: 150px; }
.profile-avatar-placeholder .silk-icon, .directory-avatar-placeholder .silk-icon { margin: 0; }
.directory-avatar-small { display: flex; align-items: center; justify-content: center; width: 58px; height: 58px; background: #e9eef3; border-radius: 50%; }
.directory-avatar-small .silk-icon { margin: 0; }
.directory-card { min-height: 150px; }
.directory-card h3 { font-size: 18px; }
.directory-card p { margin-bottom: 5px; }

.search-hero-form { margin-bottom: 28px; }
.search-summary { margin-bottom: 22px; color: #657484; font-size: 16px; }
.search-section { margin-bottom: 28px; }
.search-section h2 { font-size: 22px; }
.search-result-meta { display: block; margin-top: 6px; color: #71808d; font-size: 12px; }
.acknowledgement-panel { margin-top: 28px; }
.acknowledgement-card { min-height: 205px; }







@media (max-width: 767px) {
    .omt-content-page { padding-top: 8px; }
    .omt-content-header { display: block; margin-bottom: 12px; }
    .omt-content-header h1 { font-size: 26px; }
    .omt-content-actions { margin-top: 10px; }
    .page-body { padding: 17px; }
    .omt-rich-content h1 { font-size: 25px; }
    .omt-rich-content h2 { font-size: 22px; }
    .event-date-block { margin-bottom: 14px; text-align: left; border-right: 0; }
    .event-day, .event-weekday { display: inline-block; margin-right: 6px; }
    .directory-avatar-large { width: 110px; height: 110px; margin-bottom: 18px; }
    .omt-form-button, .omt-form-checkbox { margin-top: 0; }
}

/* Internal pricing tool */
.omt-pricing-header-actions { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.omt-pricing-header-actions h1 { margin-top: 0; }
.omt-pricing-panel .panel-body { padding: 20px; }
.omt-pricing-section-title { margin: 24px 0 16px; padding-top: 18px; border-top: 1px solid #e5e8eb; font-size: 18px; }
.omt-pricing-section-title:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.omt-pricing-checkbox-grid .well { min-height: 91px; margin-bottom: 15px; background: #fafbfd; }
.omt-pricing-checkbox-grid .checkbox { margin-top: 4px; margin-bottom: 4px; }
.omt-pricing-total-box { margin-bottom: 18px; padding: 16px; border: 1px solid #b8dfc6; border-radius: 4px; background: #eff9f2; }
.omt-pricing-total { margin-bottom: 3px; font-size: 34px; font-weight: 700; line-height: 1; }
.omt-pricing-trip-meta { margin-bottom: 18px; }
.omt-pricing-breakdown th { width: 72%; }
.omt-pricing-breakdown td { text-align: right; white-space: nowrap; font-weight: 600; }
.omt-pricing-breakdown th small { display: block; margin-top: 3px; color: #77838f; font-weight: 400; line-height: 1.35; }
.omt-pricing-breakdown .omt-pricing-grand-total th, .omt-pricing-breakdown .omt-pricing-grand-total td { padding-top: 14px; border-top: 2px solid #aeb8c1; font-size: 18px; }
.omt-pricing-rate-title { margin-top: 20px; }
.omt-pricing-rate-title:first-child { margin-top: 0; }
.omt-pricing-rate-table { font-size: 12px; }
.omt-pricing-rate-table th, .omt-pricing-rate-table td { white-space: nowrap; }
.omt-pricing-policy-note { margin-bottom: 0; }
.omt-pricing-settings-plan .panel-heading .text-muted { font-weight: normal; }
.omt-pricing-settings-table td { min-width: 150px; vertical-align: top !important; }
.omt-pricing-settings-table td:first-child { min-width: 220px; }
.omt-pricing-key { margin-top: 4px; }
.print-only { display: none; }

@media (max-width: 767px) {
    .omt-pricing-header-actions { display: block; }
    .omt-pricing-header-actions .btn { margin-top: 10px; }
    .omt-pricing-total { font-size: 28px; }
    .omt-pricing-breakdown th { width: 65%; }
}

@media print {
    .omt-masthead, .omt-tabbar, .footer, .no-print { display: none !important; }
    .omt-pricing-quote .alert-warning, .omt-pricing-quote .alert-danger { display: none !important; }
    .print-only { display: block !important; }
    body { background: #fff !important; }
    .main-container { width: 100% !important; padding: 0 !important; }
    .omt-pricing-layout > .col-md-5 { width: 100% !important; float: none !important; }
    .omt-pricing-quote { border: 0 !important; box-shadow: none !important; }
    .omt-pricing-quote > .panel-heading { border-bottom: 2px solid #333 !important; background: #fff !important; }
    .omt-pricing-total-box { border: 1px solid #999 !important; background: #fff !important; }
}

/* Buttons keep their own text colors even though links are themed */
.omt-portal a.btn-primary, .omt-portal a.btn-primary:hover, .omt-portal a.btn-primary:focus,
.omt-portal a.btn-success, .omt-portal a.btn-danger, .omt-portal a.btn-warning, .omt-portal a.btn-info { color: #fff; }
.omt-portal a.btn-default { color: #333; }
.omt-nav-table .inline-form { margin-left: 3px; }
body.omt-portal { display: flex; flex-direction: column; min-height: 100vh; }
body.omt-portal > .main-container { flex: 1 0 auto; width: 100%; }
.omt-footer-links { margin-left: 0; }

/* Company logo and profile photos (v3.2) */
.omt-logo-image { display: inline-flex; align-items: center; justify-content: center; height: 54px; flex: 0 0 auto; }
.omt-logo-image img { display: block; max-height: 54px; max-width: 260px; width: auto; height: auto; }
.omt-logo-image.has-plate { height: 58px; padding: 4px 8px; background: #fff; border-radius: 6px; box-shadow: inset 0 -3px 0 var(--c-accent), 0 1px 3px rgba(0,0,0,.35); }
.omt-logo-image.has-plate img { max-height: 46px; }
.omt-masthead-avatar { width: 22px; height: 22px; margin: -3px 6px 0 0; border-radius: 50%; object-fit: cover; vertical-align: middle; border: 1px solid rgba(255,255,255,.5); }
.branding-preview { margin-bottom: 14px; padding: 10px 12px; border-radius: 3px; }
.branding-preview .omt-brand { pointer-events: none; }
@media (max-width: 767px) {
    .omt-logo-image { height: 42px; }
    .omt-logo-image img { max-height: 40px; max-width: 200px; }
    .omt-logo-image.has-plate img { max-height: 34px; }
}

/* SVG logos often have no width/height of their own; give them a definite height so they scale by their viewBox. */
.omt-logo-image.is-svg img { height: 50px; width: auto; max-width: 320px; }
.omt-logo-image.has-plate.is-svg img { height: 42px; }
.logo-plate-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 12px; }
.logo-plate-choice { display: block; margin: 0; padding: 4px; border: 2px solid transparent; border-radius: 4px; font-weight: 400; cursor: pointer; }
.logo-plate-choice input { position: absolute; opacity: 0; }
.logo-plate-choice:has(input:checked) { border-color: var(--c-accent); }
.logo-plate-choice .branding-preview { display: block; margin: 0; overflow: hidden; }
.logo-plate-choice .omt-logo-image.is-svg img { height: 34px; }
.logo-plate-choice .omt-logo-image.has-plate.is-svg img { height: 28px; }
.logo-plate-choice .omt-logo-image { height: 44px; }
.logo-plate-choice .omt-logo-image img { max-width: 150px; max-height: 40px; }
.logo-plate-choice .omt-brand-title { font-size: 14px; }
.logo-plate-choice .omt-brand-tagline { font-size: 10px; }
.logo-plate-label { display: block; margin-top: 4px; text-align: center; font-size: 12px; }
@media (max-width: 767px) {
    .omt-logo-image.is-svg img { height: 36px; max-width: 220px; }
    .omt-logo-image.has-plate.is-svg img { height: 30px; }
}
.logo-plate-choice { min-width: 0; }
.logo-plate-choice .branding-preview { padding: 8px; }
.logo-plate-choice .omt-brand { gap: 8px; min-width: 0; }
.logo-plate-choice .omt-brand-text { min-width: 0; }
#photo-status td:first-child { min-width: 220px; }
#photo-status td:first-child small { display: block; overflow-wrap: anywhere; }

/* Custom HTML / Embed web parts (v3.2.1.2) */
.portlet-embed-frame { display: block; width: 100%; border: 0; background: #fff; }
.portlet-embed-frame + .portlet-embed-frame { margin-top: 10px; }
.portlet-embed .portlet-embed-frame:only-child { margin: -10px -12px; width: calc(100% + 24px); }
.embed-code { font-family: Menlo, Consolas, "Courier New", monospace; font-size: 12px; }
.portlet-type-switch { margin: 0 0 12px; } .portlet-type-switch label { font-weight: 400; margin-right: 4px; }

/* Directory org chart (Active Directory manager attribute) */
.directory-reports li { overflow: hidden; margin-bottom: 6px; line-height: 32px; }

/* Server pricing calculator (NodeSpace) */
.ns-price-hero { padding: 14px 16px; margin-bottom: 14px; border: 1px solid #b8dfc6; border-radius: 4px; background: #eff9f2; }
.ns-price-hero .ns-price-label { font-size: 11px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; color: #3f6b4f; }
.ns-price-hero .ns-price { font-size: 38px; font-weight: 700; line-height: 1.1; color: #1d4d2f; }
.ns-price-hero .ns-price small { font-size: 15px; font-weight: 400; color: #557a62; }
.ns-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.ns-metric { padding: 8px 10px; background: #fff; border: 1px solid #d6e9dc; border-radius: 3px; }
.ns-metric .k { font-size: 11px; color: #6b7a72; }
.ns-metric .v { font-size: 16px; font-weight: 700; }
.ns-metric .sub { font-size: 10px; color: #8a978f; }
.ns-term-table td, .ns-term-table th { text-align: right; }
.ns-term-table td:first-child, .ns-term-table th:first-child { text-align: left; }
.ns-discount-tag { display: inline-block; margin-left: 4px; padding: 0 5px; border-radius: 8px; background: var(--c-tint); color: var(--c-link); font-size: 10px; font-weight: 600; }
.ns-offer-results { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.ns-offer-results .k { font-size: 11px; color: #6b7a72; }
.ns-offer-results .v { font-size: 16px; font-weight: 700; }
.ns-status { margin: 12px 0 0; }
.ns-formula { padding: 8px 10px; background: #f6f8fb; border: 1px solid #e1e6ed; border-radius: 3px; font-family: Consolas, "Courier New", monospace; font-size: 12px; }
@media (max-width: 767px) { .ns-metrics, .ns-offer-results { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
