.rvlh-asgs { margin: 1.5rem 0; color: var(--rv-text, #202B3C); }
.rvlh-asg-list { margin: 0; padding: 0; list-style: none; display: grid; gap: .6rem; }
.rvlh-asg-item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1rem; padding: .8rem 1rem; background: #fff; border: 1px solid var(--rv-border, #DDE3EC); border-radius: 12px; }
.rvlh-asg-item a { color: var(--rv-navy, #0B1F3B); text-decoration: none; }
.rvlh-asg-item a:hover { text-decoration: underline; }
.rvlh-asg-item div { display: flex; flex-direction: column; }
.rvlh-asg-item div span, .rvlh-asg-small { font-size: .875rem; color: var(--rv-muted, #667085); }

.rvlh-asg-tag { display: inline-block; padding: .25rem .7rem; font-size: .85rem; font-weight: 600; border-radius: 999px; color: var(--rv-navy, #0B1F3B); background: var(--rv-blue-light, #EAF2FC); }
.rvlh-asg-tag.is-graded { color: #14532d; background: #E7F6EC; }
.rvlh-asg-tag.is-overdue, .rvlh-asg-tag.is-closed, .rvlh-asg-tag.is-returned { color: #7a1a12; background: #FDECEA; }

.rvlh-asg-wrap { max-width: 860px; margin: 0 auto; padding: 1.5rem 1rem 4rem; color: var(--rv-text, #202B3C); }
.rvlh-asg-wrap h1 { color: var(--rv-navy, #0B1F3B); }
.rvlh-asg-back { margin: 0 0 .5rem; font-size: .9rem; }
.rvlh-asg-meta { display: grid; grid-template-columns: auto 1fr; gap: .25rem 1rem; margin: 1rem 0; }
.rvlh-asg-meta dt { font-weight: 700; color: var(--rv-muted, #667085); }
.rvlh-asg-meta dd { margin: 0; }
.rvlh-asg-box { margin: 1.25rem 0; padding: 1.25rem 1.5rem; background: var(--rv-gray-light, #F4F6F9); border: 1px solid var(--rv-border, #DDE3EC); border-radius: 14px; }
.rvlh-asg-box h2 { margin-top: 0; font-size: 1.2rem; }
.rvlh-asg-box h3 { margin: 1rem 0 .4rem; font-size: 1rem; }
.rvlh-asg-answer { padding: .8rem 1rem; background: #fff; border: 1px solid var(--rv-border, #DDE3EC); border-radius: 10px; }
.rvlh-asg-notice { padding: .7rem 1rem; border-radius: 8px; }
.rvlh-asg-notice.is-good { background: #E7F6EC; border-left: 4px solid #1a7f37; }
.rvlh-asg-notice.is-bad { background: #FDECEA; border-left: 4px solid #b42318; }
.rvlh-asg-form label { display: block; margin-bottom: .3rem; font-weight: 600; }
.rvlh-asg-form textarea, .rvlh-asg-form input[type="number"], .rvlh-asg-form input[type="file"] { width: 100%; max-width: 640px; padding: .6rem .8rem; font: inherit; background: #fff; border: 1px solid var(--rv-border, #DDE3EC); border-radius: 8px; }
.rvlh-asg-form input[type="number"] { max-width: 160px; }
.rvlh-btn { display: inline-block; padding: .7rem 1.3rem; font: inherit; font-weight: 600; color: #fff; text-decoration: none; background: var(--rv-blue, #0A4FAF); border: 2px solid var(--rv-blue, #0A4FAF); border-radius: 8px; cursor: pointer; }
.rvlh-btn:hover { background: var(--rv-navy, #0B1F3B); border-color: var(--rv-navy, #0B1F3B); color: #fff; }
.rvlh-btn--ghost { color: var(--rv-blue, #0A4FAF); background: transparent; }
.rvlh-btn--ghost:hover { color: #fff; }
.rvlh-asg-tablewrap { overflow-x: auto; }
.rvlh-asg-table { width: 100%; border-collapse: collapse; background: #fff; }
.rvlh-asg-table th, .rvlh-asg-table td { padding: .6rem .75rem; text-align: left; border-bottom: 1px solid var(--rv-border, #DDE3EC); }
.rvlh-asg-wrap :focus-visible, .rvlh-asgs :focus-visible { outline: 3px solid var(--rv-blue, #0A4FAF); outline-offset: 2px; }
