:root{--mcmaster-maroon:#7a003c;--mcmaster-maroon-hover:#5c002d;--mcmaster-gold:#fdbf57;--mcmaster-gold-dark:#c68a1e;--mcmaster-dark:#1a1a1a;--bg-page:#f4f6f8;--bg-surface:#fff;--bg-subtle:#e2e8f0;--bg-sidebar:#fff;--text-primary:#1a202c;--text-secondary:#2d3748;--text-muted:#4a5568;--text-link:#7a003c;--border-light:#e2e8f0;--border-medium:#cbd5e0;--border-dark:#a0aec0;--badge-qp-bg:#ebf8ff;--badge-qp-text:#1a365d;--badge-qp-border:#90cdf4;--color-qp-title:#1a365d;--color-qp-hover:#2b6cb0;--badge-ms-bg:#f0fff4;--badge-ms-text:#1c4532;--badge-ms-border:#9ae6b4;--color-ms-title:#1c4532;--color-ms-hover:#276749;--badge-er-bg:#fefcbf;--badge-er-text:#744210;--badge-er-border:#f6e05e;--color-er-title:#744210;--color-er-hover:#b7791f;--badge-book-bg:#faf5ff;--badge-book-text:#441d82;--badge-book-border:#d6bcfa;--color-book-title:#441d82;--color-book-hover:#6b46c1;--font-family:"Roboto", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;--font-heading:"Roboto", "Poppins", sans-serif;--radius-sm:4px;--radius-md:6px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-page);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5;overflow-x:hidden}a{color:var(--text-link);text-decoration:none}a:hover{text-decoration:underline}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-container{flex-direction:column;height:100vh;min-height:100vh;display:flex}.header-top{background-color:var(--mcmaster-maroon);color:#fff;border-bottom:4px solid var(--mcmaster-gold);height:64px;box-shadow:var(--shadow-sm);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 24px;display:flex}.brand-section{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:16px;display:flex}.brand-logo-text{font-family:var(--font-heading);letter-spacing:-.3px;color:#fff;font-size:20px;font-weight:800}.brand-logo-accent{color:var(--mcmaster-gold);font-weight:400}.brand-tagline{color:#ffffffe6;border-left:1px solid #ffffff4d;flex-direction:column;padding-left:14px;font-size:12px;display:flex}.brand-tagline .title{color:#fff;font-weight:700}.header-coverage-badge{border-radius:var(--radius-sm);color:#fff;background:#0000004d;border:1px solid #ffffff40;align-items:center;gap:8px;padding:6px 14px;font-size:13px;display:flex}.header-coverage-badge strong{color:var(--mcmaster-gold);font-weight:700}.search-banner{border-bottom:2px solid var(--border-medium);background:#fff;flex-direction:column;flex-shrink:0;gap:12px;padding:14px 24px;display:flex}.search-row{align-items:center;gap:12px;max-width:1100px;display:flex}.search-input-wrapper{flex:1;position:relative}.search-input{width:100%;font-size:14px;font-family:var(--font-family);border:2px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);outline:none;padding:10px 16px;transition:border-color .2s}.search-input:focus{border-color:var(--mcmaster-maroon)}.search-button{background-color:var(--mcmaster-maroon);color:#fff;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:700;font-family:var(--font-heading);white-space:nowrap;border:none;padding:10px 22px;transition:background-color .2s}.search-button:hover{background-color:var(--mcmaster-maroon-hover)}.filter-controls-container{flex-direction:column;gap:8px;max-width:1100px;display:flex}.filter-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.filter-group-label{text-transform:uppercase;color:var(--text-muted);letter-spacing:.6px;font-size:12px;font-weight:800}.filter-pills{gap:6px;display:flex}.filter-btn{border:1px solid var(--border-medium);background:var(--bg-surface);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font-family);white-space:nowrap;padding:5px 13px;transition:all .15s}.filter-btn:hover{border-color:var(--mcmaster-maroon);background:var(--bg-subtle)}.filter-btn.active{background:var(--mcmaster-maroon);color:#fff;border-color:var(--mcmaster-maroon)}.filter-select{border:1px solid var(--border-medium);background:var(--bg-surface);color:var(--text-primary);border-radius:var(--radius-sm);font-size:13px;font-weight:600;font-family:var(--font-family);cursor:pointer;outline:none;padding:6px 12px}.filter-select:focus{border-color:var(--mcmaster-maroon)}.filter-reset-btn{color:var(--mcmaster-maroon);cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:12px;font-weight:700;text-decoration:underline}.main-layout{flex:1;display:flex;overflow:hidden}.sidebar{background:var(--bg-sidebar);border-right:2px solid var(--border-medium);flex-shrink:0;width:300px;padding:16px 0;overflow-y:auto}.sidebar-title{text-transform:uppercase;color:var(--text-muted);letter-spacing:.6px;border-bottom:2px solid var(--border-light);margin-bottom:8px;padding:0 16px 12px;font-size:12px;font-weight:800}.tree-node{padding:1px 6px}.tree-item{cursor:pointer;border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;color:var(--text-primary);align-items:center;gap:8px;width:100%;padding:7px 10px;font-size:13px;font-weight:600;transition:background-color .15s;display:flex}.tree-item:hover{background-color:var(--bg-subtle);color:var(--mcmaster-maroon)}.tree-item.selected{color:var(--mcmaster-maroon);background-color:#7a003c1f;font-weight:800}.tree-indicator{text-align:center;width:16px;color:var(--text-muted);pointer-events:none;flex-shrink:0;font-size:13px;font-weight:800}.tree-name{white-space:nowrap;text-overflow:ellipsis;pointer-events:none;overflow:hidden}.tree-children{border-left:2px solid var(--border-medium);margin-left:14px;padding-left:8px}.content-area{background-color:var(--bg-page);flex:1;padding:24px 32px;overflow-y:auto}.breadcrumb-container{background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;margin-bottom:20px;padding:10px 16px;font-size:13px;display:flex}.breadcrumb-trail{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;display:flex}.breadcrumb-link{color:var(--text-link);cursor:pointer}.breadcrumb-link:hover{text-decoration:underline}.breadcrumb-separator{color:var(--text-muted)}.result-summary{color:var(--text-muted);font-size:13px;font-weight:600}.result-summary strong{color:var(--text-primary);font-weight:800}.interactive-wizard-card{background:var(--bg-surface);border:1px solid var(--border-medium);border-top:4px solid var(--mcmaster-maroon);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:28px;padding:28px}.wizard-breadcrumb{border-bottom:1px solid var(--border-medium);justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:12px;display:flex}.wizard-back-btn{background:var(--bg-subtle);border:1px solid var(--border-medium);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;padding:6px 14px;font-size:13px;font-weight:700;transition:all .15s}.wizard-back-btn:hover{background:var(--mcmaster-maroon);color:#fff;border-color:var(--mcmaster-maroon)}.wizard-trail-text{color:var(--text-secondary);font-size:14px}.wizard-trail-text strong{color:var(--mcmaster-maroon)}.wizard-trail-text .highlight{color:#2b6cb0;font-weight:700}.wizard-step h2{font-family:var(--font-heading);color:var(--text-primary);margin-bottom:16px;font-size:18px;font-weight:800}.wizard-button-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.wizard-option-btn{background:var(--bg-surface);border:2px solid var(--border-medium);border-left:4px solid var(--mcmaster-maroon);border-radius:var(--radius-sm);color:var(--text-primary);text-align:left;cursor:pointer;padding:12px 16px;font-size:14px;font-weight:700;transition:all .15s}.wizard-option-btn:hover{box-shadow:var(--shadow-sm);border-color:var(--mcmaster-maroon);background:var(--badge-qp-bg);color:var(--badge-qp-text);transform:translateY(-2px)}.wizard-option-btn.primary{background:var(--mcmaster-maroon);color:#fff;border-color:var(--mcmaster-maroon)}.wizard-option-btn.primary:hover{background:var(--mcmaster-maroon-hover);color:#fff}.wizard-option-btn.year{text-align:center;border-left-width:2px;font-size:15px}.about-container{max-width:900px;margin:0 auto}.about-card{background:var(--bg-surface);border:1px solid var(--border-medium);border-top:4px solid var(--mcmaster-maroon);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:36px}.about-title{font-family:var(--font-heading);color:var(--mcmaster-maroon);margin-bottom:12px;font-size:26px;font-weight:800}.about-lead{color:var(--text-secondary);font-size:16px;font-weight:500;line-height:1.6}.about-divider{border:none;border-top:1px solid var(--border-medium);margin:24px 0}.about-section{margin-bottom:24px}.about-section h2{font-family:var(--font-heading);color:var(--text-primary);margin-bottom:10px;font-size:18px;font-weight:800}.about-section p{color:var(--text-secondary);font-size:14px;line-height:1.6}.team-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:14px;display:grid}.team-card{background:var(--bg-page);border:1px solid var(--border-medium);border-left:4px solid var(--mcmaster-maroon);border-radius:var(--radius-sm);padding:16px}.team-name{color:var(--text-primary);font-size:16px;font-weight:800}.team-role{color:var(--text-muted);margin-top:2px;font-size:13px;font-weight:600}.contact-box{background:var(--badge-qp-bg);border:1px solid var(--badge-qp-border);border-radius:var(--radius-sm);color:var(--badge-qp-text);margin-top:12px;padding:14px 18px;font-size:14px}.contact-box a{color:var(--mcmaster-maroon);font-weight:800}.footer-bottom{background:var(--mcmaster-dark);color:#cbd5e0;border-top:2px solid var(--mcmaster-gold);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 24px;font-size:13px;display:flex}.footer-bottom strong{color:#fff}.footer-links{align-items:center;gap:10px;display:flex}.footer-link{color:var(--mcmaster-gold);cursor:pointer;font-weight:600}.footer-link:hover{color:#fff;text-decoration:underline}.footer-sep{color:#4a5568}.welcome-container{max-width:1100px;margin:0 auto}.welcome-hero{background:var(--bg-surface);border:1px solid var(--border-medium);border-top:4px solid var(--mcmaster-maroon);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:28px;padding:32px}.welcome-hero h1{font-family:var(--font-heading);color:var(--mcmaster-maroon);margin-bottom:8px;font-size:24px;font-weight:800}.welcome-hero p{color:var(--text-secondary);font-size:15px;line-height:1.6}.section-title{font-family:var(--font-heading);color:var(--text-primary);border-bottom:3px solid var(--mcmaster-maroon);margin-bottom:16px;padding-bottom:8px;font-size:18px;font-weight:800}.subject-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:36px;display:grid}.subject-card{background:var(--bg-surface);border:1px solid var(--border-medium);border-left:4px solid var(--mcmaster-maroon);border-radius:var(--radius-sm);cursor:pointer;padding:16px 20px;transition:transform .15s,box-shadow .15s,border-color .15s}.subject-card:hover{box-shadow:var(--shadow-md);border-color:var(--mcmaster-maroon);transform:translateY(-2px)}.subject-card-title{font-family:var(--font-heading);color:var(--text-primary);margin-bottom:4px;font-size:16px;font-weight:800}.subject-card-subtitle{color:var(--text-muted);font-size:12px;font-weight:600}.file-list{background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);overflow-x:auto}.file-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.file-table th{background-color:var(--bg-subtle);color:var(--text-primary);text-transform:uppercase;letter-spacing:.6px;border-bottom:2px solid var(--border-medium);padding:12px 16px;font-size:11px;font-weight:800}.file-table td{border-bottom:1px solid var(--border-light);color:var(--text-primary);vertical-align:middle;padding:12px 16px}.file-table tr:hover td{background-color:#7a003c08}.file-title-cell a{font-size:14px;font-weight:800;transition:color .15s}.file-title-cell a.title-qp{color:var(--color-qp-title)}.file-title-cell a.title-qp:hover{color:var(--color-qp-hover);text-decoration:underline}.file-title-cell a.title-ms{color:var(--color-ms-title)}.file-title-cell a.title-ms:hover{color:var(--color-ms-hover);text-decoration:underline}.file-title-cell a.title-er{color:var(--color-er-title)}.file-title-cell a.title-er:hover{color:var(--color-er-hover);text-decoration:underline}.file-title-cell a.title-book{color:var(--color-book-title)}.file-title-cell a.title-book:hover{color:var(--color-book-hover);text-decoration:underline}.file-title-cell a.title-default{color:var(--text-primary)}.file-title-cell a.title-default:hover{color:var(--mcmaster-maroon);text-decoration:underline}.file-path-subtext{color:var(--text-muted);word-break:break-word;margin-top:3px;font-size:11px;font-weight:600}.curriculum-tag{background-color:var(--bg-subtle);color:var(--text-primary);border:1px solid var(--border-medium);white-space:nowrap;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:800;display:inline-block}.doc-badge{text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;border-radius:4px;padding:3px 9px;font-size:11px;font-weight:800;display:inline-block}.doc-badge.qp{background-color:var(--badge-qp-bg);color:var(--badge-qp-text);border:1px solid var(--badge-qp-border)}.doc-badge.ms{background-color:var(--badge-ms-bg);color:var(--badge-ms-text);border:1px solid var(--badge-ms-border)}.doc-badge.er{background-color:var(--badge-er-bg);color:var(--badge-er-text);border:1px solid var(--badge-er-border)}.doc-badge.book{background-color:var(--badge-book-bg);color:var(--badge-book-text);border:1px solid var(--badge-book-border)}.no-results-box{background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius-sm);text-align:center;color:var(--text-muted);padding:48px}.no-results-box h3{color:var(--text-primary);margin-bottom:8px;font-size:16px;font-weight:700}@media (width<=768px){.app-container{height:auto;min-height:100vh}.main-layout{flex-direction:column;overflow:visible}.sidebar{display:none}.header-top{gap:8px;height:auto;padding:10px 14px}.brand-logo-text{font-size:16px}.brand-tagline{display:none}.header-coverage-badge{white-space:nowrap;padding:4px 8px;font-size:11px}.search-banner{gap:12px;padding:12px 14px}.search-row{flex-direction:column;gap:8px;width:100%}.search-input-wrapper{width:100%}.search-input{width:100%;padding:10px 12px;font-size:13px}.search-button{text-align:center;width:100%;padding:10px}.filter-controls-container{gap:12px;width:100%}.filter-row{flex-direction:column;align-items:stretch;gap:6px}.filter-group-label{margin-bottom:2px;font-size:11px;margin-left:0!important}.filter-pills{white-space:nowrap;-webkit-overflow-scrolling:touch;width:100%;padding-bottom:4px;overflow-x:auto}.filter-btn{flex-shrink:0;padding:6px 12px;font-size:12px}.filter-select{width:100%;padding:8px 12px;font-size:13px;margin-left:0!important}.filter-reset-btn{align-self:flex-start;margin-top:4px;margin-left:0}.content-area{padding:12px 14px;overflow-y:visible}.welcome-hero{margin-bottom:20px;padding:20px 16px}.welcome-hero h1{font-size:18px}.welcome-hero p{font-size:13px}.welcome-hero button{text-align:center;width:100%}.wizard-button-grid{grid-template-columns:1fr}.about-card{padding:20px 16px}.footer-bottom{text-align:center;flex-direction:column;gap:8px;padding:14px 16px}.section-title{margin-bottom:12px;font-size:16px}.subject-grid{grid-template-columns:1fr;gap:10px}.subject-card{padding:14px 16px}.breadcrumb-container{flex-direction:column;align-items:flex-start;gap:6px;padding:10px 12px}.file-list{-webkit-overflow-scrolling:touch;overflow-x:auto}.file-table{min-width:680px}}
