.study-plan-tool{--sp-accent:#8b1d41;--sp-ok:#227447;--sp-warn:#9a5b00;border:1px solid #ddd;border-radius:12px;padding:1rem;margin:1.25rem 0;background:var(--body-background,#fff);color:inherit}.study-plan-tool *{box-sizing:border-box}.sp-toolbar,.sp-grid,.sp-actions,.sp-custom{display:flex;gap:.75rem;flex-wrap:wrap;align-items:end}.sp-field{display:flex;flex-direction:column;gap:.25rem;min-width:10rem}.sp-field input,.sp-field select,.sp-search{padding:.55rem;border:1px solid #aaa;border-radius:6px;background:inherit;color:inherit}.sp-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.6rem;margin:1rem 0}.sp-metric{padding:.75rem;border:1px solid #ddd;border-radius:8px}.sp-metric strong{display:block;font-size:1.35rem}.sp-rules{margin:.75rem 0;padding:.75rem;border-left:4px solid var(--sp-accent);background:rgba(139,29,65,.06)}.sp-rule{margin:.3rem 0}.sp-ok{color:var(--sp-ok)}.sp-bad{color:#b42318}.sp-course{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(8rem,auto) auto;gap:.6rem;align-items:center;padding:.65rem 0;border-bottom:1px solid #ddd}.sp-course small{display:block;opacity:.75}.sp-course button,.sp-actions button,.sp-custom button{padding:.5rem .75rem;border:1px solid #888;border-radius:6px;background:inherit;color:inherit;cursor:pointer}.sp-course button[data-selected=true]{background:var(--sp-accent);color:white;border-color:var(--sp-accent)}.sp-custom{padding:1rem 0}.sp-note{font-size:.9rem;opacity:.8}.sp-plan{margin-top:1rem}.sp-plan table{width:100%;border-collapse:collapse}.sp-plan th,.sp-plan td{padding:.55rem;border-bottom:1px solid #ddd;text-align:left}.sp-hidden{display:none!important}

.study-plan-tool{max-width:100%;overflow:hidden}.sp-toolbar>*{min-width:0;max-width:100%}.sp-custom>*{min-width:0;flex:1 1 11rem}.sp-custom .sp-field:first-child{flex:2 1 18rem}.sp-course>*,.sp-plan td,.sp-plan th{min-width:0;overflow-wrap:anywhere;word-break:normal}.sp-tags{max-width:20rem}.sp-plan{max-width:100%;overflow-x:auto}.sp-plan table{min-width:42rem}.sp-plan button{white-space:normal}.sp-actions{margin-top:1rem}
@media(max-width:620px){.sp-toolbar,.sp-custom{align-items:stretch}.sp-field{width:100%}.sp-course{grid-template-columns:minmax(0,1fr) auto;align-items:start}.sp-course .sp-semester{display:inline}.sp-course .sp-tags{display:block;grid-column:1;max-width:none;font-size:.85rem;opacity:.78}.sp-course button{grid-column:2;grid-row:1 / span 2;align-self:center}.sp-plan table{min-width:36rem}}


/* Summary layout and responsive course metadata */
.study-plan-tool{--sp-ok:#14532d;--sp-bad:#881337;--sp-ok-bg:#dcfce7;--sp-bad-bg:#ffe4e6}
.sp-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin:.75rem 0}
.sp-metric{display:flex;flex-direction:column;justify-content:center;min-height:4.6rem;padding:.55rem .65rem}
.sp-metric span{font-size:.82rem;line-height:1.2;opacity:.82}
.sp-metric strong{margin-top:.15rem;font-size:1.08rem;line-height:1.25}
.sp-status{display:inline-block;align-self:flex-start;padding:0;font-weight:700}
.sp-status.sp-ok{color:inherit;background:transparent}
.sp-status.sp-bad{color:inherit;background:transparent}
.sp-rule.sp-ok,.sp-rule.sp-bad{padding:0;font-weight:600}
.sp-rule.sp-ok{color:inherit;background:transparent}
.sp-rule.sp-bad{color:inherit;background:transparent}
@media(max-width:620px){
  .sp-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}
  .sp-metric{min-height:4.25rem;padding:.48rem .55rem}
  .sp-metric strong{font-size:1rem}
  .sp-course .sp-semester{display:inline;white-space:nowrap;font-size:.85rem;opacity:.82}
}


/* Requirement status indicators */
.sp-rule{display:flex;align-items:flex-start;gap:.45rem;color:inherit!important;background:transparent!important;font-weight:inherit!important}
.sp-rule-icon{display:inline-grid;place-items:center;flex:0 0 1.2rem;width:1.2rem;height:1.2rem;margin-top:.05rem;border-radius:50%;color:#fff;font-size:.85rem;font-weight:800;line-height:1}
.sp-rule.sp-ok .sp-rule-icon{background:#16733f}
.sp-rule.sp-bad .sp-rule-icon{background:#b42338}
.sp-rule.sp-warning .sp-rule-icon{background:#8a5a00}


/* Requirement list and summary status */
.sp-rules{border-left:0;background:transparent;padding:.45rem 0}
.sp-rule strong{font-weight:700}
.sp-status{align-self:center;width:100%;text-align:center}
.sp-status.sp-ok{color:color-mix(in srgb,currentColor 30%,#00a84f 70%)}
.sp-status.sp-bad{color:color-mix(in srgb,currentColor 30%,#e11d48 70%)}


/* Requirement details */
.sp-rule{margin:.55rem 0}
.sp-rule-copy{display:block;min-width:0}
.sp-rule-copy>strong{display:block;font-weight:700;line-height:1.3}
.sp-rule-copy>small{display:block;margin-top:.12rem;font-size:.88rem;line-height:1.35;opacity:.82}
