/* TR Webs: un espacio privado con la misma identidad negra y azul de la web. */
.portal-body {
  --glass-surface: linear-gradient(145deg,rgba(255,255,255,.07),rgba(36,66,110,.045)),rgba(12,19,32,.68);
  --glass-border: rgba(168,198,244,.16);
  --glass-shadow: 0 16px 46px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.055);
  --portal-muted: #a8b7cc;
  background:#060a12; isolation:isolate;
}
.portal-body::before { content:''; position:fixed; inset:0; z-index:-2; pointer-events:none; background:radial-gradient(ellipse at 11% 18%,#17458c3b,transparent 39%),radial-gradient(ellipse at 94% 48%,#1655b632,transparent 46%),radial-gradient(ellipse at 50% 105%,#132c6d42,transparent 50%); }
.portal-body::after { content:''; position:fixed; inset:0; z-index:-1; pointer-events:none; background-image:linear-gradient(#92b6fa04 1px,transparent 1px),linear-gradient(90deg,#92b6fa04 1px,transparent 1px); background-size:64px 64px; mask-image:linear-gradient(transparent,#000 25%,transparent); }
.portal-body :is(button,a,input,select,textarea,summary):focus-visible { outline:2px solid #a9cdff; outline-offset:4px; }
.portal-body button:disabled { cursor:not-allowed; }
.portal-body .muted { color:var(--portal-muted); }
.portal-main { position:relative; }
.portal-footer { border-color:#a9c7fa15; color:#90a0b7; }
.demo-banner { border:1px solid #75a8ff30; border-radius:12px; background:#1b376646; color:#b2cfff; backdrop-filter:blur(16px); }

/* Entrada: la marca y tres tareas concretas, sin vocabulario técnico. */
.login-layout { padding:64px 0 80px; gap:7%; }
.login-intro h1 { font-size:clamp(82px,8.5vw,130px); line-height:.94; }
.login-intro h1 span { color:#74aaff; }
.login-intro .intro-copy { color:#acb9ce; font-size:16px; max-width:460px; }
.login-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:36px; max-width:530px; }
.login-benefits > div { display:flex; flex-direction:column; gap:8px; border-top:1px solid #c3d6ff24; padding-top:18px; }
.login-benefits .portal-icon { width:21px; height:21px; color:#8bb9ff; margin-bottom:3px; }
.login-benefits strong { color:#e7edf8; font-size:12px; font-weight:600; }
.login-benefits span { font-size:11px; line-height:1.65; color:#a3b0c5; }
.login-card.panel { background:var(--glass-surface); border:1px solid #c0d9ff29; backdrop-filter:blur(28px); -webkit-backdrop-filter:blur(28px); border-radius:28px; padding:40px; box-shadow:var(--glass-shadow),0 0 100px #236bd310; }
.login-card .card-kicker { color:#a7c9ff; font-size:10px; }
.login-card h2 { font-size:42px; margin-top:20px; }
.login-card > p { color:#b6c2d4; }
.login-card .google-button { border-radius:13px; min-height:54px; box-shadow:0 8px 24px #0002; }
.login-card .login-divider { background:#bbd3fb24; }

/* Carcasa abierta: el menú y el contenido son superficies independientes. */
#dashboard .dashboard-heading { padding:22px 0 30px; gap:24px; }
#dashboard .dashboard-heading h1 { font:400 clamp(32px,3.7vw,45px)/1.04 'Bebas Neue','Helvetica Neue',Arial,sans-serif; letter-spacing:.015em; }
#dashboard .dashboard-heading .eyebrow { color:#87b4f7; font-size:9px; letter-spacing:.2em; margin-bottom:9px; }
.dashboard-subtitle { color:#a1b0c5; font-size:13px; line-height:1.65; margin-top:9px; }
.dashboard-actions { display:flex; flex-direction:column; align-items:flex-end; gap:10px; flex-shrink:0; }
.admin-clock { display:flex; align-items:center; gap:11px; padding:9px 13px; border:1px solid var(--glass-border); border-radius:13px; background:var(--glass-surface); box-shadow:inset 0 1px #ffffff08; }
.admin-clock > .portal-icon { width:18px; height:18px; color:#97bfff; }
.admin-clock > div { display:grid; gap:3px; }
.admin-clock span { font-size:10px; line-height:1.4; color:#adc0da; }
.admin-clock time { font-size:20px; line-height:1.15; font-weight:600; font-variant-numeric:tabular-nums; letter-spacing:.04em; color:#edf4ff; }
#dashboard .dashboard-heading .secondary-button { min-height:42px; border-radius:12px; background:#bacfff06; border-color:#b9d2ff23; font-size:12px; color:#b8c8df; }
#dashboard .workspace { background:none; border:0; border-radius:0; overflow:visible; box-shadow:none; gap:24px; align-items:start; }
#dashboard .project-detail { padding:0; gap:22px; }
#dashboard .panel { background:var(--glass-surface); border:1px solid var(--glass-border); border-radius:23px; box-shadow:var(--glass-shadow); backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px); }
#dashboard :is(.project-heading,.overview-heading) { padding:27px 28px; background:linear-gradient(115deg,#2969cb18,transparent 70%),var(--glass-surface); border:1px solid var(--glass-border); border-radius:23px; box-shadow:var(--glass-shadow); backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px); }
#dashboard .project-heading h2 { font:400 clamp(29px,3vw,38px)/1.12 'Bebas Neue','Helvetica Neue',Arial,sans-serif; letter-spacing:.01em; }
#dashboard .project-heading .eyebrow { color:#a2bff0; font-size:9px; letter-spacing:.16em; margin-bottom:10px; }
#dashboard .project-heading .muted { color:#b3c4dd; font-size:12px; margin-top:8px; }
#dashboard .project-actions { max-width:48%; gap:9px; }
#project-detail .primary-button,#overview-view .primary-button { min-height:44px; padding:11px 17px; font-size:12px; line-height:1.45; border-radius:12px; background:linear-gradient(135deg,#2d6edb,#2056c1); border:1px solid #99bdff6b; color:#fff; box-shadow:0 5px 20px #256de930,inset 0 1px #ffffff26; }
#project-detail .primary-button:hover,#overview-view .primary-button:hover { background:linear-gradient(135deg,#326ed5,#275fc6); box-shadow:0 6px 24px #256de946; }
#project-detail .secondary-button,#overview-view .secondary-button { min-height:44px; border-radius:12px; padding:10px 15px; font-size:12px; color:#d0dff5; border-color:#c4d9ff28; background:#b8d1ff08; }
#project-detail .secondary-button:hover,#overview-view .secondary-button:hover { background:#a2c5ff16; border-color:#b6d4ff55; }
#project-detail :is(input,select,textarea),#overview-view :is(input,select,textarea) { background:#070d17a3; border-color:#b1cfff25; border-radius:12px; color:#edf4ff; padding:13px 14px; font-size:14px; }
#project-detail :is(input,textarea)::placeholder,#overview-view input::placeholder { color:#879bb8; }
#project-detail select { color-scheme:dark; }
.status-badge { font-size:11px; padding:6px 11px; }
#dashboard .status-badge.completed { color:#abebd0; border-color:#8fe4bf35; background:#57c29412; }
#dashboard .status-badge.in_progress { color:#c2d9ff; border-color:#8ebaff38; background:#5191f31c; }

/* Un menú legible, con el proyecto seleccionado siempre reconocible. */
#portal-sidebar-root { --background:transparent; --border:#b7d0fa1c; --primitive-surface-hover:#bad7ff0c; --primitive-surface-selected:#629eff20; --muted-foreground:#97aac6; --primitive-text-secondary:#b2c3dd; background:var(--glass-surface); border:1px solid var(--glass-border); border-radius:23px; box-shadow:var(--glass-shadow); backdrop-filter:blur(26px); -webkit-backdrop-filter:blur(26px); top:104px; }
#portal-sidebar-root [data-slot=sidebar] { border:0; background:transparent; border-radius:23px; }
#portal-sidebar-root [data-slot=sidebar-header] { border-color:#c1d8ff15; min-height:83px; padding:20px 17px; }
#portal-sidebar-root .sidebar-brand-icon { background:linear-gradient(140deg,#669bff,#2159cf); width:35px; height:35px; border-radius:11px; box-shadow:0 5px 18px #2970e83b,inset 0 1px #ffffff5c; }
#portal-sidebar-root .sidebar-brand-copy strong { font-size:15px; }
#portal-sidebar-root .sidebar-brand-copy small { color:#9caec9; font-size:10px; }
#portal-sidebar-root [data-slot=sidebar-nav] { padding-top:20px; }
#portal-sidebar-root [data-slot=sidebar-item] { min-height:46px; font-size:14px; border:1px solid transparent; border-radius:12px; }
#portal-sidebar-root [data-slot=sidebar-item][data-active=true] { border-color:#94baff30; color:#e5efff; box-shadow:inset 0 1px #ffffff0c; }
#portal-sidebar-root [data-slot=sidebar-item][data-active=true] [data-slot=sidebar-item-icon] { color:#9fc5ff; }
#portal-sidebar-root .sidebar-project-context { font-size:12px; color:#d1def3; padding-bottom:3px; }
#portal-sidebar-root .sidebar-projects { margin:0 13px 20px; }
#portal-project-controls .section-top h2 { color:#c2d2ea; font-size:13px; }
#portal-project-controls input { background:#060c166e; border-color:#c1d8ff26; font-size:12px; border-radius:10px; }
#portal-sidebar-root #portal-project-controls .project-choice { border-color:#c7dcff15; background:#ffffff03; border-radius:12px; min-height:79px; padding:14px 13px; gap:5px; }
#portal-sidebar-root #portal-project-controls .project-choice:hover { border-color:#9dbffa40; background:#a3c4ff0b; }
#portal-sidebar-root #portal-project-controls .project-choice[aria-pressed=true] { background:linear-gradient(120deg,#4e83d62c,#5784d011); border-color:#9bbfff63; box-shadow:inset 3px 0 #8eb9ff; }
#portal-project-controls .project-choice strong { font-size:14px; line-height:1.5; }
#portal-project-controls .project-choice small { font-size:12px; color:#a7b8d1; }
#portal-sidebar-root [data-slot=sidebar-footer] { border-color:#c1d8ff1c; background:#0307111a; min-height:74px; padding:14px 16px; }
#portal-sidebar-root .sidebar-user strong { color:#cfddf2; font-size:12px; }
#portal-sidebar-root .sidebar-user span { color:#9eafc9; font-size:10px; }
#portal-sidebar-root .sidebar-avatar { background:#6198f21c; border-color:#9fbfff3b; color:#d2e4ff; }
#portal-sidebar-root [data-collapsed=true] .sidebar-avatar { width:28px; height:28px; }
.sidebar-mobile-shortcuts { display:none; }

/* El cliente entiende el avance y su siguiente acción, antes de abrir detalles. */
#dashboard #timeline-view { padding:0; border:0; border-radius:0; box-shadow:none; background:none; backdrop-filter:none; }
.timeline-layout { display:grid; grid-template-columns:minmax(0,1fr) 238px; gap:20px; align-items:start; }
#dashboard .timeline-primary { padding:28px; min-width:0; }
#dashboard .timeline-primary > .section-top { align-items:flex-start; gap:14px; margin-bottom:14px; }
#dashboard .timeline-primary .section-top h2 { font-size:20px; line-height:1.3; letter-spacing:-.35px; }
#dashboard .timeline-primary .eyebrow { font-size:8px; letter-spacing:.18em; margin:0 0 9px; color:#95b6e9; }
.phase-status { display:inline-flex; align-items:center; gap:6px; flex-shrink:0; padding:5px 9px; font-size:9px; line-height:1.5; border-radius:99px; border:1px solid #96baff2e; background:#5d9aff0e; color:#c6ddff; }
.phase-status::before { content:''; width:5px; height:5px; background:#78aaff; border-radius:50%; }
.phase-status.is-live { color:#ace6cb; background:#44ac7a0d; border-color:#83d4b12c; }
.phase-status.is-live::before { background:#8fd9b5; }
#dashboard .timeline-overview { color:#b0bfd4; font-size:13px; line-height:1.7; margin-bottom:25px; }
.project-progress { margin-bottom:26px; }
.project-progress > p { display:flex; justify-content:space-between; gap:12px; margin-bottom:11px; font-size:10px; color:#9cadc6; line-height:1.6; }
.project-progress strong { font-weight:500; color:#becfe8; text-align:right; }
.stage-strip { display:flex; gap:5px; }
.stage-strip > span { position:relative; overflow:hidden; flex:1; height:6px; border-radius:8px; background:#9cbeef14; }
.stage-strip > .completed::before { content:''; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(90deg,#528df1,#9cc3ff); transform-origin:left center; animation:stage-fill-in 650ms cubic-bezier(.22,1,.36,1) both; animation-delay:calc(var(--stage-index,0) * 110ms); }
.stage-strip > .in_progress { background:#779bd052; border:1px solid #a7c8fa6b; }
.stage-strip > .waiting { background:#d7b171; }
.stage-strip > .is-current:not(.completed)::after { content:''; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(90deg,transparent,#c2ddffb3,transparent); opacity:.18; animation:stage-current-pulse 2800ms ease-in-out infinite; animation-delay:calc(var(--stage-index,0) * 110ms + 650ms); }
.stage-strip > .is-current.waiting::after { background:linear-gradient(90deg,transparent,#fff0c9b3,transparent); }
@keyframes stage-fill-in { from { transform:scaleX(0); opacity:.45; } to { transform:scaleX(1); opacity:1; } }
@keyframes stage-current-pulse { 0%,100% { opacity:.18; } 50% { opacity:.85; } }
#dashboard .timeline-focus { position:relative; padding:23px 21px; gap:12px; border:1px solid #91b6ff40; border-radius:17px; background:radial-gradient(ellipse at top right,#5393ff24,transparent 70%),linear-gradient(120deg,#2258a92d,#21529914); box-shadow:inset 0 1px #ffffff0b,0 8px 25px #0000000d; align-items:flex-start; }
#dashboard .timeline-focus .blue-dot { margin:6px 0 0; width:6px; height:6px; }
#dashboard .timeline-focus p { font-size:9px; letter-spacing:.15em; color:#a5c9ff; margin-bottom:9px; }
#dashboard .timeline-focus strong { display:block; font-size:21px; font-weight:600; letter-spacing:-.4px; line-height:1.4; color:#eef4ff; }
#dashboard .timeline-focus span:not(.blue-dot) { font-size:13px; line-height:1.8; color:#b1c6e5; margin-top:12px; }
#dashboard .timeline-focus.waiting { border-color:#e4bd774c; background:linear-gradient(120deg,#9c71301a,#805f1c07); }
#dashboard .timeline-focus.waiting p { color:#edd09d; }
#dashboard .timeline-next { margin-left:23px; padding:20px 0 20px 25px; border-left:1px solid #92b7f12a; gap:6px; }
#dashboard .timeline-next > span { font-size:10px; color:#9daec8; }
#dashboard .timeline-next p { font-size:13px; color:#cbd9ee; }
#dashboard .timeline-client-action { display:flex; gap:12px; padding:17px; margin-top:7px; border:1px solid #b9d3fc12; border-radius:14px; background:#9ebffa06; }
.client-action-icon { color:#9abbec; flex:none; margin-top:2px; }
#dashboard .timeline-client-action strong { font-size:12px; font-weight:600; color:#d9e5f6; }
#dashboard .timeline-client-action p { font-size:12px; line-height:1.75; color:#a6b8d1; margin-top:6px; }
#dashboard .timeline-client-action.needs-action { border-color:#8dafe35a; background:#3473d013; }
#dashboard .timeline-details { border-top-color:#c0d7fb19; margin-top:25px; }
#dashboard .timeline-details > summary { color:#bacff0; padding:14px 0 7px; font-size:12px; }
#dashboard .timeline-primary .milestone h3 { font-size:13px; line-height:1.6; }
.timeline-companion { display:grid; gap:15px; min-width:0; }
.companion-web,.companion-update,.companion-help,.companion-request { border:1px solid var(--glass-border); background:var(--glass-surface); border-radius:20px; box-shadow:var(--glass-shadow); padding:21px; backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.companion-web { background:radial-gradient(circle at 90% 0%,#5386ff23,transparent 60%),var(--glass-surface); }
.companion-icon { display:grid; place-items:center; width:42px; height:42px; border:1px solid #a2c9ff39; border-radius:13px; background:#7db1ff0c; color:#b4d2ff; margin-bottom:23px; }
.companion-icon .portal-icon { width:23px; height:23px; }
.companion-kicker { display:block; font-size:8px; line-height:1.6; letter-spacing:.15em; color:#9cb6dd; }
.companion-web h3 { color:#e3edfe; font-size:16px; letter-spacing:-.2px; line-height:1.45; margin:9px 0 11px; overflow-wrap:anywhere; }
.companion-web p { font-size:12px; line-height:1.8; color:#aabbd4; }
#project-detail .companion-web .secondary-button { width:100%; margin-top:20px; font-size:11px; min-height:42px; justify-content:space-between; }
.companion-request,.companion-help { color:#b1cfff; display:flex; align-items:center; gap:11px; text-align:left; padding:18px 16px; width:100%; }
.companion-request > span,.companion-help > span { flex:1; min-width:0; }
.companion-request > .portal-icon:last-child,.companion-help > .portal-icon:last-child { width:14px; height:14px; }
.companion-request strong,.companion-help strong { display:block; font-size:12px; color:#d6e4fa; line-height:1.5; font-weight:600; }
.companion-request small,.companion-help small { display:block; font-size:10px; color:#a0b2ce; line-height:1.7; margin-top:5px; }
.companion-request:hover,.companion-help:hover { border-color:#a2c7ff48; background-color:#1c3151; }
.companion-update time { display:block; font-size:10px; color:#92a5c2; margin-top:12px; }
.companion-update > p { display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; color:#c2d1e7; font-size:12px; line-height:1.8; margin:9px 0 12px; white-space:pre-wrap; overflow-wrap:anywhere; }
.companion-update .text-link { border:0; background:none; color:#a6c9ff; padding:0; font-size:10px; gap:6px; min-height:36px; }
.companion-update .text-link .portal-icon { width:13px; height:13px; }

/* Administración: contadores que llevan a lo que muestran y clientes filtrables. */
#dashboard .admin-overview { gap:21px; }
#dashboard .overview-heading { align-items:center; }
#dashboard .overview-heading h2 { font:400 37px/1.06 'Bebas Neue','Helvetica Neue',Arial,sans-serif; margin-bottom:9px; letter-spacing:.015em; }
.overview-heading .eyebrow { font-size:8px; margin-bottom:10px; letter-spacing:.16em; color:#a1bff0; }
.overview-heading .muted { color:#a7b8d0; font-size:12px; }
.overview-heading-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; }
.overview-metrics { gap:12px; }
.overview-metric { position:relative; text-align:left; padding:19px; gap:0; color:#dce8f9; background:var(--glass-surface); border:1px solid var(--glass-border); border-radius:19px; box-shadow:var(--glass-shadow); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.overview-metric:hover { background-color:#233c61; border-color:#adceff48; }
.metric-icon { display:grid; place-items:center; width:31px; height:31px; border:1px solid #b5d2fd1c; background:#80b0fa0b; color:#9bc2ff; border-radius:10px; margin-bottom:18px; }
.overview-metric strong { font:500 34px/1 'Helvetica Neue',Arial,sans-serif; letter-spacing:-1px; color:#eef4ff; margin-bottom:9px; }
.overview-metric > span:not(.metric-icon) { font-size:11px; color:#cad8ed; }
.overview-metric small { font-size:9px; line-height:1.65; color:#9baecc; margin-top:6px; }
.overview-metric > .portal-icon { position:absolute; right:17px; top:22px; width:14px; height:14px; color:#8baad5; }
.overview-metric[data-metric=requests] { background:linear-gradient(140deg,#3c7ce226,#4c8ce508),var(--glass-surface); }
.overview-queue,.overview-projects { padding:25px; }
.overview-queue h3,.overview-projects h3 { font-size:17px; font-weight:600; letter-spacing:-.2px; }
.overview-projects .eyebrow { font-size:8px; color:#9eb8dd; letter-spacing:.16em; margin-bottom:8px; }
.overview-description { font-size:12px; color:#a2b4cf; margin-bottom:15px; }
.overview-attention-row { padding:18px 0; border-color:#b2d0ff1a; }
.overview-attention-row strong { color:#e1eafa; font-size:14px; }
.overview-attention-row p { color:#a1b3cd; }
.overview-empty { color:#a4b6ce; padding:17px 0 3px; }
.overview-empty .secondary-button { margin-top:14px; }
#overview-requests-title,#overview-projects-title { scroll-margin-top:120px; }
#overview-view h3:focus-visible { outline:2px solid #a9cdff; outline-offset:5px; border-radius:3px; }
#overview-view #overview-search { margin-bottom:15px; min-height:46px; }
.overview-filterbar { display:flex; flex-wrap:wrap; gap:7px; padding-bottom:20px; }
.overview-filterbar button { border:1px solid transparent; border-radius:9px; padding:8px 12px; background:transparent; min-height:38px; font-size:11px; color:#a4b7d5; }
.overview-filterbar button:hover { background:#9ec5ff0a; color:#e0ebfc; }
.overview-filterbar button[aria-pressed=true] { background:#71a4ff19; border-color:#a2c3ff30; color:#d5e5ff; }
.overview-project-row { border-color:#b2d0ff19; gap:20px; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto; padding:21px 0; }
.overview-project-identity { display:flex; align-items:center; gap:13px; min-width:0; }
.overview-project-identity > div { min-width:0; }
.project-monogram { display:grid; place-items:center; width:39px; height:43px; flex:none; border-radius:12px; border:1px solid #a0c4ff22; background:linear-gradient(140deg,#7da8f420,#4f7cca0b); color:#b8d5ff; font:400 24px 'Bebas Neue',Arial,sans-serif; }
.overview-project-row h4 { font-size:13px; color:#e2edfd; line-height:1.5; }
.overview-project-row p { font-size:11px; color:#9db0ce; }
.overview-stage > .overview-stage-label { display:inline-flex; align-items:center; gap:5px; font-size:9px; color:#c1d8ff; }
.overview-stage-label::before { content:''; width:5px; height:5px; border-radius:50%; background:#7aa9fa; }
.overview-stage-label.is-published::before { background:#94d8b8; }
.overview-stage p { font-size:10px; }
#dashboard .overview-stage progress { margin:11px 0 0; max-width:165px; height:3px; opacity:.8; }
.overview-project-actions { gap:8px; }
#overview-view .overview-project-actions .secondary-button { min-height:39px; font-size:10px; padding:9px 11px; }
.overview-pending { color:#b8d5ff; font-size:10px; }

/* Peticiones, novedades y documentos continúan el mismo lenguaje visual. */
#dashboard .requests-panel,#dashboard .activity-panel { padding:29px; }
#dashboard .requests-panel .section-top h2,#dashboard .activity-panel .section-top h2 { font-size:23px; font-weight:600; letter-spacing:-.5px; }
.request-create { margin-top:27px; }
#dashboard .request-create textarea { min-height:148px; font-size:15px; padding:17px; line-height:1.85; background:#070e19a8; }
.request-example,.request-send p { color:#a5b8d4; }
#dashboard .request-card { background:#07101e69; border:1px solid #bfd7ff1c; border-radius:17px; padding:23px; }
.request-history { border-color:#aac8f91c; margin-top:30px; padding-top:27px; }
.request-card h3 { font-size:16px; line-height:1.6; color:#e0eafa; }
.request-reply { border-radius:0 13px 13px 0; border-color:#89b3f4; background:#70a1f60c; padding:17px 19px; }
.request-description,.request-reply p { color:#b9cbe3; }
.request-reply time,.request-awaiting { color:#9eafc9; }
.request-upload { background:#6c9de609; border-color:#b4d1fc42; border-radius:13px; }
#dashboard .activity-panel .activity-list { margin-top:27px; }
.activity-item { padding:0 0 23px; margin-bottom:23px; border-color:#b8d1f71a; }
.activity-item time { color:#96b8e8; font-size:11px; }
.activity-item p { color:#c5d4e9; font-size:14px; line-height:1.85; margin-top:9px; }
#dashboard .web-card { padding-top:7px; }
#dashboard .web-card-head { padding:25px 29px; }
#dashboard .web-card h2 { font:400 36px 'Bebas Neue',Arial,sans-serif; }
.web-preview { border-color:#b9d5ff24; border-radius:15px; }
.browser-bar { background:#becfff07; border-color:#bbd3fa19; padding:13px 17px; }
.web-placeholder { min-height:245px; background:radial-gradient(ellipse at 50% 55%,#2f6ed138,transparent 75%); }
.web-card-bottom { padding:25px 29px; }
#dashboard #documents-view > .documents-heading { padding:27px; border-radius:23px; border:1px solid var(--glass-border); background:var(--glass-surface); box-shadow:var(--glass-shadow); margin-bottom:3px; }
#dashboard #documents-view > .documents-heading h2 { font:400 34px 'Bebas Neue',Arial,sans-serif; }
#dashboard #documents-view > .document-filters { margin-bottom:0; }
#dashboard #documents-view .document-card { background:var(--glass-surface); border-color:var(--glass-border); border-radius:20px; padding:24px; box-shadow:var(--glass-shadow); }
#project-dialog { background:linear-gradient(140deg,#18243af5,#0c1421f5); border:1px solid #a6c8fa3b; border-radius:24px; box-shadow:0 30px 100px #0007; backdrop-filter:blur(30px); }
#project-dialog::backdrop { background:#030711ad; backdrop-filter:blur(10px); }
#project-dialog h2 { font-family:'Bebas Neue',Arial,sans-serif; }
#project-dialog label { color:#c2d1e6; font-size:13px; }
#project-dialog :is(input,textarea) { border-color:#b1d1ff29; background:#050b1577; border-radius:11px; }

@media (max-width:1150px) and (min-width:901px) {
 .timeline-layout { grid-template-columns:minmax(0,1fr); }
 .timeline-companion { grid-template-columns:repeat(2,minmax(0,1fr)); }
 #dashboard .project-heading { flex-direction:column; align-items:flex-start; }
 #dashboard .project-actions { max-width:100%; }
 .overview-heading-actions { justify-content:flex-start; }
 #dashboard .overview-heading { align-items:flex-start; flex-direction:column; }
 .overview-project-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
}
@media (max-width:900px) {
 #dashboard .workspace { grid-template-columns:minmax(0,1fr); gap:18px; }
 #portal-sidebar-root { position:static; top:auto; border-radius:18px; }
 #portal-sidebar-root [data-slot=sidebar] { border:0; border-radius:18px; }
 #portal-sidebar-root [data-slot=sidebar-header],#portal-sidebar-root [data-slot=sidebar][data-collapsed=true] [data-slot=sidebar-header] { min-height:64px; padding:13px 17px; }
 #portal-sidebar-root .sidebar-brand-copy strong { font-size:14px; }
 #portal-sidebar-root .sidebar-mobile-hint { font-size:11px; color:#c0d7f8; }
 #portal-sidebar-root [data-slot=sidebar-toggle] { width:32px; height:32px; }
 #portal-sidebar-root .sidebar-mobile-shortcuts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; padding:0 10px 11px; border-bottom:0; }
 #portal-sidebar-root .sidebar-mobile-shortcuts button { display:flex; align-items:center; justify-content:center; position:relative; gap:6px; min-height:43px; padding:7px 5px; font-size:11px; color:#a6bddc; border:1px solid transparent; border-radius:10px; }
 #portal-sidebar-root .sidebar-mobile-shortcuts button[aria-pressed=true] { background:#83b3ff15; border-color:#afceff24; color:#d7e7ff; }
 .sidebar-mobile-shortcuts small { background:#93bfff24; color:#d2e6ff; padding:1px 5px; border-radius:5px; font-size:9px; }
 .sidebar-mobile-shortcuts button > span { white-space:nowrap; }
 .sidebar-mobile-shortcuts small { position:absolute; top:0; right:4px; }
 #portal-sidebar-root [data-slot=sidebar-nav] { border-top:1px solid #b3cffa18; padding-top:17px; }
 .timeline-layout { grid-template-columns:minmax(0,1fr) 235px; }
 .overview-project-row { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto; }
 .overview-project-actions { grid-column:auto; flex-direction:column; align-items:end; }
 .login-layout { gap:35px; padding-top:42px; }
 .login-card.panel { padding:30px; }
}
@media (min-width:701px) and (max-width:900px) {
 #dashboard .dashboard-heading { padding:12px 0 18px; gap:16px; align-items:center; }
 #dashboard .dashboard-heading h1 { font-size:32px; }
 #dashboard .dashboard-heading .eyebrow { margin-bottom:6px; }
 .dashboard-subtitle { margin-top:6px; font-size:12px; }
 #portal-sidebar-root [data-slot=sidebar-header],#portal-sidebar-root [data-slot=sidebar][data-collapsed=true] [data-slot=sidebar-header] { min-height:58px; padding:10px 15px; }
 #dashboard .project-heading { padding:18px 22px; gap:14px; }
 #dashboard .project-heading .eyebrow { margin-bottom:6px; }
 #dashboard .project-heading .muted { margin-top:4px; }
 #dashboard .timeline-primary { padding:22px; }
 #dashboard .timeline-primary > .section-top { margin-bottom:10px; }
 #dashboard .timeline-overview { margin-bottom:16px; }
 .project-progress { margin-bottom:18px; }
}
@media (min-width:901px) and (max-width:1150px) {
 #dashboard[data-role=client] .project-heading { flex-direction:row; flex-wrap:wrap; align-items:center; padding:22px; gap:18px; }
 #dashboard[data-role=client] .project-heading > div:first-child { min-width:0; flex:1 1 210px; }
 #dashboard[data-role=client] .project-actions { flex-shrink:0; max-width:none; }
}
@media (max-width:700px) {
 .portal-main { padding-inline:16px; }
 #dashboard .dashboard-heading { flex-wrap:nowrap; align-items:center; padding:18px 0 22px; gap:14px; }
 #dashboard .dashboard-heading > div:first-child { min-width:0; flex:1; }
 #dashboard .dashboard-heading h1 { font-size:29px; }
 #dashboard .dashboard-heading .eyebrow { font-size:8px; margin-bottom:8px; }
 .dashboard-subtitle { display:none; }
 #dashboard .dashboard-heading #logout { display:none; }
 #dashboard .dashboard-heading .toolbar { gap:7px; }
 #dashboard .dashboard-heading .secondary-button { font-size:11px; min-height:42px; padding:9px 13px; }
 #dashboard .project-detail { padding:0; gap:17px; }
 #dashboard :is(.project-heading,.overview-heading) { padding:22px; border-radius:20px; align-items:flex-start; flex-direction:column; gap:19px; }
 #dashboard .project-heading h2 { font-size:31px; line-height:1.18; }
 #dashboard .project-heading .eyebrow { font-size:8px; margin-bottom:7px; }
 #dashboard .project-actions { max-width:100%; justify-content:flex-start; }
 #dashboard .project-actions .primary-button { min-height:44px; }
 #dashboard[data-role=client] .project-heading .project-actions { display:none; }
 .timeline-layout { grid-template-columns:minmax(0,1fr); gap:17px; }
 #dashboard .timeline-primary { padding:22px; border-radius:20px; }
 #dashboard .timeline-primary .section-top { flex-wrap:wrap; gap:12px; }
 #dashboard .timeline-primary .section-top h2 { font-size:20px; }
 #dashboard .timeline-overview { margin-bottom:21px; font-size:13px; }
 .project-progress { margin-bottom:23px; }
 .project-progress > p { flex-wrap:wrap; gap:3px 8px; font-size:10px; }
 #dashboard .timeline-focus { padding:20px 17px; gap:10px; }
 #dashboard .timeline-focus strong { font-size:21px; }
 #dashboard .timeline-focus span:not(.blue-dot) { font-size:13px; }
 #dashboard .timeline-next { margin-left:19px; padding:18px 0 18px 22px; }
 #dashboard .timeline-client-action { padding:15px; gap:9px; }
 #dashboard .timeline-primary .milestone h3 { font-size:12px; }
 .timeline-companion { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .companion-web,.companion-update { padding:20px; }
 .companion-web { grid-column:1/-1; }
 .companion-icon { margin-bottom:17px; }
 .companion-request,.companion-help { grid-column:1/-1; }
 .companion-update { grid-column:1/-1; }
 #dashboard .overview-heading h2 { font-size:34px; }
 .overview-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
 .overview-metric { padding:17px; border-radius:16px; }
 .overview-metric strong { font-size:31px; }
 .overview-metric > span:not(.metric-icon) { font-size:11px; }
 .overview-metric small { font-size:9px; }
 .overview-heading-actions { justify-content:flex-start; }
 .overview-queue,.overview-projects { padding:21px; }
 .overview-attention-row { flex-direction:column; align-items:flex-start; }
 .overview-project-row { grid-template-columns:minmax(0,1fr); gap:16px; padding:22px 0; }
 .overview-project-actions { grid-column:auto; flex-direction:row; align-items:center; justify-content:space-between; }
 .overview-stage { padding-left:52px; }
 .overview-filterbar { gap:4px; }
 .overview-filterbar button { padding:8px 10px; font-size:11px; min-height:44px; }
 #dashboard .requests-panel,#dashboard .activity-panel { padding:23px 21px; }
 #dashboard .requests-panel .section-top h2,#dashboard .activity-panel .section-top h2 { font-size:23px; }
 #dashboard .request-card { padding:18px; }
 #dashboard .request-create textarea,#project-detail :is(input,select,textarea),#overview-view input { font-size:16px; }
 #dashboard .web-card-head,.web-card-bottom { padding:23px 21px; }
 #dashboard #documents-view > .documents-heading { padding:23px 21px; }
 .login-layout { grid-template-columns:minmax(0,1fr); gap:36px; padding:30px 0 48px; }
 .login-intro h1 { font-size:clamp(78px,17vw,112px); }
 .login-intro .intro-copy { font-size:14px; line-height:1.8; margin-top:24px; }
 .login-benefits { gap:14px; margin-top:28px; }
 .login-benefits strong { font-size:11px; }
 .login-benefits span { font-size:10px; }
 .login-card.panel { padding:27px; border-radius:23px; }
 .login-card h2 { font-size:39px; }
}
@media (max-width:360px) {
 .portal-main { padding-inline:12px; }
 #dashboard :is(.project-heading,.overview-heading),#dashboard .timeline-primary { padding:19px; }
 #portal-sidebar-root .sidebar-mobile-shortcuts button { font-size:10px; gap:4px; }
 .sidebar-mobile-shortcuts svg { width:15px; height:15px; }
 .overview-metric { padding:15px 12px; }
 .overview-metric > .portal-icon { right:12px; }
 .overview-filterbar button { font-size:10px; padding:7px 8px; }
 .login-benefits { grid-template-columns:minmax(0,1fr); gap:15px; }
 .login-benefits > div { display:grid; grid-template-columns:24px 1fr; gap:3px 11px; padding-top:13px; }
 .login-benefits .portal-icon { grid-row:1/3; margin-top:3px; }
}
@supports not (backdrop-filter:blur(1px)) {
 .portal-body { --glass-surface:linear-gradient(140deg,#151f32,#0c1422); }
}
@media (prefers-reduced-motion:reduce) {
 .portal-body *, .portal-body *::before,.portal-body *::after { scroll-behavior:auto !important; transition:none !important; }
 .stage-strip > span::before,.stage-strip > span::after { animation:none !important; transform:none !important; }
}
@media (forced-colors:active) {
 #dashboard .panel,#portal-sidebar-root,.overview-metric { background:Canvas; color:CanvasText; border:1px solid CanvasText; }
 .stage-strip>.completed { background:Highlight; }
 .stage-strip > span::before,.stage-strip > span::after { display:none; }
}

/* Bienvenida sin proyecto: una web que ayuda a convertir visitas en consultas. */
.client-welcome { display:grid; gap:22px; min-width:0; }
#dashboard .welcome-hero { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); gap:34px; align-items:center; padding:36px; background:radial-gradient(ellipse at 92% 10%,#377ff32b,transparent 59%),var(--glass-surface); }
.welcome-copy,.welcome-journey { min-width:0; }
.welcome-kicker { color:#adcfff; font-size:10px; font-weight:600; line-height:1.7; letter-spacing:.14em; margin-bottom:17px; }
.welcome-copy h2 { color:#f0f5ff; font:400 clamp(36px,4.2vw,57px)/1.06 'Bebas Neue','Helvetica Neue',Arial,sans-serif; letter-spacing:.005em; text-wrap:balance; max-width:520px; }
.welcome-copy h2 span { color:#96bfff; font-family:inherit; }
.welcome-copy > p:not(.welcome-kicker):not(.welcome-reassurance) { color:#b4c4dc; font-size:14px; line-height:1.85; margin-top:20px; max-width:485px; }
.welcome-actions { display:flex; flex-wrap:wrap; align-items:center; gap:11px; margin-top:25px; }
#project-detail .welcome-actions .primary-button { min-height:48px; padding:13px 17px; font-size:13px; text-align:center; }
#project-detail .welcome-actions .secondary-button { min-height:46px; font-size:12px; text-align:center; }
.welcome-reassurance { color:#a5b9d6; font-size:11px; line-height:1.8; margin-top:13px; max-width:420px; }
.welcome-journey { border:1px solid #9ac1ff32; border-radius:20px; padding:23px; background:linear-gradient(150deg,#18366070,#0b1729c7); box-shadow:inset 0 1px #d1e3ff12,0 18px 35px #0002; }
.welcome-journey > h3 { color:#e4efff; font-size:15px; font-weight:600; line-height:1.6; margin-bottom:19px; }
.welcome-journey > p:not(.welcome-kicker) { color:#adc0dc; font-size:12px; line-height:1.8; }
.welcome-journey ol { list-style:none; margin:0; padding:0; }
.welcome-step { position:relative; display:flex; align-items:flex-start; gap:14px; min-width:0; padding-bottom:23px; }
.welcome-step:last-child { padding-bottom:0; }
.welcome-step:not(:last-child)::before { content:''; position:absolute; left:16px; top:35px; bottom:5px; width:1px; background:linear-gradient(#9fc7ff45,#9fc7ff16); }
.welcome-step-number,.welcome-step > .portal-icon { display:grid; place-items:center; flex:none; width:34px; height:34px; border:1px solid #a3c8ff42; border-radius:11px; background:#6ca4ff12; color:#bfdaff; font-size:11px; font-weight:600; }
.welcome-step > div { flex:1; min-width:0; }
.welcome-step :is(h4,h3,strong) { display:block; color:#e2edff; font-size:14px; font-weight:600; line-height:1.6; margin:0 0 4px; }
.welcome-step p { color:#b2c4df; font-size:12px; line-height:1.8; margin:0; }
.welcome-step:last-child .welcome-step-number { color:#c2f0d8; border-color:#9ee2bd4a; background:#4ac68c15; }
#dashboard .welcome-process { padding:27px 30px; }
.welcome-process > h3 { color:#e4eeff; font-size:18px; font-weight:600; line-height:1.5; margin-bottom:11px; }
.welcome-process > p { color:#adbed8; font-size:13px; line-height:1.85; max-width:710px; }
.welcome-process > :is(ol,ul) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; list-style:none; padding:0; margin:20px 0 0; }
.welcome-process > :is(ol,ul) > li { min-width:0; padding-top:16px; border-top:1px solid #adcaff29; color:#b0c1dc; font-size:12px; line-height:1.85; }
.welcome-process li strong { display:block; color:#e2ecfa; font-size:13px; margin-bottom:7px; }
.welcome-process > .text-link { min-height:44px; margin-top:15px; color:#b8d5ff; font-size:12px; }
.welcome-existing-client { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 24px; padding:4px 5px; }
.welcome-existing-client p { color:#a6b8d2; font-size:12px; line-height:1.85; max-width:620px; }
.welcome-existing-client strong { color:#ccdaed; font-weight:600; }
.welcome-existing-client a { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:12px; line-height:1.7; color:#b8d5ff; text-decoration:underline; text-underline-offset:4px; }
.client-welcome :is(a,button):focus-visible { outline:2px solid #c8e0ff; outline-offset:5px; }
@media (min-width:901px) and (max-width:1200px) {
 #dashboard .welcome-hero { grid-template-columns:minmax(0,1fr); gap:28px; padding:30px; }
 .welcome-copy h2 { max-width:620px; }
 .welcome-copy > p:not(.welcome-kicker):not(.welcome-reassurance) { max-width:620px; }
 .welcome-journey { max-width:none; }
}
@media (min-width:701px) and (max-width:900px) {
 #dashboard .welcome-hero { gap:24px; padding:29px; }
 .welcome-journey { padding:20px; }
}
@media (max-width:700px) {
 .client-welcome { gap:17px; }
 #dashboard .welcome-hero { grid-template-columns:minmax(0,1fr); gap:27px; padding:25px 22px; border-radius:20px; }
 .welcome-kicker { font-size:9px; margin-bottom:13px; letter-spacing:.12em; }
 .welcome-copy h2 { font-size:clamp(36px,9.6vw,52px); line-height:1.08; }
 .welcome-copy > p:not(.welcome-kicker):not(.welcome-reassurance) { font-size:13px; margin-top:16px; }
 .welcome-actions { flex-direction:column; align-items:stretch; gap:9px; margin-top:23px; }
 #project-detail .welcome-actions :is(.primary-button,.secondary-button) { width:100%; min-height:48px; }
 .welcome-reassurance { font-size:11px; margin-top:12px; }
 .welcome-journey { padding:21px 18px; border-radius:17px; }
 .welcome-journey > h3 { font-size:14px; }
 .welcome-step { gap:11px; padding-bottom:21px; }
 .welcome-step :is(h4,h3,strong) { font-size:13px; }
 .welcome-step p { font-size:12px; }
 #dashboard .welcome-process { padding:23px 22px; border-radius:20px; }
 .welcome-process > h3 { font-size:17px; }
 .welcome-process > :is(ol,ul) { grid-template-columns:minmax(0,1fr); gap:15px; margin-top:18px; }
 .welcome-process > :is(ol,ul) > li { padding-top:13px; }
 .welcome-existing-client { padding:2px 5px; gap:4px; }
 .welcome-existing-client a { font-size:12px; }
}
@media (forced-colors:active) {
 #dashboard .welcome-hero,.welcome-journey { background:Canvas; color:CanvasText; border:1px solid CanvasText; box-shadow:none; }
 .welcome-step-number { background:Canvas; color:CanvasText; border-color:CanvasText; }
 .welcome-step:not(:last-child)::before { background:CanvasText; }
 .welcome-existing-client a { color:LinkText; }
}
/* Fin de bienvenida sin proyecto. */
