/* e18-ui module: the Hồ sơ popup opened from the rail's avatar (js/profile.js): the person's card and their own
   Google Drive and Jira connections. Loaded by the apps (Art Agent, GD Agent, Drive Agent, Mimi); the hub opens its
   Tài khoản page instead, and loads this sheet only for the name edited in place (.pf-name) on it. */
.pf-dlg{width:min(460px,92vw)}
.pf-dlg .dlg-h h3{font-size:18px}
.pf-b{padding-bottom:0}
.pf-id{display:flex;align-items:center;gap:16px;padding:6px 0 18px}
.pf-who{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}

/* the display name edited in place: a fixed-width field (the whole column) that reads as the title; a soft field on
   hover, the accent ring while typing; inside its right end: the count against the limit while editing, then ✓ (save,
   blue) and ✕ (put back) once it changed. Nothing moves around it. */
.pf-name{display:flex;flex-direction:column;gap:4px;width:100%;min-width:0}
.pf-name-box{position:relative;width:100%}
.pf-name-in{display:block;width:calc(100% + 10px);height:40px;margin:0 0 0 -10px;padding:0 40px 0 10px;border:0;border-radius:10px;background:transparent;
  color:var(--ink);font:800 19px/1 var(--display);letter-spacing:-.01em;box-shadow:none;text-overflow:ellipsis;transition:background-color .2s,box-shadow .2s,padding .2s}
.pf-name-in:hover{background:var(--surface-2);box-shadow:none}
.pf-name-in:focus{background:var(--surface);box-shadow:inset 0 0 0 2px var(--accent),0 0 0 4px var(--accent-soft)}
.pf-name-in:focus{padding-right:62px}
.pf-name.dirty .pf-name-in{padding-right:126px}
.pf-name-pen{position:absolute;right:6px;top:6px;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;color:var(--ink-4);cursor:text;transition:opacity .2s}
.pf-name-pen svg.i{width:15px;height:15px}
.pf-name-in:focus~.pf-name-pen,.pf-name.dirty .pf-name-pen{opacity:0;pointer-events:none}
.pf-name-tail{position:absolute;right:5px;top:5px;height:30px;display:flex;align-items:center;gap:8px;pointer-events:none}
.pf-name-acts{display:none;gap:4px;pointer-events:auto}
.pf-name.dirty .pf-name-acts{display:flex;animation:pf-in .25s var(--spring)}
.pf-name-acts button{width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:8px;cursor:pointer;transition:background-color .2s,transform .2s}
.pf-name-acts button:active{transform:scale(.92)}
.pf-ok{background:var(--accent);color:var(--on-accent)}
.pf-ok:hover{background:var(--accent-hi)}
.pf-ok[disabled]{opacity:.6;cursor:progress}
.pf-no{background:var(--surface-2);color:var(--ink-2)}
.pf-no:hover{background:var(--surface-3)}
.pf-name-acts svg.i{width:16px;height:16px;stroke-width:2.4}
html.kbd .pf-name-acts button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pf-name.done .pf-name-in{box-shadow:inset 0 0 0 2px var(--ok)}
.pf-name-n{display:none;padding-right:4px;font-size:11.5px;color:var(--ink-4);font-variant-numeric:tabular-nums}
.pf-name:focus-within .pf-name-n,.pf-name.dirty .pf-name-n{display:block}
.pf-name-n.full{color:var(--warn);font-weight:700}
.pf-name-err{color:var(--marker-ink);font-size:12.5px}
@keyframes pf-in{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:none}}
.pf-who small{color:var(--ink-3);font-size:13px;overflow-wrap:anywhere}
.pf-who .roles{margin-top:4px}
.pf-h{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin:0 0 8px}
.pf-conns{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.pf-conn{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--r-lg,14px);background:var(--surface-2)}
.pf-tile{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:12px;background:var(--surface)}
.pf-tile .bmark{width:24px;height:24px}
.pf-conn.off .pf-tile .bmark{filter:grayscale(1);opacity:.55}
.pf-conn-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:13.5px}
.pf-conn-t small{display:flex;align-items:center;gap:6px;color:var(--ink-3);font-size:12.5px;line-height:1.4;overflow-wrap:anywhere}
.pf-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--ink-4)}
.pf-conn.on .pf-dot{background:var(--ok)}
.pf-conn.bad .pf-dot{background:var(--marker)}
.pf-conn.bad .pf-conn-t small{color:var(--marker-ink)}
.pf-conn .btn{flex:none}
.pf-conn .btn.primary{background:var(--accent);color:var(--on-accent);box-shadow:0 8px 20px -12px color-mix(in srgb,var(--accent) 75%,transparent)}   /* connecting is not a warning: blue, not the red primary */
.pf-conn .btn.primary:hover{background:var(--accent-hi)}
.pf-said{margin:4px 0 14px}
.pf-msg{color:var(--ink-3);font-size:13.5px;padding:8px 0 4px}
.pf-f{padding-left:0;padding-right:0}
@media (max-width:480px){
  .pf-conn{flex-wrap:wrap}
  .pf-conn .btn{width:100%;justify-content:center}
}
