feat: 운영 안정성과 세션 음성 경험 개선

This commit is contained in:
Yun Chan 2026-07-31 00:13:08 +09:00
parent facc4ad2d9
commit c788343467
95 changed files with 8431 additions and 1785 deletions

View file

@ -104,8 +104,7 @@
line-height: 1.45;
}
.aic-window,
.aic-mode {
.aic-window {
display: flex;
gap: 3px;
padding: 3px;
@ -114,8 +113,7 @@
background: var(--bg-surface-2);
}
.aic-window button,
.aic-mode button {
.aic-window button {
min-height: 34px;
padding: 0 11px;
border: 0;
@ -126,20 +124,17 @@
cursor: pointer;
}
.aic-window button:hover,
.aic-mode button:hover {
.aic-window button:hover {
color: var(--text-strong);
background: var(--neutral-100);
}
.aic-window button.is-active,
.aic-mode button.is-active {
.aic-window button.is-active {
color: var(--text-on-accent);
background: var(--accent);
}
.aic-window button:focus-visible,
.aic-mode button:focus-visible {
.aic-window button:focus-visible {
outline: 2px solid var(--focus-ring);
outline-offset: 2px;
}
@ -216,11 +211,15 @@
margin-bottom: 16px;
}
/* eyebrow 영문 대문자에서 한글로 바꿨다. 자간 0.12em 영문 대문자 전용
트래킹이라 한글에서는 글자가 흩어져 보이고, 10px 한글 판독 하한 아래라
자간을 좁히고 11px 올린다. (uppercase 변환은 원래 없었다) */
.aic-eyebrow {
display: block;
color: var(--accent-deep);
font: 750 10px/1.2 var(--font-num);
letter-spacing: 0.12em;
font: 750 11px/1.3 var(--font-sans);
letter-spacing: 0.01em;
text-transform: none;
}
.aic-panel h2 {
@ -230,6 +229,11 @@
line-height: 1.3;
}
/* 중복 eyebrow 를 지운 패널은 제목이 첫 줄이므로 윗여백을 없애 우측 배지와 정렬한다. */
.aic-panel__head h2:first-child {
margin-top: 0;
}
.aic-panel__meta {
color: var(--text-muted);
font: 600 11px/1.4 var(--font-num);
@ -316,7 +320,7 @@
.aic-chart {
display: grid;
grid-auto-columns: minmax(44px, 1fr);
grid-auto-columns: minmax(46px, 1fr);
grid-auto-flow: column;
align-items: end;
gap: 8px;
@ -326,19 +330,21 @@
}
.aic-chart__day {
min-width: 44px;
min-width: 46px;
display: grid;
grid-template-rows: 18px 126px auto auto;
grid-template-rows: 20px 126px auto auto;
gap: 5px;
text-align: center;
}
/* 9px 숫자 판독이 불가능해 11px 올린다. 금액이 소수 2자리로 짧아져
같은 폭에서도 잘리지 않는다. */
.aic-chart__value,
.aic-chart__date,
.aic-chart__day small {
overflow: hidden;
color: var(--text-muted);
font: 600 9px/1.2 var(--font-num);
font: 600 11px/1.3 var(--font-num);
text-overflow: ellipsis;
white-space: nowrap;
}
@ -455,18 +461,6 @@
border-color: color-mix(in srgb, var(--accent) 34%, var(--border-subtle));
}
.aic-mode {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
margin-bottom: 14px;
}
.aic-mode button {
min-width: 0;
white-space: normal;
line-height: 1.25;
}
.aic-engine .vg-field + .vg-field {
margin-top: 13px;
}
@ -481,12 +475,70 @@
font-size: 10px;
}
.aic-engine .vg-input {
.aic-engine .vg-input,
.aic-engine .aic-select {
width: 100%;
font-family: var(--font-num);
font-size: 12px;
}
.aic-select {
min-height: 40px;
appearance: auto;
}
.aic-select:disabled {
cursor: not-allowed;
opacity: 0.64;
}
.aic-capability {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
margin-top: 14px;
padding: 11px;
border: 1px solid var(--border-subtle);
border-radius: var(--radius-sm);
background: var(--bg-surface-2);
}
.aic-capability.is-ready {
border-color: color-mix(in srgb, var(--accent) 36%, var(--border-subtle));
background: var(--accent-tint);
}
.aic-capability.is-unavailable {
border-color: color-mix(in srgb, var(--crit-solid) 42%, var(--border-subtle));
background: var(--crit-tint);
}
.aic-capability > div {
min-width: 0;
}
.aic-capability b,
.aic-capability span {
display: block;
}
.aic-capability b {
color: var(--text-strong);
font-size: 11px;
}
.aic-capability span {
margin-top: 3px;
color: var(--text-muted);
font-size: 10px;
line-height: 1.45;
}
.aic-capability .vg-btn {
flex: 0 0 auto;
}
.aic-config-meta {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));