/* Suisse Int'l (Swiss Typefaces) — .woff2 en ./fonts/ */
@font-face{font-family:"Suisse Int'l";src:url("./fonts/SuisseIntl-Regular.woff2") format("woff2");font-weight:400;font-display:swap;}
@font-face{font-family:"Suisse Int'l";src:url("./fonts/SuisseIntl-Book.woff2") format("woff2");font-weight:450;font-display:swap;}
@font-face{font-family:"Suisse Int'l";src:url("./fonts/SuisseIntl-Medium.woff2") format("woff2");font-weight:500;font-display:swap;}
@font-face{font-family:"Suisse Int'l";src:url("./fonts/SuisseIntl-SemiBold.woff2") format("woff2");font-weight:600;font-display:swap;}
@font-face{font-family:"Suisse Mono";src:url("./fonts/SuisseIntlMono-Regular.woff2") format("woff2");font-weight:400;font-display:swap;}
:root{
  --bg:#0a0a0a; --surf-alt:#141414; --surf-card:#1a1a1a; --interactive:#333333;
  --bd:rgba(255,255,255,0.08); --bd-strong:rgba(255,255,255,0.14); --line:#1a1a1a;
  --tx:#ededed; --tx2:#8a8a8a; --tx3:#5c5c5c; --tx-pri:#e5e5e5; --tx-label:#d6d6d6;
  --accent:#f78da7; --accent2:#ffb3c6; --attn:#FCA354; --risk:#FD5D5E; --warn:#E9D94E; --done:#52E09E;
  --track:#1f1f1f;
  /* estatus: rejilla */
  --st-margin:60px; --st-gap:20px;
  --sans:"Suisse Int'l","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"Suisse Mono","SF Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
/* helpers de color de estado: r=risk g=done a=attn — fondo 10%, contenido 100% */
.s-risk{--c:253,93,94}.s-done{--c:82,224,158}.s-attn{--c:252,163,84}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--tx);font-family:var(--sans);font-weight:450;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
html{overflow-x:hidden}
.num,td.n,th.n,.big,.id{font-variant-numeric:tabular-nums}
.wrap{width:100%;padding:120px var(--st-margin) 140px}
.top{position:fixed;top:0;left:0;right:0;height:60px;background:var(--bg);z-index:10;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 20px}
.top .logo{justify-self:start;display:flex;align-items:center}
.mark{flex:none}
.topnav{justify-self:center;display:flex;gap:6px}
.topnav button{background:none;border:none;color:var(--tx2);font-family:var(--sans);font-weight:520;font-size:12px;cursor:pointer;padding:5px 10px}
.topnav button:hover{color:var(--tx-pri)}
.topnav button.on{color:var(--tx-pri)}
.topnav .nav-admin{display:inline-flex;align-items:center;gap:6px}
.nav-tag{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--tx3);background:var(--surf-card);border:1px solid var(--bd);border-radius:3px;padding:0 4px;line-height:1.7}
.top .right{justify-self:end;position:relative}
.setbtn{background:var(--surf-card);border:1px solid var(--bd);color:var(--tx-label);font-family:var(--sans);font-size:12px;padding:5px 10px;border-radius:4px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}
.setbtn:hover{color:var(--tx-pri);border-color:var(--bd-strong)}.setbtn.on{color:var(--tx-pri);border-color:var(--bd-strong)}
.setmenu{position:absolute;right:0;top:calc(100% + 6px);background:var(--surf-alt);border:1px solid var(--bd-strong);border-radius:4px;padding:6px;min-width:240px;display:none;z-index:9}
.setmenu.on{display:block}
.setmenu .info{padding:8px 10px;color:var(--tx3);font-size:12px;border-bottom:1px solid var(--bd);margin-bottom:4px}
.setmenu button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--tx-label);font-family:var(--sans);font-weight:520;font-size:12px;padding:5px 10px;border-radius:4px;cursor:pointer}
.setmenu button:hover{color:var(--tx-pri);background:#1a1a1a}
.kick{font-size:13px;color:var(--tx2);letter-spacing:.02em;margin:30px 0 14px}
.grid{display:grid;gap:20px}.g6{grid-template-columns:repeat(6,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.card{border:1px solid var(--bd);border-radius:4px;padding:22px;transition:border-color .15s}
.card:hover{border-color:var(--bd-strong)}
.card .lab{font-size:13px;color:var(--tx2);margin-bottom:10px}
.big{font-size:30px;font-weight:520;line-height:1.2;letter-spacing:-.01em}.big.s{font-size:22px}
.delta{font-size:13px;color:var(--tx2);margin-top:8px}
.bar{height:4px;background:var(--track);border-radius:4px;overflow:hidden;margin-top:14px}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:8px;vertical-align:middle}
.d-ok{background:var(--accent)}.d-attn{background:var(--attn)}.d-risk{background:var(--risk)}.d-done{background:var(--done)}.d-mute{background:var(--tx3)}
/* ===== ESTATUS — sistema nuevo ===== */
.st-wrap{position:fixed;top:60px;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(12,1fr);gap:var(--st-gap);padding:0 var(--st-margin)}
.st-main.scrolling *{pointer-events:none}
.st-main,.panel,.chat .cbody{scrollbar-width:none;-ms-overflow-style:none}
.st-main::-webkit-scrollbar,.panel::-webkit-scrollbar,.chat .cbody::-webkit-scrollbar{width:0;height:0;display:none}
.st-fix{grid-column:span 4;overflow:hidden;padding-top:60px}
.st-topbar{position:sticky;top:0;min-height:30px;display:flex;align-items:center;gap:8px;padding:8px var(--st-margin);z-index:7;background:var(--bg)}
.st-topbar .st-seg{padding:2px}
.st-topbar .st-seg button{padding:4px 10px}
.st-topbar .st-week,.st-topbar .st-curproj{padding:5px 12px}
.st-wrap.st-wrap-bar{top:60px}
.st-wrap-bar .st-fix,.st-wrap-bar .st-main{padding-top:0}
.st-main{grid-column:span 8;overflow-y:auto;overflow-x:clip;padding-top:60px;padding-bottom:60px}
.st-line{border-top:1px solid var(--line)}
.st-kick{color:var(--tx3);font-size:12px;font-weight:450}
/* selector de semana + baseline */
.st-weekrow{display:flex;gap:8px;align-items:stretch}
.st-week{flex:1;display:flex;align-items:center;justify-content:space-between;background:transparent;border:1px solid var(--bd);border-radius:4px;padding:6px 12px;cursor:pointer;position:relative}
.st-week:hover{border-color:var(--bd-strong)}
.st-week select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.st-week .lbl{color:var(--tx-pri);font-size:13px;font-weight:450;line-height:1.2}.st-week .ar{color:var(--tx2);display:flex}
.st-base{background:var(--surf-card);border:1px solid var(--bd);border-radius:4px;color:var(--tx-label);font-family:var(--sans);font-size:12px;padding:5px 10px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.st-base:hover{color:var(--tx-pri);border-color:var(--bd-strong)}
/* semana/mes + % */
.st-modes{display:flex;flex-direction:column;gap:15px}
.st-seg{display:inline-flex;gap:3px;background:rgba(51,51,51,.4);border-radius:4px;padding:3px}
.st-seg button{background:none;border:none;color:var(--tx2);font-family:var(--sans);font-weight:450;font-size:12px;padding:5px 10px;border-radius:4px;cursor:pointer;transition:color .12s,background .12s}
.st-seg button:hover{color:var(--tx-pri)}
.st-seg button.on{background:var(--interactive);color:var(--tx-pri)}
.pj-bar{display:flex;align-items:center;gap:16px;margin-bottom:32px}
.pj-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.pj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.pj-card{border:1px solid var(--bd);border-radius:4px;padding:24px;cursor:pointer;transition:border-color .12s;display:flex;flex-direction:column}
.pj-card:hover{border-color:var(--bd-strong)}
.pj-card.s-risk{border-color:rgba(253,93,94,.35)}
.pj-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.pj-cap{font-size:11px;font-weight:520;letter-spacing:.07em;color:var(--tx3)}
.pj-est{display:flex;align-items:center;font-size:12px;color:var(--tx2)}
.pj-name{font-size:17px;font-weight:520;color:var(--tx-pri);line-height:1.3;margin-bottom:4px}
.pj-client{font-size:13px;color:var(--tx2);margin-bottom:16px}
.pj-team{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.pj-ava{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:rgba(51,51,51,.5);color:var(--tx2);font-size:10px;font-weight:520;text-transform:uppercase}
.pj-noteam{font-size:12px;color:var(--tx3)}
.pj-meta{font-size:12px;color:var(--tx3)}
.pj-econ{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.pj-econ-row{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;margin-bottom:6px}
.pj-econ-k{color:var(--tx3)}
.pj-econ-v{color:var(--tx-pri);font-weight:520;font-variant-numeric:tabular-nums}
.pj-prog{height:4px;background:#1f1f1f;border-radius:2px;overflow:hidden;margin:10px 0 8px}
.pj-prog>i{display:block;height:100%}
.pj-econ-sub{display:flex;justify-content:space-between;font-size:11px;color:var(--tx3);font-variant-numeric:tabular-nums}
.pj-links{margin-bottom:6px}
.pj-link{display:flex;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid var(--line)}
.pj-link-l{flex:0 0 76px;font-size:13px;color:var(--tx2)}
.pj-link-l a{color:var(--accent);text-decoration:none}
.pj-link-l a:hover{text-decoration:underline}
.pj-link-i{flex:1;background:none;border:none;border-bottom:1px solid transparent;color:var(--tx-pri);font-family:var(--sans);font-size:13px;padding:2px 0;outline:none}
.pj-link-i:focus{border-bottom-color:var(--bd-strong)}
.pj-link-i::placeholder{color:var(--tx3)}
.pt-bar{display:flex;align-items:center;gap:16px;margin-bottom:28px;flex-wrap:wrap}
.pt-right{margin-left:auto;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.pt-right .btn,.pt-right .btn2{font-weight:450}
.pt-wknav{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--tx2)}
.pt-wknav button{background:none;border:none;color:var(--tx2);cursor:pointer;font-size:15px;padding:1px 6px;border-radius:4px}
.pt-wknav button:hover{color:var(--tx-pri);background:rgba(51,51,51,.4)}
.pt-wknav .pt-hoy{font-size:12px}
.pt-tot{font-size:13px;color:var(--tx3)}
.pt-tot b{color:var(--tx-pri);font-weight:520;font-variant-numeric:tabular-nums}
.pt-day{border-bottom:1px solid var(--line);padding:14px 0}
.pt-day:last-child{border-bottom:none}
.pt-day-h{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}
.pt-day-d{font-size:14px;color:var(--tx-pri);font-weight:520}
.pt-day-d span{color:var(--accent);font-weight:450;margin-left:8px;font-size:11px;letter-spacing:.04em;text-transform:uppercase}
.pt-day-t{font-size:13px;color:var(--tx2);font-variant-numeric:tabular-nums}
.pt-row{display:grid;grid-template-columns:1fr 1fr 80px 1.5fr auto 22px;gap:12px;align-items:center;padding:3px 0}
.pt-head{display:grid;grid-template-columns:1fr 1fr 80px 1.5fr auto 22px;gap:12px;padding:0 0 8px;border-bottom:1px solid var(--bd);margin-bottom:6px}
.pt-head span{font-size:11px;color:var(--tx3)}
.pt-row select.miss,.pt-row input.miss{border-color:var(--risk)}
.pt-desc{position:relative;display:flex;align-items:center}
.pt-desc input{flex:1;padding-right:38px}
.pt-ai{position:absolute;right:0;background:none;border:none;color:var(--tx3);cursor:pointer;font-size:12px;padding:2px 4px;opacity:0;transition:opacity .12s}
.pt-row:hover .pt-ai{opacity:1}
.pt-ai:hover{color:var(--accent)}
.cfg-head{display:flex;align-items:baseline;gap:14px;margin-bottom:36px}
.cfg-sub{font-size:12px;color:var(--tx3)}
.cfg-block{color:var(--tx2);font-size:14px}
.cfg-sec{font-size:14px;font-weight:520;color:var(--tx-pri);margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--bd)}
.cfg-sec-bare{padding-bottom:0;border-bottom:none}
.cfg-rates{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:60px}
.cfg-rate{border:1px solid var(--bd);border-radius:4px;padding:15px;background:var(--bg);box-shadow:0 0 16px rgba(255,255,255,.04);display:flex;flex-direction:column;min-height:190px}
.cfg-rate-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.cfg-rate-k{font-size:13px;color:var(--tx2)}
.cfg-rate-v{font-size:18px;font-weight:520;color:var(--tx-pri);font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:2px}
.cfg-rate-v span{font-size:12px;color:var(--tx3);font-weight:450}
.cfg-rate-i{width:54px;background:none;border:none;border-bottom:1px solid var(--bd-strong);color:var(--tx-pri);font-family:var(--sans);font-size:18px;font-weight:520;font-variant-numeric:tabular-nums;padding:0 0 2px;outline:none;text-align:right}
.cfg-rate-i:focus{border-bottom-color:var(--accent)}
.cfg-rate-n{font-size:12px;color:var(--tx3);margin-top:15px;padding-top:15px;border-top:1px solid var(--bd);line-height:1.5}
.cfg-rate-line+.cfg-rate-line{border-top:1px solid var(--bd);margin-top:15px;padding-top:15px}
.cfg-people{display:grid;grid-template-columns:repeat(6,1fr);gap:20px}
.cfg-person{display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:15px;border:1px solid var(--bd);border-radius:4px;cursor:pointer;transition:border-color .12s;aspect-ratio:1/1}
.cfg-person:hover{border-color:var(--bd-strong);background:none}
.cfg-person-top{display:flex;flex-direction:column;align-items:flex-start;gap:10px;width:100%}
.cfg-person-nr{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.cfg-person-n{font-size:12px;color:var(--tx-pri)}
.cfg-socio{font-family:var(--mono);font-size:10px;letter-spacing:.02em;text-transform:uppercase;color:var(--tx2);background:var(--surf-card);border:1px solid var(--bd);border-radius:3px;padding:1px 5px;line-height:1.5;align-self:flex-start}
.cfg-person-r{font-size:12px;color:var(--tx2)}
.cfg-person-d{display:flex;flex-direction:column;align-items:flex-start;gap:3px;font-size:12px;color:var(--tx3);font-variant-numeric:tabular-nums;text-align:left;margin-top:auto;padding-top:14px;width:100%}
.cfg-person-add{align-items:center;justify-content:center;gap:6px;color:var(--tx2);border-style:dashed}
.cfg-person-add:hover{color:var(--tx-pri);border-color:var(--bd-strong)}
.cfg-add-plus{font-size:22px;line-height:1}
.cfg-sec-r{display:flex;align-items:center;justify-content:space-between}
.cfg-cl-socio{color:var(--accent)}
.cfg-cl-interno{color:var(--tx2)}
.cfg-cl-externo{color:var(--attn)}
.sttext{background:none;border:none;border-bottom:1px solid var(--bd);color:var(--tx-pri);font-family:var(--sans);font-size:14px;padding:2px 0;outline:none;min-width:140px}
.sttext:focus{border-bottom-color:var(--accent)}
.sttext.mono{font-family:var(--mono)}
.cl-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.cl-tabs{display:flex;gap:18px;margin-bottom:8px;border-bottom:1px solid var(--bd)}
.cl-tabs button{background:none;border:none;border-bottom:1px solid transparent;color:var(--tx2);font-family:var(--sans);font-size:12px;padding:0 0 10px;margin-bottom:-1px;cursor:pointer}
.cl-tabs button.on{color:var(--tx-pri);border-bottom-color:var(--tx-pri)}
.cl-tabs button:hover{color:var(--tx-pri)}
.cl-list{display:flex;flex-direction:column}
.cl-row{display:grid;grid-template-columns:18px 1fr 140px 110px;align-items:center;gap:14px;padding:16px 4px;border-bottom:1px solid var(--line);cursor:pointer}
.cl-row:hover{background:rgba(51,51,51,.18)}
.cl-nm{font-size:15px;color:var(--tx-pri)}
.cl-sec{color:var(--tx3);font-size:13px}
.cl-n{font-size:12px;color:var(--tx3);text-align:right}
.cl-li{font-family:var(--mono);font-size:12px;color:var(--tx3);text-align:right}
.cl-empty,.cl-none{color:var(--tx3);font-size:13px;padding:14px 4px}
.cl-health{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--tx2);margin:-6px 0 22px}
.cl-ref{font-size:11px;color:var(--tx3);font-weight:400;letter-spacing:0;text-transform:none}
.cl-add{background:var(--surf-card);border:none;color:var(--accent);font-family:var(--sans);font-size:12px;cursor:pointer;float:right;padding:5px 10px}
.cl-ct-head,.cl-ct{display:grid;grid-template-columns:1fr 1fr 1.2fr 1fr 22px;gap:10px;align-items:center}
.cl-ct-head{padding:0 0 6px;border-bottom:1px solid var(--bd);margin-bottom:6px}
.cl-ct-head span{font-size:11px;color:var(--tx3)}
.cl-ct{padding:4px 0}
.cl-ct .sttext{min-width:0;width:100%}
.cl-m4{color:var(--tx3)!important}
.cl-soon{font-size:11px;color:var(--tx3);font-family:var(--sans)}
.kicker{font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--tx3)}
.ce-tbl td,.ce-tbl th{padding-top:10px;padding-bottom:10px}
.pt-row select,.pt-row input{background:none;border:1px solid var(--bd);border-radius:4px;color:var(--tx-pri);font-family:var(--sans);font-size:13px;padding:5px 8px;outline:none;color-scheme:dark;transition:border-color .12s}
.pt-row select{-webkit-appearance:none;appearance:none;padding-right:22px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg width='7' height='4' viewBox='0 0 7 4' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.0437 0.5367L3.0219 3.5586L0 0.5367L0.5364 0.0004L3.0219 2.4858L5.5073 0.0004L6.0437 0.5367Z' fill='%238a8a8a'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}
.pt-row select:hover,.pt-row input:hover{border-color:var(--bd-strong)}
.pt-row select:focus,.pt-row input:focus{border-color:var(--accent)}
.pt-row select.miss:hover,.pt-row input.miss:hover{border-color:var(--risk)}
.pt-row input::placeholder{color:var(--tx3)}
.pt-hr{text-align:left;font-variant-numeric:tabular-nums}
.pt-frozen span{font-size:13px}
.pt-frozen{color:var(--tx-pri)}
.pt-del{background:none;border:none;color:var(--tx3);cursor:pointer;font-size:15px;line-height:1;opacity:0;transition:opacity .12s}
.pt-row:hover .pt-del{opacity:1}
.cl-ct .pt-del{opacity:.45}
.cl-ct:hover .pt-del{opacity:.8}
.cl-ct .pt-del:hover{opacity:1;color:var(--risk)}
.ce-break{display:flex;flex-direction:column;gap:14px;max-width:560px;margin-bottom:8px}
.ce-tog{display:flex;gap:14px;text-transform:none;letter-spacing:0}
.ce-tog button{background:none;border:none;color:var(--tx2);cursor:pointer;font-size:12px;padding:5px 10px;font-family:inherit}
.ce-tog button.on{color:var(--tx)}
.ce-brk-sal{color:var(--tx-pri)}
.ce-bar-sal{background:linear-gradient(90deg,#f78da7,#ffb3c6)!important;opacity:.85}
.pg-row{grid-template-columns:1.6fr 1fr 0.8fr 1fr 22px!important}
.pg-row select{background:none;border:none;border-bottom:1px solid var(--bd);color:var(--tx);font-family:inherit;font-size:14px;padding:2px 0;outline:none;width:100%}
.pg-row select:focus{border-bottom-color:var(--accent)}
.plt-cap{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--tx3);margin:22px 0 8px}
.plt-row{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid var(--bd);cursor:pointer;max-width:560px}
.plt-row:hover .plt-nm{color:#fff}
.plt-nm{color:var(--tx-pri)}
.plt-ct{color:var(--tx3);font-family:var(--mono,monospace);font-size:13px}
.plt-ta{width:100%;max-width:560px;min-height:160px;background:var(--surf-card);border:1px solid var(--bd);border-radius:4px;color:var(--tx);font-family:inherit;font-size:14px;line-height:1.9;padding:12px 14px;outline:none;resize:vertical}
.plt-ta:focus{border-color:var(--accent)}
.plt-tasks{display:flex;flex-direction:column;gap:10px;max-width:560px;margin-bottom:12px}
.plt-tk{border:1px solid var(--bd);border-radius:4px;padding:12px 12px 10px}
.plt-tk-h{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.plt-tk-nm{flex:1;background:none;border:none;color:var(--tx-pri);font-family:inherit;font-size:14.5px;font-weight:450;padding:2px 0;outline:none;border-bottom:1px solid transparent}
.plt-tk-nm:focus{border-bottom-color:var(--accent)}
.plt-sub{display:flex;align-items:center;gap:8px;padding:2px 0 2px 4px}
.plt-sub-dot{width:4px;height:4px;border-radius:50%;background:var(--tx3);flex:none}
.plt-sub-nm{flex:1;background:none;border:none;color:var(--tx2);font-family:inherit;font-size:13.5px;padding:2px 0;outline:none;border-bottom:1px solid transparent}
.plt-sub-nm:focus{border-bottom-color:var(--accent);color:var(--tx)}
.plt-addsub{background:var(--surf-card);border:none;color:var(--tx-label);font-family:inherit;font-size:12px;cursor:pointer;padding:5px 10px;margin-top:2px}
.plt-addsub:hover{color:var(--tx-pri)}
.plt-addtask{margin-top:2px}
.plt-tk .pt-del{opacity:0;transition:opacity .12s}
.plt-tk:hover .pt-del,.plt-sub:hover .pt-del{opacity:1}
.ce-brk-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.ce-brk-cat{font-size:13px;color:var(--tx)}
.ce-brk-v{font-size:13px;color:var(--tx2);font-variant-numeric:tabular-nums}
.ce-brk-pct{color:var(--tx3);margin-left:10px}
.ce-brk-bar{height:4px;background:var(--surf-card);border-radius:2px;overflow:hidden}
.ce-brk-bar>div{height:100%;background:linear-gradient(90deg,var(--accent),#ffb3c6);border-radius:2px}
.pt-del:hover{color:var(--risk)}
.pt-add{display:inline-flex;align-items:center;background:rgba(51,51,51,.4);border:none;border-radius:4px;color:var(--tx2);cursor:pointer;font-family:var(--sans);font-size:12px;height:20px;padding:0;margin-top:6px;overflow:hidden;transition:color .12s,background .12s}
.pt-add .pa-plus{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:none}
.pt-add .pa-lbl{max-width:0;opacity:0;white-space:nowrap;transition:max-width .2s ease,opacity .15s,padding .2s}
.pt-add:hover{color:var(--tx-pri);background:rgba(51,51,51,.7)}
.pt-add:hover .pa-lbl{max-width:170px;opacity:1;padding-right:10px}
.pt-empty{font-size:11px;color:var(--tx3);opacity:.65;padding:3px 0}
.pt-fac{background:none;border:none;cursor:pointer;font-size:11px;color:var(--tx3);padding:2px 7px;border-radius:4px;white-space:nowrap}
.pt-fac:hover{background:rgba(51,51,51,.4)}
.pt-fac.on{color:var(--accent)}
.pt-fac-s{font-size:11px;color:var(--accent);white-space:nowrap}
.pt-fac-s.no{color:var(--tx3)}
.pt-emps{margin-left:4px}
.pt-frozennote{font-size:12px;color:var(--tx3);margin:-12px 0 18px}
.pt-ger{width:100%;border-collapse:collapse;font-size:13px}
.pt-ger th{text-align:left;font-weight:450;color:var(--tx3);font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:0 14px 10px 0;border-bottom:1px solid var(--bd)}
.pt-ger th.n,.pt-ger td.n{text-align:right;font-variant-numeric:tabular-nums}
.pt-ger td{padding:9px 14px 9px 0;border-bottom:1px solid var(--line);color:var(--tx-pri)}
.pt-ger tr:last-child td{border-bottom:none}
.pt-ger .pt-tr-tot td{color:var(--tx2);font-weight:520;border-top:1px solid var(--bd);border-bottom:none}
.pt-mini{background:var(--surf-card);border:1px solid var(--bd);color:var(--tx-label);cursor:pointer;font-size:12px;padding:5px 10px;border-radius:4px}
.pt-mini:hover{border-color:var(--bd-strong);color:var(--tx-pri)}
.pt-mini.acc{color:var(--accent);border-color:rgba(247,141,167,.4)}
.pt-st{font-size:11px;color:var(--tx3)}
.pt-st.val{color:var(--tx2)}
.pt-me{font-size:14px;color:var(--tx-pri);font-weight:520}
.pt-cambiar{background:none;border:none;color:var(--tx3);cursor:pointer;font-size:12px;padding:0}
.pt-cambiar:hover{color:var(--tx-pri);text-decoration:underline}
.whoami{max-width:420px;margin:60px auto 0}
.whoami-h{font-size:22px;font-weight:520;color:var(--tx-pri);margin-bottom:8px}
.whoami-sub{font-size:13px;color:var(--tx2);line-height:1.5;margin-bottom:26px}
.whoami-opts{display:flex;flex-direction:column;gap:0}
.whoami-opts button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:none;border:none;border-bottom:1px solid var(--line);color:var(--tx-pri);cursor:pointer;font-family:var(--sans);font-size:12px;text-align:left;padding:5px 10px}
.whoami-opts button:hover{background:rgba(51,51,51,.25)}
.whoami-opts button span{font-size:12px;color:var(--tx3)}
.st-mode{display:flex;justify-content:space-between;align-items:baseline;cursor:pointer}
.st-mode .m{font-size:18px;font-weight:520;color:var(--tx3)}.st-mode.on .m{color:var(--tx-pri)}
.st-mode .pct{font-size:12px;font-weight:520;color:var(--tx3)}.st-mode.on .pct{color:var(--tx-pri)}
/* recuento */
.st-count{display:flex;justify-content:space-between;color:var(--tx3);font-size:12px;font-weight:450;line-height:1.3}.st-count+.st-count{margin-top:2px}
/* índice de proyectos */
.st-index .ih{color:var(--tx3);font-size:12px;margin-bottom:20px;display:flex;align-items:center;gap:10px}
.st-index a:hover,.st-index a.on{color:var(--tx-pri)}
.st-index .addp{display:inline-flex;align-items:center;justify-content:center;color:var(--tx3);cursor:pointer;margin-top:20px}.st-index .addp:hover{color:var(--tx-pri)}
/* proyecto y cards */
.st-proj{scroll-margin-top:60px}
.st-proj-h{font-size:18px;font-weight:520;color:var(--tx-pri);display:flex;align-items:center;gap:10px}
.st-proj-x{color:var(--tx3);cursor:pointer;font-size:15px}.st-proj-x:hover{color:var(--risk)}
.st-cols{display:flex;gap:var(--st-gap)}
.st-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--st-gap)}
.st-card{background:var(--surf-card);border:1px solid transparent;border-radius:4px;padding:15px;position:relative}
.st-x{position:absolute;top:0;right:0;transform:translate(50%,-50%);display:none;align-items:center;justify-content:center;padding:3px;background:var(--surf-card);border:1px solid var(--tx-pri);border-radius:4px;cursor:pointer;color:var(--tx-pri);opacity:.8;line-height:0;z-index:6}
.st-x:hover{opacity:1}
.st-card:hover .st-x{display:inline-flex}
.st-card.s-risk .st-x,.st-card.s-done .st-x,.st-card.s-attn .st-x{color:rgb(var(--c));border-color:rgb(var(--c))}
.st-card:hover{border-color:var(--tx-pri)}
.st-card-top{display:flex;flex-wrap:nowrap;gap:10px;justify-content:space-between;align-items:flex-start}
.st-title{font-size:16px;font-weight:450;color:var(--tx-pri);cursor:text;flex:1 1 0;min-width:0;background:none;border:none;font-family:var(--sans);outline:none;padding:0;line-height:1.3;word-break:break-word;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.st-title:focus{-webkit-line-clamp:initial;overflow:visible;display:block}
.st-meta{display:flex;flex-direction:column;gap:5px;flex:none;width:120px}
.st-tag{display:flex;align-items:center;height:13px;background:rgba(51,51,51,.4);border:none;border-radius:4px;position:relative;cursor:pointer;width:100%;padding:0;font-family:var(--sans)}
.st-tag .ic{position:absolute;left:5px;top:50%;transform:translateY(-50%);color:var(--tx-pri);opacity:.4;display:flex;line-height:0}
.st-tag .ar{position:absolute;right:5px;top:50%;transform:translateY(-50%);color:var(--tx-pri);opacity:.4;display:flex;line-height:0}
.st-tag .lbl{color:var(--tx-pri);opacity:.8;font-size:10px;font-weight:450;line-height:13px;padding-left:16px;padding-right:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* subtareas */
.st-subh{display:flex;align-items:center;gap:8px;margin-top:10px}
.st-subh .l{font-size:10px;font-weight:450;color:rgba(229,229,229,.4);font-family:var(--sans)}
.st-addsub{background:var(--interactive);border:none;border-radius:4px;height:13px;padding:0 10px;color:rgba(229,229,229,.6);font-size:10px;line-height:13px;cursor:pointer;display:inline-flex;align-items:center}.st-addsub:hover{filter:brightness(1.3)}
.st-subs{margin-top:5px;display:flex;flex-direction:column;gap:4px}
.st-sub-row{display:flex;gap:0;align-items:stretch}
.st-sub{flex:1;min-width:0;display:flex;align-items:center;gap:8px;background:rgba(51,51,51,.4);border-radius:4px;padding:6px 8px;cursor:pointer}
.st-sub .chk{flex:none;width:9px;height:9px;display:flex;color:var(--tx-pri);opacity:1}
.st-sub .nm{font-size:12px;color:var(--tx-pri);flex:1;min-width:0;outline:none;word-break:break-word;line-height:1}
.st-sub .nm[contenteditable]{cursor:text}
.st-sub.done .nm{text-decoration:line-through}
.sub-edit{display:flex;flex:none;margin-left:0;max-width:0;opacity:0;overflow:hidden;background:none;border:none;color:var(--tx-pri);cursor:pointer;padding:0;align-items:center;transform:translateX(3px);transition:max-width .15s ease,opacity .15s ease,margin-left .15s ease,transform .15s ease}
.st-sub-row:hover .sub-edit{max-width:18px;opacity:.6;margin-left:8px;transform:none}
.sub-edit:hover{opacity:1}.sub-edit svg{display:block}
.st-acts{display:flex;gap:4px;flex:none;max-width:0;margin-left:0;opacity:0;overflow:hidden;transition:max-width .15s ease,opacity .15s ease,margin-left .15s ease}
.st-sub-row:hover .st-acts{max-width:140px;margin-left:4px;opacity:1}
.st-acts button{background:rgba(51,51,51,.4);border:none;border-radius:4px;padding:0 12px;color:var(--tx-pri);opacity:.85;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;line-height:1;transform:translateX(5px);transition:transform .15s ease,opacity .12s ease,background .12s ease}.st-acts button:hover{opacity:1}
.st-sub-row:hover .st-acts button{transform:none}
.st-index a{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:520;color:var(--tx3);cursor:grab}.st-index a+a{margin-top:15px}
.st-index a.drag{opacity:.4}
.st-index a.over{color:var(--tx-pri)}
.st-sub.done .nm{text-decoration:line-through}
/* añadir tarea: solo un + */
.st-addtask{display:flex;align-items:center;justify-content:center;margin:0 auto;background:none;border:none;color:var(--tx3);line-height:1;cursor:pointer;padding:4px}.st-addtask:hover{color:var(--tx-pri)}
.st-addtask.top{margin:0 auto}
/* color por estado: la card lleva .s-risk/.s-done/.s-attn */
.st-card.s-risk,.st-card.s-done,.st-card.s-attn{background:rgba(var(--c),.1)}
.st-card.s-risk:hover,.st-card.s-done:hover,.st-card.s-attn:hover{border-color:rgb(var(--c))}
.st-card.s-risk .st-title,.st-card.s-done .st-title,.st-card.s-attn .st-title,
.st-card.s-risk .st-sub .nm,.st-card.s-done .st-sub .nm,.st-card.s-attn .st-sub .nm,
.st-card.s-risk .st-tag .lbl,.st-card.s-done .st-tag .lbl,.st-card.s-attn .st-tag .lbl{color:rgb(var(--c));opacity:1}
.st-card.s-risk .st-tag,.st-card.s-done .st-tag,.st-card.s-attn .st-tag,
.st-card.s-risk .st-sub,.st-card.s-done .st-sub,.st-card.s-attn .st-sub{background:rgba(var(--c),.1)}
.st-card.s-risk .st-tag .ic,.st-card.s-done .st-tag .ic,.st-card.s-attn .st-tag .ic,
.st-card.s-risk .st-tag .ar,.st-card.s-done .st-tag .ar,.st-card.s-attn .st-tag .ar{color:rgb(var(--c));opacity:.4}
.st-card.s-risk .st-sub .chk,.st-card.s-done .st-sub .chk,.st-card.s-attn .st-sub .chk{color:rgb(var(--c));opacity:1}
.st-card.s-risk .st-subh .l,.st-card.s-done .st-subh .l,.st-card.s-attn .st-subh .l{color:rgba(var(--c),.4)}
.st-card.s-risk .st-addsub,.st-card.s-done .st-addsub,.st-card.s-attn .st-addsub{background:rgba(var(--c),.1);color:rgb(var(--c))}
.st-card.s-risk .st-acts button,.st-card.s-done .st-acts button,.st-card.s-attn .st-acts button{background:rgba(var(--c),.1);color:rgb(var(--c))}
.st-card.s-risk .sub-edit,.st-card.s-done .sub-edit,.st-card.s-attn .sub-edit{color:rgb(var(--c))}
/* floating menu estilo settings */
.floatmenu{position:fixed;z-index:200;background:var(--surf-alt);border:1px solid var(--bd-strong);border-radius:4px;padding:6px;min-width:130px;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.floatback{position:fixed;inset:0;z-index:199;background:transparent}
.floatmenu button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--tx-label);font-family:var(--sans);font-size:12px;padding:5px 10px;border-radius:4px;cursor:pointer;white-space:nowrap}
.floatmenu button:hover{background:var(--interactive);color:var(--tx-pri)}
.floatmenu button.sel{color:var(--tx)}
.floatcal{padding:10px;min-width:220px}
.cal-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;color:var(--tx);font-size:13px;font-weight:520}
.cal-nav{background:none;border:none;color:var(--tx2);cursor:pointer;font-size:15px;padding:2px 8px;border-radius:4px}.cal-nav:hover{color:var(--tx);background:var(--interactive)}
.cal-w{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}
.cal-w span{text-align:center;color:var(--tx3);font-size:10px}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-d{background:none;border:none;color:var(--tx2);cursor:pointer;font-size:12px;padding:5px 0;border-radius:4px;font-family:var(--sans)}
.cal-d:hover{background:var(--interactive);color:var(--tx)}
.cal-d.sel{background:var(--accent);color:#fff}
.cal-clear{margin-top:8px;width:100%;background:none;border:none;color:var(--tx3);font-size:12px;cursor:pointer;padding:6px;text-align:left;border-radius:4px}.cal-clear:hover{color:var(--tx);background:var(--interactive)}
.cal-chips{display:flex;gap:6px;margin-bottom:10px}
.cal-chip{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:1px;background:var(--surf-card);border:1px solid var(--bd);border-radius:4px;padding:5px 8px;cursor:pointer;position:relative;font-family:var(--sans)}
.cal-chip.on{border-color:var(--accent)}
.cal-chip-k{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--tx3)}
.cal-chip-v{font-size:12px;color:var(--tx-pri);font-family:var(--mono);line-height:1.2}
.cal-chip.on .cal-chip-v{color:var(--accent)}
.cal-chip-x{position:absolute;top:5px;right:6px;color:var(--tx3);display:flex;line-height:0}.cal-chip-x:hover{color:var(--tx-pri)}
.cal-d.rng{background:rgba(247,141,167,.12);border-radius:0;color:var(--tx-pri)}
@media(max-width:1100px){.st-wrap{padding:0 30px}.wrap{padding-left:30px;padding-right:30px}}
.backlink{color:var(--tx3);font-size:12px;cursor:pointer;margin-bottom:16px;display:inline-block}.backlink:hover{color:var(--tx-pri)}
.manual{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;margin-top:30px}
.mnav{position:sticky;top:25px;align-self:start}
.mnav .grp{color:var(--tx3);font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin:24px 0 8px}
.mnav .grp:first-of-type{margin-top:18px}
.mnav a{display:block;padding:9px 0;cursor:pointer;border-bottom:1px solid var(--bd)}
.mnav .t{color:var(--tx2);font-size:14px}.mnav a:hover .t,.mnav a.on .t{color:var(--tx)}
.mnav .d{color:var(--tx3);font-size:12px;margin-top:2px;line-height:1.4}
.mbody h1{font-size:26px;font-weight:520;margin:0 0 18px;color:var(--tx)}
.mbody h2{font-size:18px;font-weight:520;margin:30px 0 12px;color:var(--tx)}
.mbody h3{font-size:15px;font-weight:520;margin:22px 0 8px;color:var(--tx)}
.mbody p{color:var(--tx2);margin:0 0 14px;line-height:1.65;font-size:15px}
.mbody ul,.mbody ol{margin:0 0 14px;padding-left:20px}
.mbody li{color:var(--tx2);margin:5px 0;line-height:1.6}
.mbody strong{color:var(--tx);font-weight:520}
.mbody a{color:var(--accent);text-decoration:none}.mbody a:hover{text-decoration:underline}
.mbody code{font-family:var(--mono,ui-monospace,monospace);background:var(--surf-alt);padding:1px 5px;border-radius:4px;font-size:13px;color:var(--tx)}
.mbody pre{background:var(--surf-alt);border:1px solid var(--bd);border-radius:4px;padding:14px;overflow:auto;margin:0 0 16px}
.mbody pre code{background:none;padding:0;font-size:12.5px;line-height:1.5}
.mbody hr{border:none;border-top:1px solid var(--bd);margin:24px 0}
.mbody table{width:100%;border-collapse:collapse;margin:0 0 16px;font-size:13px}
.mbody th{text-align:left;color:var(--tx2);font-weight:520;padding:6px 10px;border-bottom:1px solid var(--bd-strong)}
.mbody td{padding:6px 10px;border-bottom:1px solid var(--bd);color:var(--tx2)}
@media(max-width:900px){.manual{grid-template-columns:1fr;gap:24px}.mnav{position:static}}
.stx{color:var(--tx3);cursor:pointer;margin-left:10px;font-size:15px}.stx:hover{color:var(--risk)}
.stnum{background:none;border:1px solid var(--bd);color:var(--tx);border-radius:4px;font-family:var(--mono,inherit);font-size:13px;padding:3px 6px;width:90px;text-align:right;color-scheme:dark}.stnum:hover{border-color:var(--bd-strong)}
.sttext{background:none;border:1px solid var(--bd);color:var(--tx);border-radius:4px;font-family:var(--sans);font-size:13px;padding:3px 8px;min-width:140px;color-scheme:dark}.sttext:hover{border-color:var(--bd-strong)}.sttext:focus{border-color:var(--accent);outline:none}
.list{margin-top:8px}
.row{display:flex;align-items:center;gap:16px;padding:15px 0;border-bottom:1px solid var(--bd);cursor:pointer}
.row .nm{flex:1}.row .meta{color:var(--tx2);font-size:13px}.row .num{font-size:14px;text-align:right;color:var(--tx2)}
table{width:100%;border-collapse:collapse;margin-top:6px}
th{font-size:13px;color:var(--tx2);font-weight:520;text-align:left;padding:9px 12px;border-bottom:1px solid var(--bd-strong)}
td{font-size:14px;padding:10px 12px;border-bottom:1px solid var(--bd)}
td.n,th.n{text-align:right}tr:hover td{color:var(--tx)}
.pill{font-size:13px;color:var(--tx2)}
.kan{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,1fr);gap:16px;align-items:start;overflow-x:auto;margin:0 -12px;padding:10px 12px 8px}
.kan-col{min-width:0}
.kan-col h3{font-size:13px;color:var(--tx2);font-weight:520;padding-bottom:10px;border-bottom:1px solid var(--bd-strong);margin-bottom:14px}
.kan-col h3 span{float:right;color:var(--tx3)}
.kan-cards{display:flex;flex-direction:column;gap:16px;min-height:46px;border-radius:6px;transition:background .12s,box-shadow .12s,outline-color .12s}
.kan-col.over .kan-cards{outline:1px dashed var(--accent);outline-offset:6px;background:rgba(247,141,167,.07);box-shadow:0 0 0 4px rgba(247,141,167,.05)}
.kan-col.over h3{color:var(--accent);border-bottom-color:rgba(247,141,167,.5)}
.kan-empty{color:var(--tx3);font-size:13px}
.st-card.dragging{opacity:.4}
.kan .st-card{cursor:grab}.kan .st-card:active{cursor:grabbing}
.tq-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:60px}
.pj2-stickybar{position:sticky;top:60px;z-index:5;background:var(--bg);margin:0 0 60px 0;padding:8px 0;min-height:47px;box-sizing:border-box}
.tq-search,.tq-sel,.tq-chip,.tq-new,.tq-clear,.st-seg button,.pt-wknav button{line-height:1.2}
.tq-search{background:transparent;border:1px solid var(--bd);border-radius:4px;color:var(--tx-pri);font-family:var(--sans);font-size:12px;padding:7px 12px;outline:none;width:190px}
.tq-search::placeholder{color:var(--tx3)}
.tq-search:focus{box-shadow:inset 0 0 0 1px var(--bd-strong)}
.tq-sel{background-color:transparent;border:1px solid var(--bd);border-radius:4px;color:var(--tx-pri);font-family:var(--sans);font-size:12px;padding:7px 28px 7px 10px;outline:none;color-scheme:dark;cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='7' height='4' viewBox='0 0 7 4' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.0437 0.5367L3.0219 3.5586L0 0.5367L0.5364 0.0004L3.0219 2.4858L5.5073 0.0004L6.0437 0.5367Z' fill='%238a8a8a'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}
.tq-sel:focus{border-color:var(--bd-strong)}
.tq-subtog{background:var(--surf-card);border:1px solid var(--bd);border-radius:4px;color:var(--tx-label);font-family:var(--sans);font-size:12px;padding:5px 10px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}
.tq-subtog:hover{color:var(--tx-pri);border-color:var(--bd-strong)}
.tq-subtog.on{background:rgba(247,141,167,.12);border-color:transparent;color:var(--accent)}
.tq-new{background:var(--surf-card);border:1px solid var(--accent);color:var(--accent);font-family:var(--sans);font-size:12px;padding:5px 10px;border-radius:4px;cursor:pointer;transition:background .12s}
.tq-new:hover{background:rgba(247,141,167,.1)}
.tq-right{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.st-tw{flex:1 1 0;min-width:0;display:flex;flex-direction:column}
.st-ct-c{align-items:stretch}
.st-tw .st-title{flex:0 0 auto}
.st-title.st-1l{-webkit-line-clamp:1}
/* kanban: el título reserva siempre 2 líneas → todas las cards base quedan a la misma altura */
.kan .st-card .st-title:not(.st-1l){min-height:2.6em}
.st-title-row{display:flex;align-items:flex-start;gap:7px;min-width:0}
.st-card-top>.st-title-row{flex:1 1 0}
.st-title-row .st-title{flex:1 1 0;min-width:0}
.st-proj{font-size:12px;color:#8c8c8c;line-height:1.1;margin-top:4px;min-height:1.1em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-card.s-risk .st-proj,.st-card.s-done .st-proj,.st-card.s-attn .st-proj{color:rgba(var(--c),.5)}
.st-hito{flex:none;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:var(--surf-card);border:1px solid var(--bd);border-radius:3px;padding:1px 5px;line-height:1.5;margin-top:2px}
.st-card.s-risk .st-hito,.st-card.s-attn .st-hito,.st-card.s-done .st-hito{color:rgb(var(--c));background:rgba(var(--c),.1);border-color:rgba(var(--c),.35)}
.kv-sw{position:relative;width:32px;height:18px;border-radius:9px;background:rgba(255,255,255,.14);cursor:pointer;border:none;padding:0;flex:none;transition:background .15s}
.kv-sw.on{background:var(--accent)}
.kv-sw::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .15s}
.kv-sw.on::after{left:16px}
.st-subc{font-size:11px;color:rgba(229,229,229,.4);margin-top:auto;line-height:1.3}
.st-card.s-risk .st-subc,.st-card.s-done .st-subc,.st-card.s-attn .st-subc{color:rgba(var(--c),.7)}
.tq-chip{background:var(--surf-card);border:1px solid var(--bd);border-radius:4px;color:var(--tx-label);font-family:var(--sans);font-size:12px;padding:5px 10px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}
.tq-chip:hover{color:var(--tx-pri);border-color:var(--bd-strong)}
.tq-chip.on{background:rgba(247,141,167,.12);border-color:transparent;color:var(--accent)}
.tq-clear{background:var(--surf-card);border:none;color:var(--tx-label);font-family:var(--sans);font-size:12px;cursor:pointer;padding:5px 10px}.tq-clear:hover{color:var(--tx-pri);text-decoration:underline}
.tq-count{color:var(--tx3);font-size:12px}
.lin-id{font-family:var(--mono);font-size:10px;color:var(--tx3);text-align:left}
.asg-chips{display:flex;flex-wrap:wrap;gap:6px}
.asg-chip{font-family:var(--sans);font-size:12px;color:var(--tx2);background:none;border:1px solid var(--bd);border-radius:3px;padding:3px 9px;cursor:pointer;transition:.12s}
.asg-chip:hover{border-color:var(--bd-strong);color:var(--tx-pri)}
.asg-chip.on{color:var(--tx-pri);border-color:var(--accent);background:rgba(247,141,167,.10)}
.fm-ck{display:inline-block;width:14px;color:var(--accent);font-size:11px}
.tq-gh-lin{color:var(--tx3);opacity:.7;font-weight:400;text-transform:none}
.st-proj-lin{font-size:18px;font-weight:520;line-height:1.3;color:var(--tx-pri);opacity:.5;margin-top:1px}
.st-proj-nm{cursor:pointer}.st-proj-nm:hover{color:var(--accent)}
.st-proj-lin.lk{cursor:pointer}.st-proj-lin.lk:hover{opacity:1}
.st-proj-client.lk{cursor:pointer}.st-proj-client.lk:hover{color:var(--tx-pri)}
.pt-lin-f{font-family:var(--mono);font-size:11px;color:var(--tx3)}
.pj-rl{margin:26px 0 14px}
.pj-rl-h{font-size:11px;color:var(--tx3);margin-bottom:6px}
.pj-rl-row{display:grid;grid-template-columns:22px 1fr 104px 64px 96px;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--bd)}
.pj-rl-id{font-size:11px;color:var(--tx3)}
.pj-rl-nom{color:var(--tx-pri);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pj-rl-hc,.pj-rl-imp{color:var(--tx2);text-align:right;font-size:12px}
.pj-rl-m{text-align:right;font-size:12px}
.pj-rl-click{cursor:pointer}
.pj-rl-click:hover .pj-rl-nom{color:var(--accent)}
.tq-views{display:flex;gap:3px;border:1px solid var(--bd);border-radius:4px;padding:3px}
.tq-view{background:none;border:1px solid transparent;color:var(--tx2);font-family:var(--sans);font-weight:450;font-size:12px;padding:5px 10px;border-radius:4px;cursor:pointer;transition:color .12s,background .12s}
.tq-view:hover{color:var(--tx-pri)}
.tq-view.on{background:var(--surf-card);border-color:var(--bd-strong);color:var(--tx-pri)}
.tq-group{padding-bottom:60px;margin-bottom:60px;border-bottom:1px solid var(--line)}
.tq-group:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.tq-gh{font-size:18px;font-weight:520;color:var(--tx-pri);margin-bottom:20px;display:flex;align-items:center;gap:10px}
.tq-gh-add{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:none;border:none;border-radius:4px;color:var(--tx2);cursor:pointer;transition:color .12s}
.tq-gh-add:hover{color:var(--tx-pri)}
.tq-cols{display:flex;gap:20px;align-items:flex-start}
.tq-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:20px}
.tq-empty{color:var(--tx3);font-size:14px;padding:20px 0}
.tq-table{width:100%;border-collapse:collapse}
.tq-table th{text-align:left;color:var(--tx3);font-weight:450;font-size:12px;padding:9px 14px;border-bottom:1px solid var(--bd-strong);cursor:pointer;user-select:none;white-space:nowrap}
.tq-table th:hover{color:var(--tx-pri)}
.tq-ar{margin-left:4px;color:var(--accent)}
.tq-table td{padding:11px 14px;border-bottom:1px solid var(--line);font-size:13px;color:var(--tx-pri);vertical-align:middle}
.tq-table td.mut{color:var(--tx2)}.tq-table td.venc{color:var(--risk)}
.tq-table tbody tr{cursor:pointer}.tq-table tbody tr:hover td{background:rgba(255,255,255,.02)}
.tq-state{font-size:12px;padding:2px 9px;border-radius:4px;background:rgba(51,51,51,.4);color:var(--tx2);white-space:nowrap}
.tq-table .tq-state.s-risk{background:rgba(var(--c),.12);color:rgb(var(--c))}
.tq-table .tq-state.s-attn{background:rgba(var(--c),.12);color:rgb(var(--c))}
.tq-table .tq-state.s-done{background:rgba(var(--c),.12);color:rgb(var(--c))}
.tq-table tr.s-risk td,.tq-table tr.s-attn td,.tq-table tr.s-done td{color:rgb(var(--c))}
.tq-table .st-hito{margin-top:0;vertical-align:middle;margin-right:5px}
.tq-table tr.s-risk .st-hito,.tq-table tr.s-attn .st-hito,.tq-table tr.s-done .st-hito{color:rgb(var(--c));background:rgba(var(--c),.1);border-color:rgba(var(--c),.35)}
.btn{background:var(--surf-card);border:1px solid var(--accent);color:var(--accent);font-family:var(--sans);font-weight:520;font-size:12px;padding:5px 10px;border-radius:4px;cursor:pointer}
.btn:hover{background:rgba(247,141,167,.1)}
.btn2{background:var(--surf-card);border:none;color:var(--tx-label);font-weight:520;font-size:12px;cursor:pointer;font-family:var(--sans);padding:5px 10px}.btn2:hover{color:var(--tx-pri);text-decoration:underline}
.ov{position:fixed;inset:0;background:rgba(0,0,0,.4);display:none;z-index:5}.ov.on{display:block}
.panel{position:fixed;top:60px;right:0;height:calc(100% - 60px);width:600px;max-width:94vw;background:var(--bg);border-left:1px solid var(--bd-strong);padding:32px;overflow-x:hidden;overflow-y:auto;z-index:6;transform:translateX(100%);transition:transform .2s}
.panel.on{transform:none}
.panel .x{position:absolute;top:26px;right:28px;background:none;border:none;color:var(--tx-label);font-size:18px;cursor:pointer;transition:color .12s}.panel .x:hover{color:var(--tx-pri)}
.panel h2{font-size:18px;font-weight:520;line-height:1.3;color:var(--tx-pri);margin:0 28px 6px 0}
.panel h2[contenteditable]{cursor:text;outline:none}
.panel .id{font-size:11px;color:var(--tx3);font-family:var(--mono,ui-monospace,monospace);margin-bottom:8px}
.kv{display:grid;grid-template-columns:120px 1fr;gap:10px 16px;margin:22px 0;font-size:13px;align-items:center}
.kv .k{color:var(--tx3)}.kv .v{color:var(--tx-pri)}.kv .v.num{font-family:var(--mono,ui-monospace,monospace)}
.raw{background:var(--surf-alt);border:1px solid var(--line);border-radius:4px;padding:16px;font-family:var(--mono,ui-monospace,monospace);font-size:12px;line-height:1.6;white-space:pre-wrap;color:var(--tx2);margin-top:12px}
hr.h{border:none;border-top:1px solid var(--line);margin:24px 0}
.sub-h{font-size:11px;font-weight:450;color:var(--tx3);margin:22px 0 10px}
.chk{list-style:none;font-size:13px;line-height:1.9;padding:0;margin:0}.chk li{color:var(--tx2)}.chk li.done{color:var(--tx3);text-decoration:line-through}.chk b{color:var(--tx-pri);font-weight:450;margin-right:8px}
.panel select,.panel input[type=text],.panel input[type=date],.panel input.stdate{background-color:rgba(51,51,51,.4);color:var(--tx-pri);border:none;border-radius:4px;font-family:var(--sans);font-weight:450;font-size:13px;padding:6px 9px;outline:none;color-scheme:dark}
.strange{background:rgba(51,51,51,.4);color:var(--tx-pri);border:none;border-radius:4px;font-family:var(--sans);font-weight:450;font-size:13px;padding:6px 9px;cursor:pointer;text-align:left;width:100%;outline:none}
.strange:hover{background:rgba(51,51,51,.6)}
.strange.empty{color:var(--tx3);padding:6px 9px;text-align:left}
.panel select{-webkit-appearance:none;appearance:none;padding-right:26px;background-image:url("data:image/svg+xml,%3Csvg width='7' height='4' viewBox='0 0 7 4' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.0437 0.5367L3.0219 3.5586L0 0.5367L0.5364 0.0004L3.0219 2.4858L5.5073 0.0004L6.0437 0.5367Z' fill='%238a8a8a'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}
.panel select:hover,.panel input:hover{background-color:rgba(51,51,51,.6)}
.panel select:focus,.panel input:focus{box-shadow:inset 0 0 0 1px var(--bd-strong)}
.panel input.stdate{width:100%}
select{background:rgba(51,51,51,.4);color:var(--tx-pri);border:none;border-radius:4px;font-family:var(--sans);font-weight:450;font-size:13px;padding:6px 9px;outline:none;color-scheme:dark}
.cmdbar{position:fixed;left:0;right:0;bottom:0;background:linear-gradient(transparent,var(--bg) 30%);padding:20px 25px;z-index:4}
.cmdinner{display:flex;gap:12px;align-items:center;border:1px solid var(--bd);border-radius:4px;background:var(--surf-alt);padding:6px 6px 6px 16px}
.cmdinner:focus-within{border-color:var(--bd-strong)}
#cmd{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--tx-pri);font-family:var(--sans);font-weight:450;font-size:14px}
#cmd::placeholder{color:var(--tx3)}
.cmdinner 
.cmdinner input{flex:1;background:none;border:none;outline:none;color:var(--tx);font-family:var(--sans);font-weight:450;font-size:15px;padding:10px 0}
.cmdinner input::placeholder{color:var(--tx3)}
.chat{position:fixed;right:0;bottom:0;top:0;width:560px;max-width:94vw;background:var(--bg);border-left:1px solid var(--bd-strong);z-index:7;display:none;flex-direction:column;transform:translateX(100%);transition:transform .2s}
.chat.on{display:flex;transform:none}
.chat .head{padding:24px 28px;border-bottom:1px solid var(--bd);display:flex;align-items:center}
.chat .head h2{font-size:18px;font-weight:520}.chat .head .x{margin-left:auto;background:none;border:none;color:var(--tx2);font-size:20px;cursor:pointer}
.chat .cbody{flex:1;overflow:auto;padding:20px 28px}
.chat .cfoot{padding:18px 28px;border-top:1px solid var(--bd)}
.msg{margin-bottom:18px;font-size:14px;line-height:1.6}
.msg.u{color:var(--tx2)}.msg.a{color:var(--tx)}
.msg .who{font-size:12px;color:var(--tx3);margin-bottom:4px}
.proposal{border:1px solid var(--accent);border-radius:4px;padding:16px;margin-top:10px;background:rgba(247,141,167,.04)}
.proposal .file{font-size:13px;color:var(--tx2);margin-bottom:8px}
.proposal pre{background:var(--surf-alt);border:1px solid var(--bd);border-radius:4px;padding:12px;font-family:var(--sans);font-size:12.5px;line-height:1.55;white-space:pre-wrap;color:var(--tx2);margin:6px 0 12px;max-height:280px;overflow:auto}
.proposal .acts{display:flex;gap:10px}
.empty{text-align:center;padding:14vh 20px;color:var(--tx2)}
.empty h2{font-size:24px;font-weight:520;color:var(--tx);margin-bottom:14px}
.empty p{max-width:460px;margin:0 auto 10px;font-size:14px;line-height:1.7}
.empty .btn{margin-top:22px}
.warnmsg{color:var(--attn);font-size:13px;margin-top:18px}
.spin{color:var(--tx2);font-size:13px}
@media(max-width:900px){.g6,.g4{grid-template-columns:repeat(2,1fr)}.panel,.chat{width:100%}.wrap{padding:120px 25px 140px}.cmdbar{padding:20px 25px}}

/* ===== Proyectos — rediseño (base Tareas) ===== */
.pj2-grid{display:flex;gap:20px;align-items:flex-start}
.pj2-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:20px}
.pjc-card{display:flex;flex-direction:column;gap:4px;width:100%}
.pjc-head{background:#1a1a1a;padding:15px;display:flex;flex-direction:column;gap:35px;cursor:pointer;border:1px solid transparent;border-radius:4px;position:relative;z-index:1;transition:border-color .12s}
.pjc-pin{position:absolute;top:11px;right:11px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;color:#8c8c8c;opacity:0;cursor:pointer;transition:opacity .12s,color .12s;z-index:2}
.pjc-head:hover .pjc-pin{opacity:.5}
.pjc-head .pjc-pin.on{opacity:1;color:#e5e5e5}
.pjc-head:hover .pjc-pin.on{opacity:1;color:#e5e5e5}
.pjc-head:hover .pjc-pin:hover{opacity:1;color:#e5e5e5}
.pjc-pin.on svg path{fill:currentColor}
.pjc-head:hover{border-color:#e5e5e5;z-index:3}
.pjc-head.s-warn{background:rgba(233,217,78,.1)}
.pjc-head.s-warn:hover{border-color:#e9d94e}
.pjc-head.s-risk{background:rgba(253,93,94,.1)}
.pjc-head.s-risk:hover{border-color:#fd5d5e}
.pjc-name-blk{display:flex;flex-direction:column;gap:10px;width:100%;min-height:59px}
.pjc-name{font-weight:520;font-size:16px;color:#e5e5e5;line-height:1.1;width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pjc-head.s-warn .pjc-name{color:#e9d94e}
.pjc-head.s-risk .pjc-name{color:#fd5d5e}
.pjc-client{font-size:12px;color:#8c8c8c;line-height:1.1}
.pjc-head.s-warn .pjc-client{color:rgba(233,217,78,.5)}
.pjc-head.s-risk .pjc-client{color:rgba(253,93,94,.5)}
.pjc-body{display:flex;flex-direction:column;gap:15px;width:100%}
.pjc-avatars{display:flex;gap:5px;min-height:24px}
.pjc-ava{width:24px;height:24px;border-radius:50%;background:#333;display:flex;align-items:center;justify-content:center;font-size:10px;color:#e5e5e5;flex:none}
.pjc-head.s-warn .pjc-ava{background:rgba(233,217,78,.1);color:#e9d94e}
.pjc-head.s-risk .pjc-ava{background:rgba(253,93,94,.1);color:#fd5d5e}
.pjc-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;width:100%;font-size:12px;line-height:1.1}
.pjc-meta-l{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.pjc-meta .m-t{color:#8c8c8c}.pjc-meta .m-v{color:var(--risk)}
.pjc-head.s-warn .pjc-meta .m-t{color:rgba(233,217,78,.5)}.pjc-head.s-warn .pjc-meta .m-v{color:#e9d94e}
.pjc-head.s-risk .pjc-meta .m-t{color:rgba(253,93,94,.5)}.pjc-head.s-risk .pjc-meta .m-v{color:#fd5d5e}
.pjc-nlin{font-weight:520;font-size:12px;color:#8c8c8c;white-space:nowrap;line-height:1.1;flex:none}
.pjc-nlin .ar{font-weight:400}
.pjc-head.s-warn .pjc-nlin{color:rgba(233,217,78,.5)}
.pjc-head.s-risk .pjc-nlin{color:rgba(253,93,94,.5)}
.pjc-tag{display:inline-flex;align-items:center;font-family:var(--sans);font-size:9px;line-height:1;color:#8c8c8c;border:1px solid #333;border-radius:4px;padding:0 5px;height:13px;white-space:nowrap}
.pjc-tag-v{display:inline-flex;align-items:center;font-family:var(--sans);font-size:9px;line-height:1;color:rgba(229,229,229,.7);border:1px solid rgba(229,229,229,.5);border-radius:4px;padding:0 5px;height:13px;white-space:nowrap}
.pjc-prog{display:flex;flex-direction:column;gap:10px;width:100%}
.pjc-bar{height:0;border-top:1px solid #333;width:100%;position:relative}
.pjc-bar>i{position:absolute;top:-1px;left:0;height:0;border-top:1px solid #8c8c8c;display:block}
.pjc-sub{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;width:100%;font-size:10px;color:rgba(229,229,229,.5);line-height:normal;font-variant-numeric:tabular-nums}
.pjc-gen{background:rgba(51,51,51,.4);border-radius:4px;padding:15px;display:flex;flex-direction:column;gap:15px;width:100%;transition:background .12s}
.pjc-head:hover .pjc-gen{background:rgba(51,51,51,.6)}
.pjc-head.s-warn .pjc-gen{background:rgba(233,217,78,.1)}
.pjc-head.s-warn:hover .pjc-gen{background:rgba(233,217,78,.16)}
.pjc-head.s-risk .pjc-gen{background:rgba(253,93,94,.1)}
.pjc-head.s-risk:hover .pjc-gen{background:rgba(253,93,94,.16)}
.pjc-gen-top{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}
.pjc-gen-lbl{font-size:12px;color:#8c8c8c;line-height:normal}
.pjc-head.s-warn .pjc-gen-lbl{color:#e9d94e}.pjc-head.s-risk .pjc-gen-lbl{color:#fd5d5e}
.pjc-gen-val{display:flex;align-items:center;gap:5px;justify-content:flex-end}
.pjc-gen-amt{font-weight:520;font-size:12px;color:#e5e5e5;line-height:1.1;font-variant-numeric:tabular-nums}
.pjc-head.s-warn .pjc-gen-amt{color:#e9d94e}.pjc-head.s-risk .pjc-gen-amt{color:#fd5d5e}
.pjc-gen .pjc-bar{border-top-width:2px}
.pjc-gen .pjc-bar>i{border-top-width:2px;top:-2px}
.pjc-head.s-warn .pjc-gen .pjc-bar>i{border-top-color:#e9d94e}
.pjc-head.s-risk .pjc-gen .pjc-bar>i{border-top-color:#fd5d5e}
.pjc-head.s-warn .pjc-gen .pjc-sub{color:rgba(233,217,78,.5)}
.pjc-head.s-risk .pjc-gen .pjc-sub{color:rgba(253,93,94,.5)}
.pjc-head.s-warn .pjc-gen .pjc-tag-v{color:rgba(233,217,78,.7);border-color:rgba(233,217,78,.5)}
.pjc-head.s-risk .pjc-gen .pjc-tag-v{color:rgba(253,93,94,.7);border-color:rgba(253,93,94,.5)}
.pjc-block{background:#1a1a1a;border:1px solid transparent;border-radius:4px;padding:15px;display:flex;flex-direction:column;gap:10px;position:relative;z-index:1;cursor:pointer;transition:border-color .12s}
.pjc-block:hover{z-index:3;border-color:#e5e5e5}
.pjc-line-nm{font-size:12px;color:#e5e5e5;line-height:normal}
.pjc-caps{display:flex;gap:5px;flex-wrap:wrap}
.pjc-vrow{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;font-size:12px;color:#e5e5e5;line-height:1.1}
.pjc-vrow .v-nm{line-height:normal;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pjc-vrow .v-val{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;flex:none;font-variant-numeric:tabular-nums}
.pjc-block.s-warn{background:rgba(233,217,78,.1)}
.pjc-block.s-warn .pjc-vrow{color:#e9d94e}
.pjc-block.s-warn .pjc-tag-v{color:rgba(233,217,78,.7);border-color:rgba(233,217,78,.5)}
.pjc-block.s-warn .pjc-bar>i{border-top-color:#e9d94e}
.pjc-block.s-warn .pjc-sub{color:rgba(233,217,78,.5)}
.pjc-block.s-warn:hover{border-color:#e9d94e}
.pjc-block.s-risk{background:rgba(253,93,94,.1)}
.pjc-block.s-risk .pjc-vrow{color:#fd5d5e}
.pjc-block.s-risk .pjc-tag-v{color:rgba(253,93,94,.7);border-color:rgba(253,93,94,.5)}
.pjc-block.s-risk .pjc-bar>i{border-top-color:#fd5d5e}
.pjc-block.s-risk .pjc-sub{color:rgba(253,93,94,.5)}
.pjc-block.s-risk:hover{border-color:#fd5d5e}
.lin-task{font-size:13px;color:var(--tx-pri);padding:7px 0;border-bottom:1px solid rgba(255,255,255,.08);cursor:pointer}
.lin-task:hover{color:var(--accent)}
.lin-parte{font-size:12px;color:var(--tx2);padding:6px 0;border-bottom:1px solid rgba(255,255,255,.08);font-variant-numeric:tabular-nums}
.pj2-rgen-bar{height:4px;background:rgba(255,255,255,.06);border-radius:2px;overflow:hidden;margin:9px 0}
.pj2-rgen-bar>i{display:block;height:100%}
.pj2-rline-bar{height:3px;background:rgba(255,255,255,.06);border-radius:2px;overflow:hidden;margin:7px 0 6px}
.pj2-rline-bar>i{display:block;height:100%}
.pj2-rline:is(.s-risk,.s-attn) .pj2-rline-bar{background:rgba(var(--c),.2)}
.pj2-rline:is(.s-risk,.s-attn) .pj2-rline-bar>i{background:rgb(var(--c)) !important}
.pj2-card:is(.s-risk,.s-attn) .pj2-rgen-bar,.pj2-card:is(.s-risk,.s-attn) .pj2-rline-bar{background:rgba(var(--c),.2)}
.pj2-card:is(.s-risk,.s-attn) .pj2-rgen-bar>i,.pj2-card:is(.s-risk,.s-attn) .pj2-rline-bar>i{background:rgb(var(--c)) !important}
.pj-lin-edit{display:grid;grid-template-columns:22px 14px 1fr 130px 132px 110px 22px;gap:10px;align-items:center;padding:5px 0;border-bottom:1px solid var(--line)}
.pj-lin-tot{display:flex;justify-content:space-between;font-size:12px;color:var(--tx2);margin-top:10px;font-variant-numeric:tabular-nums}

/* eye en toggles de proyectos */
.tq-chip .tq-eye{display:inline-flex;align-items:center;vertical-align:-2px;margin-right:5px;opacity:.6}
.tq-chip.on .tq-eye{opacity:1}
/* sin proyecto colapsable (tareas) */
.tq-gh-tog{cursor:pointer;user-select:none}
.tq-tog-ar{display:inline-flex;align-items:center;transition:transform .15s;transform:rotate(-90deg);color:var(--tx3)}
.tq-tog-ar.open{transform:rotate(0)}
.tq-gh-n{color:var(--tx3);font-weight:450}
.tq-group-sin .tq-cols{margin-top:8px}
/* Estatus — proyecto destacado en subheader + meta en col 1 */
.st-curproj{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--bd);border-radius:4px;padding:6px 12px;cursor:pointer;color:var(--tx-pri);font-family:var(--sans);font-size:13px;max-width:260px}
.st-curproj:hover{border-color:var(--bd-strong)}
.st-curproj #st-current{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.st-curproj .ar{color:var(--tx2);display:flex;flex:none}
.st-wrap.st-solo{grid-template-columns:1fr;padding:0}
.st-wrap.st-solo .st-main{padding-left:var(--st-margin);padding-right:var(--st-margin)}
.st-proj-row{display:grid;grid-template-columns:minmax(190px,1fr) 2fr;gap:var(--st-gap);align-items:start}
.st-proj-meta{position:sticky;top:60px;align-self:start}
.st-proj-title{font-size:18px;font-weight:520;color:var(--tx-pri);display:flex;align-items:center;gap:10px;line-height:1.3}
.st-proj-client{font-size:13px;color:var(--tx2);margin-top:7px}
.st-proj-upd{font-size:13px;color:var(--tx3);margin-top:14px;line-height:1.5;max-width:36ch}
.st-proj-legend{font-size:12px;color:var(--tx3);margin-top:14px}
.st-proj-empty{color:var(--tx3);font-size:13px}

.tq-bar.st-topbar{margin:0 calc(-1 * var(--st-margin)) 60px;flex-wrap:nowrap}
.st-topspace{height:60px}
.sub-h-tog{cursor:pointer;user-select:none}
.sub-tog{display:inline-flex;align-items:center;transition:transform .15s;transform:rotate(-90deg);color:var(--tx3);margin-right:8px}
.sub-tog.open{transform:rotate(0)}
.panel .row{font-size:12px;padding:10px 0;gap:12px}
.panel .row .meta,.panel .row .num{font-size:12px}

.cli-index{column-count:4;column-gap:20px;padding-bottom:40px}
@media(max-width:1200px){.cli-index{column-count:3}}
@media(max-width:820px){.cli-index{column-count:2}}
@media(max-width:520px){.cli-index{column-count:1}}
.cli-block{break-inside:avoid;margin:0 0 30px}
.cli-lh{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:450;color:var(--tx2);text-transform:uppercase;margin-bottom:6px}
.cli-lh .rule{flex:1;height:1px;background:var(--bd)}
.cli-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px;margin:0 0 4px;border-radius:4px;background:var(--surf-card);cursor:pointer}
.cli-row:hover{box-shadow:inset 0 0 0 1px var(--tx-pri)}
.cli-row .l{display:flex;align-items:center;gap:8px;min-width:0}
.cli-row .nm{font-size:13px;color:var(--tx-pri);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cli-row.dim .nm{color:var(--tx3)}
.cli-row .n{font-family:var(--mono);font-size:12px;color:var(--tx3);flex:none}
.cli-row-exp{flex-direction:column;align-items:stretch;gap:0;padding:15px}
.panel .tk-row{display:grid;grid-template-columns:20px 3fr 1fr 1fr 20px;gap:5px;align-items:center;padding:6px 0;border-bottom:1px solid var(--bd)}
.tk-dot{background:none;border:none;padding:0;margin:0;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;cursor:grab}
.tk-dot:active{cursor:grabbing}
.tk-row.tk-dragging{opacity:.4}
.tk-row.tk-over{box-shadow:inset 0 2px 0 0 var(--accent);background:rgba(247,141,167,.06)}
.tk-name{background:none;border:1px solid transparent;border-radius:4px;color:var(--tx-pri);font-family:inherit;font-size:14px;padding:3px 5px;outline:none;min-width:0}
.tk-name:hover{border-color:var(--bd)}
.tk-name:focus{border-color:var(--accent)}
.tk-field{display:flex;align-items:center;gap:5px;background:rgba(51,51,51,.4);border:none;border-radius:4px;color:var(--tx-pri);font-family:inherit;font-size:11px;padding:4px 7px;cursor:pointer;text-align:left;width:100%;min-width:0;outline:none;white-space:nowrap}
.tk-field:hover{background:rgba(51,51,51,.6)}
.tk-field .ic{color:var(--tx-pri);opacity:.4;display:flex;line-height:0;flex:none}
.tk-field .lbl{opacity:.85;overflow:hidden;text-overflow:ellipsis}
.tk-field.empty .lbl{color:var(--tx3);opacity:1}
.tk-min{opacity:0;background:none;border:none;color:var(--risk);font-size:16px;line-height:1;cursor:pointer;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;padding:0;transition:opacity .12s,background .12s}
.tk-row:hover .tk-min{opacity:1}
.tk-min:hover{background:rgba(255,255,255,.08)}
.cli-row-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cli-exp{display:flex;flex-direction:column;gap:1px;margin-top:8px;padding-top:8px;border-top:1px solid var(--bd)}
.cli-cp{display:flex;align-items:center;gap:7px;padding:3px 4px;margin:0 -4px;border-radius:3px;color:var(--tx2);font-size:12px;cursor:pointer}
.cli-cp:hover{background:rgba(255,255,255,.05);color:var(--tx-pri)}
.cli-cp .cp-ic{flex:none;display:inline-flex;opacity:.4;transition:opacity .12s,color .12s}
.cli-cp:hover .cp-ic{opacity:.85}
.cli-cp.copied .cp-ic{opacity:1;color:var(--accent)}
.cli-cp .cp-k{flex:none;min-width:70px;color:var(--tx3);font-size:11px}
.cli-cp .cp-v{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cli-cp .cp-ic{margin-left:4px}
.cli-ct-h-cp{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cli-cp-all{background:none;border:none;padding:2px;cursor:pointer;color:var(--tx3);display:inline-flex;opacity:.5;transition:opacity .12s,color .12s}
.cli-cp-all:hover{opacity:1;color:var(--tx-pri)}
.cli-cp-all.copied{opacity:1;color:var(--accent)}
.cli-ct-h{font-size:12px;color:var(--tx3);text-transform:lowercase;opacity:.8;margin:8px 0 2px}
.cli-ct-nm{font-size:12px;color:var(--tx-pri);margin:2px 0 1px}
.cli-ct-nm .r{color:var(--tx3)}
.cli-empty{font-size:12px;color:var(--tx3)}

.hscroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.hscroll::-webkit-scrollbar{height:6px}
.hscroll::-webkit-scrollbar-thumb{background:var(--bd-strong);border-radius:3px}
.hscroll::-webkit-scrollbar-track{background:transparent}
.panel .hscroll{margin:0 -32px;padding-left:32px}
.lin-wide{min-width:560px}
.pj-lin-edit .sttext{min-width:0}
.lin-pct{display:flex;align-items:center;gap:8px;width:100%}
.lin-pct input{width:52px;flex:none;text-align:right}
.lin-pct .lin-pct-eq{font-size:10px;color:var(--tx3);flex:1;text-align:right;white-space:nowrap}
.lin-pct.miss input{border-color:var(--risk)}
.pj-lin-tot.under .num{color:var(--risk)}
.pj-lin-tot.over .num{color:var(--risk)}
.cal-bar{position:sticky;top:60px;z-index:5;background:var(--bg);display:flex;align-items:center;gap:16px;margin-bottom:0;padding:8px 0;min-height:47px;box-sizing:border-box;flex-wrap:wrap}
.cal-title{font-size:14px;color:var(--tx-pri);font-weight:520}
.calv-nav{display:flex;align-items:center;gap:6px}
.calv-nav button{background:none;border:none;color:var(--tx2);cursor:pointer;font-size:16px;line-height:1;padding:3px 7px;border-radius:4px}
.calv-nav button:hover{color:var(--tx-pri);background:rgba(255,255,255,.06)}
.calv-nav .mlabel{font-size:13px;color:var(--tx-pri);min-width:150px;text-align:center}
.cal-hoy{font-size:11px!important;color:var(--tx3)!important;padding:3px 8px!important}
.cal-right{margin-left:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cal-legend{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.cal-leg{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--tx2)}
.cal-leg .sw{width:8px;height:8px;border-radius:2px;flex:none}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(0,1fr);gap:1px;background:var(--bd);border:1px solid var(--bd);border-radius:6px;overflow:hidden;min-height:360px;margin-top:60px}
.cal-grid .cal-dow{grid-row:1;min-height:0}
.cal-grid{grid-template-rows:28px}
.cal-dow{background:var(--bg);padding:6px 10px;font-size:11px;color:var(--tx3);height:28px;box-sizing:border-box;display:flex;align-items:center}
.cal-cell{background:var(--bg);padding:5px 7px 7px;display:flex;flex-direction:column;gap:3px;min-height:0;overflow-x:visible;overflow-y:clip}
.cal-dhead{display:flex;align-items:center;justify-content:space-between;min-height:20px;margin-bottom:1px}
.cal-cell.wknd{background:rgba(255,255,255,.018)}
.cal-cell.out{opacity:.32}
.cal-dnum{font-size:12px;color:var(--tx2);font-variant-numeric:tabular-nums;line-height:1}
.cal-cell.today .cal-dnum{color:var(--accent);font-weight:520}
.calv-chip{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--tx-pri);padding:2px 5px;border-radius:3px;cursor:pointer;background:color-mix(in srgb,var(--bc,var(--tx3)) 16%,var(--bg));border-left:2px solid var(--bc,var(--tx3));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:18px}
.calv-chip.aus-hl{background:color-mix(in srgb,var(--bc,var(--tx3)) 28%,var(--bg))}
.calv-chip .ci{width:6px;height:6px;border-radius:50%;flex:none}
.cal-ic{display:inline-flex;align-items:center;flex:none;width:11px;height:11px;margin-right:1px}
.cal-ic svg{width:11px;height:11px;display:block}
.cal-strip{display:flex;align-items:center;gap:5px;font-size:10px;letter-spacing:.02em;padding:2px 6px;border-radius:3px;cursor:pointer;background:color-mix(in srgb,var(--bc,var(--tx3)) 18%,var(--bg));border-left:2px solid var(--bc,var(--tx3));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:18px}
.cal-strip.aus-hl{background:color-mix(in srgb,var(--bc,var(--tx3)) 28%,var(--bg))}
/* banda encadenada: sin redondeo ni margen donde continúa, pegada al borde de la celda */
.cal-band.c-l{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none;margin-left:-7px;padding-left:7px}
.cal-band.c-r{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-8px;padding-right:8px}
.cal-cell{position:relative}
.cal-add{height:16px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;background:var(--surf-card);border:1px solid var(--bd);border-radius:4px;color:var(--tx-label);cursor:pointer;opacity:0;transition:opacity .12s;line-height:1}
.cal-cell:hover .cal-add{opacity:1}
.cal-add:hover{color:var(--tx-pri);border-color:var(--bd-strong)}
/* barra: pista al color de fase @30%, relleno 100% */
.pjc-bar{border-top-color:rgba(229,229,229,.15)}
.pjc-bar>i{border-top-color:#e5e5e5}
.pjc-head.s-warn .pjc-bar,.pjc-block.s-warn .pjc-bar{border-top-color:rgba(233,217,78,.3)}
.pjc-head.s-risk .pjc-bar,.pjc-block.s-risk .pjc-bar{border-top-color:rgba(253,93,94,.3)}
.pjc-head.s-warn .pjc-gen .pjc-bar{border-top-color:rgba(233,217,78,.3)}
.pjc-head.s-risk .pjc-gen .pjc-bar{border-top-color:rgba(253,93,94,.3)}

/* drawer rentabilidad/cifras */
.dr-tag9{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3)}
.dr-quick{display:flex;align-items:center;gap:14px;margin:20px 0 4px;flex-wrap:wrap}
.dr-qk{font-size:10px;color:var(--tx3)}
.dr-chips{display:flex;flex-wrap:wrap;gap:5px}
.dr-derived{font-size:12px;color:var(--tx3)}
.aus-badge{display:inline-block;background:var(--accent);color:#0a0a0a;font-size:11px;border-radius:10px;padding:1px 8px;margin-left:8px;vertical-align:middle}
.aus-pend{color:var(--accent)}
.dr-estb{background:var(--surf-card);border:1px solid var(--bd);border-radius:4px;color:var(--tx2);font-family:inherit;font-size:10px;padding:3px 8px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}
.dr-estb:hover{color:var(--tx-pri);border-color:var(--bd-strong)}
.dr-estb.on{background:rgba(247,141,167,.12);border-color:transparent;color:var(--accent)}
.dr-pin{background:none;border:none;color:var(--tx3);font-size:11px;cursor:pointer;padding:3px 0}
.dr-pin.on,.dr-pin:hover{color:var(--tx-pri)}
.dr-tools{position:absolute;top:24px;right:60px;display:flex;gap:8px;z-index:7}
.dr-pinbtn,.dr-gear{background:none;border:none;color:var(--tx2);width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:color .12s}
.dr-pinbtn:hover,.dr-gear:hover{color:var(--tx-pri)}
.dr-pinbtn.on{color:var(--tx-pri)}
.dr-rent{margin:22px 0 6px}
.dr-rent-k{font-size:10px;margin-bottom:9px}
.dr-rent-k .lead{color:var(--tx2)}
.dr-rent-k .ph1{color:var(--tx2)}
.dr-rent-k .ph2{color:rgba(233,217,78,.65)}
.dr-rent-k .ph3{color:rgba(253,93,94,.7)}
.dr-rent-v{font-size:12px}
.dr-rent-v .amt1{color:var(--tx-pri)}.dr-rent-v .amt2{color:#E9D94E}.dr-rent-v .amt3{color:#FD5D5E}
.dr-rent-v .pct{color:var(--tx3)}
.dr-rent-note{font-size:10px;color:var(--tx2);margin-top:10px;line-height:1.4}
.dr-m{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--bd)}
.dr-m-k{color:var(--tx2);font-size:12px;display:inline-flex;align-items:center;gap:6px}
.dr-m-val{display:inline-flex;align-items:baseline;gap:7px;white-space:nowrap;font-size:12px}
.dr-m-ref{color:var(--tx3);font-size:10px}
.dr-m-fig{color:var(--tx-pri)}
.dr-i{position:relative;display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;border:1px solid var(--bd);border-radius:3px;color:var(--tx3);font-size:9px;font-style:italic;cursor:help;line-height:1}
.dr-i:hover{border-color:var(--bd-strong);color:var(--tx-pri)}
.dr-i .tip{position:absolute;bottom:150%;left:50%;transform:translateX(-50%);width:220px;background:var(--surf-alt);border:1px solid var(--bd-strong);border-radius:4px;padding:9px 11px;font-size:10px;font-style:normal;color:var(--tx2);line-height:1.5;opacity:0;visibility:hidden;transition:opacity .14s;z-index:20;pointer-events:none;text-align:left}
.dr-i:hover .tip{opacity:1;visibility:visible}
.dr-edit{margin:20px 0}
.set-acct{padding:4px 12px 12px;border-bottom:1px solid var(--bd);margin-bottom:6px}
.set-acct-n{font-size:14px;color:var(--tx);font-weight:500}
.set-acct-e{font-size:12px;color:var(--tx2);font-family:var(--mono);margin-top:2px;word-break:break-all}
.set-acct-r{font-size:11px;color:var(--tx3);text-transform:uppercase;letter-spacing:.03em;margin-top:5px}
.set-info{font-size:11px;color:var(--tx3);padding:8px 12px 4px;border-top:1px solid var(--bd);margin-top:6px}
.set-logout{color:var(--risk)!important}
/* Pantalla de login — centrada, sin scroll */
.login{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);overflow:hidden}
.login-mark{margin-bottom:28px;opacity:.9}
.login-mark svg{width:70px;height:70px}
.login-box{width:320px;max-width:88vw;text-align:center}
.login-box p{font-size:13px;color:var(--tx2);line-height:1.55;margin:0 0 28px}
.login-btn{width:100%;background:var(--surf-card);border:1px solid var(--bd-strong);color:var(--tx);font-family:var(--sans);font-size:14px;padding:11px 16px;border-radius:4px;cursor:pointer;transition:border-color .12s,background .12s}
.login-btn:hover{border-color:var(--tx2);background:var(--interactive,#333)}
.login-err{font-size:12px;color:var(--risk);border:1px solid var(--risk);border-radius:4px;padding:10px 12px;margin:0 0 20px;line-height:1.5}
