:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:#1e2932;background:#f5f7f8}
*{box-sizing:border-box}
body{margin:0}
button,input,select{font:inherit}
button{cursor:pointer}
a{color:#146181}
a:hover{text-decoration:underline}
.topbar{height:66px;background:#fff;border-bottom:1px solid #dce3e7;display:flex;align-items:center;justify-content:space-between;padding:0 27px;gap:20px}
.brand,.top-actions,.panel-heading,.toolbar,.drawer-head,.drawer-foot,.identity-bar,.side-heading,.plan-card-head,.card-actions,.output-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{justify-content:flex-start}
.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:#194c62;color:#fff;font-weight:800}
.brand strong{display:block;font-size:16px}
.brand small{display:block;color:#697983;font-size:11px;margin-top:2px}
.button{border:1px solid #bfd0d8;background:#fff;color:#234653;padding:9px 15px;border-radius:8px;font-weight:700;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.button:hover{background:#f1f6f7;text-decoration:none}
.button.primary{background:#17617a;border-color:#17617a;color:#fff}
.button.primary:hover{background:#104d63}
.button:disabled{opacity:.48;cursor:not-allowed}
.button.subtle{border:0;background:transparent}
.button.large{padding:12px 17px}
.save-status,.identity-note,.muted{color:#6c7d86}
.save-status{font-size:12px}
.save-status.error{color:#b53b3b}
.account-identity{font-size:11px;font-weight:700;color:#345a6b;white-space:nowrap}.top-actions select{font:inherit;padding:7px;border:1px solid #bfd0d8;border-radius:7px}
.identity-bar{min-height:62px;background:#eaf0f2;border-bottom:1px solid #d7e2e7;padding:10px 28px;justify-content:flex-start}
.identity-bar strong{display:block;font-size:14px}
.eyebrow{color:#65808d;font-size:10px;font-weight:800;letter-spacing:.12em}
.identity-note{font-size:12px;margin-left:auto}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 305px;gap:18px;max-width:1640px;margin:auto;padding:22px}
.plan-panel,.side-card{border:1px solid #dce4e8;background:#fff;border-radius:12px}
.plan-panel{min-height:76vh;padding:23px}
.panel-heading{align-items:flex-start}
.panel-heading h1{font-size:21px;margin:4px 0 5px;letter-spacing:-.02em}
.panel-heading p{font-size:13px;color:#74828a;margin:0}
.toolbar{margin:23px 0 15px;padding-bottom:16px;border-bottom:1px solid #e7ecee}
.segmented{display:flex;gap:2px;background:#edf1f3;padding:3px;border-radius:9px}
.segmented button{padding:7px 12px;background:transparent;border:0;border-radius:7px;color:#59707a;font-size:12px;font-weight:700}
.segmented button.active{background:#fff;color:#194d61;box-shadow:0 1px 3px #16313d1c}
.plan-list{display:grid;gap:17px}
.date-group{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;scroll-margin-top:12px}
.date-rail{padding:8px 0;color:#355663}
.date-rail strong{display:block;font-size:17px}
.date-rail small{font-size:11px}
.date-rail.sat{color:#2668a7}
.date-rail.sun{color:#b04c56}
.date-cards{display:grid;gap:8px}
.plan-card{border:1px solid #dce4e8;border-radius:10px;background:#fff;padding:14px 15px}
.plan-card.confirmed{border-left:4px solid #196580}
.plan-card.candidate{border-left:4px solid #95aeb8}
.plan-card.excluded{opacity:.62;border-left:4px solid #bbc6cb}
.plan-card-head{align-items:flex-start}
.plan-card h3{font-size:15px;margin:0}
.plan-card .subtitle{font-size:12px;color:#697983;margin:4px 0 0}
.chips{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.chip{font-size:10px;padding:4px 6px;border-radius:5px;background:#eff3f4;color:#4a6570;font-weight:700}
.chip.confirmed{background:#e4f2f2;color:#145a66}
.chip.pending{background:#fff2d9;color:#855b12}
.card-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(165px,.9fr) minmax(100px,.6fr);gap:12px;margin-top:13px}
.metric small{display:block;color:#7b8a91;font-size:10px;margin-bottom:3px}
.metric span{font-size:12px;line-height:1.6}
.card-actions{justify-content:flex-end;margin-top:11px;padding-top:10px;border-top:1px solid #edf0f1}
.text-button{border:0;background:transparent;color:#17617a;font-size:12px;font-weight:700;padding:5px 6px}
.text-button:hover{text-decoration:underline}
.empty-state{border:1px dashed #ced9de;border-radius:10px;text-align:center;padding:56px 20px;color:#73838a}
.empty-state strong{display:block;color:#35515d;font-size:17px;margin-bottom:8px}
.insights{display:grid;align-content:start;gap:14px}
.side-card{padding:18px}
.side-card h2{font-size:16px;margin:3px 0 0}
.side-heading{justify-content:flex-start;align-items:flex-start;margin-bottom:13px}
.side-card.help{background:#eef3f4}
.side-card.help p,.side-card .muted{font-size:11px;line-height:1.7}
.warning-item{display:block;width:100%;text-align:left;background:#fff;border:0;border-top:1px solid #edf0f2;padding:11px 0;font-size:12px;line-height:1.5;color:#394c56}
.warning-item:first-child{border-top:0}
.warning-item strong{display:block;color:#a95b2d;font-size:10px;margin-bottom:2px}
.warning-item.missing strong{color:#8a712b}
.warning-item:hover{color:#0b6384}
.fee-line{display:flex;justify-content:space-between;gap:8px;margin:10px 0;font-size:12px}
.fee-line strong{font-size:16px;color:#1b5166}
.tiny{font-size:11px}
.overlay{position:fixed;inset:0;background:#15262c66;z-index:10}
.drawer{position:fixed;right:0;top:0;bottom:0;width:min(455px,100vw);background:#fff;z-index:11;box-shadow:-12px 0 45px #1a303333;display:flex;flex-direction:column}
.drawer.wide{width:min(640px,100vw)}
.drawer[hidden],.overlay[hidden],[hidden]{display:none!important}
.drawer-head{border-bottom:1px solid #e2e9ec;padding:19px 22px}
.drawer-head h2{font-size:19px;margin:3px 0 0}
.icon-button{border:0;background:#edf2f4;width:31px;height:31px;border-radius:7px;font-size:21px;color:#61747d}
.drawer-body{overflow-y:auto;padding:20px 22px;flex:1}
.drawer-body label:not(.checkline):not(.schedule-option){display:grid;gap:6px;margin-bottom:13px;font-size:12px;font-weight:700;color:#51646f}
.drawer-body input[type=search],.drawer-body select{width:100%;padding:10px;border:1px solid #cbd8de;border-radius:7px;background:#fff;color:#1c303a}
.drawer-body h3{font-size:12px;color:#6a7b84;margin:22px 0 8px}
.drawer-foot{border-top:1px solid #e2e9ec;padding:15px 22px;background:#fff;font-size:12px;color:#60747d}
.filter-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.university-results{display:flex;gap:6px;flex-wrap:wrap;max-height:112px;overflow:auto;margin:4px 0 17px}
.university-results button{border:1px solid #d7e2e6;background:#fff;border-radius:6px;padding:6px 9px;font-size:11px}
.university-results button.selected{background:#dcecef;border-color:#8cb5c0;color:#0d5973;font-weight:700}
.university-choice{display:inline-flex;gap:1px}.university-choice button:last-child{color:#b38425}.quick-universities{display:grid;gap:6px;margin:13px 0 15px}.quick-universities strong{font-size:11px;color:#657984;margin-top:4px}.quick-universities>div{display:flex;gap:5px;flex-wrap:wrap}.quick-universities button{border:1px solid #cbdce2;border-radius:6px;background:#f5f9fa;color:#245c72;font-size:11px;padding:5px 8px}
.method-results{display:grid;gap:13px}
.method-group{border:1px solid #dde6e9;border-radius:9px;overflow:hidden}
.method-group>header{background:#f5f8f9;padding:9px 13px;font-size:12px;font-weight:800;color:#48616e}
.method-option{padding:13px;border-top:1px solid #edf0f2}
.method-option h4{font-size:13px;margin:0 0 5px}
.method-option p{font-size:11px;color:#657780;margin:0 0 9px}
.method-option small{color:#936b29}
.schedule-options{display:flex;gap:6px;flex-wrap:wrap}
.schedule-option{display:inline-flex;align-items:center;gap:5px;border:1px solid #cddce2;border-radius:7px;padding:6px 8px;font-size:11px!important;cursor:pointer}
.schedule-option:has(input:checked){border-color:#27829a;background:#eaf5f6;color:#145d70}
.schedule-option:has(input:disabled){opacity:.46;cursor:not-allowed}
.student-results{display:grid;gap:5px}
.student-choice{width:100%;text-align:left;border:1px solid #dfe7ea;background:#fff;border-radius:7px;padding:10px}
.student-choice:hover{background:#f2f8f9}
.student-choice strong{display:block;font-size:12px}
.student-choice small{color:#70838b}
.detail-section{border-bottom:1px solid #ebeff1;padding:0 0 14px;margin-bottom:14px}
.detail-section h3{font-size:13px;margin:0 0 8px}
.detail-section p{font-size:12px;line-height:1.7;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.detail-section a{overflow-wrap:anywhere}
.choice-field{border:1px solid #e0e8eb;padding:9px;border-radius:7px;margin:8px 0}
.choice-field legend{font-size:11px;font-weight:700}
.choice-field label{display:inline-flex!important;align-items:center;gap:3px;margin:4px 10px 4px 0!important}
.output-student{padding:13px;background:#f2f6f7;border-radius:8px;margin-bottom:16px;font-size:12px}
.checkline{display:flex;align-items:center;gap:7px;font-size:12px}
.output-preview-row{border-bottom:1px solid #e3e9ec;padding:9px 0;font-size:12px}
.output-actions{justify-content:flex-start;flex-wrap:wrap;margin:19px 0}
.code-preview{background:#f4f6f7;border:1px solid #e2e8eb;border-radius:8px;padding:12px;font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow:auto}
.month-view{display:grid;gap:15px}
.month-block h2{font-size:15px;margin:0 0 8px}
.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.month-cell{min-height:68px;border:1px solid #e2e8eb;border-radius:6px;padding:5px;font-size:10px}
.month-cell strong{display:block}
.month-cell p{margin:3px 0;color:#536771;line-height:1.3}
.exam-group{background:#f3f7f8;border:1px solid #cddde3;border-radius:10px;padding:10px;display:grid;gap:8px}
.exam-group>h3{font-size:12px;color:#3a5c6b;margin:0 2px 2px}
.exam-group>h3 small{font-weight:400;color:#74868e;margin-left:8px}
.month-cell.empty{background:#f7f9f9}
.month-weekday{font-size:10px;text-align:center;color:#86949a;padding:4px}
@media(max-width:1050px){.workspace{grid-template-columns:1fr}
.insights{grid-template-columns:repeat(2,minmax(0,1fr))}
.side-card.help{display:none}
}
@media(max-width:680px){.topbar{padding:0 12px}
.brand small,.top-actions .save-status{display:none}
.brand strong{font-size:12px}
.button{padding:8px 10px;font-size:11px}
.identity-bar{padding:9px 12px}
.workspace{padding:10px}
.plan-panel{padding:14px}
.panel-heading{align-items:stretch;flex-direction:column}
.toolbar{align-items:stretch;flex-direction:column}
.segmented{justify-content:center}
.date-group{grid-template-columns:50px minmax(0,1fr);gap:5px}
.date-rail strong{font-size:13px}
.card-body{grid-template-columns:1fr 1fr}
.insights{grid-template-columns:1fr}
.filter-grid{grid-template-columns:1fr 1fr}
.month-cell{min-height:53px}
.month-cell p{display:none}
}
