
/* TicketFlow v30 clean stylesheet
   Purpose: one predictable header/nav/project baseline without v28/v29 hotfix stacking. */
:root{
  --tf-blue:#255f9f;
  --tf-blue-dark:#1f538a;
  --tf-blue-active:#3f78b2;
  --tf-border:#d8e0ea;
  --tf-text:#17314d;
  --tf-soft:#f7f9fc;
}

/* Header / main navigation */
.tf-v30-header{position:sticky;top:0;z-index:1000;}
.tf-v30-header .header-bar{background:var(--tf-blue)!important;}
.tf-v30-header .header-inner{display:flex;align-items:center;gap:14px;min-height:68px;}
.tf-v30-header .brand-inline{flex:0 0 auto;min-width:190px;text-decoration:none;}
.tf-v30-topnav{display:flex!important;flex:1 1 auto;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;min-width:0;}
.tf-v30-topnav>a{display:inline-flex!important;align-items:center!important;gap:6px!important;min-height:38px!important;padding:0 11px!important;border-radius:10px!important;border:0!important;background:transparent!important;color:#eaf2fb!important;font-weight:800!important;font-size:13px!important;line-height:1!important;text-decoration:none!important;box-shadow:none!important;white-space:nowrap!important;transform:none!important;}
.tf-v30-topnav>a:hover{background:rgba(255,255,255,.12)!important;color:#fff!important;}
.tf-v30-topnav>a.active{background:rgba(255,255,255,.20)!important;color:#fff!important;box-shadow:none!important;}
.tf-v30-topnav>a.active::before,.tf-v30-topnav>a.active::after,.tf-v30-topnav>a::before,.tf-v30-topnav>a::after{content:none!important;display:none!important;}
.tf-v30-topnav .nav-count-badge{display:inline-flex!important;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 6px;border-radius:999px;background:#fff!important;color:var(--tf-blue)!important;font-size:11px;font-weight:900;line-height:19px;}
.tf-v30-header .header-user-auth{display:flex;align-items:center;gap:10px;flex:0 0 auto;margin-left:0;}
.tf-v30-header .logout-button{appearance:none;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;border-radius:10px;padding:8px 10px;font-weight:800;cursor:pointer;}
.tf-v30-header .logout-button:hover{background:rgba(255,255,255,.16);}
.tf-v30-header .header-identity{text-align:right;}

/* Remove old mobile hamburger/menu artifacts if old markup remains in a page */
.ticketflow-mobile-menu-toggle,.tf-mobile-nav-template,.tf-hamburger-badge,.mobile-menu-toggle,.hamburger,.menu-toggle{display:none!important;}

/* Generic ribbons / action tabs */
.ticket-actions-row a.active,.ticket-action-stickybar a.active,.ticket-actions-row a[aria-current="page"],.ticket-action-stickybar a[aria-current="page"]{background:var(--tf-blue)!important;border-color:var(--tf-blue)!important;color:#fff!important;}

/* Project tabs */
#project-sticky-bar.tf-planner-toolbar{position:sticky!important;top:76px!important;z-index:300!important;display:block!important;padding:12px!important;margin:14px 0!important;background:#fff!important;border:1px solid var(--tf-border)!important;border-radius:18px!important;box-shadow:0 10px 28px rgba(18,38,63,.08)!important;}
#project-sticky-bar .tf-planner-tools,#project-sticky-bar .tf-project-tools-removed,#project-sticky-bar .tf-planner-add,#project-sticky-bar .tf-planner-action-menu,#project-sticky-bar .tf-planner-icon-btn{display:none!important;}
.tf-tabs-direct{display:flex!important;flex-wrap:wrap!important;gap:8px!important;width:100%!important;}
.tf-tabs-direct .chip-link{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:40px!important;padding:0 15px!important;border:1px solid #cfdceb!important;border-radius:999px!important;background:#fff!important;color:#12304a!important;text-decoration:none!important;font-weight:800!important;box-shadow:none!important;}
.tf-tabs-direct .chip-link:hover{background:#eef6ff!important;color:#1f5f99!important;}
.tf-tabs-direct .chip-link.is-active,.tf-tabs-direct .chip-link.active{background:var(--tf-blue)!important;border-color:var(--tf-blue)!important;color:#fff!important;}
.tf-planner-project[data-view="overview"] .project-focus-target:not(#overview),
.tf-planner-project[data-view="details"] .project-focus-target:not(#details),
.tf-planner-project[data-view="agenda"] .project-focus-target:not(#agenda),
.tf-planner-project[data-view="tasks"] .project-focus-target:not(#tasks),
.tf-planner-project[data-view="notes"] .project-focus-target:not(#notes),
.tf-planner-project[data-view="files"] .project-focus-target:not(#files),
.tf-planner-project[data-view="team"] .project-focus-target:not(#team),
.tf-planner-project[data-view="time"] .project-focus-target:not(#time){display:none!important;}
.tf-planner-project[data-view="all"] .project-focus-target{display:block!important;}
.tf-planner-project[data-view="all"] .project-overview-grid,.tf-planner-project[data-view="all"] .project-twocol{display:grid!important;}
.project-actions-panel{display:none;}
.project-actions-panel.is-open{display:block!important;}

/* v30 multiselect dropdown */
.tf-ms-native-hidden{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;left:-9999px!important;}
.tf-ms-dropdown{position:relative;width:100%;}
.tf-ms-button{width:100%;min-height:42px;border:1px solid #b8cce3;background:#fff;color:#0b2f52;border-radius:12px;padding:10px 42px 10px 12px;font-weight:800;text-align:left;cursor:pointer;box-shadow:0 1px 0 rgba(15,45,80,.03);}
.tf-ms-button:after{content:'▾';position:absolute;right:14px;top:50%;transform:translateY(-50%);color:#2b67a8;font-size:14px;}
.tf-ms-dropdown.is-open .tf-ms-button{border-color:#2b67a8;box-shadow:0 0 0 3px rgba(43,103,168,.12);}
.tf-ms-menu{display:none;position:absolute;z-index:1000;top:calc(100% + 6px);left:0;right:0;max-height:260px;overflow:auto;background:#fff;border:1px solid #cbd9ea;border-radius:14px;box-shadow:0 14px 36px rgba(12,38,70,.16);padding:8px;}
.tf-ms-dropdown.is-open .tf-ms-menu{display:block;}
.tf-ms-option{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;cursor:pointer;font-weight:700;color:#12304a;}
.tf-ms-option:hover{background:#eef5fd;}
.tf-ms-option input{width:16px;height:16px;accent-color:#2b67a8;}
.tf-ms-empty{padding:10px;color:#70809a;font-weight:700;}

/* Fail2Ban/security tables - consistent chips */
.tf-ban-permanent,.badge.bad.tf-ban-permanent{background:#fdeaea!important;color:#a43131!important;border-color:#f1c7c7!important;}
.tf-ban-temporary,.badge.warn.tf-ban-temporary{background:#fff6df!important;color:#9f6a00!important;border-color:#f0d898!important;}

@media (max-width:980px){
  .tf-v30-header .header-inner{align-items:flex-start;flex-wrap:wrap;padding:10px 14px;}
  .tf-v30-header .brand-inline{min-width:0;}
  .tf-v30-topnav{order:3;flex:1 0 100%;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding:4px 0 0;scrollbar-width:none;}
  .tf-v30-topnav::-webkit-scrollbar{display:none;}
  .tf-v30-header .header-user-auth{margin-left:auto;}
  .page-shell{padding:16px 12px 24px;}
  #project-sticky-bar.tf-planner-toolbar{top:112px;overflow-x:auto;}
  .tf-tabs-direct{flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:none!important;}
  .tf-tabs-direct::-webkit-scrollbar{display:none!important;}
  .tf-tabs-direct .chip-link{white-space:nowrap!important;}
}
@media (max-width:560px){
  .tf-v30-header .header-inner{gap:8px;}
  .tf-v30-header .brand-copy strong{font-size:15px;}
  .tf-v30-header .header-logo{width:26px;height:26px;}
  .tf-v30-header .logout-button{padding:7px 8px;font-size:12px;}
  .tf-v30-header .user-name{font-size:12px;}
  .tf-v30-header .user-meta{font-size:10px;}
}
