:root{--canvas:#f3f7fb;--surface:#fff;--surface-subtle:#f5f8fc;--primary:#356bd6;--primary-dark:#2451ad;--accent:#0f9f91;--heading:#14213d;--body:#33415c;--secondary:#66758e;--muted:#94a1b5;--border:#dce5f0;--border-strong:#c5d3e4;--info-bg:#edf5ff;--info-border:#8fb8f5;--warning:#ea580c;--warning-bg:#fdf6f5;--shadow-shell:none;--shadow-card:0 4px 16px #23487812}*{box-sizing:border-box}html{background:var(--canvas);width:100%;min-width:320px}body{background:radial-gradient(circle at 8% 0%, #356bd614, transparent 28rem), radial-gradient(circle at 96% 8%, #0f9f9112, transparent 24rem), var(--canvas);width:100%;min-height:100dvh;color:var(--body);font-family:var(--font-noto-thai), "Noto Sans Thai", "Leelawadee UI", Tahoma, sans-serif;-webkit-font-smoothing:antialiased;margin:0;font-size:12px;line-height:1.5;overflow-x:hidden}button,input,select{font:inherit}button,select{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline-offset:2px;outline:2px solid #2563eb6b}a{color:inherit;text-decoration:none}.page-canvas{width:100%;min-height:100dvh;padding:0}.app-shell{background:var(--surface);width:100%;min-height:100dvh;box-shadow:var(--shadow-shell);border:0;border-radius:0;margin:0;overflow:hidden}.nav-scroll{border-bottom:1px solid var(--border);scrollbar-width:thin;overflow-x:auto}.top-nav{background:#fffffff5;grid-template-columns:88px repeat(4,minmax(130px,1fr));min-width:608px;height:58px;display:grid}.brand-mark,.nav-item{justify-content:center;align-items:center;display:flex}.brand-mark{color:var(--primary-dark)}.nav-item{color:#29364d;white-space:nowrap;min-width:0;font-size:12px;font-weight:600;transition:color .15s,background-color .15s;position:relative}.nav-item:hover{color:var(--primary-dark);background:#f4f8ff}.nav-item.is-active{color:var(--heading);font-weight:700}.nav-item.is-active:after{background:linear-gradient(90deg, var(--primary), var(--accent));content:"";border-radius:2px 2px 0 0;height:3px;position:absolute;bottom:0;left:20%;right:20%}.home-page{background:linear-gradient(180deg, #edf5ffb8 0, #fff0 240px), var(--surface);min-height:calc(100dvh - 58px);padding:clamp(44px,6vw,84px) clamp(24px,4vw,72px) 40px}.search-hero{text-align:center;width:min(100%,1080px);margin:0 auto}.search-hero h1{color:var(--heading);margin:0;font-size:24px;font-weight:700;line-height:32px}.search-hero p{color:var(--secondary);margin:4px 0 0;font-size:12px}.search-box{width:min(100%,1080px);height:50px;color:var(--secondary);background:#fffffff5;border:1px solid #77a1ee;border-radius:10px;align-items:center;margin:16px auto 0;padding:0 14px;display:flex;box-shadow:0 0 0 3px #356bd612,0 6px 20px #23487814}.search-box input{width:100%;height:100%;color:var(--heading);background:0 0;border:0;outline:0;font-size:12px}.search-box input::placeholder{color:var(--muted)}.search-box svg{flex:none;margin-right:10px}.search-content{width:min(100%,1440px);margin:24px auto 0}.filter-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2vw,24px);display:grid}.filter-field{gap:6px;display:grid}.filter-field label{color:#334155;font-size:11px;font-weight:500}.select-wrap{position:relative}.select-wrap select{appearance:none;border:1px solid var(--border);width:100%;height:40px;color:var(--body);background:#fffffff5;border-radius:8px;outline:0;padding:0 34px 0 12px}.select-wrap svg{pointer-events:none;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.filter-footer{justify-content:flex-end;min-height:32px;padding-top:8px;display:flex}.selection-notice{color:#047857;background:#effaf4;border:1px solid #a7dfc4;border-radius:7px;align-items:center;gap:8px;min-height:38px;margin-bottom:8px;padding:8px 12px;font-size:11px;display:flex}.selection-notice.is-error{color:#c2410c;background:#fff7ed;border-color:#fdba74;flex-direction:column;align-items:flex-start;gap:1px}.prerequisite-sidebar{z-index:55;color:#713f12;background:#fffbeb;border:1px solid #f3cf72;border-left:4px solid #e5a400;border-radius:10px;gap:10px;width:min(370px,100vw - 32px);padding:16px;display:grid;position:fixed;top:76px;right:20px;box-shadow:0 16px 40px #78530c2e}.prerequisite-sidebar-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.prerequisite-sidebar-header>div{gap:1px;display:grid}.prerequisite-sidebar-header strong{color:#713f12;font-size:13px}.prerequisite-sidebar-header span{color:#a16207;font-size:11px;font-weight:700}.prerequisite-sidebar-header button{color:#a16207;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;width:30px;height:30px;display:grid}.prerequisite-sidebar-header button:hover{background:#e5a4001a}.prerequisite-sidebar p{color:#854d0e;margin:0;font-size:11px;font-weight:600}.prerequisite-sidebar ul{color:#854d0e;background:#ffffffad;border:1px solid #ca8a0433;border-radius:7px;gap:5px;margin:0;padding:10px 12px 10px 28px;font-size:11px;display:grid}.prerequisite-sidebar small{color:#a16207;font-size:10px}.text-action{color:var(--secondary);background:0 0;border:0;align-items:center;gap:6px;padding:4px 0;font-size:11px;display:inline-flex}.text-action:hover{color:var(--primary-dark)}.results-heading{color:var(--heading);margin:12px 0 8px;font-size:13px;font-weight:700}.course-results-list{gap:10px;display:grid}.course-card{border:1px solid var(--border);min-height:124px;box-shadow:var(--shadow-card);background:linear-gradient(135deg,#fff 0%,#fbfdff 100%);border-radius:10px;grid-template-columns:minmax(240px,.7fr) minmax(0,2.3fr);padding:18px 46px 18px 20px;transition:border-color .15s,box-shadow .15s;display:grid;position:relative}.course-card:hover{border-color:#bed0e6;box-shadow:0 7px 22px #2348781a}.course-identity{align-self:start;padding-top:2px;padding-right:24px}.course-code-row{align-items:center;gap:10px;display:flex}.course-code{color:var(--primary-dark);font-size:16px;font-weight:700}.credit-badge{background:var(--info-bg);color:var(--primary);border-radius:999px;padding:3px 8px;font-size:10px;font-weight:500}.course-title{color:var(--heading);margin:8px 0 0;font-size:14px;font-weight:700}.course-title-en{color:#52627a;margin-top:3px;font-size:10px}.course-card-details{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:clamp(16px,2vw,28px);display:grid}.detail-group{gap:7px;display:grid}.detail-label,.detail-line{align-items:center;gap:8px;display:flex}.detail-label{color:#35435a;font-size:11px;font-weight:600}.detail-label svg,.detail-line svg{color:var(--primary);flex:none}.detail-line{color:var(--secondary);font-size:11px}.detail-icon-spacer{flex:0 0 14px;width:14px}.bookmark-button{width:28px;height:28px;color:var(--secondary);background:0 0;border:0;place-items:center;display:grid;position:absolute;top:8px;right:12px}.bookmark-button.is-bookmarked{color:var(--primary)}.result-pagination{color:var(--secondary);justify-content:center;align-items:center;gap:12px;margin-top:14px;font-size:11px;display:flex}.result-pagination button{border:1px solid var(--border);width:30px;height:30px;color:var(--body);background:#fff;border-radius:6px;place-items:center;display:grid}.result-pagination button:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-subtle)}.result-pagination button:disabled{cursor:not-allowed;opacity:.45}.empty-card{border:1px solid var(--border);min-height:124px;color:var(--secondary);border-radius:8px;place-items:center;display:grid}.center-action{justify-content:center;margin-top:12px;display:flex}.outline-button,.secondary-button,.icon-button{background:#fff;border-radius:6px;justify-content:center;align-items:center;gap:7px;height:34px;font-size:11px;font-weight:500;display:inline-flex}.outline-button{color:var(--primary-dark);border:1px solid #7da6ef;padding:0 14px}.outline-button:hover{border-color:var(--primary);background:#f3f7ff}.outline-button:disabled{cursor:not-allowed;opacity:.45}.secondary-button{border:1px solid var(--border);color:var(--body);padding:0 14px}.secondary-button:hover{border-color:var(--border-strong);background:var(--surface-subtle)}.secondary-button:disabled{cursor:not-allowed;opacity:.45}.icon-button{border:1px solid var(--border);width:34px;color:var(--body)}.route-page{background:linear-gradient(#fff 0%,#fbfdff 100%);min-height:calc(100dvh - 58px);padding:clamp(22px,3vw,48px)}.page-header{justify-content:space-between;align-items:center;gap:18px;min-height:42px;display:flex}.page-header h1,.guide-title{color:var(--heading);margin:0;font-size:16px;font-weight:700}.header-actions{align-items:center;gap:8px;display:flex}.schedule-menu-wrap{position:relative}.schedule-menu{z-index:8;border:1px solid var(--border);background:#fff;border-radius:7px;width:172px;padding:5px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 28px #0f172a24}.schedule-menu button{color:#b91c1c;text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:7px;width:100%;padding:8px 9px;font-size:11px;display:flex}.schedule-menu button:hover:not(:disabled){background:#fef2f2}.schedule-menu button:disabled{cursor:not-allowed;opacity:.45}.summary-row{grid-template-columns:2fr 1fr 1fr;gap:14px;margin-top:16px;display:grid}.enrollment-summary,.conflict-summary,.travel-summary{border-radius:7px;min-height:64px}.enrollment-summary{background:linear-gradient(135deg,#f5f8fc,#f0f7ff);border:1px solid #e1eaf5;grid-template-columns:repeat(2,1fr);display:grid}.summary-stat{align-content:center;gap:2px;padding:10px 16px;display:grid}.summary-stat+.summary-stat{border-left:1px solid #edf1f5}.summary-label{color:var(--secondary);align-items:center;gap:7px;font-size:10px;display:flex}.summary-value{color:var(--heading);font-size:13px;font-weight:700}.conflict-summary,.travel-summary{align-content:center;gap:2px;padding:10px 16px;display:grid}.conflict-summary{background:var(--warning-bg);border:1px solid #ea580c1a}.travel-summary{background:#fffbeb;border:1px solid #ca8a041f}.summary-action{width:100%;color:inherit;font:inherit;text-align:left;border:1px solid #0000;transition:border-color .15s,box-shadow .15s}.summary-action:hover:not(:disabled),.summary-action.is-active{border-color:#fdba74}.summary-action.is-active{box-shadow:0 0 0 2px #ea580c14}.summary-action:disabled{cursor:default}.summary-hint{color:#c2410c;margin-top:2px;font-size:9px}.conflict-summary .summary-label,.conflict-summary .summary-value{color:var(--warning)}.travel-summary .summary-label,.travel-summary .summary-value,.travel-summary .summary-hint{color:#a16207}.travel-summary:hover:not(:disabled),.travel-summary.is-active{border-color:#facc15}.travel-summary.is-active{box-shadow:0 0 0 2px #ca8a041a}.schedule-check-result{border:1px solid;border-radius:7px;align-items:flex-start;gap:9px;margin-top:12px;padding:10px 13px;font-size:11px;display:flex}.schedule-check-result.is-clear{color:#047857;background:#effaf4;border-color:#a7dfc4}.schedule-check-result.has-conflict{color:#c2410c;background:#fff7ed;border-color:#fdba74}.schedule-check-result strong{margin-bottom:2px;display:block}.campus-travel-warning{color:#854d0e;background:#fffbeb;border:1px solid #facc15;border-radius:7px;align-items:flex-start;gap:10px;margin-top:12px;padding:12px 14px;font-size:11px;display:flex}.campus-travel-warning>svg{color:#ca8a04;flex:none}.campus-travel-warning strong{color:#713f12;font-size:12px;display:block}.campus-travel-warning p{margin:2px 0 0}.campus-travel-warning-list{gap:7px;margin-top:8px;display:grid}.campus-travel-warning-item{background:#ffffffb3;border:1px solid #ca8a0447;border-radius:6px;gap:2px;padding:8px 10px;display:grid}.campus-travel-warning-item b{color:#713f12}.campus-travel-warning-reason{color:#a16207;margin-top:2px;font-weight:600}.conflict-detail-group+.conflict-detail-group{margin-top:10px}.conflict-detail-item{background:#ffffff9e;border:1px solid #ea580c33;border-radius:6px;gap:2px;margin-top:7px;padding:8px 10px;display:grid}.conflict-detail-item b{color:#9a3412}.conflict-detail-item span{color:#c2410c}.table-scroll,.timetable-scroll{border:1px solid var(--border);scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin;background:#fff;border-radius:10px;width:100%;overflow-x:auto}.timetable-scroll{margin-top:14px}.timetable{min-width:940px}.timetable-header,.timetable-body{grid-template-columns:72px repeat(7,minmax(110px,1fr));display:grid}.timetable-header{background:#f2f7fd;height:34px}.timetable-header>div{border-right:1px solid var(--border);color:#29364d;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.timetable-header>div:last-child{border-right:0}.timetable-body{grid-template-rows:repeat(9,48px);position:relative}.time-cell,.day-cell{border-top:1px solid var(--border);border-right:1px solid var(--border);min-width:0}.time-cell{color:#334155;justify-content:center;align-items:flex-start;padding-top:5px;font-size:10px;display:flex}.day-cell:nth-child(8n){border-right:0}.course-block{z-index:2;color:#1f2937;border:1px solid;border-radius:5px;align-self:start;margin-left:4px;margin-right:4px;padding:8px;font-size:10px;line-height:1.45;overflow:hidden}.course-block strong{margin-bottom:2px;font-size:11px;display:block}.event-blue{background:#e5eefd;border-color:#93c5fd}.event-yellow{background:#fef6de;border-color:#f6d36f}.event-purple{background:#efe8fb;border-color:#c4a7f3}.event-green{background:#e2f4ea;border-color:#9edbc0}.event-rose{background:#fce4e9;border-color:#f5a9b7}.course-legend{color:#42506a;flex-wrap:wrap;gap:10px 24px;padding:12px 8px 0;font-size:10px;display:flex}.legend-item{align-items:center;gap:7px;display:inline-flex}.legend-remove{width:20px;height:20px;color:var(--muted);background:0 0;border:0;border-radius:50%;place-items:center;margin-left:1px;display:grid}.legend-remove:hover{color:#dc2626;background:#fef2f2}.legend-dot{border-radius:50%;width:10px;height:10px}.dot-blue{background:#bfdbfe}.dot-yellow{background:#fde68a}.dot-purple{background:#d8b4fe}.dot-green{background:#a7e3c6}.dot-rose{background:#fda4af}.schedule-empty{color:var(--secondary);text-align:center;padding:14px 8px 0;font-size:11px}.course-dialog-backdrop{z-index:60;background:#0f172a6b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.course-dialog{border:1px solid var(--border);background:#fff;border-radius:14px;flex-direction:column;width:min(680px,100%);max-height:min(780px,100vh - 40px);display:flex;overflow:hidden;box-shadow:0 24px 64px #0f172a3d}.course-dialog-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px 14px;display:flex}.course-dialog-header h2{color:var(--heading);margin:0;font-size:16px}.course-dialog-header p{color:var(--secondary);margin:2px 0 0;font-size:11px}.course-dialog-header>button{width:30px;height:30px;color:var(--secondary);background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.course-dialog-header>button:hover{background:var(--surface-subtle);color:var(--heading)}.group-selection-dialog{width:min(720px,100%)}.group-option-list{gap:8px;padding:14px 20px;display:grid;overflow-y:auto}.group-option{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:9px;align-items:flex-start;gap:10px;padding:11px 12px;display:flex}.group-option:hover,.group-option.is-selected{background:#f3f7ff;border-color:#7da6ef}.group-option>input{accent-color:var(--primary);margin-top:3px}.group-option-content{flex:1;gap:6px;min-width:0;display:grid}.group-option-content>strong{color:var(--primary-dark);font-size:12px}.group-session-line{color:var(--body);gap:1px;font-size:11px;display:grid}.group-session-line small{color:var(--secondary);font-size:10px}.group-dialog-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.selected-course-list{border-bottom:1px solid var(--border);background:var(--surface-subtle);gap:7px;max-height:190px;padding:12px 20px;display:grid;overflow-y:auto}.manager-search{border:1px solid var(--border-strong);height:42px;color:var(--secondary);border-radius:7px;align-items:center;gap:9px;margin:14px 20px 8px;padding:0 12px;display:flex}.manager-search:focus-within{border-color:#7daeff;box-shadow:0 0 0 2px #2563eb1a}.manager-search input{width:100%;height:100%;color:var(--body);border:0;outline:0}.manager-results{gap:7px;min-height:90px;padding:4px 20px 18px;display:grid;overflow-y:auto}.manager-limit-notice{color:#c2410c;background:#fff7ed;border:1px solid #fdba74;border-radius:6px;margin:0 20px 8px;padding:8px 10px;font-size:10px}.manager-course-row{border:1px solid var(--border);background:#fff;border-radius:7px;justify-content:space-between;align-items:center;gap:14px;min-height:54px;padding:9px 11px;display:flex}.manager-course-row>div{gap:1px;min-width:0;display:grid}.manager-course-row strong{color:var(--primary-dark);font-size:12px}.manager-course-row span{color:var(--heading);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.manager-course-row small{color:var(--secondary);font-size:10px}.manager-section-picker{width:max-content;color:var(--secondary);align-items:center;gap:6px;margin-top:4px;font-size:10px;display:flex}.manager-section-picker select{border:1px solid var(--border);min-width:58px;height:26px;color:var(--body);background:#fff;border-radius:5px;font-size:10px}.manager-add-button,.manager-remove-button{border-radius:6px;flex:none;justify-content:center;align-items:center;gap:5px;height:30px;padding:0 10px;font-size:10px;font-weight:600;display:inline-flex}.manager-add-button{color:var(--primary-dark);background:#eff6ff;border:1px solid #93c5fd}.manager-remove-button{color:#dc2626;background:#fff;border:1px solid #fecaca}.manager-hint{color:var(--secondary);text-align:center;margin:24px 0;font-size:11px}.manager-empty-selection{padding:32px 20px}.exam-table-wrap{margin-top:14px}.exam-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:900px}.exam-table th,.exam-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;height:42px;padding:0 14px}.exam-table th{color:#29364d;background:#f2f7fd;height:36px;font-size:11px;font-weight:600}.exam-table td{color:#35435a;font-size:11px}.exam-table tbody tr:last-child td{border-bottom:0}.exam-table .exam-empty{height:110px;color:var(--secondary);text-align:center}.exam-table th:first-child,.exam-table td:first-child{width:16%}.exam-table th:nth-child(2),.exam-table td:nth-child(2){width:15%}.exam-table th:nth-child(3),.exam-table td:nth-child(3){width:14%}.exam-table th:nth-child(4),.exam-table td:nth-child(4){width:32%}.exam-table th:nth-child(5),.exam-table td:nth-child(5){width:14%}.exam-table th:nth-child(6),.exam-table td:nth-child(6){text-align:center;width:9%}.exam-reminder{border:1px solid var(--info-border);background:var(--info-bg);color:#3b5579;border-radius:7px;align-items:center;gap:12px;min-height:58px;margin-top:12px;padding:10px 14px;display:flex}.exam-reminder>svg{color:var(--primary);flex:none}.exam-reminder strong{color:var(--primary-dark);font-size:12px;display:block}.exam-reminder p{margin:1px 0 0;font-size:11px}.guide-title{align-items:center;min-height:42px;display:flex}.guide-layout{grid-template-columns:212px minmax(0,1fr);min-height:500px;margin-top:10px;display:grid}.guide-sidebar{border-right:1px solid var(--border);padding:2px 14px 0 0}.guide-nav-item{color:#35435a;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;width:100%;min-height:38px;padding:8px 10px;font-size:11px;line-height:1.45;display:flex}.guide-nav-item svg{flex:none}.guide-nav-item:hover{background:#f8fafc}.guide-nav-item.is-active{color:var(--heading);background:linear-gradient(90deg,#edf4ff,#f2fbf9);font-weight:600}.guide-main{min-width:0;padding:0 0 8px 20px}.section-title{color:var(--heading);margin:0 0 10px;font-size:13px;font-weight:700}.document-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.document-card{border:1px solid var(--border);background:linear-gradient(145deg,#fff,#fbfdff);border-radius:9px;grid-template-rows:auto 1fr auto;min-height:104px;padding:14px;display:grid;box-shadow:0 3px 12px #2348780d}.document-card-heading{align-items:flex-start;gap:10px;display:flex}.document-card-heading svg{flex:none}.document-card h3{color:var(--heading);margin:0;font-size:11px;font-weight:600}.document-card p{color:var(--secondary);margin:2px 0 0;font-size:9px}.file-type{color:var(--secondary);align-self:end;align-items:center;gap:6px;margin-top:10px;font-size:9px;display:flex}.icon-red{color:#ef4444}.icon-blue{color:var(--primary)}.icon-green{color:#16a36a}.announcements-section{margin-top:22px}.announcement-list{display:grid}.announcement-row{color:#35435a;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;min-height:34px;font-size:11px;display:grid}.announcement-row svg{color:var(--primary-dark)}.announcement-date{color:var(--secondary);white-space:nowrap;padding-left:18px;font-size:10px}.announcement-action{justify-content:center;margin-top:20px;display:flex}.campus-map-main{padding-bottom:18px}.campus-map-intro{color:var(--secondary);margin:-4px 0 14px;font-size:11px}.campus-map-list{gap:18px;display:grid}.campus-map-card{border:1px solid var(--border);box-shadow:var(--shadow-card);background:#fff;border-radius:10px;overflow:hidden}.campus-map-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:14px;padding:13px 15px;display:flex}.campus-map-heading h3{color:var(--heading);margin:0;font-size:13px}.campus-map-heading p{color:var(--secondary);margin:2px 0 0;font-size:10px}.campus-map-heading svg{color:var(--primary);flex:none}.campus-map-link{background:var(--surface-subtle);display:block}.campus-map-image{width:100%;height:auto;display:block}@media (width<=1024px){.page-canvas{padding:0}.app-shell{min-height:100dvh}.home-page{padding-left:28px;padding-right:28px}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px}.course-card{grid-template-columns:minmax(240px,.85fr) minmax(390px,1.15fr)}.course-card-details,.document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=767px){.page-canvas{padding:0}.app-shell{border-left:0;border-right:0;border-radius:0;min-height:100dvh}.prerequisite-sidebar{width:auto;top:70px;left:12px;right:12px}.top-nav{grid-template-columns:48px repeat(4,minmax(0,1fr));min-width:320px;height:58px}.nav-item{text-align:center;white-space:normal;padding:0 4px;font-size:10px;line-height:1.25}.nav-item.is-active:after{left:12%;right:12%}.home-page{min-height:calc(100dvh - 58px);padding:32px 16px 28px}.search-hero h1{font-size:22px;line-height:30px}.search-box{border-radius:9px;height:48px;margin-top:14px}.search-content{margin-top:18px}.filter-grid{grid-template-columns:1fr;gap:12px}.select-wrap select{height:44px}.course-card{grid-template-columns:1fr;gap:18px;min-height:0;padding:16px 42px 16px 16px}.course-identity{padding-right:0}.course-card-details{grid-template-columns:1fr;gap:14px}.route-page{min-height:calc(100dvh - 58px);padding:20px 14px 28px}.page-header{flex-direction:column;align-items:flex-start}.header-actions{flex-wrap:wrap;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.header-actions>button,.header-actions .schedule-menu-wrap,.header-actions .icon-button{width:100%}.summary-row,.enrollment-summary{grid-template-columns:1fr}.summary-stat+.summary-stat{border-top:1px solid #edf1f5;border-left:0}.course-dialog-backdrop{align-items:end;padding:0}.course-dialog{border-bottom:0;border-left:0;border-right:0;border-radius:12px 12px 0 0;width:100%;max-height:92vh}.course-dialog-header{padding:16px}.selected-course-list{padding-left:16px;padding-right:16px}.manager-search{margin-left:16px;margin-right:16px}.manager-results{padding-left:16px;padding-right:16px}.manager-limit-notice{margin-left:16px;margin-right:16px}.manager-course-row span{white-space:normal}.guide-layout{grid-template-columns:1fr}.guide-sidebar{border-right:0;border-bottom:1px solid var(--border);padding:0 0 14px}.guide-main{padding:20px 0 0}.document-grid{grid-template-columns:1fr}.announcement-row{grid-template-columns:14px minmax(0,1fr);padding:8px 0}.announcement-date{grid-column:2;padding:2px 0 0}}@media (width<=420px){.home-page,.route-page{padding-left:12px;padding-right:12px}.header-actions{grid-template-columns:1fr}.course-code-row{flex-direction:column;align-items:flex-start;gap:5px}.course-title{font-size:13px}.group-dialog-actions{padding-left:16px;padding-right:16px}.group-dialog-actions>button{flex:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
