런타임 계약과 학습자 흐름 보강

This commit is contained in:
Yun Chan 2026-06-29 08:12:14 +09:00
parent f456b8997a
commit 206018b088
56 changed files with 4306 additions and 1008 deletions

View file

@ -60,6 +60,70 @@
gap:var(--sp-4);
align-items:start;
}
.lh-dashboard-grid{
min-width:0;
display:grid;
grid-template-columns:minmax(0,1fr) minmax(300px,360px);
gap:var(--sp-4);
align-items:start;
}
.lh-dashboard-status{
min-width:0;
display:grid;
grid-template-columns:repeat(4,minmax(0,1fr));
gap:10px;
}
.lh-dashboard-side{
min-width:0;
display:grid;
align-content:start;
gap:var(--sp-4);
}
.lh-dashboard-feedback .lh-feedback-mini{
padding-top:0;
border-top:0;
}
.lh-work-cluster{
min-width:0;
display:grid;
gap:var(--sp-4);
padding:clamp(14px,1.6vw,20px);
border:1px solid color-mix(in srgb,var(--accent) 15%,var(--border-subtle));
border-radius:var(--radius);
background:
linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent 44%),
color-mix(in srgb,var(--bg-surface) 88%,var(--bg-surface-2));
box-shadow:var(--shadow-sm);
}
.lh-work-cluster__head{
min-width:0;
display:flex;
align-items:flex-start;
justify-content:space-between;
gap:var(--sp-3);
padding-bottom:var(--sp-3);
border-bottom:1px solid var(--border-subtle);
}
.lh-work-cluster__head h2{
margin:7px 0 0;
color:var(--text-strong);
font-size:clamp(19px,1.6vw,24px);
line-height:1.18;
letter-spacing:0;
}
.lh-work-cluster__primary,
.lh-work-cluster__secondary{
min-width:0;
display:grid;
gap:var(--sp-4);
align-items:stretch;
}
.lh-work-cluster__primary{
grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);
}
.lh-work-cluster__secondary{
grid-template-columns:repeat(2,minmax(0,1fr));
}
.lh-session-focus,
.lh-coach-card,
.lh-panel,
@ -362,6 +426,20 @@
border-color:var(--border-strong);
background:var(--bg-surface-2);
}
.lh-metric-card:focus-visible,
.lh-history-task:focus-visible,
.lh-panel__head button:focus-visible,
.lh-recommend-card button:focus-visible,
.lh-compact-list__action:focus-visible,
.lh-feedback-mini__row:focus-visible,
.lh-pane-head button:focus-visible,
.lh-persona:focus-visible,
.lh-review-link:focus-visible,
.lh-persona-progress__row:focus-visible{
outline:2px solid var(--border-focus);
outline-offset:2px;
box-shadow:0 0 0 3px var(--focus-ring);
}
.lh-metric-card span,
.lh-insight-list span{
color:var(--text-muted);
@ -782,6 +860,22 @@
overflow:hidden;
}
.lh-pane-head{margin-bottom:var(--sp-3);}
.lh-pane-head button{
min-height:30px;
border:1px solid var(--border-subtle);
border-radius:var(--radius-sm);
background:var(--bg-surface-2);
color:var(--accent-deep);
padding:0 9px;
font-size:12px;
font-weight:740;
white-space:nowrap;
cursor:pointer;
}
.lh-pane-head button:hover{
border-color:var(--border-strong);
background:var(--accent-tint);
}
.lh-pane-head span,
.lh-activity__head span,
.lh-persona-progress__head span{
@ -848,10 +942,11 @@
color:var(--text-strong);
font-size:14.5px;
font-weight:760;
line-height:1.25;
line-height:1.32;
word-break:keep-all;
overflow:hidden;
display:-webkit-box;
-webkit-line-clamp:1;
-webkit-line-clamp:2;
-webkit-box-orient:vertical;
}
.lh-persona__meta{
@ -869,7 +964,7 @@
line-height:1.45;
overflow:hidden;
display:-webkit-box;
-webkit-line-clamp:2;
-webkit-line-clamp:3;
-webkit-box-orient:vertical;
}
.lh-persona__check{
@ -1363,8 +1458,30 @@
}
.lh-error b{display:block;}
.lh-error p{margin:4px 0 0;font-size:var(--fs-sm);line-height:1.5;}
[data-theme="dark"] .lh-coach-hints span,
[data-theme="dark"] .lh-insight-list div,
[data-theme="dark"] .lh-compact-list li,
[data-theme="dark"] .lh-persona,
[data-theme="dark"] .lh-persona-progress__row{
border-color:rgba(203,227,220,.11);
background:rgba(255,255,255,.045);
}
[data-theme="dark"] .lh-recommend-card{
border-color:rgba(111,179,164,.22);
background:
linear-gradient(135deg,rgba(111,179,164,.12),transparent 62%),
rgba(255,255,255,.052);
}
[data-theme="dark"] .lh-persona.is-selected,
[data-theme="dark"] .lh-persona-progress__row.is-selected{
border-color:rgba(111,179,164,.66);
background:rgba(111,179,164,.13);
}
@keyframes lhSkel{0%{background-position:120% 0}100%{background-position:-80% 0}}
@media (max-width:1180px){
.lh-dashboard-grid{
grid-template-columns:1fr;
}
.lh-dashboard-hero,
.lh-dashboard-columns,
.lh-history-layout,
@ -1377,6 +1494,12 @@
max-height:none;
overflow:visible;
}
.lh-work-cluster__primary{
grid-template-columns:1fr;
}
.lh-dashboard-status{
grid-template-columns:repeat(4,minmax(0,1fr));
}
.lh-personas{
grid-template-columns:repeat(2,minmax(0,1fr));
overflow:visible;
@ -1384,9 +1507,13 @@
}
}
@media (max-width:860px){
.lh-dashboard-status,
.lh-metric-grid{
grid-template-columns:repeat(2,minmax(0,1fr));
}
.lh-work-cluster__secondary{
grid-template-columns:1fr;
}
.lh-history-overview{
grid-template-columns:repeat(2,minmax(0,1fr));
}
@ -1430,6 +1557,7 @@
.lh-session-focus,
.lh-coach-card,
.lh-panel,
.lh-work-cluster,
.lh-list-pane,
.lh-preview__main,
.lh-activity,