@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');

:root{
  --bg:#f7f7f3;
  --paper:#ffffff;
  --ink:#1f2428;
  --muted:#747b83;
  --line:#e7e6df;
  --accent:#2f3438;
  --accent-soft:#f0efea;
  --green:#2f8f69;
  --amber:#b7791f;
  --red:#c4515b;
  --shadow:0 10px 30px rgba(40,44,52,.055);
}

*{box-sizing:border-box}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:'Manrope',system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:14px;
}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font-family:inherit}

.app-header{
  position:sticky;top:0;z-index:1030;
  background:rgba(247,247,243,.92);backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
}
.app-header-inner{
  height:72px;max-width:1540px;margin:0 auto;padding:0 28px;
  display:flex;align-items:center;gap:32px;
}
.brand{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.brand-symbol{
  width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:#20252b;color:#fff;font-weight:800;font-size:15px;
}
.brand-name{font-weight:800;letter-spacing:-.04em;font-size:17px}
.desktop-nav{display:flex;align-items:center;gap:4px;flex:1}
.desktop-nav a{
  padding:9px 11px;border-radius:9px;color:#666e76;
  font-size:12px;font-weight:600
}
.desktop-nav a:hover{background:#efeee8;color:#252a30}
.desktop-nav a.active{background:#e9e8e2;color:#1f2428}
.header-actions{display:flex;align-items:center;gap:10px}
.new-item-btn{
  display:flex;align-items:center;gap:7px;background:var(--accent);color:#fff;
  padding:9px 13px;border-radius:10px;font-size:11.5px;font-weight:700
}
.new-item-btn:hover{color:#fff;background:#1f2428}
.user-trigger{
  border:0;background:transparent;display:flex;align-items:center;gap:9px;
  border-radius:10px;padding:5px 7px
}
.user-trigger:hover{background:#efeee8}
.user-avatar{
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:#dddcd5;color:#39414a;font-weight:800
}
.user-info{flex-direction:column;align-items:flex-start;line-height:1.2}
.user-info strong{font-size:11px}
.user-info small,.tiny{font-size:9px;color:#8a9097}
.mobile-nav-btn{border:0;background:#ebeae4;border-radius:9px;width:36px;height:36px}
.mobile-nav{display:flex;flex-direction:column;gap:5px}
.mobile-nav a{padding:11px;border-radius:10px;color:#4d555e;font-weight:600}
.mobile-nav a:hover{background:#f0f0eb}
.mobile-nav i{width:24px;margin-right:8px}

.page-shell{max-width:1540px;margin:0 auto;padding:30px 28px 60px}
.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}
.page-path{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#9a9ea3;font-weight:700}
.page-heading h1{font-size:25px;letter-spacing:-.045em;font-weight:800;margin:4px 0 0}

.notice{
  display:flex;align-items:center;gap:9px;border:1px solid var(--line);
  background:#fff;padding:11px 13px;border-radius:11px;margin-bottom:16px;font-size:12px
}
.notice-success{border-color:#d5eadf;background:#f5fbf8;color:#2d7258}
.notice-danger{border-color:#f0d4d6;background:#fff7f7;color:#9c3c45}

.hero-strip{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  background:#20252b;color:#fff;border-radius:18px;padding:26px 28px;margin-bottom:18px;
}
.hero-label{font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:#aab1b9;font-weight:700}
.hero-strip h2{font-size:27px;letter-spacing:-.045em;font-weight:800;margin:4px 0 6px}
.hero-strip p{margin:0;color:#b9c0c7;font-size:12px}
.hero-actions{display:flex;gap:8px;flex-wrap:wrap}
.btn-solid,.btn-ghost{
  display:inline-flex;align-items:center;gap:7px;padding:10px 13px;border-radius:10px;
  font-size:11px;font-weight:700
}
.btn-solid{background:#fff;color:#22272d}
.btn-solid:hover{background:#f0f0eb;color:#22272d}
.btn-ghost{border:1px solid #464d55;color:#e7e3dc}
.btn-ghost:hover{background:#2d333a;color:#fff}

.metric-grid{
  display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px
}
.metric-box{
  background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:17px;display:flex;align-items:center;gap:13px
}
.metric-icon{
  width:38px;height:38px;border-radius:10px;display:grid;place-items:center;
  background:#f0efe9;color:#565d65;font-size:16px
}
.metric-number{font-size:22px;font-weight:800;letter-spacing:-.04em;line-height:1}
.metric-text{font-size:10px;color:#8a9097;margin-top:5px}

.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);gap:18px}
.workspace-card{
  background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden
}
.section-head{
  min-height:70px;padding:17px 18px;border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between
}
.eyebrow{font-size:8.5px;text-transform:uppercase;letter-spacing:.13em;color:#9a9ea3;font-weight:800}
.section-head h3{font-size:15px;font-weight:800;letter-spacing:-.025em;margin:3px 0 0}
.section-link{font-size:10.5px;color:#666e76;font-weight:700}
.section-link:hover{color:var(--accent)}
.activity-list{display:flex;flex-direction:column}
.activity-row{
  display:grid;grid-template-columns:90px minmax(0,1.7fr) auto auto 22px;
  align-items:center;gap:12px;padding:14px 17px;border-bottom:1px solid #f0efe9
}
.activity-row:last-child{border-bottom:0}
.activity-row:hover{background:#fbfbf8}
.activity-code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;
  color:#69717a;background:#f1f0eb;padding:5px 7px;border-radius:7px;width:max-content
}
.activity-main{display:flex;flex-direction:column;min-width:0}
.activity-main strong{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.activity-main small{font-size:9.5px;color:#959aa0;margin-top:3px}
.priority,.status{
  padding:5px 8px;border-radius:999px;font-size:8.5px;font-weight:800;white-space:nowrap
}
.priority-baja{background:#f0f0eb;color:#6d747b}
.priority-media{background:#f0efea;color:#2f3438}
.priority-alta{background:#fff3e5;color:#ad6a16}
.priority-critica{background:#fff0f1;color:#b84650}
.status-nueva,.status-en-proceso{background:#f0efea;color:#2f3438}
.status-por-evaluar,.status-pendiente{background:#fff5e7;color:#a66d1d}
.status-en-pruebas{background:#f3efe9;color:#6f6253}
.status-esperando-cliente{background:#eaf7f5;color:#2a8377}
.status-cerrada,.status-cerrado{background:#eaf7f0;color:#2f8f69}
.status-activo{background:#eaf7f0;color:#2f8f69}
.status-pausado{background:#fff5e7;color:#a66d1d}
.status-cancelado,.status-inactivo{background:#f0f0eb;color:#6d747b}

.side-stack{display:flex;flex-direction:column;gap:18px}
.compact-card{box-shadow:none}
.quick-list{padding:7px}
.quick-list a{display:flex;align-items:center;gap:11px;padding:11px;border-radius:10px}
.quick-list a:hover{background:#f7f7f3}
.quick-list i{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#efeee8;color:#59616a}
.quick-list span{display:flex;flex-direction:column}
.quick-list strong{font-size:11px}
.quick-list small{font-size:9px;color:#969ba1;margin-top:2px}
.progress-row{padding:14px 18px}
.progress-row>div:first-child{display:flex;justify-content:space-between;font-size:10.5px;color:#777e86}
.progress-row strong{color:#363c43}
.track{height:6px;background:#edede8;border-radius:999px;overflow:hidden;margin-top:8px}
.track span{display:block;height:100%;background:var(--accent);border-radius:999px}
.progress-row.closed .track span{background:var(--green)}

.empty-soft{padding:45px 20px;text-align:center;color:#969ba1;display:flex;flex-direction:column;align-items:center}
.empty-soft i{font-size:22px;margin-bottom:9px}
.empty-soft strong{font-size:12px;color:#555c64}
.empty-soft span{font-size:10px;margin-top:3px}

/* Listas */
.page-actions{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}
.section-kicker{font-size:8.5px;text-transform:uppercase;letter-spacing:.12em;color:#989da2;font-weight:800}
.content-title{font-size:22px;font-weight:800;letter-spacing:-.04em;margin:3px 0}
.content-subtitle{font-size:11.5px;color:#7d8389;margin:0}
.action-btn{border:0!important;background:var(--accent)!important;color:#fff!important;padding:10px 14px!important;font-size:11px!important}
.panel-card{background:#fff;border:1px solid var(--line)!important;border-radius:16px!important;box-shadow:var(--shadow);overflow:hidden}
.filter-bar{padding:13px 14px;border-bottom:1px solid var(--line);background:#fbfbf8}
.filter-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.search-box{position:relative;min-width:280px;flex:1;max-width:620px}
.search-box i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ba0a5}
.search-box input{
  width:100%;height:39px;border:1px solid #deddd6;border-radius:10px;background:#fff;
  padding:0 12px 0 36px;font-size:11px;outline:none
}
.search-box input:focus{border-color:#b9b6ac}
.filter-select{width:auto;min-width:150px;min-height:39px!important;font-size:11px!important;border-color:#deddd6!important}
.per-page-select{min-width:120px}
.filter-btn{min-height:39px!important;font-size:11px!important;border-color:#deddd6!important}
.app-table{font-size:11.5px}
.app-table thead th{
  background:#fbfbf8;color:#8e949a;font-size:8.5px;text-transform:uppercase;
  letter-spacing:.07em;padding:11px 14px;border-bottom:1px solid var(--line)
}
.app-table tbody td{padding:14px;border-color:#f0efe9;color:#485059}
.app-table tbody tr:hover{background:#fcfcfa}
.table-title,.table-title-link{font-weight:700;color:#2c3238}
.table-title-link:hover{color:var(--accent)}
.table-meta{font-size:9px;color:#9aa0a6;margin-top:3px}
.code-link{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9.5px;
  background:#f0efe9;color:#616870;padding:5px 7px;border-radius:7px
}
.row-action{
  width:30px;height:30px;border-radius:8px;border:1px solid #e2e1da;
  display:inline-grid;place-items:center;color:#6d747b;background:#fff
}
.row-action:hover{border-color:#cfcac0;color:var(--accent)}
.company-avatar{
  width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:#efeee8;color:#585f67;font-weight:800
}
.panel-footer{padding:12px 14px;border-top:1px solid var(--line);background:#fbfbf8}
.empty-state{padding:42px 18px;text-align:center;display:flex;flex-direction:column;align-items:center;color:#989da2}
.empty-icon{width:44px;height:44px;border-radius:12px;background:#efeee8;display:grid;place-items:center;margin-bottom:10px}
.empty-state strong{font-size:11.5px;color:#555c64}
.empty-state span{font-size:9.5px;margin-top:3px}
.form-control,.form-select{border-color:#deddd6;border-radius:10px;box-shadow:none!important;font-size:12px;min-height:42px}
.form-control:focus,.form-select:focus{border-color:#b9b6ac}
.form-label{font-size:10.5px;font-weight:700;color:#555c64}
.pagination{margin:0;gap:4px}
.page-link{border-radius:8px!important;border-color:#e0dfd8;color:#666e76;font-size:10px}
.active>.page-link{background:var(--accent);border-color:var(--accent)}

/* Login */
.login-body{min-height:100vh;background:#f7f7f3}
.login-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}
.login-brand-panel{
  padding:56px;background:
    linear-gradient(145deg,rgba(47,52,56,.96),rgba(87,80,72,.96)),
    #5865f2;color:#fff;display:flex;flex-direction:column;justify-content:space-between
}
.login-brand-content{max-width:570px;margin:auto 0}
.login-brand{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:800}
.login-brand .brand-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#fff;color:#2f3438}
.login-brand-content h1{font-size:42px;line-height:1.08;font-weight:800;letter-spacing:-.05em;margin:30px 0 16px}
.login-brand-content p{color:#e8e2d9;line-height:1.7;max-width:500px;font-size:13px}
.login-features{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.login-features span{background:rgba(255,255,255,.12);padding:8px 10px;border-radius:999px;font-size:10px}
.login-brand-footer{font-size:9px;color:#ddd7ce}
.login-form-panel{display:grid;place-items:center;padding:40px;background:#f7f7f3}
.login-card{width:min(100%,420px)}
.login-mobile-brand{display:none}
.login-card h2{font-size:28px;font-weight:800;letter-spacing:-.04em;margin:5px 0}
.login-subtitle{font-size:11.5px;color:#80868d;margin-bottom:24px}
.input-icon-wrap{position:relative}
.input-icon-wrap i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#9da2a8}
.input-icon-wrap input{padding-left:38px;height:48px;background:#fff}
.login-button{height:49px;background:var(--accent)!important;border-color:var(--accent)!important}
.login-security{text-align:center;color:#9a9fa5;font-size:9.5px;margin-top:18px}

@media(max-width:1100px){
  .metric-grid{grid-template-columns:repeat(3,1fr)}
  .dashboard-grid{grid-template-columns:1fr}
}
@media(max-width:991.98px){
  .desktop-nav{display:none}
  .app-header-inner{padding:0 18px}
  .page-shell{padding:24px 18px 45px}
  .login-shell{grid-template-columns:1fr}
  .login-brand-panel{display:none}
  .login-form-panel{min-height:100vh}
  .login-mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:26px}
}
@media(max-width:767.98px){
  .new-item-btn span{display:none}
  .metric-grid{grid-template-columns:repeat(2,1fr)}
  .hero-strip{align-items:flex-start;flex-direction:column}
  .activity-row{grid-template-columns:75px minmax(0,1fr) 20px}
  .activity-row .priority,.activity-row .status{display:none}
  .page-actions{flex-direction:column;align-items:stretch}
  .page-actions .action-btn{width:100%}
  .filter-form{display:grid;grid-template-columns:1fr}
  .search-box,.filter-select,.per-page-select{width:100%;max-width:none;min-width:0}
}



/* =========================================================
   HubWM V1.2.3 - Login profesional
   Añadir al final de public/assets/css/witshub.css
   ========================================================= */

.login-professional{
    min-height:100vh;
    background:#f7f7f3;
}

.access-shell{
    min-height:100vh;
    display:grid;
    grid-template-columns:minmax(420px, 1.05fr) minmax(430px, .95fr);
}

.access-visual{
    position:relative;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:46px 52px;
    color:#fff;
    background:
        radial-gradient(circle at 18% 18%, rgba(255,255,255,.12), transparent 26%),
        radial-gradient(circle at 82% 72%, rgba(116,126,255,.24), transparent 30%),
        linear-gradient(145deg,#1f242b 0%,#272d37 50%,#353b49 100%);
}

.access-visual::after{
    content:"";
    position:absolute;
    width:420px;
    height:420px;
    right:-160px;
    bottom:-160px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:50%;
    box-shadow:
        0 0 0 70px rgba(255,255,255,.025),
        0 0 0 140px rgba(255,255,255,.018);
}

.access-brand{
    display:flex;
    align-items:center;
    gap:11px;
    position:relative;
    z-index:1;
    font-size:18px;
    font-weight:800;
    letter-spacing:-.035em;
}

.brand-symbol-light{
    background:#fff !important;
    color:#242a32 !important;
}

.access-message{
    position:relative;
    z-index:1;
    max-width:610px;
}

.access-overline{
    display:block;
    margin-bottom:12px;
    font-size:9px;
    font-weight:800;
    letter-spacing:.17em;
    color:#adb5c0;
}

.access-message h1{
    margin:0;
    max-width:590px;
    font-size:42px;
    line-height:1.08;
    font-weight:800;
    letter-spacing:-.055em;
}

.access-message p{
    max-width:540px;
    margin:20px 0 0;
    color:#b9c0c9;
    font-size:13px;
    line-height:1.8;
}

.access-visual-bottom{
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:#89929d;
    font-size:9.5px;
}

.access-visual-bottom i{
    margin-right:6px;
}

.access-form-area{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:44px;
    background:#f7f7f3;
}

.access-card{
    width:min(100%,430px);
}

.access-mobile-brand{
    display:none;
    align-items:center;
    gap:10px;
    margin-bottom:34px;
}

.access-kicker{
    display:block;
    margin-bottom:6px;
    font-size:9px;
    font-weight:800;
    letter-spacing:.15em;
    color:#91979e;
}

.access-card h2{
    margin:0;
    color:#20252b;
    font-size:30px;
    font-weight:800;
    letter-spacing:-.045em;
}

.access-subtitle{
    margin:8px 0 28px;
    color:#7e858c;
    font-size:11.5px;
    line-height:1.6;
}

.access-label{
    margin-bottom:7px;
    color:#4d545c;
    font-size:10.5px;
    font-weight:700;
}

.access-input{
    position:relative;
}

.access-input > i{
    position:absolute;
    top:50%;
    left:14px;
    z-index:2;
    transform:translateY(-50%);
    color:#9da2a8;
    font-size:13px;
}

.access-input .form-control{
    height:49px;
    padding-left:41px;
    border:1px solid #deddd6;
    border-radius:11px;
    background:#fff;
    font-size:12px;
    box-shadow:none;
}

.access-input .form-control:focus{
    border-color:#918a80;
    box-shadow:0 0 0 3px rgba(47,52,56,.08);
}

.access-submit{
    height:50px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    border:0;
    border-radius:11px;
    background:#252b32;
    color:#fff;
    font-size:11.5px;
    font-weight:750;
    transition:.18s ease;
}

.access-submit:hover,
.access-submit:focus{
    background:#151a20;
    color:#fff;
}

.access-note{
    margin-top:20px;
    text-align:center;
    color:#999ea4;
    font-size:9.5px;
    line-height:1.6;
}

.access-note i{
    margin-right:5px;
}

.access-alert{
    border-radius:10px;
    font-size:11px;
}

.access-footer{
    position:absolute;
    right:44px;
    bottom:28px;
    left:44px;
    text-align:center;
    color:#a2a6aa;
    font-size:9px;
}

@media (max-width:991.98px){
    .access-shell{
        grid-template-columns:1fr;
    }

    .access-visual{
        display:none;
    }

    .access-form-area{
        min-height:100vh;
        padding:30px;
    }

    .access-mobile-brand{
        display:flex;
    }

    .access-footer{
        bottom:18px;
    }
}


/* =========================================================
   HubWM V1.2.4 - Corrección visual global
   Elimina los azules heredados de Bootstrap / versión anterior
   ========================================================= */

:root{
  --bs-primary:#2f3438;
  --bs-primary-rgb:47,52,56;
  --bs-link-color:#2f3438;
  --bs-link-hover-color:#171a1d;
}

.btn-primary,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.show>.btn-primary.dropdown-toggle{
  background-color:#2f3438 !important;
  border-color:#2f3438 !important;
  color:#fff !important;
  box-shadow:none !important;
}

.btn-primary:hover{
  background-color:#1f2428 !important;
  border-color:#1f2428 !important;
}

.btn-outline-primary{
  color:#2f3438 !important;
  border-color:#a9a59b !important;
  background:#fff !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active{
  color:#fff !important;
  background:#2f3438 !important;
  border-color:#2f3438 !important;
}

.text-primary{color:#2f3438 !important}
.bg-primary{background-color:#2f3438 !important}
.border-primary{border-color:#2f3438 !important}

a{--bs-link-color-rgb:47,52,56}
.nav-pills .nav-link.active,
.nav-pills .show>.nav-link{
  background-color:#2f3438 !important;
  color:#fff !important;
}

.form-check-input:checked{
  background-color:#2f3438 !important;
  border-color:#2f3438 !important;
}

.form-check-input:focus{
  border-color:#918a80 !important;
  box-shadow:0 0 0 .25rem rgba(47,52,56,.12) !important;
}

.page-link{
  color:#555c64 !important;
}

.page-item.active .page-link{
  background-color:#2f3438 !important;
  border-color:#2f3438 !important;
  color:#fff !important;
}

.dropdown-item.active,
.dropdown-item:active{
  background-color:#2f3438 !important;
}

.badge.bg-primary{
  background:#2f3438 !important;
}

.alert-primary{
  background:#f0efea !important;
  border-color:#dedbd3 !important;
  color:#454a4f !important;
}

.list-group-item.active{
  background-color:#2f3438 !important;
  border-color:#2f3438 !important;
}

.table-primary{
  --bs-table-bg:#efeee8 !important;
  --bs-table-striped-bg:#e7e5de !important;
  --bs-table-active-bg:#dedbd3 !important;
  --bs-table-hover-bg:#e7e5de !important;
  color:#30353a !important;
}

input[type="range"]::-webkit-slider-thumb{
  background:#2f3438 !important;
}

.progress-bar{
  background-color:#2f3438 !important;
}

/* Botones personalizados */
.action-btn,
.login-button{
  background:#2f3438 !important;
  border-color:#2f3438 !important;
}

.action-btn:hover,
.login-button:hover{
  background:#1f2428 !important;
  border-color:#1f2428 !important;
}

.code-link:hover,
.table-title-link:hover,
.section-link:hover{
  color:#2f3438 !important;
}


/* =========================================================
   HubWM V1.3.0 — Colaboración cliente
   ========================================================= */

.notification-button{
  position:relative;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;
  border:1px solid var(--line);background:#fff;color:#555c64
}
.notification-button:hover{background:#efeee8;color:#22272d}
.notification-button span{
  position:absolute;right:-5px;top:-5px;min-width:18px;height:18px;padding:0 4px;
  border-radius:999px;background:#c4515b;color:#fff;display:grid;place-items:center;font-size:8px;font-weight:800
}
.collaboration-hero{background:linear-gradient(140deg,#24292f,#343a40)}
.metric-grid-client{grid-template-columns:repeat(4,1fr)}

.mini-notifications{padding:7px}
.mini-notifications a{display:flex;gap:10px;padding:10px;border-radius:10px;align-items:flex-start}
.mini-notifications a:hover{background:#f7f7f3}
.mini-notifications a.unread{background:#f2f1ec}
.mini-notifications i{margin-top:2px;color:#777f87}
.mini-notifications span{display:flex;flex-direction:column;min-width:0}
.mini-notifications strong{font-size:10.5px}
.mini-notifications small{font-size:9px;color:#92979c;margin-top:2px;line-height:1.45}
.empty-mini{padding:16px;color:#92979c;font-size:10px;text-align:center}

.notification-list{overflow:hidden}
.notification-row{
  display:grid;grid-template-columns:8px 28px minmax(0,1fr) auto 20px;
  gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid #efeee8
}
.notification-row:last-child{border-bottom:0}
.notification-row:hover{background:#fbfbf8}
.notification-row.unread{background:#f5f4ef}
.notification-dot{width:7px;height:7px;border-radius:50%;background:transparent}
.notification-row.unread .notification-dot{background:#2f3438}
.notification-copy{display:flex;flex-direction:column;min-width:0}
.notification-copy strong{font-size:11px}
.notification-copy small{font-size:9.5px;color:#838a91;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.notification-date{font-size:9px;color:#a0a4a8}

.kanban-wrap{
  display:grid;grid-template-columns:repeat(7,minmax(245px,1fr));gap:12px;overflow-x:auto;
  padding-bottom:12px;scrollbar-width:thin
}
.kanban-column{
  background:#efeee9;border:1px solid #e3e1da;border-radius:14px;min-width:245px;align-self:start
}
.kanban-column>header{
  height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;
  font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#636b73
}
.kanban-column>header b{
  width:22px;height:22px;border-radius:7px;background:#fff;display:grid;place-items:center;font-size:9px
}
.kanban-cards{padding:0 7px 7px}
.kanban-card{background:#fff;border:1px solid #e4e2da;border-radius:11px;padding:11px;margin-bottom:7px}
.kanban-card:hover{border-color:#cfcac0}
.kanban-main-link{display:block}
.kanban-card h3{font-size:11.5px;font-weight:800;line-height:1.45;margin:10px 0 8px}
.kanban-card p{font-size:9px;color:#81878d;margin:4px 0;display:flex;gap:6px;align-items:center}
.kanban-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #f0efe9;margin-top:9px;padding-top:8px}
.kanban-meta span{font-size:8.5px;color:#8c9298;display:flex;gap:4px;align-items:center;min-width:0}
.kanban-move{margin-top:9px;padding-top:8px;border-top:1px solid #f0efe9}
.kanban-move .form-select{min-height:32px;font-size:9px;border-radius:8px}
.kanban-empty{text-align:center;color:#a0a4a8;font-size:9px;padding:20px 5px}

.ticket-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}
.ticket-code{font:600 10px ui-monospace,SFMono-Regular,Menlo,monospace;color:#81878d;margin-bottom:5px}
.ticket-head h2{font-size:24px;letter-spacing:-.04em;font-weight:800;margin:0 0 5px}
.ticket-sub{font-size:10.5px;color:#858b91}
.ticket-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.6fr);gap:18px}
.ticket-main,.ticket-side{display:flex;flex-direction:column;gap:18px}
.ticket-body{padding:18px}
.ticket-facts{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:18px}
.ticket-facts>div{padding:10px;background:#f8f8f5;border-radius:10px}
.ticket-facts span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:#9a9fa4;margin-bottom:3px}
.ticket-facts strong{font-size:10px;color:#485058}
.description-box{background:#fbfbf8;border:1px solid #eceae3;padding:15px;border-radius:11px;line-height:1.7;font-size:11.5px}

.review-panel{
  padding:18px;border-radius:16px;border:1px solid #dedbd3;background:#f2f1ec
}
.review-panel h3{font-size:16px;font-weight:800;margin:4px 0}
.review-panel p{font-size:10.5px;color:#727980;margin:0}
.review-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.review-result{
  display:flex;gap:12px;padding:15px 17px;border:1px solid #dfe5df;background:#f7faf7;border-radius:14px
}
.review-result>i{font-size:20px}
.review-result strong{font-size:11px}
.review-result p{font-size:10px;color:#6d747b;margin:4px 0 0}

.conversation{padding:18px}
.message{display:flex;gap:10px;margin-bottom:18px}
.message-avatar{
  flex:0 0 34px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:#e9e8e2;color:#4f565e;font-size:10px;font-weight:800
}
.message-client .message-avatar{background:#ece9e2}
.message-content{min-width:0;flex:1}
.message-meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.message-meta strong{font-size:10.5px}
.message-meta span{font-size:8px;padding:3px 6px;border-radius:999px;background:#efeee9;color:#777e85}
.message-meta time{font-size:8.5px;color:#a0a4a8}
.message-text{margin-top:6px;font-size:11.5px;line-height:1.65;color:#454c53}
.message-file{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:7px 9px;border:1px solid #e4e2da;border-radius:8px;font-size:9px}
.message-file:hover{background:#f7f7f3}
.composer{border-top:1px solid var(--line);padding:14px;background:#fbfbf8}
.composer textarea{resize:vertical}
.composer-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px;gap:8px}
.file-button{display:inline-flex;align-items:center;gap:6px;border:1px solid #deddd6;background:#fff;border-radius:9px;padding:8px 10px;font-size:9.5px;cursor:pointer}
.file-button:hover{background:#f1f0eb}

.attachment-list{display:flex;flex-direction:column;margin-top:12px}
.attachment-list>a{display:flex;gap:8px;align-items:flex-start;padding:9px 0;border-top:1px solid #efeee9}
.attachment-list>a span{display:flex;flex-direction:column;min-width:0}
.attachment-list strong{font-size:9.5px;word-break:break-word}
.attachment-list small{font-size:8px;color:#9a9fa4;margin-top:2px}

.timeline-mini{padding:12px 16px}
.timeline-mini>div{position:relative;display:flex;gap:9px;padding-bottom:12px}
.timeline-dot{width:7px;height:7px;border-radius:50%;background:#969b9f;margin-top:4px;flex:0 0 auto}
.timeline-mini p{margin:0;display:flex;flex-direction:column}
.timeline-mini strong{font-size:9.5px;font-weight:700;text-transform:capitalize}
.timeline-mini small{font-size:8px;color:#9a9fa4;margin-top:2px}

@media(max-width:1100px){
  .ticket-layout{grid-template-columns:1fr}
  .ticket-facts{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:767.98px){
  .metric-grid-client{grid-template-columns:repeat(2,1fr)}
  .ticket-head{flex-direction:column}
  .ticket-facts{grid-template-columns:1fr 1fr}
  .notification-row{grid-template-columns:8px 26px minmax(0,1fr) 18px}
  .notification-date{display:none}
}

/* =========================================================
   HubWM V1.3.2 — Vista previa de imágenes + pegar capturas
   ========================================================= */
.image-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:14px}
.image-thumb{display:flex;flex-direction:column;min-width:0;padding:0;overflow:hidden;border:1px solid #e3e1da;border-radius:11px;background:#fff;text-align:left}
.image-thumb:hover{border-color:#bcb8ae;background:#fafaf7}
.image-thumb img{width:100%;aspect-ratio:16/10;object-fit:cover;background:#f0efea}
.image-thumb span{padding:8px 9px;font-size:8.5px;color:#6f767d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.section-count{min-width:24px;height:24px;border-radius:7px;background:#efeee8;display:grid;place-items:center;font-size:9px;font-weight:800;color:#626a72}
.message-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.message-image{position:relative;display:block;width:min(260px,100%);padding:0;overflow:hidden;border:1px solid #e4e2da;border-radius:10px;background:#f5f4ef;text-align:left}
.message-image img{width:100%;max-height:220px;object-fit:cover;display:block}
.message-image span{display:flex;align-items:center;gap:6px;padding:7px 9px;font-size:8.5px;color:#71777d;background:#fff}
.message-image:hover{border-color:#bcb8ae}
.attachment-image-row{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) 20px;gap:8px;align-items:center;padding:9px 0;border:0;border-top:1px solid #efeee9;background:transparent;text-align:left}
.attachment-image-row:hover{background:#fafaf7}
.attachment-image-row>span:nth-child(2){display:flex;flex-direction:column;min-width:0}
.attachment-image-row strong{font-size:9.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attachment-image-row small{font-size:8px;color:#9a9fa4;margin-top:2px}
.attachment-mini-thumb{width:38px;height:38px;border-radius:7px;overflow:hidden;background:#efeee9}
.attachment-mini-thumb img{width:100%;height:100%;object-fit:cover}
.image-modal-content{border:0;border-radius:14px;overflow:hidden;background:#fff}
.image-modal-name{max-width:65vw;font-size:9px;color:#8d9399;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.image-modal-body{display:flex;align-items:center;justify-content:center;min-height:240px;padding:14px;background:#22272b}
.image-modal-body img{display:block;max-width:100%;max-height:78vh;object-fit:contain;border-radius:4px}
.min-width-0{min-width:0}
.paste-zone{display:flex;align-items:center;gap:10px;margin-top:9px;padding:11px 12px;border:1px dashed #c9c6bd;border-radius:10px;background:#f7f7f3;color:#6e757b;cursor:text;outline:none;transition:border-color .15s ease,background .15s ease}
.paste-zone:focus,.paste-zone.drag-over{border-color:#6d747b;background:#f0efea}
.paste-zone.paste-success{border-color:#728474;background:#f0f5f0}
.paste-zone>i{flex:0 0 32px;width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#e9e8e2;font-size:15px}
.paste-zone>div{display:flex;flex-direction:column;min-width:0}
.paste-zone strong{font-size:9.5px;color:#51585e}
.paste-zone span{margin-top:2px;font-size:8.5px;color:#969b9f}
.paste-zone.has-files{border-style:solid}
.pending-files{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:7px;margin-top:8px}
.pending-files:empty{display:none}
.pending-file{display:grid;grid-template-columns:42px minmax(0,1fr) 28px;gap:8px;align-items:center;padding:7px;border:1px solid #e3e1da;border-radius:9px;background:#fff}
.pending-file-preview{width:42px;height:42px;border-radius:7px;overflow:hidden;background:#efeee8;display:grid;place-items:center;color:#7d848a}
.pending-file-preview img{width:100%;height:100%;object-fit:cover}
.pending-file-info{display:flex;flex-direction:column;min-width:0}
.pending-file-info strong{font-size:8.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pending-file-info small{font-size:8px;color:#9a9fa4;margin-top:2px}
.pending-file-remove{width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:#888e94}
.pending-file-remove:hover{background:#f0efea;color:#3f464c}
.composer-actions{flex-wrap:wrap}
.composer-hint{margin-right:auto;font-size:8px;color:#9a9fa4}
@media(max-width:767.98px){.image-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.pending-files{grid-template-columns:1fr}.image-modal-name{max-width:50vw}.composer-actions .composer-hint{width:100%;order:3}}


/* =========================================================
   HubWM V1.4.0 — Estados con color + conversación dinámica
   ========================================================= */
.status{font-weight:800;border:1px solid transparent}
.status-nueva{background:#e8f2ff!important;color:#2563a9!important;border-color:#c7ddf7!important}
.status-por-evaluar{background:#fff4d9!important;color:#95610c!important;border-color:#f2d89a!important}
.status-pendiente{background:#fff0e4!important;color:#b45e20!important;border-color:#f3c9a9!important}
.status-en-proceso{background:#eee9ff!important;color:#6747ae!important;border-color:#d7caf7!important}
.status-en-pruebas{background:#e5f7f5!important;color:#1c7a72!important;border-color:#bce5df!important}
.status-esperando-cliente{background:#fdebf2!important;color:#a64769!important;border-color:#f3c6d7!important}
.status-cerrada,.status-cerrado{background:#e7f6ec!important;color:#267a49!important;border-color:#bee1ca!important}
.kanban-card{border-left:4px solid #d7d7d2!important}
.kanban-state-nueva{border-left-color:#4f8fd1!important}.kanban-state-por-evaluar{border-left-color:#d9a832!important}.kanban-state-pendiente{border-left-color:#df8241!important}.kanban-state-en-proceso{border-left-color:#7a61c7!important}.kanban-state-en-pruebas{border-left-color:#3c9c93!important}.kanban-state-esperando-cliente{border-left-color:#c45b80!important}.kanban-state-cerrada{border-left-color:#43a36a!important}
.new-comments-badge{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:3px 7px;border-radius:999px;background:#fff2d8;color:#9b650c;font-size:8px;font-weight:800;white-space:nowrap}
.conversation-card{overflow:visible}.new-post-box{padding:14px;border-bottom:1px solid #eceae4;background:#fafaf7}.new-post-title{display:flex;align-items:center;gap:7px;margin-bottom:9px;font-size:10px}.new-post-title span{font-size:8.5px;color:#93989c;font-weight:400}.new-summary{display:inline-flex;align-items:center;gap:5px;font-size:8.5px;font-weight:800;color:#a85d17}.new-summary i{font-size:6px}
.thread-feed{padding:0 14px 14px}.thread-post{padding:16px 0;border-bottom:1px solid #eceae4;scroll-margin-top:90px}.thread-post:last-child{border-bottom:0}.thread-post.is-new,.thread-reply.is-new{background:linear-gradient(90deg,#fff9eb 0,rgba(255,249,235,0) 80%)}.post-header{display:flex;gap:9px;align-items:center}.post-author{min-width:0;flex:1}.post-author>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.post-author strong{font-size:9.5px}.post-author time{display:block;margin-top:2px;font-size:8px;color:#a0a4a7}.author-role{font-size:7.5px;padding:2px 5px;border-radius:5px;background:#efeee9;color:#777d82}.new-label{font-size:7px;font-weight:900;letter-spacing:.05em;padding:2px 5px;border-radius:5px;background:#f2a13c;color:#fff}.post-text{margin:10px 0 8px 42px;font-size:10px;line-height:1.6;color:#454b50}.post-actions{display:flex;align-items:center;gap:5px;margin:8px 0 0 42px;flex-wrap:wrap}.post-actions form{margin:0}.reaction-btn,.thread-action{border:0;background:transparent;border-radius:7px;padding:5px 7px;color:#737a80;font-size:8.5px;font-weight:700}.reaction-btn:hover,.thread-action:hover{background:#f0efea;color:#3f464c}.reaction-btn.active{background:#e8f2ff;color:#2868a4}.reply-count{font-size:8px;color:#9ba0a4;margin-left:3px}.reply-thread{margin:10px 0 0 42px;padding-left:12px;border-left:2px solid #e5e3dc}.thread-reply{padding:10px 0;scroll-margin-top:90px}.thread-reply+.thread-reply{border-top:1px solid #f0eee8}.thread-reply .post-text{margin-left:36px}.thread-reply .post-actions{margin-left:36px}.message-avatar.small{width:28px;height:28px;font-size:9px}.reply-composer-wrap{margin:10px 0 0 42px}.reply-composer{padding:10px;border:1px solid #e6e4de;border-radius:10px;background:#fafaf7}.paste-zone.compact{padding:8px 10px}.paste-zone.compact>i{width:27px;height:27px;flex-basis:27px;font-size:12px}.paste-zone.compact strong{font-size:8.5px}.paste-zone.compact span{font-size:7.5px}.thread-post .message-image,.thread-reply .message-image{margin-left:42px}.thread-reply .message-image{margin-left:36px}.thread-post .message-file,.thread-reply .message-file{margin-left:42px}
@media(max-width:767.98px){.new-post-title{align-items:flex-start;flex-wrap:wrap}.new-post-title span{width:100%;padding-left:23px}.post-text,.post-actions,.reply-composer-wrap,.thread-post .message-image,.thread-post .message-file{margin-left:0}.reply-thread{margin-left:14px}.thread-reply .post-text,.thread-reply .post-actions,.thread-reply .message-image{margin-left:0}}

/* =========================================================
   HubWM V1.5.0 — Proyectos, actividades, Kanban y Gantt
   ========================================================= */
.project-responsible{margin-top:3px;font-size:8px;color:#9a9fa4}.project-progress-line{display:flex;align-items:center;gap:8px}.project-progress-line>div{flex:1;min-width:70px;height:7px;border-radius:999px;background:#eceae4;overflow:hidden}.project-progress-line>div>span{display:block;height:100%;border-radius:999px;background:#59666f}.project-progress-line>strong{font-size:8.5px;color:#60676d;min-width:32px;text-align:right}.project-status{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:8px;font-weight:800;border:1px solid transparent;white-space:nowrap}.project-status-planificado{background:#e8f2ff;color:#2c67a2;border-color:#c9ddf4}.project-status-activo{background:#eee9ff;color:#6747ae;border-color:#d7caf7}.project-status-pausado{background:#fff4d9;color:#95610c;border-color:#f2d89a}.project-status-cerrado{background:#e7f6ec;color:#267a49;border-color:#bee1ca}.project-status-cancelado{background:#f3ecec;color:#8b5050;border-color:#dfcccc}
.project-kanban-wrap,.activity-kanban-wrap{overflow-x:auto;padding-bottom:8px}.project-kanban,.activity-kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(270px,1fr);gap:12px;min-width:max-content}.project-kanban-col,.activity-kanban-col{width:290px;background:#f7f7f3;border:1px solid #e6e4de;border-radius:12px;overflow:hidden}.project-kanban-col>header,.activity-kanban-col>header{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border-bottom:1px solid #e8e6df;background:#fbfbf8}.project-kanban-col>header>div,.activity-kanban-col>header>div{display:flex;align-items:center;gap:7px}.project-kanban-col>header strong,.activity-kanban-col>header strong{font-size:9px}.project-kanban-col>header>span,.activity-kanban-col>header>span{font-size:8px;color:#8b9196}.project-state-dot,.activity-state-dot{width:7px;height:7px;border-radius:50%;background:#a5aaae}.project-col-planificado .project-state-dot{background:#4f8fd1}.project-col-activo .project-state-dot{background:#7a61c7}.project-col-pausado .project-state-dot{background:#d9a832}.project-col-cerrado .project-state-dot{background:#43a36a}.project-col-cancelado .project-state-dot{background:#9b7373}.project-kanban-list,.activity-kanban-list{padding:9px}.project-kanban-card{display:block;padding:11px;border:1px solid #e3e1da;border-radius:10px;background:#fff;color:inherit;text-decoration:none}.project-kanban-card+.project-kanban-card{margin-top:8px}.project-kanban-card:hover{border-color:#c7c3b8}.project-kanban-card h3{margin:9px 0 4px;font-size:11px}.project-kanban-card p{margin:0 0 10px;font-size:8.5px;color:#858b90}.project-kanban-card footer,.activity-kanban-card footer{display:flex;justify-content:space-between;gap:8px;margin-top:10px;font-size:7.5px;color:#92979b}.kanban-empty-mini{padding:20px 10px;text-align:center;font-size:8.5px;color:#9ba0a4}
.project-hero{display:grid;grid-template-columns:minmax(0,1fr) 210px auto;gap:22px;align-items:center;padding:20px}.project-hero-main h2{margin:0 0 7px;font-size:22px}.project-hero-main>p{margin:0;color:#737a80;font-size:10px;line-height:1.6;max-width:760px}.project-meta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px}.project-meta-row span{display:flex;align-items:center;gap:5px;font-size:8.5px;color:#7e858a}.project-hero-progress{text-align:right}.project-hero-progress>strong{display:block;font-size:28px;line-height:1}.project-hero-progress>span{display:block;margin-top:3px;font-size:8px;color:#92979b}.project-progress-large{height:8px;border-radius:999px;background:#eceae4;overflow:hidden;margin:10px 0 6px}.project-progress-large span{display:block;height:100%;background:#59666f;border-radius:999px}.project-hero-progress small{font-size:7.5px;color:#9a9fa4}.project-hero-actions{display:flex;flex-direction:column;gap:7px}.project-tabs{display:flex;gap:4px;overflow-x:auto;margin:14px 0;border-bottom:1px solid #e4e2dc}.project-tabs a{display:flex;align-items:center;gap:5px;padding:9px 11px;color:#777e84;text-decoration:none;font-size:9px;font-weight:700;border-bottom:2px solid transparent;white-space:nowrap}.project-tabs a.active{color:#373d42;border-color:#60676d}.project-tabs a span{padding:2px 5px;border-radius:999px;background:#eceae4;font-size:7px}.project-metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.project-metric{padding:15px;border:1px solid #e4e2dc;border-radius:11px;background:#fff}.project-metric span{display:block;font-size:8px;color:#92979b}.project-metric strong{display:block;margin:4px 0 2px;font-size:22px}.project-metric small{font-size:8px;color:#858b90}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #ebe9e3}.section-head h3{margin:1px 0 0;font-size:12px}.section-head p{margin:4px 0 0;font-size:8px;color:#93989d}.section-head>a:not(.btn){font-size:8px;color:#676e74;text-decoration:none}.project-activity-compact-list>a{display:flex;align-items:center;gap:9px;padding:11px 15px;color:inherit;text-decoration:none;border-bottom:1px solid #efede7}.project-activity-compact-list>a:last-child{border-bottom:0}.project-activity-compact-list strong{display:block;font-size:9.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-activity-compact-list small{display:block;margin-top:2px;font-size:7.5px;color:#9ba0a4}.activity-type-icon{width:28px;height:28px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;background:#efeee9;color:#697177}.activity-type-icon.milestone{background:#fff3dd;color:#a26c16}.activity-status{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:7.5px;font-weight:800;border:1px solid transparent;white-space:nowrap}.activity-status-por-hacer{background:#f0f1f2;color:#6d7479;border-color:#dcdee0}.activity-status-en-proceso{background:#eee9ff;color:#6747ae;border-color:#d7caf7}.activity-status-en-revision{background:#e8f2ff;color:#2c67a2;border-color:#c9ddf4}.activity-status-bloqueada{background:#fdeaea;color:#a44d4d;border-color:#f0c2c2}.activity-status-completada{background:#e7f6ec;color:#267a49;border-color:#bee1ca}.project-state-summary{padding:15px}.project-state-summary>div+div{margin-top:12px}.project-state-summary>div>div:first-child{display:flex;justify-content:space-between;font-size:8.5px}.summary-bar{height:7px;margin-top:5px;border-radius:999px;background:#eceae4;overflow:hidden}.summary-bar span{display:block;height:100%}.activity-fill-por-hacer{background:#a6adb2!important}.activity-fill-en-proceso{background:#7a61c7!important}.activity-fill-en-revision{background:#4f8fd1!important}.activity-fill-bloqueada{background:#cf5f5f!important}.activity-fill-completada{background:#43a36a!important}.activity-title-cell{display:flex;align-items:center;gap:9px}.activity-title-cell>div{min-width:0}.activity-title-cell strong{display:block;font-size:9.5px}.activity-title-cell small{display:block;margin-top:2px;font-size:7.5px;color:#9aa0a4}.date-range-mini{font-size:8px;color:#747b80;white-space:nowrap}
.activity-col-por-hacer .activity-state-dot{background:#a6adb2}.activity-col-en-proceso .activity-state-dot{background:#7a61c7}.activity-col-en-revision .activity-state-dot{background:#4f8fd1}.activity-col-bloqueada .activity-state-dot{background:#cf5f5f}.activity-col-completada .activity-state-dot{background:#43a36a}.activity-kanban-card{padding:10px;border:1px solid #e3e1da;border-radius:10px;background:#fff}.activity-kanban-card+.activity-kanban-card{margin-top:8px}.activity-kanban-card h4{margin:8px 0 4px;font-size:10px;line-height:1.4}.activity-kanban-card>p{margin:0 0 8px;font-size:7.5px;color:#92979b}.activity-card-actions{display:flex;align-items:center;gap:6px;margin-top:9px}.activity-card-actions form{flex:1}.activity-card-actions .form-select{font-size:8px;min-height:30px}
.gantt-card{overflow:hidden}.gantt-scroll{overflow-x:auto}.gantt-shell{display:grid;grid-template-columns:240px var(--timeline-width);min-width:calc(240px + var(--timeline-width));font-size:8px}.gantt-header-left{position:sticky;left:0;z-index:4;padding:9px 12px;background:#f7f7f3;border-right:1px solid #e6e4de;border-bottom:1px solid #e6e4de;font-weight:800}.gantt-header-time{position:relative;height:34px;background:#f7f7f3;border-bottom:1px solid #e6e4de}.gantt-header-time span{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;border-right:1px solid #e6e4de;font-size:7.5px;font-weight:800;color:#747b80}.gantt-label{position:sticky;left:0;z-index:3;min-height:44px;padding:8px 12px;background:#fff;border-right:1px solid #e9e7e1;border-bottom:1px solid #efede8}.gantt-label strong{display:block;font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-label small{display:block;margin-top:3px;color:#9aa0a4}.gantt-track{position:relative;min-height:44px;border-bottom:1px solid #efede8;background-image:linear-gradient(to right,rgba(0,0,0,.045) 1px,transparent 1px)}.gantt-bar{position:absolute;top:10px;height:24px;border-radius:6px;overflow:hidden;min-width:12px;color:#fff}.gantt-bar i{position:absolute;left:0;top:0;bottom:0;background:rgba(255,255,255,.25)}.gantt-bar b{position:absolute;right:5px;top:5px;font-size:7px;color:#fff}.gantt-milestone{position:absolute;top:13px;width:18px;height:18px;transform:rotate(45deg);border-radius:2px}.gantt-legend{display:flex;flex-wrap:wrap;gap:12px;padding:11px 14px;border-top:1px solid #ebe9e3}.gantt-legend span{display:flex;align-items:center;gap:5px;font-size:7.5px;color:#777e84}.gantt-legend i{width:10px;height:10px;border-radius:3px}.gantt-legend b{font-size:12px;color:#a26c16}
@media(max-width:1100px){.project-hero{grid-template-columns:1fr 180px}.project-hero-actions{grid-column:1/-1;flex-direction:row}.project-metrics-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:767.98px){.project-hero{grid-template-columns:1fr}.project-hero-progress{text-align:left}.project-hero-actions{grid-column:auto}.project-metrics-grid{grid-template-columns:1fr 1fr}.gantt-shell{grid-template-columns:180px var(--timeline-width);min-width:calc(180px + var(--timeline-width))}.project-kanban-col,.activity-kanban-col{width:270px}}

/* =========================================================
   HubWM V1.5.2 — Conversación en actividades de proyecto
   ========================================================= */
.back-link{display:inline-flex;align-items:center;gap:5px;font-size:8.5px;color:#737a80;text-decoration:none}.back-link:hover{color:#343a40}.activity-detail-title{margin:8px 0 2px;font-size:22px}.activity-detail-project{margin:0;color:#8b9196;font-size:9px}.activity-milestone-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;background:#fff3dd;color:#a26c16;font-size:8px;font-weight:800;border:1px solid #eed6a8}.activity-detail-description{padding:16px;font-size:10px;line-height:1.7;color:#4f565c;border-bottom:1px solid #eceae4}.activity-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.activity-detail-grid>div{padding:13px 16px;border-right:1px solid #efede8;border-bottom:1px solid #efede8}.activity-detail-grid>div:nth-child(3n){border-right:0}.activity-detail-grid span,.activity-context-list span{display:block;font-size:7.5px;color:#9a9fa4;text-transform:uppercase;letter-spacing:.04em}.activity-detail-grid strong,.activity-context-list strong,.activity-context-list a{display:block;margin-top:4px;font-size:9px;color:#4d545a;text-decoration:none}.activity-detail-progress{height:7px;margin:14px 16px 16px;border-radius:999px;background:#eceae4;overflow:hidden}.activity-detail-progress span{display:block;height:100%;background:#59666f;border-radius:999px}.activity-comment-composer{padding:14px 16px;border-bottom:1px solid #eceae4;background:#fafaf7}.activity-comment-composer .form-label{font-size:8.5px;font-weight:800}.activity-comment-composer textarea{font-size:10px;line-height:1.55;resize:vertical}.activity-comment-feed{padding:0 16px}.activity-comment{display:flex;gap:10px;padding:15px 0;border-bottom:1px solid #efede8}.activity-comment:last-child{border-bottom:0}.activity-comment-avatar{width:34px;height:34px;flex:0 0 34px;border-radius:50%;display:grid;place-items:center;background:#e9e8e2;color:#50575d;font-size:10px;font-weight:900}.activity-comment-client .activity-comment-avatar{background:#e8f2ff;color:#2c67a2}.activity-comment-body{min-width:0;flex:1}.activity-comment-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.activity-comment-meta strong{font-size:9.5px}.activity-comment-meta span{padding:2px 6px;border-radius:999px;background:#efeee9;color:#777e84;font-size:7.5px}.activity-comment-client .activity-comment-meta span{background:#e8f2ff;color:#2c67a2}.activity-comment-meta time{font-size:7.5px;color:#a0a5a9}.activity-comment-text{margin-top:7px;font-size:10px;line-height:1.65;color:#454c52;white-space:normal}.activity-context-list{padding:4px 16px}.activity-context-list>div{padding:11px 0;border-bottom:1px solid #efede8}.activity-context-list>div:last-child{border-bottom:0}.activity-title-link,.activity-kanban-title{color:inherit;text-decoration:none;font-weight:700}.activity-title-link:hover,.activity-kanban-title:hover{color:#20262b;text-decoration:underline}.activity-comment-count{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:7px;background:#f1f0eb;color:#666d73;text-decoration:none;font-size:8px;font-weight:800;white-space:nowrap}.activity-comment-count:hover{background:#e8e6df;color:#3f464c}.activity-kanban-title{display:block}.activity-comments-card{scroll-margin-top:80px}
@media(max-width:767.98px){.activity-detail-grid{grid-template-columns:1fr 1fr}.activity-detail-grid>div:nth-child(3n){border-right:1px solid #efede8}.activity-detail-grid>div:nth-child(2n){border-right:0}.activity-comment{gap:8px}.activity-comment-composer{padding:12px}.activity-comment-feed{padding:0 12px}}

/* HubWM V1.5.4 - Adjuntos y capturas en actividades */
.activity-upload-zone{border:1px dashed #c8c4bc;border-radius:12px;padding:14px;background:#faf9f6;cursor:pointer}.activity-upload-zone.is-dragging{outline:2px solid rgba(40,40,40,.16);background:#f2f0ea}.activity-pending-files{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.activity-pending-item{display:flex;align-items:center;gap:7px;border:1px solid #dedbd4;border-radius:9px;padding:6px 8px;background:#fff;max-width:100%}.activity-pending-item img{width:42px;height:42px;object-fit:cover;border-radius:6px}.activity-pending-item span{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.activity-comment-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.activity-image-link img{width:150px;height:110px;object-fit:cover;border-radius:10px;border:1px solid #ddd}.activity-file-link{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid #ddd;border-radius:9px;text-decoration:none}


/* =========================================================
   HubWM V1.5.5 — Gantt por días, semanas y meses
   ========================================================= */
.gantt-section-head{align-items:flex-start}.gantt-head-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}.gantt-scale-switch{display:inline-flex;padding:3px;border:1px solid #dedbd4;border-radius:9px;background:#f5f4ef}.gantt-scale-switch a{padding:6px 10px;border-radius:6px;color:#777e84;text-decoration:none;font-size:8px;font-weight:800}.gantt-scale-switch a:hover{color:#343a40}.gantt-scale-switch a.active{background:#fff;color:#343a40;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.gantt-header-time{height:44px}.gantt-header-time span{flex-direction:column;gap:1px;line-height:1.05}.gantt-header-time span b{font-size:7.5px}.gantt-header-time span small{font-size:6.5px;font-weight:700;color:#9a9fa4}.gantt-header-time span.is-weekend{background:#efeee9}.gantt-header-time span.is-today{box-shadow:inset 0 -3px 0 #6d7479}.gantt-scale-dias .gantt-header-time span b{font-size:8.5px}.gantt-scale-dias .gantt-header-time span small{font-size:6.5px}.gantt-weekend-band{position:absolute!important;top:0!important;bottom:0!important;height:auto!important;background:rgba(0,0,0,.025)!important;z-index:0}.gantt-track>.gantt-bar,.gantt-track>.gantt-milestone{z-index:2}.gantt-scale-semanas .gantt-header-time span,.gantt-scale-meses .gantt-header-time span{padding:0 4px}
@media(max-width:767.98px){.gantt-section-head{display:block}.gantt-head-actions{margin-top:10px;justify-content:flex-start}.gantt-scale-switch{width:100%}.gantt-scale-switch a{flex:1;text-align:center}}
