.field-help { font-weight: 400; color: #5c677d; font-size: 0.9rem; }
.card { background: #fff; border-radius: 12px; box-shadow: 0 2px 12px rgba(20, 33, 61, 0.08); padding: 1rem; }
.card--course { background: #edf7ed; border: 1px solid #2e7d32; }
.muted { color: #5c677d; }
.section-title { margin-top: 0; }
.list-reset { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.75rem; }
.inline-form { display: inline; margin: 0; }
.auth-card { max-width: 560px; }
.auth-form { display: grid; gap: 1rem; }
.form-row { display: grid; gap: 0.35rem; }
.auth-form fieldset { border: 0; margin: 0; min-width: 0; padding: 0; }
.form-row input, .form-row select, .form-row textarea {
    padding: 0.7rem;
    border: 1px solid #ccd5e0;
    border-radius: 8px;
    font: inherit;
}
.alert { background: #fdecea; color: #7a1f1f; border-radius: 8px; padding: 0.75rem 1rem; }
.field-error { color: #a61b1b; font-size: 0.95rem; }
.detail-list { display: grid; grid-template-columns: max-content 1fr; gap: 0.5rem 1rem; margin: 0; }
.detail-list--stacked { grid-template-columns: minmax(120px, max-content) 1fr; }
.detail-list dt { font-weight: 700; }
.detail-list dd { margin: 0; }
.page-header { display: grid; gap: 0.75rem; margin-bottom: 1rem; }
.page-header__summary { display: grid; gap: 0.25rem; }
.page-title { font-size: 1.75rem; line-height: 1.2; margin: 0; }
[data-authorization-state="disabled"] { opacity: 0.65; }
.status-label { align-items: baseline; border: 1px solid #ccd5e0; border-left-width: 0.35rem; border-radius: 999px; display: inline-flex; gap: 0.4rem; padding: 0.3rem 0.7rem; }
.status-label__text { font-weight: 700; }
.status-label__detail { color: #4a5568; font-size: 0.9rem; }
.status-label--state { background: #eef4ff; border-color: #4f7cac; color: #143d66; }
.status-label--deadline { background: #fff7e6; border-color: #b76e00; color: #6f3f00; }
.status-label--warning { background: #fff3cd; border-color: #a15c00; color: #653a00; }
.status-label--returned { background: #fdecea; border-color: #b3261e; color: #7a1f1f; }
.status-label--disabled { background: #eef0f3; border-color: #6b7280; color: #374151; }
.status-label--empty { background: #f8fafc; border-color: #64748b; color: #334155; }
.status-label--unavailable { background: #eef0f3; border-color: #6b7280; color: #374151; }
.action-list { display: flex; flex-wrap: wrap; gap: 0.75rem; list-style: none; margin: 0; padding: 0; }
.lead-actions { display: grid; gap: 1rem; margin-bottom: 1rem; }
.lead-section { display: grid; gap: 0.5rem; }
.lead-section__value { margin-left: 0.5rem; }
.action-link { border: 1px solid transparent; border-radius: 10px; display: inline-grid; gap: 0.2rem; padding: 0.7rem 1rem; text-decoration: none; }
.action-link--block { width: 100%; box-sizing: border-box; margin-bottom: 1rem; }
.action-link__label { font-weight: 700; }
.action-link__detail { font-size: 0.9rem; }
.action-link--primary { background: #1f5eff; border-color: #1f5eff; color: #fff; }
.action-link--secondary { background: #fff; border-color: #7a8699; color: #14213d; }
.action-link--disabled { background: #eef0f3; border-color: #6b7280; color: #374151; }
.button-action {
    align-self: start;
    border: 1px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    padding: 0.7rem 1rem;
}
.button-action--primary { background: #1f5eff; border-color: #1f5eff; color: #fff; }
.button-action--primary:hover { background: #174bcc; border-color: #174bcc; }
.button-action--secondary { background: #fff; border-color: #4f7cac; color: #143d66; }
.button-action--secondary:hover { background: #eef4ff; border-color: #143d66; }
.button-action--success { background: #2e7d32; border-color: #2e7d32; color: #fff; }
.button-action--success:hover { background: #256628; border-color: #256628; }
.button-action--danger { background: #fff; border-color: #b3261e; color: #b3261e; }
.button-action--danger:hover { background: #fdecea; border-color: #8d1d18; color: #8d1d18; }
.secondary-section { border-left: 0.35rem solid #7a8699; padding-left: 1rem; }
.progress-stepper { display: grid; gap: 0.85rem; list-style: none; margin: 0; padding: 0; }
.progress-step { align-items: start; background: #fff; border: 1px solid #d7deea; border-radius: 12px; display: grid; gap: 0.75rem; grid-template-columns: auto 1fr; padding: 0.9rem 1rem; }
.progress-step__index { align-items: center; background: #eef4ff; border-radius: 999px; color: #143d66; display: inline-flex; font-weight: 700; height: 2rem; justify-content: center; width: 2rem; }
.progress-step__body { display: grid; gap: 0.35rem; }
.progress-step__heading { align-items: start; display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: space-between; }
.progress-step__heading-main { align-items: center; display: inline-flex; flex-wrap: wrap; gap: 0.5rem; min-width: 0; }
.progress-step__badge { border-radius: 999px; font-size: 0.85rem; font-weight: 700; padding: 0.2rem 0.55rem; }
.progress-step__deadline { flex-shrink: 0; font-size: 0.8rem; margin-left: auto; }
.progress-step__badge--done, .progress-step--done .progress-step__badge { background: #edf7ed; color: #163a18; }
.progress-step__badge--current, .progress-step--current .progress-step__badge { background: #eef4ff; color: #143d66; }
.progress-step__badge--waiting, .progress-step--waiting .progress-step__badge { background: #f8fafc; color: #334155; }
.progress-step--current { background: #eef4ff; border-color: #4f7cac; box-shadow: 0 0 0 1px rgba(79, 124, 172, 0.12); }
.progress-step--current .progress-step__index { background: #1f5eff; color: #fff; }
.progress-step--done { background: #edf7ed; border-color: #9ac89c; }
.progress-step--done .progress-step__index { background: #2e7d32; color: #fff; }
.progress-step--waiting { background: #f8fafc; border-color: #cbd5e1; }
.progress-step--waiting .progress-step__index { background: #cbd5e1; color: #334155; }
.progress-step--locked { background: #e5e7eb; border-color: #9ca3af; }
.progress-step--locked .progress-step__index { background: #9ca3af; color: #fff; }
.progress-step__badge--locked, .progress-step--locked .progress-step__badge { background: #c8c8c8; color: #374151; }
.progress-step__badge--warning, .progress-step--warning .progress-step__badge { background: #fff3cd; color: #653a00; }
.progress-step--warning { background: #fff7e6; border-color: #b76e00; }
.progress-step--warning .progress-step__index { background: #b76e00; color: #fff; }
.progress-step__link { color: #1f5eff; font-size: 0.92rem; font-weight: 700; text-decoration: underline; text-underline-offset: 0.15em; }
.dashboard-hero { display: grid; gap: 1rem; margin-bottom: 1rem; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.queue-card-list { gap: 1rem; }
.queue-card { align-items: center; border: 1px solid #d7deea; border-radius: 12px; display: flex; gap: 1rem; justify-content: space-between; padding: 0.9rem 1rem; }
.queue-card__summary { display: grid; gap: 0.5rem; }
.queue-card__body { display: grid; gap: 0.25rem; }
.queue-card__counts { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.queue-card__action { flex-shrink: 0; }
.warning-note { background: #fff3cd; border-left: 0.35rem solid #a15c00; border-radius: 8px; color: #653a00; font-weight: 700; padding: 0.75rem 1rem; }
.banner-stack { display: grid; gap: 0.75rem; margin-bottom: 1rem; }
.site-banner { align-items: start; border: 1px solid #ccd5e0; border-left-width: 0.4rem; border-radius: 12px; display: grid; gap: 0.5rem; grid-template-columns: 1fr auto; padding: 0.85rem 1rem; }
.site-banner__message { margin: 0; }
.site-banner__close { background: none; border: 0; color: inherit; cursor: pointer; font: inherit; font-size: 1.1rem; line-height: 1; padding: 0; }
.site-banner--success { background: #edf7ed; border-color: #2e7d32; color: #163a18; }
.site-banner--info { background: #eef4ff; border-color: #4f7cac; color: #143d66; }
.site-banner--warning { background: #fff7e6; border-color: #b76e00; color: #6f3f00; }
.site-banner--error { background: #fdecea; border-color: #b3261e; color: #7a1f1f; }
.callout { border-left: 0.35rem solid transparent; border-radius: 8px; padding: 0.75rem 1rem; }
.callout--info { background: #eef4ff; border-color: #4f7cac; color: #143d66; }
.button-link { background: none; border: none; color: #1f5eff; cursor: pointer; font: inherit; padding: 0; text-decoration: underline; text-underline-offset: 0.15em; }
.button-link:hover { color: #143d66; }
