/* AI 诊断访谈：右下角的小面板。颜色来自 styles.css，字号只用三级。 */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.dock{position:fixed;right:20px;bottom:20px;z-index:40;display:flex;flex-direction:column;align-items:flex-end}
.dock-launch{display:inline-flex;align-items:center;gap:10px;padding:6px 18px 6px 6px;border:0;border-radius:var(--r-pill);background:var(--ink);color:var(--paper);box-shadow:0 18px 40px -16px var(--cover-shadow);transition:transform .2s,background .2s}
.dock-launch:hover{transform:translateY(-2px);background:var(--accent-ink)}
.dock-launch img{width:32px;height:32px;border-radius:50%;object-fit:cover}
.dock.is-open .dock-launch{display:none}
.dock-panel{display:none;flex-direction:column;width:400px;height:min(660px,calc(100vh - 40px));background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 30px 70px -28px var(--cover-shadow);overflow:clip}
.dock.is-open .dock-panel{display:flex;animation:dock-in .25s ease both}
@keyframes dock-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

.dock-head{flex:none;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:12px;row-gap:8px;align-items:center;padding:14px 16px 12px;border-bottom:1px solid var(--line)}
.diag-avatar{position:relative;grid-row:1/3}
.diag-avatar img{width:40px;height:40px;border-radius:50%;object-fit:cover}
.diag-avatar i{position:absolute;right:0;bottom:2px;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--card)}
.dock-title{display:flex;flex-direction:column;line-height:1.4}
.dock-title strong{font-weight:500}
.dock-progress{grid-column:2;display:flex;gap:4px}
.dock-progress li{width:10px;height:10px;border-radius:3px;background:var(--line);transition:background .3s}
.dock-progress li.on{background:var(--accent)}
.dock-min{grid-column:3;grid-row:1/3;width:32px;height:32px;border:0;border-radius:50%;background:var(--paper);color:var(--muted)}
.dock-min:hover{background:var(--tint);color:var(--ink)}

.dock-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;padding:18px 16px}
.diag-log{display:flex;flex-direction:column;gap:16px}
.diag-log:empty{display:none}
.turn{display:flex;flex-direction:column;gap:4px;max-width:94%;animation:turn-in .35s ease both}
.turn .who{color:var(--muted)}
.turn-ai p{font-family:var(--serif);line-height:1.6;color:var(--ink)}
.turn-me{align-self:flex-end;align-items:flex-end}
.turn-me p{padding:10px 14px;border-radius:var(--r) var(--r) 4px var(--r);background:var(--tint);color:var(--ink);white-space:pre-wrap}
.turn-note p{padding:8px 12px;border-radius:var(--r-sm);background:var(--sand);color:var(--ink-2)}
.dots{display:flex;gap:6px;padding:8px 0}
.dots i{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:dot 1.2s ease-in-out infinite}
.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}
@keyframes turn-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.diag-start{display:flex;flex-direction:column;gap:12px;margin:auto 0;padding:4px 0}
.diag-start p:first-child{font-family:var(--serif);color:var(--ink);line-height:1.7}
.diag-start .btn{align-self:flex-start}
.diag-start[hidden],.diag-input[hidden],.diag-closed[hidden],.diag-contact[hidden],.text-button[hidden]{display:none}
.diag-closed{display:flex;flex-direction:column;gap:12px;margin:auto 0;color:var(--ink-2)}
.diag-closed .btn{align-self:flex-start}

.dock-card{margin-top:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper)}
.dock-card summary{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;cursor:pointer;list-style:none;font-weight:500}
.dock-card summary::-webkit-details-marker{display:none}
.dock-card dl{padding:0 14px 8px}
.field{display:grid;grid-template-columns:80px minmax(0,1fr);gap:10px;padding:8px 0;border-top:1px dashed var(--line-strong);transition:background .6s}
.field dt{color:var(--muted)}
.field dd{color:var(--ink)}
.field.is-empty dd{color:var(--line-strong)}
.field.is-new{animation:field-flash 1.4s ease}
@keyframes field-flash{0%{background:var(--accent-soft)}100%{background:transparent}}
.field-direction:not(.is-empty){margin-top:6px;padding:10px;border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--accent-soft)}
.field-direction:not(.is-empty) dd{color:var(--accent-ink)}

.diag-contact{display:flex;flex-direction:column;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.diag-contact h3{font-size:var(--t3);font-weight:500}
.diag-contact label:not(.check){display:flex;flex-direction:column;gap:4px;color:var(--ink-2)}
.diag-contact .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.diag-input textarea,.diag-contact input:not([type="checkbox"]){width:100%;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:10px 12px;resize:none;transition:border-color .2s,box-shadow .2s}
.diag-input textarea:focus,.diag-contact input:not([type="checkbox"]):focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.check{display:flex;gap:8px;align-items:flex-start;color:var(--ink-2);cursor:pointer}
.check input{width:16px;height:16px;margin:5px 0 0;accent-color:var(--accent);flex:none}
.check span{flex:1;min-width:0}
.check a{color:var(--accent);margin-left:4px}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.diag-note{color:var(--muted)}
.diag-done{padding:12px 14px;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-ink)}

.diag-input{flex:none;display:flex;flex-direction:column;gap:10px;padding:12px 16px 14px;border-top:1px solid var(--line);background:var(--paper)}
.diag-input.is-busy{opacity:.6;pointer-events:none}
.diag-chips{display:flex;flex-wrap:wrap;gap:6px}
.diag-chips:empty{display:none}
.diag-input-bar{display:flex;justify-content:space-between;align-items:center;gap:12px}
.diag-input-bar .btn{margin-left:auto;padding:8px 18px}
.text-button{background:none;border:0;padding:0;color:var(--accent);border-bottom:1px solid currentColor}

@media (max-width:767px){
  .dock{right:0;bottom:0;left:0;align-items:flex-end}
  .dock-launch{margin:0 16px 16px 0}
  .dock-panel{position:fixed;inset:0;width:auto;height:auto;border-radius:0;border:0}
  .dock-panel .dock-head{padding-top:16px}
  body.dock-open{overflow:hidden}
}
@media (prefers-reduced-motion:reduce){.turn,.dots i,.field.is-new,.dock.is-open .dock-panel{animation:none}}
@media print{.dock{display:none}}
