:root{
  --bg:#f4efe7;--bg-2:#fbf8f2;--surface:#fffdf8;--surface-2:#f8f4ec;--surface-3:#efe7db;
  --text:#1f2523;--muted:#6f756e;--soft:#9aa197;--line:#e2d8c9;
  --brand:#1f6f64;--brand-2:#2c8b7d;--brand-soft:#dcefe9;
  --amber:#c8842e;--amber-soft:#f7e7cf;--danger:#ad4b3c;--danger-soft:#f5ded9;
  --ok:#4f8a61;--ok-soft:#e0efe3;--violet:#7465b5;--violet-soft:#e8e2fb;
  --shadow:0 18px 60px rgba(45,35,22,.12);--shadow-sm:0 8px 26px rgba(45,35,22,.09);
  --radius:22px;--radius-sm:14px;--sidebar:286px;--sidebar-collapsed:82px;
  --font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font);background:radial-gradient(circle at top left,#fff9ef 0,#f4efe7 36%,#ece6dc 100%);color:var(--text);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.hidden{display:none!important}.eyebrow{margin:0 0 6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.16em;color:var(--brand)}.help-text{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}h1,h2,h3,h4,p{margin-top:0}h1{margin:0;font-size:28px;letter-spacing:-.04em}h2{font-size:26px;letter-spacing:-.04em}h3{margin:0;font-size:15px;letter-spacing:-.02em}a{color:inherit}
.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}.app-sidebar{position:sticky;top:0;height:100vh;padding:18px 14px;background:linear-gradient(180deg,#173f3a 0%,#122f2c 100%);color:#eef8f4;display:flex;flex-direction:column;gap:18px;box-shadow:12px 0 40px rgba(21,40,35,.14);z-index:20}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:6px 8px 14px;border-bottom:1px solid rgba(255,255,255,.1)}.brand-mark{width:42px;height:42px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#e9c58e,#78c7b6);color:#153734;font-weight:900;font-size:20px;box-shadow:0 10px 30px rgba(0,0,0,.2)}.brand-copy{display:flex;flex-direction:column;min-width:0}.brand-copy strong{font-size:16px;letter-spacing:-.02em}.brand-copy span{color:rgba(238,248,244,.68);font-size:12px}.sidebar-context{display:grid;gap:10px;padding:0 4px}.sidebar-context label,.focus-control,.metrics-actions label{display:grid;gap:6px;color:var(--muted);font-weight:750;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.sidebar-context label{color:rgba(238,248,244,.62)}select,input,textarea{width:100%;border:1px solid var(--line);border-radius:13px;background:#fffefa;color:var(--text);padding:10px 12px;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}select:focus,input:focus,textarea:focus{border-color:rgba(31,111,100,.55);box-shadow:0 0 0 4px rgba(31,111,100,.12)}.sidebar-context select{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.14);color:#fff}.sidebar-context option{color:#172522}.sidebar-nav,.sidebar-section{display:grid;gap:8px}.sidebar-section p{margin:0 0 4px;padding:0 10px;color:rgba(238,248,244,.44);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.16em}.sidebar-link,.sidebar-action{width:100%;border:0;border-radius:15px;background:transparent;color:rgba(238,248,244,.78);display:flex;align-items:center;gap:11px;padding:11px 12px;text-align:left;transition:background .18s ease,color .18s ease,transform .18s ease}.sidebar-link:hover,.sidebar-action:hover{background:rgba(255,255,255,.08);color:#fff;transform:translateX(2px)}.sidebar-link.active{background:rgba(255,255,255,.14);color:#fff;box-shadow:inset 3px 0 #e9c58e}.sidebar-action.primary{background:#f3d39b;color:#153734;font-weight:850}.nav-icon,.sidebar-action span:first-child{width:24px;height:24px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.1)}.sidebar-section-bottom{margin-top:auto}.sidebar-note{margin:6px 6px 0;padding:12px;border-radius:17px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);display:grid;gap:4px}.sidebar-note strong{font-size:12px}.sidebar-note span{font-size:12px;color:rgba(238,248,244,.68);line-height:1.35}
body.sidebar-collapsed .app-shell{grid-template-columns:var(--sidebar-collapsed) minmax(0,1fr)}body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .sidebar-context,body.sidebar-collapsed .sidebar-section p,body.sidebar-collapsed .sidebar-note,body.sidebar-collapsed .sidebar-link span:last-child,body.sidebar-collapsed .sidebar-action span:last-child{display:none}body.sidebar-collapsed .app-sidebar{align-items:center}body.sidebar-collapsed .sidebar-brand{padding-inline:0}body.sidebar-collapsed .sidebar-link,body.sidebar-collapsed .sidebar-action{justify-content:center;width:52px}
.app-main{min-width:0;padding:18px 22px 28px}.app-topbar{position:sticky;top:0;z-index:15;margin:-18px -22px 18px;padding:18px 22px;background:rgba(244,239,231,.78);backdrop-filter:blur(18px);border-bottom:1px solid rgba(226,216,201,.74);display:flex;align-items:center;justify-content:space-between;gap:18px}.topbar-left,.topbar-right{display:flex;align-items:center;gap:12px}.topbar-right{flex-wrap:wrap;justify-content:flex-end}.icon-btn{border:1px solid var(--line);background:var(--surface);border-radius:13px;min-width:38px;height:38px;padding:0 10px;display:inline-grid;place-items:center;color:var(--text);transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.icon-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm);background:#fff}.primary-btn,.ghost-btn,.danger-btn{border:0;border-radius:14px;padding:10px 14px;font-weight:850;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.primary-btn{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;box-shadow:0 10px 24px rgba(31,111,100,.2)}.primary-btn:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(31,111,100,.26)}.ghost-btn{background:var(--surface);border:1px solid var(--line);color:var(--text)}.ghost-btn:hover{background:#fff;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.danger-btn{background:var(--danger-soft);color:var(--danger)}.mini{padding:6px 9px;border-radius:10px;font-size:12px}.focus-control{min-width:150px}.view-panel{animation:softIn .22s ease}.page-hero{background:linear-gradient(135deg,rgba(255,253,248,.95),rgba(247,231,207,.72));border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm);margin-bottom:16px;display:flex;justify-content:space-between;gap:18px;align-items:center}.advanced-filters{display:grid;grid-template-columns:minmax(240px,1.35fr) repeat(7,minmax(136px,1fr)) auto;gap:10px;background:rgba(255,253,248,.82);border:1px solid rgba(226,216,201,.84);box-shadow:var(--shadow-sm);border-radius:var(--radius);padding:12px;margin-bottom:12px}.search-control{position:relative}.search-control span{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--soft);font-size:18px}.search-control input{padding-left:36px;background:#fff}.board-summary{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.board-summary span{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:999px;background:rgba(255,253,248,.78);border:1px solid var(--line);color:var(--muted)}.board-summary strong{color:var(--text)}
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(302px,1fr);gap:16px;overflow-x:auto;padding:4px 2px 18px;min-height:calc(100vh - 230px);scroll-snap-type:x proximity}.column{--column-color:#c7b9a4;background:linear-gradient(180deg,rgba(255,253,248,.78),rgba(247,243,235,.68));border:1px solid var(--line);border-radius:24px;min-height:420px;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);scroll-snap-align:start;position:relative;overflow:hidden}.column:before{content:"";position:absolute;inset:0 0 auto;height:76px;background:linear-gradient(180deg,color-mix(in srgb,var(--column-color) 20%,transparent),transparent);opacity:.85;pointer-events:none}.column-header{position:relative;z-index:1;padding:16px 15px 10px;border-top:0!important;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.column-title-wrap{min-width:0}.column-title{margin:0;font-size:16px;letter-spacing:-.03em}.column-subtitle{margin:4px 0 0;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px}.count{min-width:30px;height:30px;border-radius:999px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);font-weight:850;color:var(--brand)}.task-list{position:relative;z-index:1;display:grid;gap:11px;padding:0 10px 12px;align-content:start;min-height:330px}.task-card{--accent:#d7c8b2;position:relative;background:rgba(255,253,248,.96);border:1px solid rgba(224,214,199,.92);border-radius:18px;padding:13px 13px 11px;box-shadow:0 8px 24px rgba(56,42,23,.07);transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease,border-color .18s ease,background .18s ease;overflow:hidden}.task-card:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--accent);opacity:.9}.task-card:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(56,42,23,.13);border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.task-card.dragging{opacity:.55;transform:rotate(1deg) scale(1.01)}.task-card.dim-non-owner{opacity:.24}.task-card.dim-non-owner:hover{opacity:.72}.task-card.is-blocked{background:linear-gradient(135deg,#fffdf8,#fff3ee);border-color:#efc9be}.task-card.is-completed{opacity:.75}.task-card h3{margin:0 0 10px;padding-left:4px;font-size:15px;line-height:1.32}.meta{display:flex;flex-wrap:wrap;gap:6px}.pill{display:inline-flex;align-items:center;gap:4px;min-height:24px;border-radius:999px;padding:4px 8px;background:#f0ece4;color:#4f554f;font-size:11px;font-weight:800;line-height:1;border:1px solid rgba(0,0,0,.04)}.danger-pill{background:var(--danger-soft)!important;color:var(--danger)!important}.blocked-pill{background:var(--amber-soft)!important;color:#8c561c!important}.done-pill{background:var(--ok-soft)!important;color:var(--ok)!important}.recurrence-pill{background:var(--violet-soft)!important;color:var(--violet)!important}.checklist-pill{background:var(--brand-soft)!important;color:var(--brand)!important}.blocked-reason{margin:10px 0 0;padding:9px 10px;border-radius:12px;background:var(--amber-soft);color:#754612;font-size:12px;line-height:1.35}.card-footer{display:flex;justify-content:space-between;gap:10px;margin-top:11px;padding-top:9px;border-top:1px solid rgba(226,216,201,.72);color:var(--muted);font-size:12px}.assignee-chip{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--text)}.assignee-chip:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}
.modal{position:fixed;inset:0;background:rgba(31,37,35,.34);backdrop-filter:blur(12px);z-index:100;display:grid;place-items:center;padding:22px;animation:fadeIn .16s ease}.modal-card{width:min(760px,100%);max-height:92vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);animation:modalIn .22s ease}.task-modal-card{width:min(1180px,100%);overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fffdf8,#fbf7ef)}.task-form-pro{min-height:0;display:flex;flex-direction:column}.task-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:0;min-height:0;max-height:calc(92vh - 138px);overflow:auto}.task-editor-main{padding:18px 20px 80px;display:grid;gap:14px}.task-editor-side{background:linear-gradient(180deg,#f8f4ec,#f2eadf);border-left:1px solid var(--line);padding:16px;display:grid;gap:12px;align-content:start}.task-title-block,.panel-section,.side-panel{border:1px solid var(--line);background:rgba(255,253,248,.9);border-radius:20px;padding:14px;box-shadow:0 8px 24px rgba(56,42,23,.045)}.task-title-block{display:grid;gap:12px}.task-title-block input{font-size:20px;font-weight:850;letter-spacing:-.03em}.side-panel{display:grid;gap:10px}.side-panel h3,.panel-section h3{font-size:14px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.compact-grid{gap:9px}.checkline{display:flex!important;align-items:center;gap:9px;font-weight:850;color:var(--text);text-transform:none!important;letter-spacing:0!important}.checkline input{width:auto}.block-check{padding:10px;border:1px solid var(--line);background:#fff;border-radius:13px}.tag-picker{display:flex;flex-wrap:wrap;gap:7px}.tag-picker label{cursor:pointer}.tag-picker input{width:auto}.task-timestamps{display:flex;flex-wrap:wrap;gap:6px;margin:0;color:var(--muted);font-size:12px}.section-header-inline,.checklist-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.checklist-add-row,.comment-add-row{display:grid;grid-template-columns:1fr auto;gap:8px}.comment-add-row{grid-template-columns:150px minmax(0,1fr) auto}.checklist-list,.comments-list,.activity-list{display:grid;gap:8px;margin-top:10px}.checklist-item,.comment-item,.activity-item{background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px}.checklist-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center}.checklist-item.is-done .checklist-text{text-decoration:line-through;color:var(--soft)}.checklist-check input{width:auto}.checklist-actions{display:flex;gap:5px}.comment-item header,.activity-item header{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}.comment-actions{display:flex;gap:6px;margin-top:8px}.activity-list{max-height:270px;overflow:auto}.activity-item{font-size:12px;line-height:1.35}.sticky-actions{position:sticky;bottom:0;margin-top:auto;padding:13px 20px;background:rgba(255,253,248,.92);border-top:1px solid var(--line);display:flex;justify-content:space-between;backdrop-filter:blur(14px)}.modal-actions.end{justify-content:flex-end}.modal-actions{display:flex;gap:10px}.empty-state{padding:14px;border:1px dashed var(--line);border-radius:16px;background:rgba(255,255,255,.58);color:var(--muted);text-align:center}.settings-card{width:min(1040px,100%)}.entity-form-card{width:min(700px,100%)}.settings-layout{display:grid;grid-template-columns:240px 1fr;min-height:520px}.settings-tabs{display:grid;align-content:start;gap:6px;padding:14px;background:#f6efe4;border-right:1px solid var(--line)}.settings-tabs button{border:0;background:transparent;border-radius:12px;padding:10px 12px;text-align:left;font-weight:800;color:var(--muted)}.settings-tabs button.active,.settings-tabs button:hover{background:#fff;color:var(--brand)}.settings-main{padding:18px}.settings-topline{display:flex;justify-content:space-between;align-items:center;gap:12px}.entity-list{display:grid;gap:10px;margin-top:14px}.entity-row,.template-row{border:1px solid var(--line);background:#fff;border-radius:16px;padding:12px;display:flex;justify-content:space-between;gap:12px;align-items:center}.today-summary,.metrics-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:12px 0}.today-summary article,.metric-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:15px;box-shadow:var(--shadow-sm)}.today-summary strong,.metric-card strong{display:block;font-size:24px;letter-spacing:-.04em}.today-summary span,.metric-card span{color:var(--muted);font-size:12px;font-weight:750}.today-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.today-group,.metrics-card{background:rgba(255,253,248,.92);border:1px solid var(--line);border-radius:22px;padding:15px;box-shadow:var(--shadow-sm)}.today-group header{display:flex;justify-content:space-between;gap:12px;align-items:center}.today-group header div{display:flex;align-items:center;gap:8px}.member-dot{width:10px;height:10px;border-radius:50%}.overload-warning{margin:10px 0;padding:9px 10px;background:var(--amber-soft);border-radius:12px;color:#7c4b18;font-size:12px}.today-task-list,.metrics-list{display:grid;gap:9px;margin-top:12px}.today-task,.metric-task{background:#fff;border:1px solid var(--line);border-radius:17px;padding:12px;display:flex;justify-content:space-between;gap:12px}.today-task h4{margin:0 0 3px}.today-task p{margin:0 0 8px;color:var(--muted);font-size:12px}.metrics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.metrics-card-wide{grid-column:1/-1}.metrics-range{display:flex;gap:10px;color:var(--muted);margin:10px 0}.metrics-signals{display:grid;gap:8px;margin:10px 0}.signal{padding:10px 12px;border-radius:16px;background:var(--amber-soft);color:#754612}.metrics-table{width:100%;border-collapse:separate;border-spacing:0 7px}.metrics-table th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.metrics-table td{background:#fff;border-block:1px solid var(--line);padding:9px}.metrics-table td:first-child{border-left:1px solid var(--line);border-radius:12px 0 0 12px}.metrics-table td:last-child{border-right:1px solid var(--line);border-radius:0 12px 12px 0}.toast{position:fixed;right:18px;bottom:18px;background:#173f3a;color:#fff;border-radius:16px;padding:13px 16px;box-shadow:var(--shadow);z-index:200;animation:toastIn .2s ease}
@keyframes softIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes modalIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:1180px){.advanced-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.search-control{grid-column:1/-1}.task-editor-layout{grid-template-columns:1fr}.task-editor-side{border-left:0;border-top:1px solid var(--line)}.metrics-grid{grid-template-columns:1fr}}
@media(max-width:880px){.app-shell{grid-template-columns:1fr}.app-sidebar{position:fixed;inset:0 auto 0 0;width:286px;transform:translateX(-100%);transition:transform .22s ease}body.sidebar-open .app-sidebar{transform:none}.app-main{padding:14px}.app-topbar{margin:-14px -14px 14px;padding:14px}.advanced-filters{grid-template-columns:1fr}.board{grid-auto-columns:minmax(280px,86vw)}.topbar-right{display:none}.settings-layout{grid-template-columns:1fr}.settings-tabs{grid-template-columns:repeat(2,1fr);border-right:0;border-bottom:1px solid var(--line)}.comment-add-row{grid-template-columns:1fr}.page-hero{align-items:flex-start;flex-direction:column}.grid-2{grid-template-columns:1fr}}

/* Hito 11.7 identidad base, overrides de marca */
:root{
  --bg:#F7F3EC;--bg-2:#FBF8F2;--surface:#FFFDF8;--surface-2:#F8F5EF;--surface-3:#EEE8DE;
  --text:#202033;--muted:#6E6B7B;--soft:#A09BAD;--line:#E4DDD2;
  --brand:#4B5CFF;--brand-2:#7B61FF;--brand-3:#FF6B4A;--brand-soft:#ECEEFF;
  --amber:#D9903D;--amber-soft:#FFF0D9;--danger:#D85F4A;--danger-soft:#FFE4DC;
  --ok:#2F9E73;--ok-soft:#DFF4EC;--violet:#7B61FF;--violet-soft:#EEE9FF;
  --nav-bg:#191833;--nav-bg-2:#23204A;--nav-text:#F7F3EC;--nav-muted:rgba(247,243,236,.66);
  --shadow:0 18px 60px rgba(32,32,51,.12);--shadow-sm:0 8px 26px rgba(32,32,51,.08);
}
body{background:radial-gradient(circle at top left,#FFF2E8 0,#F7F3EC 34%,#EEE8DE 100%)!important;color:var(--text)!important}
.app-sidebar{background:radial-gradient(circle at 18% 6%,rgba(255,107,74,.24),transparent 30%),linear-gradient(180deg,var(--nav-bg) 0%,var(--nav-bg-2) 100%)!important;color:var(--nav-text)!important}
.brand-mark{width:44px!important;height:44px!important;background:transparent!important;color:inherit!important;overflow:hidden!important;box-shadow:0 10px 30px rgba(0,0,0,.18)!important}.brand-mark img{width:44px;height:44px;display:block}.brand-copy span{color:var(--nav-muted)!important}
.sidebar-context label{color:var(--nav-muted)!important}.sidebar-link,.sidebar-action{color:rgba(247,243,236,.82)!important}.sidebar-section p{color:rgba(247,243,236,.44)!important}.sidebar-note span{color:var(--nav-muted)!important}
.sidebar-action.primary{background:linear-gradient(135deg,var(--brand),var(--violet))!important;color:#fff!important;box-shadow:0 12px 30px rgba(75,92,255,.24)!important}.primary-btn{background:linear-gradient(135deg,var(--brand),var(--violet))!important;color:#fff!important;box-shadow:0 12px 30px rgba(75,92,255,.24)!important}.primary-btn:hover{box-shadow:0 14px 34px rgba(75,92,255,.30)!important}.sidebar-link.active{box-shadow:inset 3px 0 var(--brand-3)!important}
.eyebrow,.count,.settings-tabs button.active,.settings-tabs button:hover{color:var(--brand)!important}select:focus,input:focus,textarea:focus{border-color:rgba(75,92,255,.55)!important;box-shadow:0 0 0 4px rgba(75,92,255,.12)!important}.toast{background:linear-gradient(135deg,var(--brand),var(--violet))!important}.checklist-pill{background:var(--brand-soft)!important;color:var(--brand)!important}.recurrence-pill{background:var(--violet-soft)!important;color:var(--violet)!important}.done-pill{background:var(--ok-soft)!important;color:var(--ok)!important}.danger-pill{background:var(--danger-soft)!important;color:var(--danger)!important}

/* Selector de idioma alineado con workspace/tablero */
.sidebar-locale {
  display: grid;
  gap: 10px;
  padding: 0 4px;
}
.sidebar-locale label {
  display: grid;
  gap: 6px;
  color: var(--nav-muted);
  font-weight: 750;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.sidebar-locale select {
  width: 100%;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.09);
  color: #fff;
  border-radius: 13px;
  padding: 10px 12px;
  outline: none;
  min-height: 41px;
}
.sidebar-locale select option { color: #202033; }
body.sidebar-collapsed .sidebar-locale { display: none; }

/* Hito 12, auth + onboarding */
.auth-body {
  min-height: 100vh;
  background:
    radial-gradient(circle at top left, rgba(75,92,255,.18), transparent 32rem),
    radial-gradient(circle at bottom right, rgba(255,107,74,.16), transparent 30rem),
    var(--surface-warm, #f7f3ec);
  color: var(--text-primary, #202033);
}
.auth-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, 460px);
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: center;
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(1.25rem, 4vw, 4rem);
}
.auth-shell.single { grid-template-columns: minmax(320px, 520px); justify-content: center; }
.auth-brand-panel {
  padding: clamp(1.5rem, 4vw, 4rem);
  border-radius: 32px;
  background: linear-gradient(145deg, rgba(255,255,255,.72), rgba(255,255,255,.38));
  border: 1px solid rgba(255,255,255,.68);
  box-shadow: 0 24px 80px rgba(32,32,51,.12);
  backdrop-filter: blur(20px);
}
.auth-logo { width: 190px; height: auto; margin-bottom: 2rem; }
.auth-brand-panel h1 { font-size: clamp(2.2rem, 5vw, 4.4rem); line-height: .96; letter-spacing: -.06em; margin: 0 0 1rem; }
.auth-brand-panel p { font-size: 1.08rem; color: var(--text-secondary, #6a687b); max-width: 36rem; margin-bottom: 2rem; }
.auth-proof { display:flex; align-items:center; gap:.75rem; margin:.75rem 0; color: var(--text-secondary, #6a687b); }
.auth-proof span:first-child { width: 2.1rem; height: 2.1rem; display:grid; place-items:center; border-radius: 12px; color: #fff; background: linear-gradient(135deg, #4B5CFF, #7B61FF); }
.auth-card {
  background: rgba(255,255,255,.84);
  border: 1px solid rgba(255,255,255,.86);
  border-radius: 28px;
  box-shadow: 0 24px 80px rgba(32,32,51,.16);
  padding: clamp(1.25rem, 3vw, 2.2rem);
  backdrop-filter: blur(18px);
}
.auth-card-header h2 { margin: .25rem 0 .35rem; font-size: 1.8rem; letter-spacing: -.03em; }
.auth-card-header p { color: var(--text-secondary, #6a687b); }
.auth-form { display:grid; gap: 1rem; margin-top: 1.2rem; }
.auth-form label { display:grid; gap:.45rem; font-weight: 700; font-size: .86rem; color: var(--text-secondary, #6a687b); }
.auth-form input, .auth-form select {
  min-height: 46px;
  border-radius: 14px;
  border: 1px solid rgba(32,32,51,.12);
  background: #fff;
  padding: 0 .95rem;
  color: var(--text-primary, #202033);
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.auth-form input:focus, .auth-form select:focus { border-color: rgba(75,92,255,.55); box-shadow: 0 0 0 4px rgba(75,92,255,.12); }
.auth-submit { width: 100%; justify-content:center; min-height: 48px; margin-top: .25rem; }
.auth-message { min-height: 1.4rem; color: var(--text-secondary, #6a687b); font-size: .9rem; }
.auth-message.error { color: #D94841; }
.auth-message.success { color: #2F9E73; }
.auth-links { display:flex; justify-content:space-between; gap:1rem; margin-top: 1rem; font-size:.92rem; }
.auth-links a, .auth-message a { color: #4B5CFF; text-decoration:none; font-weight:800; }
.auth-demo-box {
  margin-top: 1.2rem;
  padding: .85rem 1rem;
  border-radius: 16px;
  background: rgba(75,92,255,.08);
  border: 1px solid rgba(75,92,255,.12);
  display:grid;
  gap:.25rem;
  font-size:.88rem;
}
.auth-demo-box span { color: var(--text-secondary, #6a687b); }
.auth-locale-form { margin-top: 1rem; }
.auth-locale-form label { display:flex; align-items:center; gap:.5rem; color: var(--text-secondary, #6a687b); font-weight:700; font-size:.85rem; }
.auth-locale-form select { border-radius: 12px; border:1px solid rgba(32,32,51,.12); padding:.45rem .7rem; background:#fff; }
.sidebar-user {
  display:flex;
  align-items:center;
  gap:.7rem;
  padding:.75rem;
  border-radius: 18px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.1);
  margin: .5rem 0 .75rem;
}
.sidebar-user-avatar {
  width: 34px;
  height: 34px;
  display:grid;
  place-items:center;
  border-radius: 13px;
  background: linear-gradient(135deg, #FF6B4A, #7B61FF);
  color:#fff;
  font-weight:900;
}
.sidebar-user-copy { min-width:0; display:grid; gap:.08rem; }
.sidebar-user-copy strong, .sidebar-user-copy span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sidebar-user-copy strong { font-size:.88rem; }
.sidebar-user-copy span { font-size:.72rem; opacity:.72; }
.sidebar-logout { margin-left:auto; color:rgba(255,255,255,.8); text-decoration:none; font-weight:900; }
.sidebar-logout:hover { color:#fff; transform: translateY(-1px); }
@media (max-width: 860px) {
  .auth-shell { grid-template-columns: 1fr; }
  .auth-brand-panel { display:none; }
}


/* Hito 12.1, ajustes visuales y adjuntos */
.entity-form-card form,
#createFromTemplateForm,
#templateForm {
  padding: 18px 20px 20px;
  display: grid;
  gap: 14px;
}
.entity-form-card form > .grid-2,
#createFromTemplateForm > .grid-2,
#templateForm > .grid-2 {
  gap: 12px 14px;
}
.entity-form-card label,
#createFromTemplateForm label,
#templateForm label {
  color: var(--text);
}
input[type="color"] {
  width: 100%;
  min-height: 42px;
  padding: 4px;
  cursor: pointer;
  background: #fffefa;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
}
input[type="color"]::-webkit-color-swatch-wrapper { padding: 0; }
input[type="color"]::-webkit-color-swatch { border: 0; border-radius: 10px; }
input[type="color"]::-moz-color-swatch { border: 0; border-radius: 10px; }
.small-help { font-size: 12px; }
.attachment-upload-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; align-items: center; }

.visually-hidden-file {
  position: absolute!important;
  width: 1px!important;
  height: 1px!important;
  padding: 0!important;
  margin: -1px!important;
  overflow: hidden!important;
  clip: rect(0,0,0,0)!important;
  white-space: nowrap!important;
  border: 0!important;
}
.entity-image-field {
  display: grid;
  gap: 7px;
}
.entity-image-uploader {
  display: grid;
  grid-template-columns: 66px minmax(0,1fr);
  gap: 10px;
  align-items: center;
}
.entity-image-preview {
  width: 62px;
  height: 62px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  overflow: hidden;
  position: relative;
  background: var(--avatar-color, #64748b);
  border: 1px solid rgba(255,255,255,.82);
  box-shadow: 0 8px 22px rgba(38,31,21,.12);
  color: #fff;
  font-weight: 950;
  letter-spacing: -.04em;
}
.entity-image-preview img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.entity-image-preview.has-image > span { display: none; }
.entity-image-actions {
  display: flex;
  gap: 7px;
  align-items: center;
  flex-wrap: wrap;
}
.entity-image-actions .small-help {
  width: 100%;
  margin: 0;
  color: var(--muted);
}
.attachment-list { display: grid; gap: 8px; margin-top: 10px; }
.attachment-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.attachment-main { min-width: 0; display: flex; align-items: center; gap: 10px; }
.attachment-icon { width: 34px; height: 34px; border-radius: 12px; display: grid; place-items: center; background: var(--surface-2); border: 1px solid var(--line); flex: 0 0 auto; }
.attachment-main a { display: block; font-weight: 850; color: var(--text); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 420px; }
.attachment-main a:hover { color: var(--brand); }
.attachment-main p { margin: 2px 0 0; color: var(--muted); font-size: 12px; }
.attachment-pill { background: rgba(75,92,255,.11); color: var(--brand); }
@media (max-width: 720px) { .attachment-upload-row { grid-template-columns: 1fr; } .attachment-item { align-items: flex-start; flex-direction: column; } .attachment-main a { max-width: 260px; } }

/* Hito 13, Briefs personalizados */
.brief-section {
  border: 1px solid rgba(75, 92, 255, 0.14);
  background: linear-gradient(180deg, rgba(75, 92, 255, 0.055), rgba(255, 255, 255, 0.82));
}
.brief-fields {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}
.brief-field {
  display: grid;
  gap: 6px;
}
.brief-field span {
  font-size: 12px;
  font-weight: 800;
  color: var(--text-muted, #6b7280);
  letter-spacing: .01em;
}
.brief-field small,
.brief-field-checkbox small {
  font-size: 12px;
  color: var(--text-muted, #6b7280);
}
.brief-field-checkbox {
  display: grid;
  gap: 6px;
  padding: 10px 12px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 14px;
  background: rgba(255,255,255,.68);
}
.brief-pill {
  background: rgba(75, 92, 255, .10);
  color: #3438A8;
  border-color: rgba(75, 92, 255, .18);
}
.brief-config-card {
  max-width: 980px;
}
.brief-field-builder {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 20px;
  background: rgba(247, 243, 236, .38);
}
.brief-field-list {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}
.brief-field-config {
  padding: 14px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 18px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 10px 24px rgba(32,32,51,.045);
}
.brief-field-config-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.brief-field-actions,
.brief-field-flags {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.brief-row .entity-swatch {
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 900;
}
@media (max-width: 760px) {
  .brief-field-config-head { align-items: flex-start; flex-direction: column; }
}

/* Hito 13.1, ficha por pestañas y editor expandido */
.task-tabbar {
  display: flex;
  gap: 8px;
  padding: 10px 14px 0;
  border-top: 1px solid rgba(255,255,255,.04);
  overflow-x: auto;
  scrollbar-width: thin;
}
.task-tabbar .task-tab {
  border: 1px solid rgba(75,92,255,.18);
  background: rgba(255,255,255,.72);
  color: var(--text-muted, #6b6f80);
  border-radius: 999px;
  padding: 9px 13px;
  font-weight: 750;
  font-size: .82rem;
  white-space: nowrap;
  cursor: pointer;
  transition: background .18s ease, color .18s ease, transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.task-tabbar .task-tab:hover {
  transform: translateY(-1px);
  color: var(--text-main, #202033);
  border-color: rgba(75,92,255,.32);
}
.task-tabbar .task-tab.active {
  color: #fff;
  background: linear-gradient(135deg, var(--brand-primary, #4B5CFF), var(--brand-secondary, #7B61FF));
  border-color: transparent;
  box-shadow: 0 12px 24px rgba(75,92,255,.22);
}
.task-editor-layout[data-active-tab] [data-task-pane] { display: none; }
.task-editor-layout[data-active-tab="details"] [data-task-pane="details"],
.task-editor-layout[data-active-tab="brief"] [data-task-pane="brief"],
.task-editor-layout[data-active-tab="checklist"] [data-task-pane="checklist"],
.task-editor-layout[data-active-tab="attachments"] [data-task-pane="attachments"],
.task-editor-layout[data-active-tab="comments"] [data-task-pane="comments"],
.task-editor-layout[data-active-tab="activity"] [data-task-pane="activity"] { display: block; }
.task-editor-layout[data-active-tab="details"] { grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); }
.task-editor-layout:not([data-active-tab="details"]) {
  grid-template-columns: minmax(0, 1fr);
}
.task-editor-layout:not([data-active-tab="details"]) .task-editor-side {
  display: contents;
}
.task-editor-layout:not([data-active-tab="details"]) .task-editor-main {
  display: contents;
}
.task-editor-layout:not([data-active-tab="details"]) .panel-section,
.task-editor-layout:not([data-active-tab="details"]) .side-panel {
  max-width: 980px;
  width: 100%;
  margin-inline: auto;
}
.brief-rich-text {
  border: 1px solid rgba(32,32,51,.10);
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}
.brief-rich-text textarea,
.long-text-value {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  width: 100%;
  min-height: 180px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  line-height: 1.6;
  resize: vertical;
}
.editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px;
  background: linear-gradient(180deg, rgba(247,243,236,.95), rgba(255,255,255,.76));
  border-bottom: 1px solid rgba(32,32,51,.08);
}
.editor-toolbar button {
  min-width: 32px;
  height: 32px;
  border: 1px solid rgba(32,32,51,.10);
  border-radius: 10px;
  background: rgba(255,255,255,.82);
  color: var(--text-main, #202033);
  font-weight: 800;
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.editor-toolbar button:hover {
  transform: translateY(-1px);
  border-color: rgba(75,92,255,.32);
  background: #fff;
}
.editor-toolbar .expand-text-btn {
  margin-left: auto;
  padding-inline: 12px;
  color: var(--brand-primary, #4B5CFF);
  min-width: auto;
}
.long-text-card {
  width: min(1120px, calc(100vw - 28px));
  max-height: calc(100vh - 28px);
}
.editor-toolbar-large {
  margin: 8px 0 0;
  border: 1px solid rgba(32,32,51,.08);
  border-radius: 16px 16px 0 0;
}
.long-text-value {
  min-height: min(62vh, 620px);
  border: 1px solid rgba(32,32,51,.08) !important;
  border-top: 0 !important;
  background: rgba(255,255,255,.86) !important;
  padding: 18px !important;
  font-size: 1rem;
}
@media (max-width: 900px) {
  .task-tabbar { padding-inline: 10px; }
  .task-editor-layout[data-active-tab="details"] { grid-template-columns: 1fr; }
  .editor-toolbar .expand-text-btn { margin-left: 0; }
}

/* Hito 13.1.1, ajuste de pestañas, comentarios en detalles y vista previa Markdown */
.task-modal-card {
  max-height: calc(100vh - 44px);
}
.task-modal-header,
.task-tabbar,
.sticky-actions {
  flex: 0 0 auto;
}
.task-form-pro {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.task-editor-layout {
  flex: 1 1 auto;
  max-height: none;
  overflow: auto;
  align-items: start;
}
.task-tabbar {
  position: relative;
  z-index: 3;
  min-height: 56px;
  align-items: center;
  padding: 10px 16px;
  background: rgba(255,253,248,.96);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 8px 18px rgba(32,32,51,.035);
}
.comments-inline-panel {
  margin-top: 14px;
}
.markdown-preview {
  border-top: 1px solid rgba(32,32,51,.08);
  background: linear-gradient(180deg, rgba(255,255,255,.72), rgba(247,243,236,.52));
  padding: 14px 16px;
  color: var(--text-main, #202033);
  line-height: 1.58;
  font-size: .94rem;
}
.markdown-preview::before {
  content: "Vista previa";
  display: block;
  margin-bottom: 8px;
  color: var(--muted, #74788a);
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.markdown-preview p,
.markdown-preview ul,
.markdown-preview h2,
.markdown-preview h3,
.markdown-preview h4 {
  margin: 0 0 10px;
}
.markdown-preview h2,
.markdown-preview h3,
.markdown-preview h4 {
  letter-spacing: -.03em;
  color: var(--text-main, #202033);
}
.markdown-preview ul {
  padding-left: 20px;
}
.markdown-preview li {
  margin: 4px 0;
}
.markdown-preview a {
  color: var(--brand-primary, #4B5CFF);
  font-weight: 800;
}
.markdown-preview hr {
  border: 0;
  border-top: 1px solid rgba(32,32,51,.12);
  margin: 14px 0;
}
.markdown-preview .md-check {
  list-style: none;
  margin-left: -18px;
}
.markdown-preview .md-check.is-checked {
  color: var(--muted, #74788a);
  text-decoration: line-through;
}
.markdown-empty {
  color: var(--muted, #74788a);
  font-style: italic;
}
.long-text-preview {
  max-height: 28vh;
  overflow: auto;
  border: 1px solid rgba(32,32,51,.08);
  border-top: 0;
  background: rgba(255,253,248,.82);
}
@media (max-width: 760px) {
  .task-tabbar {
    min-height: 52px;
    padding: 8px 10px;
  }
  .task-tabbar .task-tab {
    padding: 8px 11px;
  }
}

/* Hito 13.2, Briefs dentro de plantillas */
.template-brief-section {
  border: 1px solid var(--border-soft, #e5e7eb);
  border-radius: 18px;
  padding: 16px;
  background: rgba(75, 92, 255, 0.035);
  margin-top: 14px;
}
.template-brief-fields {
  margin-top: 12px;
}
.template-brief-fields .brief-rich-text textarea {
  min-height: 180px;
}
.template-row .entity-info small {
  display: block;
  margin-top: 4px;
}

/* Hito 14, roles y permisos */
.sidebar-user-copy em {
  display: inline-flex;
  width: fit-content;
  margin-top: 4px;
  padding: 2px 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: rgba(255,255,255,.78);
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .01em;
}
button:disabled,
.sidebar-action:disabled,
.primary-btn:disabled,
.ghost-btn:disabled,
.danger-btn:disabled {
  opacity: .45;
  cursor: not-allowed;
  transform: none !important;
  box-shadow: none !important;
}
body[data-role="viewer"] .task-card {
  cursor: default;
}
.role-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 999px;
  padding: 4px 9px;
  background: rgba(75,92,255,.09);
  color: var(--brand-primary, #4B5CFF);
  font-size: 12px;
  font-weight: 800;
}

/* Hito 14.1, Equipo unificado */
.settings-group-label {
  margin: 14px 10px 6px;
  font-size: 11px;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted, #7b7f91);
  font-weight: 800;
}
.settings-tabs .team-tab {
  position: relative;
}
.settings-tabs .team-tab::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--brand, #4B5CFF);
  opacity: .45;
  margin-right: 8px;
  display: inline-block;
  vertical-align: 1px;
}
.entity-account-user-field,
.entity-create-member-field {
  animation: fadeIn .16s ease-out;
}


/* Hito 14 redefinido: trial + suscripción única */
.subscription-banner {
  margin: 18px 22px 0;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  box-shadow: 0 10px 30px rgba(32, 32, 51, .06);
}
.subscription-banner strong { display:block; color: var(--text); }
.subscription-banner span { display:block; color: var(--muted); font-size: .92rem; margin-top: 3px; }
.subscription-banner.is-trial { border-color: rgba(242,166,74,.55); }
.subscription-banner.is-locked { border-color: rgba(212,93,76,.45); background: #fff7f4; }
.sidebar-action-link { text-decoration: none; color: inherit; }
.task-modal-card .task-form-pro :disabled { opacity: .72; cursor: not-allowed; }
.task-modal-card.is-read-only .task-editor-side::before {
  content: 'Modo consulta: la prueba terminó o la suscripción no está activa.';
  display: block;
  margin-bottom: 12px;
  padding: 10px 12px;
  border-radius: 14px;
  background: #fff7f4;
  color: var(--danger);
  font-size: .9rem;
  border: 1px solid rgba(212,93,76,.35);
}
.billing-layout { min-height: 100vh; background: var(--bg); color: var(--text); padding: 32px; }
.billing-card { max-width: 920px; margin: 0 auto; background: var(--surface); border: 1px solid var(--line); border-radius: 28px; padding: 28px; box-shadow: 0 18px 50px rgba(32,32,51,.08); }
.billing-header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom: 24px; }
.billing-status { display:inline-flex; align-items:center; gap:8px; padding:6px 10px; border-radius:999px; background:#eef2ff; color:var(--brand); font-weight:700; }
.billing-status.is-locked { background:#fff7f4; color:var(--danger); }
.billing-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap:14px; margin: 20px 0; }
.billing-metric { border:1px solid var(--line); border-radius:18px; padding:16px; background:#fffdfb; }
.billing-metric span { display:block; color:var(--muted); font-size:.88rem; margin-bottom:6px; }
.billing-metric strong { font-size:1.2rem; }
.billing-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.billing-note { color:var(--muted); line-height:1.5; }
@media (max-width: 720px) { .subscription-banner, .billing-header { flex-direction: column; align-items: stretch; } .billing-layout { padding: 16px; } }

/* Parche Hito 14: acceso billing + banner trial robusto */
.subscription-banner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
}
.subscription-banner-copy {
  min-width: 0;
}
.subscription-banner-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.subscription-banner-actions .primary-btn {
  white-space: nowrap;
  text-decoration: none;
}
@media (max-width: 720px) {
  .subscription-banner {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .subscription-banner-actions {
    justify-content: flex-start;
  }
}
/* Mini-hito UX: editor visual de textos largos */
.form-label {
  display: grid;
  gap: 8px;
  font-weight: 700;
  color: var(--text-main, #202033);
}
.rich-editor {
  border: 1px solid rgba(32,32,51,.10);
  border-radius: 18px;
  background: rgba(255,255,255,.82);
  overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}
.rich-editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px;
  background: linear-gradient(180deg, rgba(247,243,236,.96), rgba(255,255,255,.78));
  border-bottom: 1px solid rgba(32,32,51,.08);
}
.rich-editor-toolbar button {
  min-width: 34px;
  height: 32px;
  border: 1px solid rgba(32,32,51,.10);
  border-radius: 10px;
  background: rgba(255,255,255,.86);
  color: var(--text-main, #202033);
  font-weight: 850;
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.rich-editor-toolbar button:hover {
  transform: translateY(-1px);
  border-color: rgba(75,92,255,.32);
  background: #fff;
}
.rich-editor-toolbar .expand-text-btn {
  margin-left: auto;
  padding-inline: 12px;
  min-width: auto;
  color: var(--brand-primary, #4B5CFF);
}
.rich-editor-area {
  min-height: 160px;
  padding: 14px 16px;
  outline: none;
  color: var(--text-main, #202033);
  font: inherit;
  font-weight: 500;
  line-height: 1.6;
  background: rgba(255,255,255,.78);
  overflow-wrap: anywhere;
}
.rich-task-description .rich-editor-area {
  min-height: 150px;
}
.brief-rich-text .rich-editor-area {
  min-height: 220px;
}
.rich-editor-area:empty::before {
  content: attr(data-placeholder);
  color: var(--muted, #74788a);
  pointer-events: none;
}
.rich-editor-area p,
.rich-editor-area ul,
.rich-editor-area ol,
.rich-editor-area h2,
.rich-editor-area h3,
.rich-editor-area h4,
.rich-editor-area blockquote,
.rich-editor-area pre {
  margin: 0 0 10px;
}
.rich-editor-area h2,
.rich-editor-area h3,
.rich-editor-area h4 {
  letter-spacing: -.03em;
  color: var(--text-main, #202033);
  line-height: 1.22;
}
.rich-editor-area h2 { font-size: 1.25rem; }
.rich-editor-area h3 { font-size: 1.08rem; }
.rich-editor-area ul,
.rich-editor-area ol { padding-left: 22px; }
.rich-editor-area li { margin: 4px 0; }
.rich-editor-area a {
  color: var(--brand-primary, #4B5CFF);
  font-weight: 800;
}
.rich-editor-area blockquote {
  border-left: 3px solid rgba(75,92,255,.32);
  padding-left: 12px;
  color: var(--muted, #74788a);
}
.rich-editor-area code,
.rich-editor-area pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  background: rgba(32,32,51,.06);
  border-radius: 8px;
}
.rich-editor-area code { padding: 2px 5px; }
.rich-editor-area pre { padding: 10px 12px; overflow: auto; }
.rich-editor-area hr {
  border: 0;
  border-top: 1px solid rgba(32,32,51,.12);
  margin: 14px 0;
}
.rich-editor-expanded {
  margin-top: 8px;
}
.rich-editor-expanded .long-text-value,
.long-text-value.rich-editor-area {
  min-height: min(62vh, 620px);
  max-height: min(62vh, 620px);
  overflow: auto;
  border: 0 !important;
  border-radius: 0 !important;
  background: rgba(255,255,255,.88) !important;
  padding: 18px !important;
  font-family: inherit;
  resize: none;
}
.rich-editor-source[hidden] {
  display: none !important;
}
@media (max-width: 900px) {
  .rich-editor-toolbar .expand-text-btn { margin-left: 0; }
  .rich-editor-area { min-height: 140px; }
  .brief-rich-text .rich-editor-area { min-height: 180px; }
}

/* Hito 15: mensajes visibles de límites/errores API */
.toast.toast-error{
  background:linear-gradient(135deg,#b42318,#ef4444)!important;
  color:#fff!important;
  max-width:min(460px,calc(100vw - 36px));
  line-height:1.35;
  font-weight:800;
}
.toast.toast-warning{
  background:linear-gradient(135deg,#92400e,#f59e0b)!important;
  color:#fff!important;
  max-width:min(460px,calc(100vw - 36px));
  line-height:1.35;
  font-weight:800;
}
.toast.toast-success{
  background:linear-gradient(135deg,#166534,#22c55e)!important;
  color:#fff!important;
}

/* Parche Hito 15, UX de ficha, briefs y adjuntos visuales */
.task-cover {
  margin: -13px -13px 12px -8px;
  height: 128px;
  border-radius: 16px 16px 13px 13px;
  overflow: hidden;
  background: var(--surface-2);
  border-bottom: 1px solid rgba(224,214,199,.88);
}
.task-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.task-card .task-cover + h3 {
  padding-left: 4px;
}
.attachment-item.is-primary {
  border-color: color-mix(in srgb, var(--brand) 38%, var(--line));
  background: linear-gradient(180deg, rgba(75,92,255,.06), #fff);
}
.attachment-thumb {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: 13px;
  border: 1px solid var(--line);
  background: var(--surface-2);
  flex: 0 0 auto;
}
.attachment-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.primary-image-pill {
  background: var(--brand-soft)!important;
  color: var(--brand)!important;
}
.brief-field-longtext {
  display: grid;
  gap: 6px;
}
@media (max-width: 720px) {
  .task-cover { height: 112px; }
  .attachment-actions { justify-content: flex-start; }
}

/* Mini-hito UX: tarjetas visuales, avatares y categorías con logo */
.task-card.task-card-compact {
  padding: 0;
  border-radius: 19px;
}
.task-card.task-card-compact:before {
  width: 4px;
  z-index: 1;
}
.task-card-compact .task-cover {
  margin: 0;
  height: 122px;
  border-radius: 19px 19px 0 0;
  border-bottom: 1px solid rgba(224,214,199,.88);
}
.task-card-compact .task-card-body {
  padding: 12px 12px 11px 16px;
}
.task-card-compact h3 {
  margin: 0 0 9px;
  padding-left: 0;
  font-size: 15px;
  line-height: 1.32;
}

.task-description-preview {
  margin: -4px 0 10px;
  color: color-mix(in srgb, var(--muted) 88%, #1f2523);
  font-size: 12px;
  line-height: 1.38;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.task-main-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  min-height: 28px;
}
.mini-avatar,
.category-mark {
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  overflow: hidden;
  position: relative;
  border: 1px solid rgba(255,255,255,.82);
  box-shadow: 0 5px 14px rgba(38,31,21,.10);
  background: var(--avatar-color, var(--category-color, #64748b));
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: -.03em;
}
.category-mark {
  --category-color: #0ea5e9;
  background: color-mix(in srgb, var(--category-color) 88%, #fff);
  font-size: 12px;
}
.mini-avatar img,
.category-mark img,
.entity-swatch-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.mini-avatar span,
.category-mark span,
.entity-swatch-image span {
  position: relative;
  z-index: 0;
}
.mini-avatar.has-image > span,
.category-mark.has-image > span,
.entity-swatch-image.has-image > span {
  display: none;
}
.priority-chip,
.task-date,
.status-chip,
.task-signal-row span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border-radius: 999px;
  min-height: 24px;
  padding: 4px 8px;
  font-size: 11px;
  line-height: 1;
  font-weight: 850;
  white-space: nowrap;
}
.priority-chip {
  background: color-mix(in srgb, var(--priority-color) 16%, #fff);
  color: color-mix(in srgb, var(--priority-color) 72%, #1f2523);
}
.priority-chip i {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--priority-color);
}
.task-date {
  background: rgba(31,111,100,.08);
  color: var(--brand);
}
.task-date.is-overdue {
  background: var(--danger-soft);
  color: var(--danger);
}
.task-type-line {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}
.task-status-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.status-chip.is-blocked {
  background: var(--amber-soft);
  color: #8c561c;
}
.status-chip.is-done {
  background: var(--ok-soft);
  color: var(--ok);
}
.task-signal-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
  padding-top: 9px;
  border-top: 1px solid rgba(226,216,201,.72);
}
.task-signal-row span {
  background: rgba(240,236,228,.74);
  color: var(--muted);
  padding: 4px 7px;
  font-weight: 800;
}
.task-card-compact .blocked-reason {
  margin-top: 8px;
}
.task-card-compact .meta,
.task-card-compact .card-footer {
  display: none;
}
.entity-swatch {
  overflow: hidden;
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 900;
}
.entity-swatch-image {
  position: relative;
}
@media (max-width: 720px) {
  .task-card-compact .task-cover { height: 112px; }
  .task-main-meta { gap: 6px; }
}

/* Hito 16, onboarding comercial */
.onboarding-body {
  min-height: 100vh;
  background:
    radial-gradient(circle at top left, rgba(75, 92, 255, .18), transparent 34rem),
    radial-gradient(circle at bottom right, rgba(255, 107, 74, .12), transparent 30rem),
    var(--bg, #f6f7fb);
  color: var(--text, #172033);
}
.onboarding-shell {
  width: min(1160px, calc(100% - 32px));
  margin: 0 auto;
  padding: 34px 0 56px;
  display: grid;
  grid-template-columns: minmax(260px, 360px) 1fr;
  gap: 24px;
  align-items: start;
}
.onboarding-hero {
  position: sticky;
  top: 24px;
  padding: 28px;
  border-radius: 28px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 20px 55px rgba(20, 32, 60, .10);
  border: 1px solid rgba(148, 163, 184, .18);
  backdrop-filter: blur(18px);
}
.onboarding-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: inherit;
  font-weight: 800;
  margin-bottom: 28px;
}
.onboarding-brand img { width: 32px; height: 32px; }
.onboarding-hero h1 {
  margin: 6px 0 12px;
  font-size: clamp(2rem, 4vw, 3.3rem);
  line-height: .98;
  letter-spacing: -.06em;
}
.onboarding-hero p { color: var(--muted, #667085); line-height: 1.65; }
.onboarding-info-box {
  display: grid;
  gap: 6px;
  margin-top: 22px;
  padding: 14px;
  border-radius: 18px;
  background: rgba(47, 158, 115, .10);
  color: #14523d;
}
.onboarding-info-box span { font-size: .92rem; line-height: 1.45; }
.onboarding-card {
  display: grid;
  gap: 18px;
  padding: 22px;
  border-radius: 30px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 24px 70px rgba(20, 32, 60, .12);
  border: 1px solid rgba(148, 163, 184, .20);
}
.onboarding-step {
  padding: 18px;
  border-radius: 24px;
  border: 1px solid rgba(148, 163, 184, .18);
  background: rgba(248,250,252,.72);
}
.onboarding-step-head {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 16px;
}
.onboarding-step-head > span {
  width: 32px;
  height: 32px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: var(--brand, #4B5CFF);
  color: #fff;
  font-weight: 800;
  flex: 0 0 auto;
}
.onboarding-step-head h2 { margin: 0 0 4px; font-size: 1.15rem; }
.onboarding-step-head p { margin: 0; color: var(--muted, #667085); line-height: 1.45; }
.onboarding-usecase-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.onboarding-usecase {
  display: grid;
  gap: 7px;
  min-height: 128px;
  padding: 15px;
  border-radius: 20px;
  border: 1px solid rgba(148, 163, 184, .32);
  background: #fff;
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.onboarding-usecase:hover { transform: translateY(-1px); box-shadow: 0 12px 30px rgba(20,32,60,.08); }
.onboarding-usecase input { width: 18px; height: 18px; }
.onboarding-usecase strong { font-size: 1rem; }
.onboarding-usecase span { color: var(--muted, #667085); font-size: .92rem; line-height: 1.4; }
.onboarding-usecase.selected {
  border-color: rgba(75, 92, 255, .74);
  box-shadow: 0 0 0 4px rgba(75, 92, 255, .10);
}
.onboarding-fields-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.onboarding-fields-grid label {
  display: grid;
  gap: 7px;
  font-weight: 700;
  color: var(--text, #172033);
}
.onboarding-fields-grid input {
  width: 100%;
  border-radius: 14px;
  border: 1px solid rgba(148, 163, 184, .34);
  background: #fff;
  padding: 12px 13px;
  font: inherit;
}
.onboarding-template-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.onboarding-template-item,
.onboarding-checkline {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 13px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(148,163,184,.24);
  font-weight: 700;
}
.onboarding-checkline { margin-top: 14px; }
.onboarding-template-item input,
.onboarding-checkline input { width: 18px; height: 18px; }
.onboarding-actions {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 4px 2px 0;
}
.onboarding-actions > div {
  display: flex;
  align-items: center;
  gap: 12px;
}
.onboarding-actions .auth-message { margin: 0; min-height: 1.1em; }
.onboarding-inline-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 16px 18px 0;
  padding: 16px 18px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(75,92,255,.13), rgba(255,255,255,.86));
  border: 1px solid rgba(75,92,255,.22);
  box-shadow: 0 10px 34px rgba(20,32,60,.08);
}
.onboarding-inline-copy { display: grid; gap: 4px; }
.onboarding-inline-copy span { color: var(--muted, #667085); font-size: .94rem; }
@media (max-width: 900px) {
  .onboarding-shell { grid-template-columns: 1fr; }
  .onboarding-hero { position: static; }
}
@media (max-width: 640px) {
  .onboarding-shell { width: min(100% - 20px, 1160px); padding-top: 18px; }
  .onboarding-card { padding: 14px; border-radius: 24px; }
  .onboarding-usecase-grid,
  .onboarding-fields-grid,
  .onboarding-template-list { grid-template-columns: 1fr; }
  .onboarding-actions,
  .onboarding-inline-banner { align-items: stretch; flex-direction: column; }
  .onboarding-actions > div { align-items: stretch; flex-direction: column; }
}

/* Hito 17, perfil de cuenta y facturación */
.sidebar-user-avatar { overflow: hidden; position: relative; flex: 0 0 auto; }
.sidebar-user-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: inherit; }
.sidebar-user-avatar.has-image span { display: none; }
.account-page {
  min-height: 100vh;
  background:
    radial-gradient(circle at top left, rgba(75,92,255,.14), transparent 32rem),
    radial-gradient(circle at bottom right, rgba(255,107,74,.12), transparent 30rem),
    var(--bg, #f4efe7);
}
.account-shell {
  width: min(100% - 32px, 1180px);
  margin: 0 auto;
  padding: 28px 0 42px;
}
.account-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
  padding: 22px;
  border-radius: 28px;
  background: rgba(255,253,248,.86);
  border: 1px solid rgba(226,216,201,.78);
  box-shadow: var(--shadow-sm);
}
.account-header p { margin: 6px 0 0; color: var(--muted); max-width: 680px; line-height: 1.45; }
.account-header-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.account-message {
  margin-bottom: 16px;
  padding: 13px 15px;
  border-radius: 16px;
  font-weight: 800;
  border: 1px solid var(--line);
  background: var(--surface);
}
.account-message.is-ok { color: var(--ok); background: var(--ok-soft); border-color: rgba(79,138,97,.22); }
.account-message.is-error { color: var(--danger); background: var(--danger-soft); border-color: rgba(173,75,60,.22); }
.account-grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.account-card {
  background: rgba(255,253,248,.92);
  border: 1px solid rgba(226,216,201,.84);
  border-radius: 24px;
  box-shadow: var(--shadow-sm);
  padding: 18px;
}
.account-card.account-wide { grid-column: 1 / -1; }
.account-section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom: 14px; }
.account-section-head h2 { margin:0 0 4px; font-size: 20px; }
.account-section-head p { margin:0; color: var(--muted); line-height:1.45; }
.account-form { display:grid; gap: 12px; }
.account-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items:end; }
.account-form label, .account-avatar-form label {
  display:grid;
  gap: 7px;
  color: var(--muted);
  font-weight: 800;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.account-form textarea { min-height: 96px; resize: vertical; }
.account-form button { justify-self:start; }
.account-avatar-row { display:flex; align-items:center; gap:16px; margin-bottom:16px; }
.account-avatar-preview {
  width: 84px;
  height: 84px;
  flex: 0 0 auto;
  display:grid;
  place-items:center;
  border-radius: 26px;
  overflow:hidden;
  color:#fff;
  font-size: 30px;
  font-weight: 950;
  background: linear-gradient(135deg, var(--brand), var(--violet, #7B61FF));
  box-shadow: 0 14px 36px rgba(75,92,255,.18);
}
.account-avatar-preview img { width:100%; height:100%; object-fit:cover; display:block; }
.account-avatar-preview.has-image span { display:none; }
.account-avatar-form { display:grid; gap:6px; }
.file-input-label {
  width: fit-content;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface);
  padding: 10px 13px;
  color: var(--text) !important;
  cursor: pointer;
}
.file-input-label input { display:none; }
.account-avatar-form p { margin:0; color:var(--muted); font-size: 13px; line-height:1.4; }
.account-metrics-grid,
.account-usage-grid {
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.account-metrics-grid article,
.account-usage-grid article {
  padding: 13px;
  border-radius: 18px;
  background: #fffefa;
  border: 1px solid var(--line);
  display:grid;
  gap: 5px;
  min-width: 0;
}
.account-metrics-grid span,
.account-usage-grid span { color: var(--muted); font-size: 12px; font-weight: 850; }
.account-metrics-grid strong,
.account-usage-grid strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-usage-grid article.is-full { border-color: rgba(173,75,60,.28); background: var(--danger-soft); }
.danger-card { border-color: rgba(173,75,60,.22); }
.danger-card .danger-btn { justify-self:start; }
@media (max-width: 860px) {
  .account-grid { grid-template-columns: 1fr; }
  .account-form-grid,
  .account-metrics-grid,
  .account-usage-grid { grid-template-columns: 1fr; }
  .account-header { flex-direction: column; }
  .account-header-actions { width:100%; justify-content:flex-start; }
}

/* Hito 18, notificaciones internas */
.notification-bell {
  position: relative;
  width: 42px;
  height: 42px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 14px;
  background: #fff;
  color: var(--text, #111827);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}
.notification-bell:hover,
.notification-bell.has-unread {
  border-color: var(--accent, #4B5CFF);
}
.notification-bell-icon {
  font-size: 18px;
  line-height: 1;
}
.notification-badge {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 3px #fff;
}
.notification-panel {
  position: fixed;
  top: 76px;
  right: 24px;
  z-index: 90;
  width: min(420px, calc(100vw - 28px));
}
.notification-panel-card {
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 24px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.20);
  overflow: hidden;
}
.notification-panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 18px 12px;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}
.notification-panel-header h2 {
  margin: 0;
  font-size: 20px;
}
.notification-panel-actions {
  display: flex;
  justify-content: flex-end;
  padding: 10px 14px;
  background: rgba(248, 250, 252, 0.92);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}
.notification-list {
  max-height: min(520px, calc(100vh - 210px));
  overflow: auto;
  padding: 8px;
}
.notification-item {
  position: relative;
  border-radius: 16px;
  border: 1px solid transparent;
}
.notification-item.is-unread {
  background: rgba(75, 92, 255, 0.06);
  border-color: rgba(75, 92, 255, 0.14);
}
.notification-item + .notification-item {
  margin-top: 6px;
}
.notification-open {
  width: 100%;
  border: 0;
  background: transparent;
  padding: 12px 44px 12px 12px;
  display: flex;
  gap: 12px;
  text-align: left;
  cursor: pointer;
  color: inherit;
}
.notification-open:hover .notification-copy strong {
  color: var(--accent, #4B5CFF);
}
.notification-icon {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 12px;
  background: rgba(15, 23, 42, 0.06);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
}
.notification-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.notification-copy strong,
.notification-copy span,
.notification-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
}
.notification-copy strong {
  font-size: 14px;
  line-height: 1.25;
}
.notification-copy span {
  font-size: 13px;
  line-height: 1.35;
  color: var(--muted, #64748b);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.notification-copy small {
  font-size: 11px;
  color: var(--muted, #64748b);
}
.notification-read-btn {
  position: absolute;
  top: 12px;
  right: 10px;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 10px;
  background: #fff;
  color: var(--accent, #4B5CFF);
  cursor: pointer;
  font-weight: 800;
}
.notification-read-btn:hover {
  background: rgba(75, 92, 255, 0.08);
}
@media (max-width: 700px) {
  .notification-panel {
    top: 68px;
    right: 14px;
    left: 14px;
    width: auto;
  }
  .notification-list {
    max-height: calc(100vh - 190px);
  }
}

/* Hito 18.5, vistas transversales: calendario y adjuntos */
.sidebar-nav-title{margin:8px 8px 2px;color:rgba(238,248,244,.42);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.16em}.compact-filters{display:grid;grid-template-columns:minmax(240px,1.4fr) repeat(5,minmax(132px,1fr));gap:10px;background:rgba(255,253,248,.82);border:1px solid rgba(226,216,201,.84);box-shadow:var(--shadow-sm);border-radius:var(--radius);padding:12px;margin-bottom:12px}.calendar-actions,.attachments-library-toolbar .calendar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calendar-month-label{min-width:180px;text-align:center;text-transform:capitalize}.calendar-summary,.attachment-library-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:12px 0}.calendar-summary article,.attachment-library-summary article{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:15px;box-shadow:var(--shadow-sm)}.calendar-summary strong,.attachment-library-summary strong{display:block;font-size:24px;letter-spacing:-.04em}.calendar-summary span,.attachment-library-summary span{color:var(--muted);font-size:12px;font-weight:750}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px}.calendar-card,.calendar-day-panel{background:rgba(255,253,248,.92);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-sm);padding:14px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-weekdays{margin-bottom:8px}.calendar-weekdays span{text-align:center;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.calendar-day{min-height:104px;border:1px solid var(--line);border-radius:17px;background:#fff;display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:10px;color:var(--text);text-align:left;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.calendar-day:not(:disabled):hover{transform:translateY(-1px);box-shadow:var(--shadow-sm);border-color:rgba(31,111,100,.28)}.calendar-day.is-empty{visibility:hidden}.calendar-day.is-today{background:linear-gradient(180deg,#fff,#f4fff7);border-color:rgba(31,111,100,.32)}.calendar-day.is-selected{outline:3px solid rgba(31,111,100,.16);border-color:rgba(31,111,100,.48)}.calendar-day-number{font-weight:900}.calendar-day strong{margin-left:auto;margin-top:-24px;font-size:12px;background:rgba(31,111,100,.1);color:var(--brand);padding:3px 7px;border-radius:999px}.calendar-day-dots{display:flex;flex-wrap:wrap;gap:4px;margin-top:auto}.calendar-dot,.calendar-more-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--brand)}.calendar-dot.is-overdue{background:var(--danger)}.calendar-dot.is-blocked{background:#b45309}.calendar-dot.is-done{background:#16a34a}.calendar-more-dot{background:#94a3b8;color:#fff;width:16px;height:16px;font-size:10px;display:grid;place-items:center}.calendar-day-tasks{display:grid;gap:9px}.calendar-task{border:1px solid var(--line);background:#fff;border-radius:17px;padding:12px;display:flex;justify-content:space-between;gap:12px}.calendar-task h4{margin:0 0 5px}.calendar-task p{margin:0 0 8px;color:var(--muted);font-size:12px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.calendar-task .meta,.attachment-library-item .meta{display:flex;gap:6px;flex-wrap:wrap}.calendar-task .meta span,.attachment-library-item .meta span{display:inline-flex;padding:4px 7px;border-radius:999px;background:#f6efe4;color:var(--muted);font-size:11px;font-weight:750}.calendar-task.is-overdue{border-color:rgba(185,28,28,.28);background:#fff7f5}.calendar-task.is-blocked{border-color:rgba(180,83,9,.28);background:#fff9ef}.calendar-task.is-done{opacity:.72}.attachment-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.attachment-library-item{background:rgba(255,253,248,.94);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column}.attachment-preview{height:154px;background:linear-gradient(135deg,#f6efe4,#fff);display:grid;place-items:center;border-bottom:1px solid var(--line);text-decoration:none}.attachment-preview img{width:100%;height:100%;object-fit:cover;display:block}.attachment-preview.is-file span{min-width:64px;height:46px;border-radius:14px;background:#173f3a;color:#fff;display:grid;place-items:center;font-size:13px;font-weight:900;letter-spacing:.04em}.attachment-library-copy{padding:12px;display:grid;gap:7px}.attachment-library-copy h3{font-size:14px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.attachment-library-copy p{margin:0;color:var(--muted);font-size:12px;line-height:1.35}.attachment-task-link{border:0;background:transparent;text-align:left;padding:0;color:var(--brand);font-weight:900;text-decoration:none}.attachment-task-link:hover{text-decoration:underline}.attachment-task-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.attachments-library-toolbar{align-items:flex-start}.attachments-library-toolbar .ghost-btn{white-space:nowrap}
@media(max-width:1180px){.compact-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-layout{grid-template-columns:1fr}.calendar-day{min-height:90px}.attachment-library-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}}
@media(max-width:880px){.compact-filters{grid-template-columns:1fr}.calendar-weekdays,.calendar-grid{gap:5px}.calendar-card{padding:9px}.calendar-day{min-height:74px;padding:7px;border-radius:13px}.calendar-day strong{font-size:10px;padding:2px 6px;margin-top:-20px}.calendar-dot{width:6px;height:6px}.attachment-library-grid{grid-template-columns:1fr}.calendar-actions{width:100%;justify-content:space-between}.calendar-month-label{min-width:auto}}

/* Hito 18.5 patch: evita que las imágenes de la biblioteca de adjuntos invadan el contenido de la tarjeta */
.attachment-library-item {
  isolation: isolate;
}
.attachment-library-item .attachment-preview {
  position: relative;
  display: block;
  flex: 0 0 154px;
  width: 100%;
  height: 154px;
  min-height: 154px;
  max-height: 154px;
  overflow: hidden;
  background: linear-gradient(135deg, #f6efe4, #fff);
  border-bottom: 1px solid var(--line);
  text-decoration: none;
}
.attachment-library-item .attachment-preview.is-file {
  display: grid;
  place-items: center;
}
.attachment-library-item .attachment-preview.is-image img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover;
  object-position: center;
  display: block;
}
.attachment-library-item .attachment-library-copy {
  position: relative;
  z-index: 1;
  background: rgba(255, 253, 248, .96);
}

/* Hito 19, experiencia móvil/tablet */
.mobile-sidebar-backdrop,
.mobile-new-task-btn { display: none; }

@media (max-width: 900px), (pointer: coarse) {
  html { -webkit-text-size-adjust: 100%; }
  body { overflow-x: hidden; }
  body.sidebar-open { overflow: hidden; }
  body.sidebar-collapsed .app-shell,
  .app-shell { grid-template-columns: 1fr !important; }
  .app-sidebar {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    width: min(88vw, 324px) !important;
    height: 100dvh !important;
    max-height: 100dvh;
    transform: translateX(-104%) !important;
    transition: transform .22s ease;
    z-index: 130;
    overflow-y: auto;
    overscroll-behavior: contain;
    align-items: stretch !important;
    padding-bottom: calc(18px + env(safe-area-inset-bottom));
  }
  body.sidebar-open .app-sidebar { transform: translateX(0) !important; }
  body.sidebar-collapsed .brand-copy,
  body.sidebar-collapsed .sidebar-context,
  body.sidebar-collapsed .sidebar-section p,
  body.sidebar-collapsed .sidebar-note,
  body.sidebar-collapsed .sidebar-link span:last-child,
  body.sidebar-collapsed .sidebar-action span:last-child { display: initial; }
  body.sidebar-collapsed .sidebar-context,
  body.sidebar-collapsed .sidebar-note { display: grid; }
  body.sidebar-collapsed .sidebar-link,
  body.sidebar-collapsed .sidebar-action { justify-content: flex-start; width: 100%; }
  .mobile-sidebar-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 120;
    background: rgba(17,24,39,.44);
    backdrop-filter: blur(5px);
  }
  .mobile-sidebar-backdrop[hidden] { display: none !important; }
  .app-main { padding: 12px 12px calc(84px + env(safe-area-inset-bottom)) !important; }
  .app-topbar {
    top: 0;
    z-index: 60;
    margin: -12px -12px 12px !important;
    padding: 10px 12px !important;
    gap: 10px;
  }
  .topbar-left { min-width: 0; gap: 10px; }
  .topbar-left h1 { font-size: clamp(18px, 5.4vw, 24px); line-height: 1.05; max-width: 62vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .topbar-left .eyebrow { font-size: 10px; }
  .topbar-right { display: flex !important; gap: 8px; }
  .focus-control { display: none !important; }
  #quickNewTaskBtn { display: none; }
  .notification-bell { width: 38px; height: 38px; border-radius: 13px; }
  .mobile-new-task-btn {
    display: grid;
    position: fixed;
    right: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom));
    z-index: 70;
    width: 56px;
    height: 56px;
    border: 0;
    border-radius: 999px;
    place-items: center;
    background: linear-gradient(135deg,var(--brand),var(--brand-2));
    color: #fff;
    font-size: 28px;
    font-weight: 900;
    box-shadow: 0 18px 44px rgba(31,111,100,.34);
  }
  .mobile-new-task-btn:disabled { opacity: .48; filter: grayscale(.4); }
  .page-hero,
  .today-toolbar,
  .calendar-toolbar,
  .attachments-library-toolbar,
  .metrics-toolbar { padding: 14px; border-radius: 20px; gap: 12px; }
  .page-hero h2 { font-size: 22px; }
  .today-actions,
  .calendar-actions,
  .metrics-actions { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .calendar-actions { grid-template-columns: 44px 1fr 44px; align-items: center; }
  .calendar-actions #calendarTodayBtn { grid-column: 1 / -1; }
  .calendar-month-label { min-width: 0; }
  .advanced-filters,
  .compact-filters {
    grid-template-columns: 1fr !important;
    gap: 8px;
    padding: 10px;
    border-radius: 18px;
    margin-bottom: 10px;
  }
  .advanced-filters select,
  .advanced-filters input,
  .compact-filters select,
  .compact-filters input { min-height: 42px; font-size: 15px; }
  .board-summary,
  .calendar-summary,
  .attachment-library-summary { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; padding-bottom: 4px; scroll-snap-type: x proximity; }
  .board-summary span,
  .calendar-summary article,
  .attachment-library-summary article { flex: 0 0 auto; scroll-snap-align: start; }
  .board {
    grid-auto-columns: minmax(84vw, 88vw) !important;
    gap: 12px;
    min-height: calc(100dvh - 250px);
    padding: 2px 4px 18px;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }
  .column { min-height: 58dvh; border-radius: 22px; }
  .column-header { position: sticky; top: 58px; z-index: 2; background: rgba(255,253,248,.80); backdrop-filter: blur(10px); border-radius: 22px 22px 0 0; }
  .task-list { min-height: 48dvh; padding: 0 9px 12px; }
  .task-card { cursor: pointer; }
  .task-card:hover { transform: none; box-shadow: 0 8px 24px rgba(56,42,23,.07); }
  .task-card-compact .task-cover { height: 118px; }
  .task-card-compact h3 { font-size: 15px; }
  .task-description-preview { -webkit-line-clamp: 2; }
  .task-main-meta { gap: 6px; }
  .task-signal-row { gap: 5px; }
  .task-signal-row span { font-size: 11px; padding: 4px 7px; }
  .today-groups,
  .metrics-grid { grid-template-columns: 1fr !important; }
  .calendar-layout { grid-template-columns: 1fr !important; gap: 12px; }
  .calendar-card,
  .calendar-day-panel { border-radius: 20px; padding: 10px; }
  .calendar-weekdays,
  .calendar-grid { gap: 4px !important; }
  .calendar-weekdays span { font-size: 10px; }
  .calendar-day { min-height: 64px !important; padding: 6px !important; border-radius: 12px !important; gap: 4px; }
  .calendar-day-number { font-size: 12px; }
  .calendar-day strong { margin-top: -19px !important; font-size: 10px !important; }
  .calendar-day-dots { max-height: 18px; overflow: hidden; }
  .calendar-task { display: grid; grid-template-columns: 1fr; }
  .attachment-library-grid { grid-template-columns: 1fr !important; gap: 12px; }
  .attachment-library-item .attachment-preview { height: 176px; min-height: 176px; max-height: 176px; flex-basis: 176px; }
  .notification-panel {
    top: 60px !important;
    right: 10px !important;
    left: 10px !important;
    width: auto !important;
    z-index: 115;
  }
  .notification-panel-card { max-height: calc(100dvh - 74px); border-radius: 22px; }
  .notification-list { max-height: calc(100dvh - 190px) !important; }
}

@media (max-width: 720px) {
  body.modal-open { overflow: hidden; }
  .modal {
    padding: 0 !important;
    place-items: stretch !important;
    background: rgba(31,37,35,.42);
  }
  .modal-card,
  .task-modal-card,
  .settings-card,
  .entity-form-card,
  .long-text-card {
    width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
  }
  .modal-header {
    position: sticky;
    top: 0;
    z-index: 6;
    background: rgba(255,253,248,.96);
    backdrop-filter: blur(14px);
    padding: 12px 14px;
  }
  .task-form-pro { min-height: 0; overflow: hidden; }
  .task-tabbar {
    position: sticky;
    top: 61px;
    z-index: 5;
    overflow-x: auto;
    justify-content: flex-start;
    padding: 8px 10px;
    scrollbar-width: none;
  }
  .task-tabbar::-webkit-scrollbar { display: none; }
  .task-tabbar .task-tab { flex: 0 0 auto; white-space: nowrap; }
  .task-editor-layout {
    display: block !important;
    height: auto;
    max-height: none;
    overflow: auto;
    padding-bottom: 92px;
  }
  .task-editor-main,
  .task-editor-side { width: 100%; border-left: 0 !important; }
  .task-editor-main { padding: 12px; }
  .task-editor-side { padding: 0 12px 12px; }
  .side-panel,
  .panel-section,
  .task-title-block { border-radius: 18px; }
  .rich-editor-toolbar { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .rich-editor-toolbar::-webkit-scrollbar { display: none; }
  .rich-editor-area { min-height: 150px; font-size: 16px; }
  .brief-fields { grid-template-columns: 1fr !important; }
  .attachment-upload-row,
  .comment-add-row,
  .checklist-add-row { grid-template-columns: 1fr !important; }
  .attachment-list { grid-template-columns: 1fr !important; }
  .sticky-actions,
  .modal-actions.sticky-actions {
    position: fixed !important;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 8;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    background: rgba(255,253,248,.96);
    border-top: 1px solid var(--line);
    box-shadow: 0 -12px 30px rgba(15,23,42,.10);
  }
  .sticky-actions .primary-btn,
  .sticky-actions .danger-btn { flex: 1 1 auto; min-height: 44px; }
  .settings-layout { display: block !important; }
  .settings-tabs {
    display: flex !important;
    gap: 8px;
    overflow-x: auto;
    padding: 10px;
    border-right: 0 !important;
    border-bottom: 1px solid var(--line);
    scrollbar-width: none;
  }
  .settings-tabs::-webkit-scrollbar { display: none; }
  .settings-tabs button,
  .settings-group-label { flex: 0 0 auto; white-space: nowrap; }
  .settings-main { padding: 12px; }
  #entityForm,
  #templateForm,
  #createFromTemplateForm { padding: 12px !important; }
  .grid-2,
  .compact-grid { grid-template-columns: 1fr !important; }
  .long-text-value { min-height: calc(100dvh - 240px); }
}

@media (max-width: 420px) {
  .app-sidebar { width: 92vw !important; }
  .topbar-left h1 { max-width: 54vw; }
  .board { grid-auto-columns: minmax(88vw, 90vw) !important; }
  .calendar-day { min-height: 56px !important; }
  .calendar-day strong { display: none; }
}
@media (max-width: 900px), (pointer: coarse) {
  body.sidebar-collapsed .brand-copy { display: flex; }
  body.sidebar-collapsed .sidebar-link span:last-child,
  body.sidebar-collapsed .sidebar-action span:last-child { display: inline; }
  body.sidebar-collapsed .sidebar-section p { display: block; }
}

/* Parche Hito 19.1: sidebar scroll, columnas móviles y mover en móvil */
.app-sidebar {
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.app-sidebar::-webkit-scrollbar { width: 8px; }
.app-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.20); border-radius: 999px; }
.app-sidebar::-webkit-scrollbar-track { background: transparent; }
.sidebar-section-bottom { margin-top: 0; }
.app-shell { align-items: start; }

.task-mobile-move-btn,
.mobile-move-menu { display: none; }

@media (min-width: 901px) {
  .app-sidebar {
    position: sticky !important;
    top: 0;
    height: 100dvh;
    max-height: 100dvh;
  }
}

@media (max-width: 900px), (pointer: coarse) {
  .app-sidebar {
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }
  .column {
    overflow: hidden;
  }
  .column-header {
    position: relative !important;
    top: auto !important;
    z-index: 3;
    margin: 0;
    padding: 14px 14px 11px !important;
    background: linear-gradient(180deg, rgba(255,253,248,.96), rgba(255,253,248,.86)) !important;
    border-radius: 22px 22px 0 0 !important;
    box-shadow: 0 1px 0 rgba(226,216,201,.72);
  }
  .task-list {
    padding-top: 10px !important;
  }
  .task-card {
    touch-action: manipulation;
    padding-right: 46px;
  }
  .task-mobile-move-btn {
    display: grid;
    position: absolute;
    top: 9px;
    right: 9px;
    z-index: 4;
    width: 32px;
    height: 32px;
    border: 1px solid rgba(226,216,201,.9);
    border-radius: 12px;
    place-items: center;
    background: rgba(255,253,248,.94);
    color: var(--brand);
    font-weight: 900;
    box-shadow: 0 7px 16px rgba(45,35,22,.08);
  }
  .task-mobile-move-btn:active {
    transform: scale(.96);
  }
  .mobile-move-menu {
    display: block;
    position: fixed;
    z-index: 180;
    width: min(280px, calc(100vw - 24px));
  }
  .mobile-move-menu[hidden] { display: none !important; }
  .mobile-move-menu-card {
    display: grid;
    gap: 6px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(255,253,248,.98);
    box-shadow: 0 20px 55px rgba(15,23,42,.22);
  }
  .mobile-move-menu-title {
    padding: 2px 4px 6px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .12em;
  }
  .mobile-move-menu button {
    width: 100%;
    border: 0;
    border-radius: 13px;
    padding: 10px;
    display: flex;
    align-items: center;
    gap: 9px;
    background: #f7f1e8;
    color: var(--text);
    font-weight: 850;
    text-align: left;
  }
  .mobile-move-menu button:not(:disabled):active,
  .mobile-move-menu button:not(:disabled):hover {
    background: #efe6d8;
  }
  .mobile-move-menu button:disabled {
    opacity: .58;
  }
  .mobile-move-menu button span {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--dot, var(--brand));
    flex: 0 0 auto;
  }
}

/* Parche Hito 19.2: movimiento móvil por pulsación larga */
.mobile-card-placeholder,
.mobile-card-ghost { display: none; }

@media (max-width: 900px), (pointer: coarse) {
  .task-card {
    padding-right: 13px !important;
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
  }
  .task-mobile-move-btn,
  .mobile-move-menu {
    display: none !important;
  }
  .task-card.long-press-candidate {
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
  }
  .task-card.long-press-candidate:active {
    transform: scale(.985);
    border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
  }
  body.mobile-card-dragging {
    cursor: grabbing;
    overscroll-behavior: none;
  }
  body.mobile-card-dragging * {
    -webkit-user-select: none !important;
    user-select: none !important;
  }
  .mobile-card-placeholder {
    display: block;
    border: 2px dashed rgba(31,111,100,.32);
    background: rgba(31,111,100,.08);
    border-radius: 18px;
    min-height: 74px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.58);
  }
  .task-card.mobile-drag-source {
    opacity: 0 !important;
    pointer-events: none !important;
  }
  .mobile-card-ghost {
    display: block;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 260;
    pointer-events: none;
    opacity: .96;
    transform: translate3d(-9999px,-9999px,0);
    box-shadow: 0 24px 70px rgba(15,23,42,.28) !important;
    border-color: color-mix(in srgb, var(--accent) 60%, var(--line)) !important;
    rotate: .6deg;
  }
  .mobile-card-ghost:hover {
    transform: inherit;
  }
  .mobile-card-ghost .task-card-body,
  .mobile-card-ghost .task-cover {
    pointer-events: none;
  }
  .task-list {
    transition: background .14s ease;
  }
  body.mobile-card-dragging .task-list {
    min-height: 120px;
  }
}

/* Parche Hito 19.3: long press móvil robusto + drag desde imagen de cabecera */
.task-cover,
.task-cover img{
  -webkit-user-drag:none;
  user-drag:none;
}
.task-cover img{
  pointer-events:none;
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
}
@media (max-width: 900px), (pointer: coarse){
  .task-card{
    touch-action:pan-y;
  }
  body.mobile-card-dragging,
  body.mobile-card-dragging .board,
  body.mobile-card-dragging .task-card{
    touch-action:none!important;
  }
  .mobile-card-ghost{
    left:0!important;
    top:0!important;
    margin:0!important;
    will-change:transform;
    transform-origin:0 0;
    touch-action:none!important;
  }
  .mobile-card-ghost:hover{
    transform:translate3d(var(--ghost-x, -9999px), var(--ghost-y, -9999px), 0)!important;
  }
  .mobile-card-placeholder{
    width:100%;
    box-sizing:border-box;
  }
}

/* Parche Hito 19.4: arrastre móvil entre columnas más usable */
@media (max-width: 900px), (pointer: coarse){
  .board{
    grid-auto-columns:minmax(76vw, 82vw)!important;
    gap:14px!important;
    padding-inline:12px 18vw!important;
    scroll-padding-inline:12px 18vw;
    overscroll-behavior-x:contain;
  }
  .column{
    scroll-snap-align:center;
  }
  body.mobile-card-dragging .board{
    scroll-snap-type:none!important;
    scroll-behavior:auto!important;
  }
  body.mobile-card-dragging .column{
    outline:2px solid rgba(31,111,100,.08);
    outline-offset:-2px;
  }
  body.mobile-card-dragging .column:has(.mobile-card-placeholder){
    outline-color:rgba(31,111,100,.34);
  }
  .task-cover,
  .task-card[draggable="true"] .task-cover{
    cursor:grab;
  }
  .task-card.dragging .task-cover,
  .task-card:active .task-cover{
    cursor:grabbing;
  }
}
@media (max-width:420px){
  .board{
    grid-auto-columns:minmax(78vw, 84vw)!important;
    padding-inline:10px 18vw!important;
  }
}

/* Hito 20: pulido visual y marca Norte */
:root{
  --norte-ink:#123633;
  --norte-mint:#e9f7ef;
  --norte-sand:#fff8ec;
  --norte-copper:#c8793f;
  --norte-glow:0 22px 70px rgba(18,54,51,.10);
}
body{
  background:
    radial-gradient(circle at 18% 0%, rgba(31,111,100,.14), transparent 34%),
    radial-gradient(circle at 100% 18%, rgba(200,121,63,.13), transparent 28%),
    linear-gradient(135deg,#fbf3e7 0%,#f7efe2 45%,#edf6ef 100%);
}
.app-main{
  background:linear-gradient(180deg,rgba(255,253,248,.74),rgba(255,253,248,.54));
}
.app-topbar,.page-hero,.filters,.today-summary article,.metric-card,.calendar-summary article,.attachment-library-summary article,.today-group,.metrics-card,.calendar-card,.calendar-day-panel,.attachment-library-item{
  backdrop-filter:blur(16px);
}
.app-topbar{
  border-bottom:1px solid rgba(226,216,201,.82);
  box-shadow:0 10px 35px rgba(18,54,51,.055);
}
.sidebar-brand strong{letter-spacing:-.03em}.sidebar-link,.sidebar-action{transition:background .16s ease,color .16s ease,transform .16s ease}.sidebar-link:hover,.sidebar-action:hover{transform:translateX(2px)}.sidebar-link.active{box-shadow:inset 3px 0 0 rgba(243,203,124,.85)}
.primary-btn,.ghost-btn,.danger-btn,.icon-btn{transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}.primary-btn:hover:not(:disabled),.ghost-btn:hover:not(:disabled),.danger-btn:hover:not(:disabled),.icon-btn:hover:not(:disabled){transform:translateY(-1px)}.primary-btn:active,.ghost-btn:active,.danger-btn:active,.icon-btn:active{transform:translateY(0)}
.view-panel.active{animation:norteViewIn .18s ease both}@keyframes norteViewIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.page-hero{position:relative;overflow:hidden}.page-hero::after{content:"";position:absolute;right:-44px;top:-58px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(31,111,100,.13),transparent 62%);pointer-events:none}.page-hero h2{letter-spacing:-.04em}.help-text{line-height:1.45}.eyebrow{letter-spacing:.14em}.board-summary span,.today-summary article,.metric-card,.calendar-summary article,.attachment-library-summary article{position:relative;overflow:hidden}.board-summary span::before,.today-summary article::before,.metric-card::before,.calendar-summary article::before,.attachment-library-summary article::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--brand),rgba(31,111,100,.25))}.column{box-shadow:0 15px 40px rgba(18,54,51,.07)}.column-header{background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,253,248,.62));border-bottom:1px solid rgba(226,216,201,.68)}.column-title{letter-spacing:-.035em}.column-subtitle{max-width:20rem}.task-card{box-shadow:0 12px 28px rgba(18,54,51,.065);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.task-card:hover{box-shadow:0 18px 38px rgba(18,54,51,.105);border-color:rgba(31,111,100,.22)}.task-card h3{letter-spacing:-.025em}.task-description-preview{color:rgba(45,54,52,.72)}.task-signal-row span,.calendar-task .meta span,.attachment-library-item .meta span{border:1px solid rgba(226,216,201,.72);background:rgba(255,248,236,.78)}.status-chip.is-blocked,.danger-pill,.blocked-pill{box-shadow:0 0 0 1px rgba(180,83,9,.10) inset}.column-empty-state{border:1px dashed rgba(31,111,100,.20);background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(245,253,247,.58));border-radius:18px;padding:14px 12px;color:var(--muted);font-size:12px;line-height:1.4;text-align:center}.empty-state-polished{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:124px;padding:22px;border:1px dashed rgba(31,111,100,.24);background:linear-gradient(160deg,rgba(255,255,255,.76),rgba(237,246,239,.72));box-shadow:inset 0 1px 0 rgba(255,255,255,.75);text-align:center}.empty-state-polished .empty-state-icon{width:38px;height:38px;border-radius:16px;display:grid;place-items:center;background:rgba(31,111,100,.10);color:var(--brand);font-weight:900}.empty-state-polished strong{display:block;color:var(--text);font-size:15px;letter-spacing:-.02em}.empty-state-polished p{margin:0;max-width:34rem;color:var(--muted);font-size:13px;line-height:1.45}.empty-state-polished .ghost-btn{margin-top:4px}.notification-item{transition:transform .15s ease,background .15s ease,border-color .15s ease}.notification-item:hover{transform:translateX(2px);border-color:rgba(31,111,100,.2)}.notification-item.is-unread{background:linear-gradient(180deg,#fff,#f3fff7)}.calendar-day{box-shadow:0 8px 20px rgba(18,54,51,.045)}.calendar-day.is-selected{box-shadow:0 0 0 3px rgba(31,111,100,.12),0 12px 26px rgba(18,54,51,.08)}.attachment-preview{position:relative;overflow:hidden}.attachment-preview::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(18,54,51,.14));opacity:0;transition:opacity .16s ease}.attachment-library-item:hover .attachment-preview::after{opacity:1}.modal-card{box-shadow:0 28px 90px rgba(18,54,51,.22)}.rich-editor-area:focus{box-shadow:0 0 0 3px rgba(31,111,100,.12);border-color:rgba(31,111,100,.32)}.toast{box-shadow:0 18px 48px rgba(18,54,51,.20)}
@media (max-width:900px){.page-hero::after{width:120px;height:120px;right:-46px;top:-50px}.empty-state-polished{min-height:104px;padding:18px}.column-empty-state{font-size:12px}.task-card:hover{transform:none}.sidebar-link:hover,.sidebar-action:hover{transform:none}}

/* Hito 23 patch, Cerrar Hoy UX */
#closeDayModal .modal-card{width:min(980px,100%);overflow:hidden;display:flex;flex-direction:column;max-height:92vh}#closeDayModal .modal-header{flex-shrink:0}#closeDayContent.planning-list{padding:18px 20px;display:grid;gap:16px;overflow:auto}.close-day-hero{border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,rgba(255,253,248,.98),rgba(246,239,228,.88));padding:16px;box-shadow:var(--shadow-sm)}.close-day-hero>p{margin:0 0 14px;color:var(--muted);font-weight:650;line-height:1.45}.close-day-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.close-day-summary-grid article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:13px}.close-day-summary-grid strong{display:block;font-size:26px;line-height:1;letter-spacing:-.05em;color:var(--text)}.close-day-summary-grid span{display:block;margin-top:6px;color:var(--muted);font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.close-day-decision{display:grid;gap:12px}.close-day-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.close-day-toolbar h3{margin:0;font-size:18px;letter-spacing:-.03em}.close-day-toolbar p{margin:4px 0 0;color:var(--muted);line-height:1.4}.close-day-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.close-day-task-list{display:grid;gap:10px}.close-day-task-card{display:grid;grid-template-columns:190px minmax(0,1fr) auto;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:13px;box-shadow:0 8px 24px rgba(56,42,23,.045);transition:opacity .16s ease,background .16s ease,border-color .16s ease}.close-day-task-card.is-kept{background:rgba(246,239,228,.5);opacity:.72}.close-day-choice{display:flex!important;align-items:center;gap:9px;text-transform:none!important;letter-spacing:0!important;color:var(--text);font-weight:850;cursor:pointer}.close-day-choice input{width:auto;accent-color:var(--brand)}.close-day-task-body{min-width:0;display:grid;gap:6px}.link-card-title{border:0;background:transparent;padding:0;text-align:left;font-size:15px;font-weight:900;line-height:1.25;color:var(--text);cursor:pointer}.link-card-title:hover{color:var(--brand);text-decoration:underline}.close-day-description{margin:0;color:var(--muted);font-size:13px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.close-day-meta{display:flex;flex-wrap:wrap;gap:6px 10px;color:var(--muted);font-size:12px;font-weight:800}.close-day-meta span:not(:last-child)::after{content:'·';margin-left:10px;color:var(--soft)}.close-day-flags{display:flex;flex-wrap:wrap;gap:6px}.close-day-card-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.close-day-card-actions .mini,.close-day-toolbar-actions .mini{white-space:nowrap}#closeDayModal .modal-actions{flex-shrink:0;padding:14px 20px;border-top:1px solid var(--line);background:rgba(255,253,248,.94);backdrop-filter:blur(14px)}#moveTodayToBacklogBtn:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}@media (max-width:900px){#closeDayModal .modal-card{width:100%;height:100%;max-height:100%;border-radius:0}#closeDayContent.planning-list{padding:14px;gap:12px}.close-day-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.close-day-toolbar{display:grid}.close-day-toolbar-actions{justify-content:flex-start}.close-day-task-card{grid-template-columns:1fr;align-items:start}.close-day-choice{padding:2px 0}.close-day-card-actions{justify-content:flex-start}#closeDayModal .modal-actions{padding:12px 14px}#moveTodayToBacklogBtn{width:100%}}

/* Patch UX: Planificar Hoy */
#planDayModal .modal-card{width:min(980px,100%);overflow:hidden;display:flex;flex-direction:column;max-height:92vh}
#planDayModal .modal-header{flex-shrink:0}
#planDayContent.planning-list{padding:18px 20px;display:grid;gap:16px;overflow:auto}
.plan-day-hero{border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,rgba(255,253,248,.98),rgba(237,246,239,.88));padding:16px;box-shadow:var(--shadow-sm)}
.plan-day-hero>p{margin:0 0 14px;color:var(--muted);font-weight:650;line-height:1.45}
.plan-day-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.plan-day-summary-grid article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:13px}
.plan-day-summary-grid strong{display:block;font-size:26px;line-height:1;letter-spacing:-.05em;color:var(--text)}
.plan-day-summary-grid span{display:block;margin-top:6px;color:var(--muted);font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}
.plan-day-decision{display:grid;gap:12px}
.plan-day-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.plan-day-toolbar h3{margin:0;font-size:18px;letter-spacing:-.03em}
.plan-day-toolbar p{margin:4px 0 0;color:var(--muted);line-height:1.4}
.plan-day-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.plan-day-task-list{display:grid;gap:10px}
.plan-day-task-card{display:grid;grid-template-columns:190px minmax(0,1fr) auto;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:13px;box-shadow:0 8px 24px rgba(56,42,23,.045);transition:opacity .16s ease,background .16s ease,border-color .16s ease}
.plan-day-task-card.is-recommended{border-color:rgba(75,92,255,.22);background:linear-gradient(180deg,#fff,rgba(245,247,255,.72))}
.plan-day-task-card.is-blocked{background:linear-gradient(135deg,#fffdf8,#fff7ed);border-color:#efc9be}
.plan-day-choice{display:flex!important;align-items:center;gap:9px;text-transform:none!important;letter-spacing:0!important;color:var(--text);font-weight:850;cursor:pointer}
.plan-day-choice input{width:auto;accent-color:var(--brand)}
.plan-day-task-body{min-width:0;display:grid;gap:6px}
.plan-day-description{margin:0;color:var(--muted);font-size:13px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.plan-day-meta{margin:0;display:flex;flex-wrap:wrap;gap:6px 10px;color:var(--muted);font-size:12px;font-weight:800}
.plan-day-meta span:not(:last-child)::after{content:'·';margin-left:10px;color:var(--soft)}
.plan-day-flags{display:flex;flex-wrap:wrap;gap:6px}
.plan-day-card-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.plan-day-card-actions .mini,.plan-day-toolbar-actions .mini{white-space:nowrap}
.plan-day-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding-top:14px}
.plan-day-footer p{margin:0;color:var(--muted);font-size:13px;line-height:1.4;font-weight:650}
#moveSelectedToTodayBtn:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}
.warning-pill{background:var(--amber-soft)!important;color:#8c561c!important}
@media (max-width:900px){#planDayModal .modal-card{width:100%;height:100%;max-height:100%;border-radius:0}#planDayContent.planning-list{padding:14px;gap:12px}.plan-day-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-day-toolbar{display:grid}.plan-day-toolbar-actions{justify-content:flex-start}.plan-day-task-card{grid-template-columns:1fr;align-items:start}.plan-day-choice{padding:2px 0}.plan-day-card-actions{justify-content:flex-start}.plan-day-footer{display:grid}.plan-day-footer .primary-btn{width:100%}}
