.planner-scope{--blue:#002A5C;--blue-light:#1a4a7a;--teal:#007FA3;--green:#198754;--amber:#ffc107;--red:#dc3545;--gray-50:#f8f9fa;--gray-100:#e9ecef;--gray-200:#dee2e6;--gray-300:#ced4da;--gray-400:#adb5bd;--gray-500:#868e96;--gray-600:#6c757d;--gray-700:#495057;--gray-800:#343a40;--radius:8px;--shadow:0 2px 8px rgba(0,0,0,.1);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;color:var(--gray-800);background:#fff;flex:1;min-height:0;display:flex;flex-direction:column}.planner-scope *{box-sizing:border-box}.site-header{background:var(--blue);color:#fff;padding:12px 20px;display:flex;align-items:center;gap:16px}.site-header a{color:#ffffffbf;text-decoration:none;font-size:13px}.site-header a:hover{color:#fff}.site-header h1{font-size:18px;font-weight:600;flex:1}.tabs{border-bottom:2px solid var(--gray-200);background:var(--gray-50);display:flex;padding:0 20px;gap:4px}.tab-btn{padding:10px 18px;border:none;background:none;cursor:pointer;font-size:14px;font-weight:500;color:var(--gray-600);border-bottom:2px solid transparent;margin-bottom:-2px;transition:.15s}.tab-btn.active{color:var(--blue);border-bottom-color:var(--blue)}.tab-btn:hover:not(.active){color:var(--blue-light)}.tab-panel{display:none}.tab-panel.active{display:flex;flex:1;min-height:0}.program-panel.active{flex-direction:column}.program-workspace{display:flex;flex:1;min-height:0}.sidebar{width:220px;flex-shrink:0;border-right:1px solid var(--gray-200);display:flex;flex-direction:column;background:var(--gray-50);position:relative;z-index:100}.section-list{overflow-y:auto;flex:1;position:relative}.section-list{flex:1;min-height:0;overflow-y:auto}.section-item{display:block;width:100%;text-align:left;padding:7px 14px;border:none;background:none;cursor:pointer;font-size:13px;color:var(--gray-800);border-left:3px solid transparent;transition:.1s;position:relative}.section-item:hover{background:var(--gray-100)}.section-item.active{background:#e8f4f8;border-left-color:var(--teal);color:var(--blue);font-weight:500}.section-item .s-hint{font-size:9px;color:var(--gray-600);float:right;opacity:.5}.main{flex:1;overflow-y:auto;display:flex;flex-direction:column;min-height:0}.prog-header{padding:14px 18px;border-bottom:1px solid var(--gray-200);background:#fff}.prog-header h2{font-size:15px;font-weight:600;margin-bottom:6px}.prog-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;min-height:30px}.prog-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500;cursor:pointer;border:1.5px solid;transition:.1s;-webkit-user-select:none;user-select:none}.prog-chip.major{background:#dbeafe;border-color:#93c5fd;color:#1e40af}.prog-chip.minor{background:#dcfce7;border-color:#86efac;color:#166534}.prog-chip.specialist{background:#fef3c7;border-color:#fcd34d;color:#92400e}.prog-chip.intention{opacity:.6;border-style:dashed}.prog-chip .chip-x{font-size:14px;line-height:1;margin-left:2px}.prog-chip .chip-x:hover{opacity:.7}.prog-dropdown{position:relative}.sidebar-popup{display:none;position:absolute;top:0;left:100%;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:0 4px 16px #0000001f;z-index:101;width:320px;max-height:400px;overflow-y:auto;margin-left:4px}.code-link{font-family:monospace;font-weight:600;color:inherit;text-decoration:none;cursor:pointer}.code-link:hover{text-decoration:underline;color:var(--teal)}.sidebar-popup.open{display:block}.prog-popup-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;cursor:pointer;font-size:13px}.prog-popup-item:hover{background:var(--gray-50)}.prog-popup-item.selected{background:#f0f9ff}.prog-popup-item.selected:after{content:"✓";color:var(--teal);font-weight:600;font-size:13px}.prog-popup-item .badge{font-size:11px;padding:2px 6px;border-radius:10px;font-weight:500}.badge-major{background:#dbeafe;color:#1e40af}.badge-minor{background:#dcfce7;color:#166534}.badge-specialist{background:#fef3c7;color:#92400e}.prog-popup-header{font-size:12px;font-weight:600;padding:8px 12px;color:var(--blue);border-bottom:1px solid var(--gray-100)}.prog-popup-empty{padding:10px 12px;font-size:12px;color:var(--gray-600)}.course-area{flex:1;padding:14px 18px;overflow:visible;min-height:0}.course-area h3{font-size:14px;font-weight:600;margin-bottom:10px;color:var(--gray-800)}.course-stats{display:flex;gap:14px;margin-bottom:12px;font-size:12px}.stat{padding:5px 10px;border-radius:6px;font-weight:500}.stat-pending{background:#fff3cd;color:#856404}.stat-done{background:#d1fae5;color:#065f46}.stat-total{background:var(--gray-100);color:var(--gray-600)}.stat-planned{background:#dbeafe;color:#1d4ed8}.stat-taking{background:#fef9c3;color:#854d0e}.course-table{width:100%;border-collapse:collapse;font-size:13px}.course-table th{position:sticky;top:0;z-index:1;text-align:left;padding:7px 10px;background:var(--gray-50);border-bottom:2px solid var(--gray-200);font-weight:600;font-size:12px;color:var(--gray-600);text-transform:uppercase;letter-spacing:.3px}.course-table td{padding:6px 10px;border-bottom:1px solid var(--gray-100);vertical-align:middle}.course-table tr:hover td{background:var(--gray-50)}.course-table tr.s-done td.c-status,.course-table tr.s-done td.c-flex,.course-table tr.s-done td.c-year,.course-table tr.s-done .code-link{opacity:.45}.course-code{font-family:monospace;font-weight:600;font-size:13px}.programs-tags{display:flex;flex-wrap:wrap;gap:3px}.ptag{font-size:11px;padding:1px 5px;border-radius:4px}.check-btn{width:22px;height:22px;border-radius:50%;border:2px solid var(--gray-200);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:.15s;flex-shrink:0}.check-btn.done{background:var(--green);border-color:var(--green);color:#fff}.check-btn:hover{border-color:var(--teal)}.suggestion-bar{flex-shrink:0;max-height:38%;overflow-y:auto;padding:8px 10px;border-top:1px solid var(--gray-200);background:var(--gray-100)}.suggestion-bar h4{font-size:10px;font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}.suggestion-chips{display:flex;flex-wrap:wrap;gap:4px}.sugg-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:20px;background:#fff;border:1px solid var(--gray-200);font-size:11px;cursor:pointer;transition:.1s}.sugg-chip.specialist{background:#fef3c7;border-color:#fcd34d;color:#92400e}.sugg-chip.major{background:#dbeafe;border-color:#93c5fd;color:#1e40af}.sugg-chip.minor{background:#dcfce7;border-color:#86efac;color:#166534}.sugg-chip:hover{border-color:var(--teal);color:var(--teal)}.sugg-count{min-width:16px;height:16px;line-height:16px;text-align:center;border-radius:8px;background:var(--gray-200);color:var(--gray-700);font-size:10px;font-weight:700;padding:0 4px}.sugg-chip.specialist .sugg-count{background:#fcd34d;color:#92400e}.sugg-chip.major .sugg-count{background:#93c5fd;color:#1e40af}.sugg-chip.minor .sugg-count{background:#86efac;color:#166534}#schedule-panel{gap:0}.sched-controls{width:320px;flex-shrink:0;border-right:1px solid var(--gray-200);overflow-y:auto;background:var(--gray-50);display:flex;flex-direction:column}.sched-left,.sched-settings{padding:14px;min-width:0}.sched-settings{border-bottom:1px solid var(--gray-200)}.sched-controls h3{font-size:14px;font-weight:600;margin-bottom:10px}.sched-controls label{display:block;font-size:12px;font-weight:600;color:var(--gray-600);margin:10px 0 4px;text-transform:uppercase;letter-spacing:.3px}.sched-empty{font-size:12px;color:var(--gray-600)}.sched-notice{margin-top:12px;font-size:12px;color:var(--gray-600);line-height:1.5}.pref-group{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.pref-btn{padding:4px 10px;border:1px solid var(--gray-200);border-radius:20px;background:#fff;cursor:pointer;font-size:12px;transition:.1s}.pref-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}.day-checks{display:grid;grid-template-columns:repeat(5,1fr);gap:3px}.day-check{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;cursor:pointer}.day-check input{cursor:pointer}.course-picks{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.course-picks .course-pick{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;margin:0;padding:5px 8px;background:#fff;border:1px solid var(--gray-200);border-radius:6px;font-size:12px;font-weight:400;text-transform:none;letter-spacing:normal;color:var(--gray-800);transition:.1s}.course-pick.selected{background:#e8f4f8;border-color:var(--teal)}.course-pick.conflict{background:#fff5f5;border-color:#f5b5b5}.course-pick input[type=checkbox]{cursor:pointer}.session-select{width:100%;padding:6px 8px;border:1px solid var(--gray-200);border-radius:var(--radius);font-size:13px;margin-bottom:10px}.grid-area{flex:1;overflow:auto;padding:14px}.grid-wrap{position:relative;width:100%;min-width:300px}.grid-header{display:grid;grid-template-columns:50px repeat(5,1fr);margin-bottom:2px}.grid-day-label{text-align:center;font-size:12px;font-weight:600;color:var(--gray-600);padding:4px}.grid-body{display:grid;grid-template-columns:50px repeat(5,1fr);position:relative}.time-col{display:flex;flex-direction:column}.time-slot{height:30px;display:flex;align-items:flex-start;font-size:11px;color:var(--gray-600);padding-top:0;border-top:1px solid var(--gray-200);position:relative;top:-6px}.day-col{position:relative;border-left:1px solid var(--gray-100)}.day-col-bg{display:flex;flex-direction:column}.hour-block{height:60px;border-top:1px solid var(--gray-200)}.half-block{height:30px;border-top:1px dashed var(--gray-100)}.course-block{position:absolute;border-radius:5px;padding:3px 5px;font-size:11px;overflow:hidden;cursor:default;box-shadow:0 1px 3px #00000026}.course-block .cb-code{font-weight:700}.course-block .cb-room{opacity:.8;font-size:10px}.course-block.conflict{border:2px solid var(--red);opacity:.85}.course-block.shared{outline:2px dashed rgba(255,255,255,.9);outline-offset:-3px}.course-block .cb-shared{margin-left:3px}.course-block .cb-full{margin-left:4px;font-size:9px;font-weight:700;padding:0 3px;border-radius:6px;background:#ffffffd9;color:#92400e;vertical-align:top}.course-block .cb-campus{margin-left:4px;font-size:9px;font-weight:700;padding:0 3px;border-radius:6px;background:#ffffffd9;color:#6d28d9;vertical-align:top}.grid-tip{position:absolute;transform:translate(-50%,-100%);z-index:60;pointer-events:none;background:#1f2937;color:#fff;border-radius:7px;padding:7px 10px;font-size:11px;line-height:1.5;max-width:250px;box-shadow:0 4px 14px #0000004d;white-space:normal}.grid-tip.below{transform:translate(-50%)}.grid-tip .gt-head{font-weight:700;font-size:12px}.grid-tip .gt-eqn{font-weight:700;color:#93c5fd}.grid-tip .gt-line{opacity:.92}.grid-tip .gt-eq{margin-top:3px;padding-top:3px;border-top:1px solid rgba(255,255,255,.25);color:#93c5fd}.no-data{color:var(--gray-600);font-size:13px;padding:20px;text-align:center}.tba-section{margin-top:10px;padding:8px 10px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:6px;font-size:11px}.tba-head{font-weight:600;color:var(--gray-600);margin-bottom:4px}.tba-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;padding:2px 0;color:var(--gray-700)}.tba-code{font-family:monospace;font-weight:600}.tba-sec{color:var(--gray-500)}.prereq-met{color:var(--green);font-weight:600;font-size:12px}.prereq-warn-icon{color:#856404;font-size:12px;flex-shrink:0}.prereq-none{color:var(--gray-600);font-size:12px}.course-table th.c-status,.course-table td.c-status,.course-table th.c-course,.course-table td.c-course,.course-table th.c-year,.course-table td.c-year{width:1px;white-space:nowrap}.course-table th.c-flex,.course-table td.c-flex{width:50%}.c-name-wrap{position:relative}.course-name-preview{visibility:hidden;opacity:0;position:absolute;left:0;bottom:calc(100% + 8px);z-index:110;width:360px;max-width:min(94vw,480px);padding:10px 12px;background:#fffbeb;border:1px solid #fcd34d;border-radius:6px;box-shadow:0 4px 16px #00000024;pointer-events:none;transition:visibility 0s,opacity .15s;white-space:normal}.c-name-wrap:hover .course-name-preview,.c-name-wrap:focus-within .course-name-preview{visibility:visible;opacity:1;transition-delay:.5s}.c-name-wrap.preview-below .course-name-preview{bottom:auto;top:calc(100% + 8px)}.cn-name{display:block;font-weight:600;font-size:12px;color:var(--gray-800);line-height:1.4;margin-bottom:4px}.cn-desc{display:block;font-size:11px;color:var(--gray-600);line-height:1.55;word-break:break-word;overflow-wrap:break-word}.prereq-cell{display:flex;align-items:flex-start;gap:3px;flex-wrap:wrap;font-size:11px;color:var(--gray-600);line-height:1.7}.prc{font-family:monospace;font-weight:600;font-size:11px;cursor:pointer;padding:0 3px;border-radius:3px;border:1px solid transparent;transition:.1s}.prc:hover{border-color:var(--teal)}.prc-planned{color:#1d4ed8;background:#dbeafe}.prc-taking{color:#854d0e;background:#fef9c3}.prc-done{color:#15803d;background:#dcfce7;text-decoration:line-through;opacity:.65}.empty-state{text-align:center;padding:40px 20px;color:var(--gray-600)}.empty-state p{margin-top:6px;font-size:13px}.notice{background:#fff3cd;border:1px solid #fcd34d;border-radius:6px;padding:8px 12px;font-size:12px;color:#856404;margin-bottom:10px}.sp{display:inline-flex;border:1px solid var(--gray-200);border-radius:5px;overflow:hidden}.sp-b{padding:2px 6px;border:none;border-right:1px solid var(--gray-200);background:#fff;font-size:11px;cursor:pointer;color:var(--gray-500);transition:.1s;white-space:nowrap}.sp-b:last-child{border-right:none}.sp-b:hover{background:var(--gray-100)}.sp-b.s-planned{background:#dbeafe;color:#1d4ed8;font-weight:600}.sp-b.s-progress{background:#fef9c3;color:#854d0e;font-weight:600}.sp-b.s-done{background:#dcfce7;color:#15803d;font-weight:600}.course-table tr.s-progress td{background:#fffbeb}.course-table tr.s-planned td{background:#eff6ff}.summary{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;margin-bottom:10px;font-size:12px}.sum-block{flex:1 1 160px;min-width:0;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;padding:7px 9px}.sum-block.done{background:#f0fdf4;border-color:#86efac}.sum-block.done .sum-head{color:#15803d}.sum-head{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--gray-500);margin-bottom:4px}.sum-head .sum-note{font-weight:400;text-transform:none;letter-spacing:0}.sum-line{line-height:1.6;color:var(--gray-700)}.sum-sep{color:var(--gray-400);margin:0 4px}.sum-warn{color:#856404;line-height:1.5}.sum-ok{color:var(--green);font-weight:600}.sum-block.outlook{background:#f9fafb;border-color:var(--gray-200)}.sum-block.outlook.bd-done{background:#f0fdf4;border-color:#86efac}.sum-block.outlook.bd-done .sum-head{color:#15803d}.sum-block.outlook.bd-taking{background:#fef9c3;border-color:#fde047}.sum-block.outlook.bd-taking .sum-head{color:#854d0e}.sum-block.outlook.bd-planned{background:#eff6ff;border-color:#bfdbfe}.sum-block.outlook.bd-planned .sum-head{color:#1d4ed8}.sum-breakdown{font-size:10px;color:var(--gray-500);margin-top:2px;line-height:1.4}.seg-planned{color:#1d4ed8;font-weight:600}.seg-taking{color:#92400e;font-weight:600}.seg-done{color:#15803d;font-weight:600}.seg-req{color:#9ca3af;font-weight:400}.sum-block.bd-done{border-color:#86efac;background:#f0fdf4}.sum-block.bd-done .sum-head{color:#15803d}.sum-block.bd-taking{border-color:#fde047;background:#fef9c3}.sum-block.bd-taking .sum-head{color:#854d0e}.sum-block.bd-planned{border-color:#bfdbfe;background:#eff6ff}.sum-block.bd-planned .sum-head{color:#1d4ed8}.deg-toggle{display:inline-flex;gap:2px;margin-left:6px;vertical-align:middle}.deg-btn{padding:1px 7px;border:1px solid var(--gray-200);border-radius:10px;background:#fff;font-size:10px;font-weight:500;cursor:pointer;color:var(--gray-500);transition:.1s;text-transform:none;letter-spacing:0}.deg-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}.deg-btn:hover:not(.active){border-color:var(--gray-400);color:var(--gray-700)}.sum-disclaimer{margin-top:4px;font-size:10px;font-style:italic;color:var(--gray-500);line-height:1.4}.summary .met{color:var(--green);font-weight:600}.summary .met:after{content:" ✓"}.dp-row{display:flex;flex-wrap:wrap;gap:6px}.dp-cat{padding:2px 7px;border-radius:10px;font-weight:600;font-size:11px;background:#fff5f5;color:#b91c1c;border:1px solid #fecaca}.dp-cat.met{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}.dp-cat.met:after{content:" ✓"}.data-btns{display:flex;gap:6px;margin-top:6px}.data-btn{padding:3px 9px;border:1px solid var(--gray-200);border-radius:5px;background:#fff;font-size:11px;cursor:pointer;color:var(--gray-600);transition:.1s}.data-btn:hover{border-color:var(--teal);color:var(--teal)}.view-toggle{display:flex;gap:6px;padding:10px 18px;border-bottom:1px solid var(--gray-200);background:#fff;flex-shrink:0}.view-btn{padding:4px 10px;border:1px solid var(--gray-300);border-radius:5px;background:#fff;font-size:12px;cursor:pointer;color:var(--gray-600);transition:.1s}.view-btn:hover{background:var(--gray-100)}.view-btn.active{background:var(--teal);color:#fff;border-color:var(--teal)}.req-prog-block{margin-bottom:24px}.req-prog-header{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--blue);padding-bottom:6px;border-bottom:1px solid var(--gray-200);margin-bottom:6px}.req-kind-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-500);margin:10px 0 4px}.req-sec-label{font-size:12px;font-weight:600;color:var(--gray-700);margin:6px 0 3px;padding-left:2px}.req-line{display:flex;align-items:flex-start;gap:5px;padding:2px 0}.req-status{font-size:12px;min-width:16px;color:var(--gray-400);padding-top:3px}.req-line.met .req-status{color:var(--green)}.req-alts{display:flex;flex-wrap:wrap;align-items:center;gap:3px;font-size:12px}.req-alt{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;border-radius:4px;border:1px solid var(--gray-200);background:var(--gray-50)}.req-alt.met{background:#dcfce7;border-color:#86efac}.req-alt.partial{background:#fef9c3;border-color:#fde047}.req-alt .rc{font-family:monospace;font-weight:600;font-size:12px;cursor:pointer}.req-alt .rc:hover{text-decoration:underline}.req-alt .rc.done{text-decoration:line-through;opacity:.45}.req-alt .rc.s-planned{color:#1d4ed8}.req-alt .rc.s-progress{color:#854d0e}.req-sep{font-size:11px;color:var(--gray-500);font-style:italic;padding:0 2px}.req-plus{font-size:10px;color:var(--gray-400);margin:0 1px}.req-pool{margin:2px 0}.req-pool summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:12px;color:var(--gray-600);padding:2px 0}.req-pool summary::-webkit-details-marker{display:none}.req-pool summary:hover{color:var(--blue)}.req-pool summary .req-status{padding-top:0}.req-pool.met summary .req-status{color:var(--green)}.req-pool-items{padding-left:20px;margin-top:2px;border-left:2px solid var(--gray-100)}.req-heading{font-size:12px;font-weight:700;color:var(--gray-700);margin:8px 0 3px}.req-note{font-size:12px;color:var(--gray-500);font-style:italic;padding:2px 0;line-height:1.5}.req-block{display:flex;align-items:flex-start;gap:5px;padding:2px 0;font-size:12px;line-height:1.6}.req-block.indent,.req-note.indent{padding-left:18px}.req-block .req-status{font-size:12px;min-width:14px;color:var(--gray-400);padding-top:2px}.req-block.met .req-status{color:var(--green)}.req-text{flex:1}.req-lead{font-weight:600;color:var(--gray-700)}.req-text .prc-wrap{white-space:nowrap}.req-none{font-size:12px;color:var(--gray-500);font-style:italic;padding:4px 0}.mob-bar,.mob-backdrop{display:none}@media(max-width:640px){.tabs{padding:0 10px;overflow-x:auto}.mob-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--gray-50);border-bottom:1px solid var(--gray-200);flex-shrink:0}.mob-sidebar-btn{padding:6px 14px;border:1px solid var(--gray-300);border-radius:6px;background:#fff;font-size:13px;cursor:pointer;color:var(--gray-700)}.mob-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:199}.tab-panel.active{flex-direction:column}.sidebar{position:fixed!important;top:0;left:0;bottom:0;z-index:200;width:260px;transform:translate(-100%);transition:transform .22s ease;box-shadow:2px 0 16px #00000026}.sidebar.mob-open{transform:translate(0)}.sidebar-popup{position:fixed!important;top:auto!important;left:0!important;right:0;bottom:0;width:100%!important;max-height:60vh;margin-left:0;border-radius:16px 16px 0 0;overflow-y:auto}.summary,.sp{display:grid;grid-template-columns:1fr 1fr}.sp-b{border-right:1px solid var(--gray-200)!important;border-bottom:1px solid var(--gray-200)!important}.sp-b:nth-child(2n){border-right:none!important}.sp-b:nth-child(n+3){border-bottom:none!important}#schedule-panel{flex-direction:column;overflow-y:auto}.sched-controls{width:100%!important;flex:0 0 auto;overflow-y:visible;border-right:none;border-bottom:1px solid var(--gray-200)}.grid-area{flex:0 0 auto;padding:10px;overflow:visible}}:root{--requirement-required: #155e36}.planner-scope .role-filter{display:flex;align-items:center;gap:10px;margin:12px 0}.planner-scope .role-filter select{padding:6px;max-width:100%}.planner-scope .program-search{display:block;padding:10px;font-size:12px}.planner-scope .program-search input{display:block;width:100%;box-sizing:border-box;padding:7px;margin-top:5px}.planner-scope .role-required{background:#e8f5eb;color:#155e36}.planner-scope .role-elective,.planner-scope .role-alternative{background:#e7f1fc;color:#174d86}.planner-scope .role-recommended{background:#fff4d9;color:#765218}.planner-scope .requirement-role{display:inline-block;font-size:11px;border:1px solid #b7c3ce;border-radius:4px;padding:2px 5px;margin-right:6px;flex:0 0 auto}.course-picker[data-v-1c6429d4]{margin-top:10px}.cp-label[data-v-1c6429d4]{display:block;font-size:11px;font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px}.cp-row[data-v-1c6429d4]{display:flex;gap:8px;align-items:flex-start}.cp-input-wrap[data-v-1c6429d4]{position:relative;flex:0 0 auto}.cp-input[data-v-1c6429d4]{width:16ch;padding:6px 8px;border:1px solid var(--gray-200);border-radius:var(--radius);font-size:13px;outline:none}.cp-input[data-v-1c6429d4]:focus{border-color:var(--teal)}.cp-results[data-v-1c6429d4]{position:absolute;z-index:50;left:0;top:100%;margin-top:3px;min-width:260px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:0 4px 16px #0000001f;max-height:260px;overflow-y:auto}.cp-item[data-v-1c6429d4]{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;padding:7px 10px;border:none;background:none;cursor:pointer;font-size:13px;border-bottom:1px solid var(--gray-100)}.cp-item[data-v-1c6429d4]:last-child{border-bottom:none}.cp-item[data-v-1c6429d4]:hover{background:var(--gray-50)}.cp-code[data-v-1c6429d4]{font-family:monospace;font-weight:600;color:var(--blue);flex-shrink:0}.cp-name[data-v-1c6429d4]{color:var(--gray-600);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-manual[data-v-1c6429d4]{color:var(--teal);font-weight:500}.cp-chips[data-v-1c6429d4]{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:5px;align-content:flex-start}.cp-chip[data-v-1c6429d4]{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:20px;font-size:12px;font-weight:500;font-family:monospace;background:#e8f4f8;border:1.5px solid #bae0ec;color:var(--blue)}.cp-x[data-v-1c6429d4]{cursor:pointer;font-size:14px;line-height:1}.cp-x[data-v-1c6429d4]:hover{opacity:.7}.cp-chip.locked[data-v-1c6429d4]{font-size:11px;cursor:default}.cp-chip.locked.st-1[data-v-1c6429d4]{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.cp-chip.locked.st-2[data-v-1c6429d4]{background:#fffbeb;border-color:#fde68a;color:#854d0e}.cp-chip.locked.st-3[data-v-1c6429d4]{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.hard-constraints[data-v-f0fa1d8c]{border-top:1px solid var(--gray-200);margin-top:14px;padding-top:12px}h3[data-v-f0fa1d8c]{font-size:14px;margin:0 0 5px}.help[data-v-f0fa1d8c]{font-size:11px;color:var(--gray-600);line-height:1.4;margin:3px 0 9px}.field-title[data-v-f0fa1d8c]{display:block;margin:13px 0 5px;font-size:12px;font-weight:700;color:var(--gray-700)}.entry-row[data-v-f0fa1d8c]{display:flex;gap:5px;align-items:center;flex-wrap:wrap;font-size:11px}.entry-row label[data-v-f0fa1d8c]{display:flex;align-items:center;gap:3px;font-size:11px}.entry-row input[type=time][data-v-f0fa1d8c]{width:82px}.entry-row input[type=text][data-v-f0fa1d8c]{flex:1;min-width:100px}input[data-v-f0fa1d8c],select[data-v-f0fa1d8c],button[data-v-f0fa1d8c]{border:1px solid var(--gray-300);border-radius:5px;background:#fff;padding:4px;font-size:11px;color:var(--gray-700)}button[data-v-f0fa1d8c]{cursor:pointer}.saved-row[data-v-f0fa1d8c]{display:flex;align-items:center;justify-content:space-between;padding:3px 5px;font-size:11px;border-bottom:1px solid var(--gray-200)}.saved-row button[data-v-f0fa1d8c]{border:0;font-size:15px;padding:0 4px}.validation[data-v-f0fa1d8c]{color:#b91c1c;font-size:11px;margin:4px 0}.lunch-toggle[data-v-f0fa1d8c]{display:flex;align-items:center;gap:5px;margin-top:12px;font-size:12px}.online-rule[data-v-f0fa1d8c]{width:100%}.course-rules[data-v-f0fa1d8c]{border:1px solid var(--gray-200);border-radius:6px;padding:5px 7px;margin:5px 0}.clear-sections[data-v-f0fa1d8c]{margin-bottom:5px}.course-rules summary[data-v-f0fa1d8c]{cursor:pointer;font-size:12px;font-weight:600}.section-group[data-v-f0fa1d8c]{margin:8px 0}.section-group strong[data-v-f0fa1d8c]{font-size:11px}.section-row[data-v-f0fa1d8c]{display:flex;gap:4px;align-items:center;border-top:1px solid var(--gray-200);padding:4px 0}.section-detail[data-v-f0fa1d8c]{flex:1;min-width:0;font-size:11px}.section-detail small[data-v-f0fa1d8c]{display:block;color:var(--gray-600);overflow-wrap:anywhere}.section-row.locked button[data-v-f0fa1d8c]:first-of-type{color:#fff;background:var(--teal);border-color:var(--teal)}.section-row.excluded button[data-v-f0fa1d8c]:last-of-type{color:#fff;background:#b91c1c;border-color:#b91c1c}.seg-pills[data-v-7dbf5ba2]{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.seg-pill[data-v-7dbf5ba2]{font-size:10px;font-weight:600;padding:2px 8px;border-radius:10px;cursor:pointer;border:1px solid var(--gray-300);background:#fff;color:var(--gray-600);white-space:nowrap;transition:.1s}.seg-pill[data-v-7dbf5ba2]:hover{border-color:var(--teal);color:var(--teal)}.seg-pill.active[data-v-7dbf5ba2]{background:var(--teal);border-color:var(--teal);color:#fff}.seg-pill.full.active[data-v-7dbf5ba2]{background:#92400e;border-color:#92400e}.seg-pill.offcampus[data-v-7dbf5ba2]{border-color:#c084fc;color:#7c3aed;border-style:dashed}.seg-pill.offcampus[data-v-7dbf5ba2]:hover{border-color:#7c3aed;color:#7c3aed}.seg-pill.offcampus.active[data-v-7dbf5ba2]{background:#7c3aed;border-color:#7c3aed;color:#fff;border-style:solid}.seg-pill.tba[data-v-7dbf5ba2]{background:#f3f4f6;border-color:var(--gray-200);color:#9ca3af;cursor:not-allowed}.seg-pill.tba[data-v-7dbf5ba2]:hover{border-color:var(--gray-200);color:#9ca3af}.avail-none[data-v-7dbf5ba2]{font-size:10px;color:var(--gray-400)}.pref-head[data-v-7dbf5ba2]{margin:14px 0 4px;font-size:12px;font-weight:700;color:var(--gray-700);border-top:1px solid var(--gray-200);padding-top:10px}.pref-head span[data-v-7dbf5ba2]{font-weight:400;font-size:11px;color:var(--gray-500)}.day-row[data-v-7dbf5ba2]{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:6px}.day-btn[data-v-7dbf5ba2]{display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 0;border:1px solid var(--gray-200);border-radius:6px;background:#fff;cursor:pointer;font-size:12px;font-weight:600;color:var(--gray-700);transition:.1s}.day-btn .day-state[data-v-7dbf5ba2]{font-size:9px;font-weight:600;text-transform:uppercase;color:var(--gray-400)}.day-btn.free[data-v-7dbf5ba2]{background:#fff5f5;border-color:#f5b5b5;color:#b91c1c}.day-btn.free .day-state[data-v-7dbf5ba2]{color:#b91c1c}.day-btn.busy[data-v-7dbf5ba2]{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.day-btn.busy .day-state[data-v-7dbf5ba2]{color:#15803d}.friend-toggle[data-v-7dbf5ba2]{display:flex!important;align-items:center;gap:6px;flex-direction:row!important;text-transform:none!important;letter-spacing:0!important;font-size:13px!important;color:var(--gray-800)!important;margin-top:14px}.friend-hint[data-v-7dbf5ba2]{font-size:11px;color:var(--gray-600);line-height:1.5;margin:4px 0}.friend-block[data-v-7dbf5ba2]{border:1px solid var(--gray-200);border-radius:8px;padding:8px;margin:6px 0}.friend-head[data-v-7dbf5ba2]{display:flex;align-items:center;gap:6px;margin-bottom:4px}.friend-name[data-v-7dbf5ba2]{flex:1;min-width:0;font-size:12px;font-weight:600;color:var(--gray-800);border:1px solid transparent;border-radius:5px;padding:3px 6px;background:transparent}.friend-name[data-v-7dbf5ba2]:hover,.friend-name[data-v-7dbf5ba2]:focus{border-color:var(--gray-300);background:#fff;outline:none}.friend-remove[data-v-7dbf5ba2]{width:22px;height:22px;line-height:1;border:1px solid var(--gray-300);border-radius:5px;background:#fff;cursor:pointer;color:var(--gray-600);font-size:14px}.friend-remove[data-v-7dbf5ba2]:hover{border-color:var(--red);color:var(--red)}.friend-add[data-v-7dbf5ba2]{margin-top:4px;padding:4px 10px;border:1px dashed var(--gray-300);border-radius:6px;background:#fff;cursor:pointer;font-size:12px;color:var(--gray-600)}.friend-add[data-v-7dbf5ba2]:hover{border-color:var(--teal);color:var(--teal)}.zz-opts[data-v-7dbf5ba2]{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.zz-check[data-v-7dbf5ba2]{display:flex!important;align-items:flex-start;gap:6px;flex-direction:row!important;text-transform:none!important;letter-spacing:0!important;font-weight:400!important;font-size:12px!important;color:var(--gray-700)!important;margin:0!important;line-height:1.4}.zz-check input[data-v-7dbf5ba2]{margin-top:1px;cursor:pointer}.sched-warnings[data-v-7dbf5ba2]{padding:14px;border-bottom:1px solid var(--gray-200);background:#fffbeb}.sched-warnings h3[data-v-7dbf5ba2]{font-size:14px;font-weight:600;margin-bottom:8px;color:#92400e}.sched-warnings ul[data-v-7dbf5ba2]{list-style:none;display:flex;flex-direction:column;gap:4px}.warn-item[data-v-7dbf5ba2]{font-size:12px;line-height:1.4;color:#92400e;padding-left:16px;position:relative}.warn-item[data-v-7dbf5ba2]:before{content:"⚠";position:absolute;left:0}.warn-item.conflict[data-v-7dbf5ba2]{color:var(--red)}.board[data-v-a5b6a3a5]{display:flex;flex-direction:column;min-height:0}.board-views[data-v-a5b6a3a5]{display:flex;align-items:center;gap:6px;margin-bottom:10px}.bv-hint[data-v-a5b6a3a5]{font-size:11px;color:var(--gray-500);margin-left:auto}.term-cols[data-v-a5b6a3a5]{display:flex;gap:14px;align-items:flex-start}.term-col[data-v-a5b6a3a5]{flex:1 1 0;min-width:0}.timetable-notes[data-v-a5b6a3a5]{margin-top:8px;font-size:11px;color:var(--gray-700)}.timetable-notes p[data-v-a5b6a3a5]{margin:6px 0;line-height:1.45}.term-head[data-v-a5b6a3a5]{display:flex;align-items:baseline;gap:8px;font-size:13px;font-weight:700;color:var(--blue);margin-bottom:8px;padding-bottom:4px;border-bottom:2px solid var(--gray-200)}.term-unpub[data-v-a5b6a3a5]{font-size:11px;font-weight:500;font-style:italic;color:#856404}.term-confl[data-v-a5b6a3a5]{font-size:11px;font-weight:600;color:var(--red)}.alt-nav[data-v-a5b6a3a5]{margin-left:auto;display:inline-flex;align-items:center;gap:4px}.alt-label[data-v-a5b6a3a5]{font-size:11px;font-weight:500;color:var(--gray-600)}.alt-btn[data-v-a5b6a3a5]{width:22px;height:22px;line-height:1;border:1px solid var(--gray-300);border-radius:5px;background:#fff;cursor:pointer;color:var(--gray-700);font-size:14px}.alt-btn[data-v-a5b6a3a5]:hover:not(:disabled){border-color:var(--teal);color:var(--teal)}.alt-btn[data-v-a5b6a3a5]:disabled{opacity:.4;cursor:default}@media(max-width:640px){.term-cols[data-v-a5b6a3a5]{flex-direction:column;align-items:stretch}.term-col[data-v-a5b6a3a5]{width:100%}}.ttb-warn-backdrop[data-v-45ba4a82]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:300;padding:16px}.ttb-warn-card[data-v-45ba4a82]{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);max-width:440px;width:100%;padding:20px;border-top:4px solid var(--amber)}.ttb-warn-card h3[data-v-45ba4a82]{font-size:16px;font-weight:700;color:var(--gray-800);margin-bottom:10px}.ttb-warn-card p[data-v-45ba4a82]{font-size:13px;line-height:1.55;color:var(--gray-700);margin-bottom:10px}.ttb-warn-card a[data-v-45ba4a82]{color:var(--teal)}.ttb-warn-ack[data-v-45ba4a82]{margin-top:4px;padding:8px 16px;border:none;border-radius:6px;background:var(--blue);color:#fff;font-size:13px;font-weight:600;cursor:pointer}.ttb-warn-ack[data-v-45ba4a82]:hover{background:var(--blue-light)}.planner-intro[data-v-f7dc13c0]{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:8px 20px;background:#fff;border-bottom:1px solid #ddd}.planner-intro h1[data-v-f7dc13c0]{font-size:16px;font-weight:700;color:var(--blue)}.planner-intro p[data-v-f7dc13c0]{font-size:12px;color:var(--gray-600)}.campus-banner[data-v-f7dc13c0]{padding:16px;background:var(--gray-50, #f5f7fa);border-bottom:1px solid #ddd}.campus-banner select[data-v-f7dc13c0]{margin:0 12px;max-width:100%;padding:6px}.campus-banner details[data-v-f7dc13c0]{margin-top:10px;font-size:13px}
