상담자 발화 판정(A)·감정(B)·표현(C) 20문항 질문 세트, 감쇠 없는 이번 턴 반응과 비대칭 기분 전이, 개방도 게이트로 생성 지시를 만들고 ccd.coping_strategy 전달 누락을 고친다. trace v2와 고정 문구 속마음 요약(migration 24, AI 경로 차단 RLS)을 같은 트랜잭션에 저장하고 피드백 정책이 켜진 경우에만 done·TurnResponse·음성 reply·리뷰로 노출한다. 회기 화면 속마음 보기 토글, 리뷰 접힘 블록, 관리자 감정 관측 v2 표시를 추가한다.
239 lines
12 KiB
CSS
239 lines
12 KiB
CSS
.aac {
|
|
display: grid;
|
|
width: 100%;
|
|
gap: var(--sp-4);
|
|
color: var(--text-body);
|
|
}
|
|
|
|
.aac-head,
|
|
.aac-toolbar,
|
|
.aac-panel__head,
|
|
.aac-detail-controls,
|
|
.aac-view-toggle,
|
|
.aac-runtime {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--sp-3);
|
|
}
|
|
|
|
.aac-head,
|
|
.aac-toolbar,
|
|
.aac-panel__head {
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.aac-head {
|
|
align-items: flex-end;
|
|
padding: 2px;
|
|
}
|
|
|
|
.aac-head h1 {
|
|
margin: 6px 0 0;
|
|
color: var(--text-strong);
|
|
font-size: clamp(1.65rem, 2.4vw, 2.2rem);
|
|
line-height: 1.12;
|
|
letter-spacing: -0.035em;
|
|
}
|
|
|
|
.aac-head p {
|
|
max-width: 720px;
|
|
margin: var(--sp-2) 0 0;
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.aac-kicker {
|
|
display: block;
|
|
color: var(--text-accent);
|
|
font-size: var(--fs-xs);
|
|
font-weight: 750;
|
|
}
|
|
|
|
.aac-runtime {
|
|
flex-wrap: wrap;
|
|
justify-content: flex-end;
|
|
color: var(--text-muted);
|
|
font: 600 var(--fs-xs)/1.4 var(--font-num);
|
|
text-align: right;
|
|
}
|
|
|
|
.aac-runtime b { color: var(--text-strong); }
|
|
.aac-runtime__state { color: var(--text-accent); }
|
|
.aac-runtime__state.is-off { color: var(--warn-text); }
|
|
|
|
.aac-panel {
|
|
min-width: 0;
|
|
padding: var(--sp-4);
|
|
border: 1px solid var(--border-subtle);
|
|
border-radius: var(--radius);
|
|
background: var(--bg-surface);
|
|
box-shadow: var(--shadow-sm);
|
|
}
|
|
|
|
.aac-panel h2 {
|
|
margin: 0;
|
|
color: var(--text-strong);
|
|
font-size: var(--fs-body);
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.aac-panel__head { align-items: flex-start; margin-bottom: var(--sp-3); }
|
|
.aac-panel__head p,
|
|
.aac-note { margin: 4px 0 0; color: var(--text-muted); font-size: var(--fs-xs); line-height: 1.55; }
|
|
|
|
.aac-btn,
|
|
.aac-select {
|
|
min-height: 44px;
|
|
border: 1px solid var(--border-strong);
|
|
border-radius: var(--radius-sm);
|
|
background: var(--bg-surface-2);
|
|
color: var(--text-body);
|
|
font: 650 var(--fs-sm)/1 var(--font-sans);
|
|
}
|
|
|
|
.aac-btn { padding: 0 12px; cursor: pointer; }
|
|
.aac-btn:hover { border-color: var(--accent); color: var(--text-strong); }
|
|
.aac-btn:focus-visible,
|
|
.aac-select:focus-visible,
|
|
.aac-correlation button:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
|
|
.aac-btn:disabled { cursor: not-allowed; opacity: .62; }
|
|
.aac-select { min-width: 0; padding: 0 10px; }
|
|
|
|
.aac-toolbar {
|
|
align-items: flex-end;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.aac-field { display: grid; min-width: min(100%, 310px); gap: 6px; color: var(--text-muted); font-size: var(--fs-xs); font-weight: 700; }
|
|
.aac-field .aac-select { width: 100%; color: var(--text-strong); }
|
|
.aac-toolbar__actions { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
|
|
|
|
.aac-status {
|
|
padding: var(--sp-3) var(--sp-4);
|
|
border: 1px solid var(--border-subtle);
|
|
border-radius: var(--radius);
|
|
background: var(--bg-surface-2);
|
|
color: var(--text-muted);
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.5;
|
|
}
|
|
.aac-status[role="alert"] { border-color: color-mix(in srgb, var(--crit-solid) 40%, var(--border-subtle)); background: var(--crit-tint); color: var(--crit-text); }
|
|
|
|
.aac-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); gap: var(--sp-4); }
|
|
.aac-current { display: grid; gap: 10px; }
|
|
.aac-meter { display: grid; grid-template-columns: 76px minmax(0, 1fr) 44px; align-items: center; gap: 10px; font-size: var(--fs-xs); }
|
|
.aac-meter b { color: var(--text-body); font-weight: 650; }
|
|
.aac-meter span:last-child { color: var(--text-muted); font-family: var(--font-num); text-align: right; }
|
|
.aac-track { height: 8px; overflow: hidden; border-radius: 999px; background: var(--neutral-100); }
|
|
.aac-track > span { display: block; height: 100%; background: var(--accent-bright); }
|
|
.aac-track.is-empty > span { background: transparent; }
|
|
|
|
.aac-view-toggle { gap: 0; overflow: hidden; border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); }
|
|
.aac-view-toggle button { min-height: 44px; padding: 0 10px; border: 0; border-left: 1px solid var(--border-subtle); background: var(--bg-surface-2); color: var(--text-muted); font: 650 var(--fs-xs)/1 var(--font-sans); cursor: pointer; }
|
|
.aac-view-toggle button:first-child { border-left: 0; }
|
|
.aac-view-toggle button[aria-pressed="true"] { background: var(--accent); color: var(--text-on-accent); }
|
|
|
|
.aac-charts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3); }
|
|
.aac-chart { min-width: 0; padding: 10px; border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); background: var(--bg-surface-2); }
|
|
.aac-chart h3 { margin: 0 0 6px; color: var(--text-body); font-size: var(--fs-xs); }
|
|
.aac-chart svg { display: block; width: 100%; height: 108px; overflow: visible; }
|
|
.aac-chart text { fill: var(--text-muted); font: 10px var(--font-num); }
|
|
.aac-chart line { stroke: var(--border-subtle); stroke-dasharray: 2 3; }
|
|
.aac-chart path { fill: none; stroke: var(--ink-2); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
|
|
.aac-chart circle { fill: var(--accent); }
|
|
|
|
.aac-table-wrap { overflow-x: auto; }
|
|
.aac-table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: var(--fs-xs); }
|
|
.aac-table th,
|
|
.aac-table td { padding: 9px 10px; border-bottom: 1px solid var(--border-subtle); text-align: left; vertical-align: top; }
|
|
.aac-table th { color: var(--text-muted); font-weight: 750; white-space: nowrap; }
|
|
.aac-table td { color: var(--text-body); font-family: var(--font-num); }
|
|
.aac-table tr:last-child td { border-bottom: 0; }
|
|
|
|
.aac-detail-controls { flex-wrap: wrap; }
|
|
.aac-detail-controls label { display: grid; gap: 6px; color: var(--text-muted); font-size: var(--fs-xs); font-weight: 700; }
|
|
.aac-detail-controls .aac-select { min-width: 180px; }
|
|
.aac-dimension-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
|
|
.aac-dimension-table th,
|
|
.aac-dimension-table td { padding: 10px 7px; border-bottom: 1px solid var(--border-subtle); text-align: right; font-family: var(--font-num); }
|
|
.aac-dimension-table th:first-child,
|
|
.aac-dimension-table td:first-child { text-align: left; font-family: var(--font-sans); }
|
|
.aac-dimension-table th { color: var(--text-muted); font-size: var(--fs-xs); font-weight: 700; }
|
|
.aac-dimension-table td { color: var(--text-body); }
|
|
.aac-decision { font-family: var(--font-sans) !important; font-size: var(--fs-xs); }
|
|
.aac-decision.is-held { color: var(--warn-text); }
|
|
.aac-decision.is-accepted { color: var(--pos-text); }
|
|
|
|
.aac-distribution-group { margin-top: var(--sp-3); }
|
|
.aac-distribution-group h4 { margin: 0; color: var(--text-body); font-size: var(--fs-xs); }
|
|
.aac-distribution { display: grid; grid-template-columns: repeat(5, minmax(72px, 1fr)); gap: 6px; margin-top: var(--sp-2); }
|
|
.aac-distribution > div { display: grid; gap: 5px; min-width: 0; color: var(--text-muted); font: 600 var(--fs-xs)/1.2 var(--font-num); text-align: center; }
|
|
.aac-distribution span { display: flex; height: 46px; align-items: end; border-bottom: 1px solid var(--border-strong); background: repeating-linear-gradient(to top, transparent 0 11px, color-mix(in srgb, var(--border-subtle) 60%, transparent) 11px 12px); }
|
|
.aac-distribution i { display: block; width: 100%; background: var(--accent-bright); }
|
|
.aac-distribution i.is-missing { background: transparent; }
|
|
|
|
.aac-v2 { display: grid; gap: var(--sp-2); margin-top: var(--sp-4); }
|
|
.aac-v2 h3 { margin: var(--sp-2) 0 0; color: var(--text-strong); font-size: var(--fs-sm); }
|
|
.aac-appraisal-table td { vertical-align: top; }
|
|
|
|
.aac-choice-probs { display: grid; gap: 5px; min-width: 160px; }
|
|
.aac-choice-probs__row { display: grid; grid-template-columns: minmax(64px, auto) minmax(48px, 1fr) 40px; align-items: center; gap: 6px; font: 600 var(--fs-xs)/1.3 var(--font-sans); color: var(--text-muted); }
|
|
.aac-choice-probs__row b { color: var(--text-body); font-family: var(--font-num); text-align: right; }
|
|
.aac-choice-probs__track { display: block; height: 6px; overflow: hidden; border-radius: 999px; background: var(--neutral-100); }
|
|
.aac-choice-probs__track > span { display: block; height: 100%; background: var(--accent-bright); }
|
|
|
|
.aac-kv { display: grid; grid-template-columns: 190px minmax(0, 1fr); margin: var(--sp-3) 0 0; border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); overflow: hidden; }
|
|
.aac-kv dt,
|
|
.aac-kv dd { min-width: 0; margin: 0; padding: 9px 10px; border-bottom: 1px solid var(--border-subtle); font-size: var(--fs-xs); overflow-wrap: anywhere; }
|
|
.aac-kv dt { background: var(--bg-surface-2); color: var(--text-muted); font-weight: 700; }
|
|
.aac-kv dd { color: var(--text-body); }
|
|
.aac-kv dt:nth-last-of-type(1), .aac-kv dd:nth-last-of-type(1) { border-bottom: 0; }
|
|
|
|
.aac-trace-meta { margin-top: var(--sp-3); }
|
|
.aac-trace-meta summary { cursor: pointer; color: var(--text-accent); font-size: var(--fs-sm); font-weight: 700; }
|
|
.aac-trace-meta dl { display: grid; grid-template-columns: 150px minmax(0, 1fr); margin: var(--sp-3) 0 0; border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); overflow: hidden; }
|
|
.aac-trace-meta dt,
|
|
.aac-trace-meta dd { min-width: 0; margin: 0; padding: 9px 10px; border-bottom: 1px solid var(--border-subtle); font-size: var(--fs-xs); overflow-wrap: anywhere; }
|
|
.aac-trace-meta dt { background: var(--bg-surface-2); color: var(--text-muted); font-weight: 700; }
|
|
.aac-trace-meta dd { color: var(--text-body); font-family: var(--font-num); }
|
|
.aac-trace-meta dt:nth-last-of-type(1), .aac-trace-meta dd:nth-last-of-type(1) { border-bottom: 0; }
|
|
|
|
.aac-correlation { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, .7fr); gap: var(--sp-4); }
|
|
.aac-correlation__matrix { overflow-x: auto; }
|
|
.aac-correlation table { min-width: 620px; width: 100%; border-collapse: collapse; font-size: var(--fs-xs); }
|
|
.aac-correlation th,
|
|
.aac-correlation td { min-width: 55px; padding: 6px; border: 1px solid var(--border-subtle); text-align: center; }
|
|
.aac-correlation th { color: var(--text-muted); font-weight: 700; }
|
|
.aac-correlation button { width: 100%; min-height: 44px; border: 0; border-radius: 3px; background: transparent; color: var(--text-body); font: 650 var(--fs-xs)/1 var(--font-num); cursor: pointer; }
|
|
.aac-correlation button[data-correlation="positive"] { background: color-mix(in srgb, var(--pos-solid) calc(var(--aac-correlation-strength) * 42%), var(--bg-surface)); color: var(--pos-text); }
|
|
.aac-correlation button[data-correlation="negative"] { background: color-mix(in srgb, var(--warn-solid) calc(var(--aac-correlation-strength) * 42%), var(--bg-surface)); color: var(--warn-text); }
|
|
.aac-correlation button[aria-pressed="true"] { outline: 2px solid var(--accent); outline-offset: -2px; }
|
|
.aac-pair { display: grid; align-content: start; gap: var(--sp-3); }
|
|
.aac-pair h3 { margin: 0; color: var(--text-strong); font-size: var(--fs-sm); }
|
|
.aac-pair__selects { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-2); }
|
|
.aac-pair__values { max-height: 260px; overflow: auto; }
|
|
|
|
@media (max-width: 900px) {
|
|
.aac-grid, .aac-correlation { grid-template-columns: 1fr; }
|
|
.aac-charts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
}
|
|
|
|
@media (max-width: 620px) {
|
|
.aac-head, .aac-panel__head { align-items: flex-start; flex-direction: column; }
|
|
.aac-runtime { justify-content: flex-start; text-align: left; }
|
|
.aac-toolbar__actions, .aac-toolbar__actions .aac-btn { width: 100%; }
|
|
.aac-toolbar__actions .aac-btn { flex: 1 1 0; }
|
|
.aac-charts { grid-template-columns: 1fr; }
|
|
.aac-distribution { grid-template-columns: repeat(5, minmax(58px, 1fr)); overflow-x: auto; }
|
|
.aac-trace-meta dl,
|
|
.aac-kv { grid-template-columns: 100px minmax(0, 1fr); }
|
|
.aac-choice-probs__row { grid-template-columns: minmax(52px, auto) minmax(36px, 1fr) 34px; }
|
|
}
|
|
|
|
@media print {
|
|
.vg-topbar, .vg-sidebar, .vg-bottom-nav, .aac-toolbar, .aac-view-toggle, .aac-detail-controls { display: none !important; }
|
|
.aac, .aac-panel { color: #17231f; background: #fff; }
|
|
.aac-panel { break-inside: avoid; box-shadow: none; }
|
|
.aac-charts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
|
|
* { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
|
|
}
|