:root{--color-primary: #002147;--color-primary-hover: #003366;--color-accent: #872434;--color-michaelmas: #872434;--color-hilary: #003875;--color-trinity: #005A3C;--color-michaelmas-faded: #87243460;--color-hilary-faded: #00387560;--color-trinity-faded: #005A3C60;--color-background: #ffffff;--color-surface: #f5f7fa;--color-border: #002147;--color-text: #001833;--color-text-muted: #4a5f7a;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: "Courier New", Courier, monospace;--font-size-base: 14px;--font-size-sm: 12px;--font-size-lg: 16px;--font-size-xl: 20px;--font-size-xxl: 24px;--line-height: 1.2;--line-height-tight: 1;--spacing-xs: 2px;--spacing-sm: 4px;--spacing-md: 8px;--spacing-lg: 12px;--spacing-xl: 16px;--border-width: 1px;--border-width-thick: 2px;--border-width-focus: 3px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--font-size-base);line-height:var(--line-height);-webkit-text-size-adjust:100%}body{font-family:var(--font-family);color:var(--color-text);background-color:var(--color-background);min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:var(--line-height-tight);margin-bottom:var(--spacing-md);letter-spacing:-.02em}h1{font-size:var(--font-size-xxl);text-transform:uppercase}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}p{margin-bottom:var(--spacing-md)}p:last-child{margin-bottom:0}a{color:var(--color-primary);text-decoration:underline;text-decoration-thickness:var(--border-width);text-underline-offset:2px}a:hover{color:var(--color-primary-hover);text-decoration-thickness:var(--border-width-thick)}a:focus{outline:var(--border-width-focus) solid var(--color-primary);outline-offset:0}button{font-family:inherit;font-size:inherit;line-height:inherit;cursor:pointer;border:var(--border-width) solid var(--color-border);background:var(--color-background);padding:var(--spacing-sm) var(--spacing-md);color:inherit;text-transform:uppercase;letter-spacing:.05em;font-weight:700}button:hover{background:var(--color-primary);color:var(--color-background)}button:focus{outline:var(--border-width-focus) solid var(--color-primary);outline-offset:-3px}button:disabled{cursor:not-allowed;opacity:.5}input,textarea,select{font-family:var(--font-family-mono);font-size:inherit;line-height:inherit;color:inherit;border:var(--border-width) solid var(--color-border);padding:var(--spacing-sm) var(--spacing-md);width:100%;background-color:var(--color-background)}input:focus,textarea:focus,select:focus{outline:none;border-width:var(--border-width-thick);padding:calc(var(--spacing-sm) - 1px) calc(var(--spacing-md) - 1px)}label{display:inline-block;margin-bottom:var(--spacing-xs);font-weight:700;text-transform:uppercase;font-size:var(--font-size-sm);letter-spacing:.05em}ul,ol{list-style:none}img{max-width:100%;height:auto;display:block}table{border-collapse:collapse;width:100%;border:var(--border-width) solid var(--color-border)}th,td{border:var(--border-width) solid var(--color-border);padding:var(--spacing-sm);text-align:left}th{background:var(--color-primary);color:var(--color-background);font-weight:700;text-transform:uppercase}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-40px;left:0;background:var(--color-primary);color:#fff;padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;z-index:10000;border:var(--border-width) solid var(--color-primary)}.skip-link:focus{top:0;outline:var(--border-width-thick) solid white;outline-offset:-2px}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.mono{font-family:var(--font-family-mono)}*{animation:none!important;transition:none!important}.container{width:100%;padding:0 var(--spacing-md)}.app-main .container{max-width:1200px;margin:0 auto}.app-header{background-color:var(--color-primary);color:#fff;padding:var(--spacing-md);border-bottom:var(--border-width-thick) solid var(--color-primary);height:48px;display:flex;align-items:center}.header-content{width:100%;display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md)}.header-actions{display:flex;gap:var(--spacing-sm);align-items:center}.header-text{display:flex;align-items:baseline;gap:var(--spacing-md)}.app-title{font-size:var(--font-size-xl);font-weight:700;margin:0;letter-spacing:-.02em;text-transform:uppercase}.app-subtitle{font-size:var(--font-size-sm);margin:0;display:none}.theme-toggle{background:transparent;border:var(--border-width) solid white;padding:var(--spacing-sm);color:#fff;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;position:relative}.theme-toggle:hover{background:#fff;color:var(--color-primary)}.theme-toggle:focus{outline:var(--border-width-thick) solid white;outline-offset:2px}.theme-icon{width:20px;height:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.theme-icon-light,.theme-icon-dark{opacity:0;visibility:hidden}:root:not([data-theme=dark]) .theme-icon-dark{opacity:1;visibility:visible}[data-theme=dark] .theme-icon-light{opacity:1;visibility:visible}.info-button{background:transparent;border:var(--border-width) solid white;padding:var(--spacing-sm);color:#fff;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;position:relative}.info-button:hover{background:#fff;color:var(--color-primary)}.info-button:focus{outline:var(--border-width-thick) solid white;outline-offset:2px}.info-button svg{width:20px;height:20px}.github-button{background:transparent;border:var(--border-width) solid white;padding:var(--spacing-sm);color:#fff;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;position:relative;text-decoration:none}.github-button:hover{background:#fff;color:var(--color-primary)}.github-button:focus{outline:var(--border-width-thick) solid white;outline-offset:2px}.app-main{flex:1;padding:var(--spacing-md)}.search-section{border:var(--border-width) solid var(--color-border);padding:var(--spacing-md);margin-bottom:var(--spacing-md);background:var(--color-surface)}.search-container{width:100%}.search-label{display:inline-block;font-size:var(--font-size-sm);font-weight:700;margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.05em}.search-input-group{display:flex;gap:0}.search-input{flex:1;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);border-right:none;font-family:var(--font-family-mono)}.search-button{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border:var(--border-width) solid var(--color-border)}.search-button:hover{background-color:var(--color-background);color:var(--color-primary)}.search-help{display:none}.calendar-section{border:var(--border-width) solid var(--color-border);padding:var(--spacing-md);margin-bottom:var(--spacing-md);background:var(--color-background)}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:var(--border-width) solid var(--color-border)}.calendar-month{font-size:var(--font-size-lg);font-weight:700;margin:0;text-transform:uppercase;letter-spacing:.05em}.nav-button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:var(--color-background);border:var(--border-width) solid var(--color-border);font-size:var(--font-size-lg);font-weight:700}.nav-button:hover{background-color:var(--color-primary);color:#fff}.info-panel-section{margin-top:var(--spacing-md)}.info-panel{border:var(--border-width) solid var(--color-border);padding:var(--spacing-md);background:var(--color-surface);min-height:80px;display:flex;align-items:center}.info-content{display:flex;flex-direction:column;gap:var(--spacing-md);width:100%;font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height)}.info-line{font-weight:700;color:var(--color-text)}.info-line.primary{font-size:var(--font-size-lg)}.info-line.secondary{color:var(--color-text-muted);font-size:var(--font-size-base);text-transform:uppercase;letter-spacing:.05em}.info-content.error{color:var(--color-accent)}.term-legend{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.legend-item{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em}.legend-color{width:20px;height:20px;border:var(--border-width) solid var(--color-border)}.legend-color.michaelmas{background-color:var(--color-michaelmas)}.legend-color.hilary{background-color:var(--color-hilary)}.legend-color.trinity{background-color:var(--color-trinity)}.info-text{color:var(--color-text);font-size:var(--font-size-sm);line-height:var(--line-height)}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--color-background);display:flex;align-items:center;justify-content:center;z-index:9999;visibility:hidden;opacity:0}.loading-overlay.active{visibility:visible;opacity:1}.loading-spinner{width:48px;height:48px;border:var(--border-width-thick) solid var(--color-border);border-top-color:transparent;animation:none;position:relative}.loading-spinner:after{content:"LOADING";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:8px;font-weight:700;letter-spacing:.05em}@media (max-width: 640px){.info-content{gap:var(--spacing-sm)}.info-line.primary{font-size:var(--font-size-base)}.info-line.secondary{font-size:var(--font-size-sm)}}@media (min-width: 768px){.container{padding:0 var(--spacing-lg)}.app-main .container{max-width:768px}.app-header{height:56px;padding:var(--spacing-md) var(--spacing-lg)}.app-title{font-size:var(--font-size-xxl)}.app-subtitle{display:inline}.info-panel{padding:var(--spacing-lg)}.search-input-group{max-width:600px}}@media (min-width: 1024px){.container{padding:0 var(--spacing-xl)}.app-main .container{max-width:1024px}.app-main,.search-section,.calendar-section,.info-panel{padding:var(--spacing-lg)}}@media (min-width: 1440px){.app-main .container{max-width:1400px;display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-lg)}.search-section{grid-column:1 / -1}.calendar-section{grid-column:1}.info-panel-section{grid-column:2;margin-top:0}}@media print{.app-header,.search-section,.nav-button,.theme-toggle{display:none}.calendar-section{border:var(--border-width) solid black;padding:0}body{font-size:10pt}}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0;background-color:var(--color-border);border:var(--border-width) solid var(--color-border)}.calendar-day-header{background-color:var(--color-primary);color:#fff;padding:var(--spacing-sm);text-align:center;font-weight:700;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em;border-right:var(--border-width) solid var(--color-border);border-bottom:var(--border-width) solid var(--color-border)}.calendar-day-header:last-child{border-right:none}.calendar-day{background-color:var(--color-background);min-height:50px;padding:var(--spacing-xs);position:relative;cursor:pointer;border-right:var(--border-width) solid var(--color-border);border-bottom:var(--border-width) solid var(--color-border);font-family:var(--font-family-mono)}.calendar-day:nth-child(7n){border-right:none}.calendar-day:hover:not(.other-month){background-color:var(--color-surface)}.calendar-day.other-month{background-color:var(--color-surface);color:var(--color-text-muted);cursor:default}.calendar-day.today{background-color:var(--color-primary);color:#fff;font-weight:700}.calendar-day.today .day-number{color:#fff}.calendar-day.today .term-week-badge{background:#fff;color:var(--color-primary)}.calendar-day.selected{outline:var(--border-width-thick) solid var(--color-accent);outline-offset:-2px;z-index:1}.calendar-day.highlighted.term-michaelmas:not(.extended-week){background-color:var(--color-michaelmas)!important;color:#fff}.calendar-day.highlighted.term-michaelmas.extended-week{background-color:var(--color-michaelmas-faded)!important;color:#fff}.calendar-day.highlighted.term-hilary:not(.extended-week){background-color:var(--color-hilary)!important;color:#fff}.calendar-day.highlighted.term-hilary.extended-week{background-color:var(--color-hilary-faded)!important;color:#fff}.calendar-day.highlighted.term-trinity:not(.extended-week){background-color:var(--color-trinity)!important;color:#fff}.calendar-day.highlighted.term-trinity.extended-week{background-color:var(--color-trinity-faded)!important;color:#fff}.calendar-day.highlighted:not(.term-michaelmas):not(.term-hilary):not(.term-trinity){background-color:var(--color-primary)!important;color:#fff}.calendar-day.focused{outline:var(--border-width-focus) solid var(--color-primary);outline-offset:-3px;z-index:2}.calendar-day:focus{outline:var(--border-width-focus) solid var(--color-primary);outline-offset:-3px;z-index:2}.calendar-day:focus:not(:focus-visible){outline:none}.calendar-day.term-michaelmas:not(.other-month):not(.extended-week){border-left:3px solid var(--color-michaelmas);padding-left:calc(var(--spacing-xs) - 2px)}.calendar-day.term-hilary:not(.other-month):not(.extended-week){border-left:3px solid var(--color-hilary);padding-left:calc(var(--spacing-xs) - 2px)}.calendar-day.term-trinity:not(.other-month):not(.extended-week){border-left:3px solid var(--color-trinity);padding-left:calc(var(--spacing-xs) - 2px)}.calendar-day.term-michaelmas.extended-week:not(.other-month){border-left:3px solid var(--color-michaelmas-faded);padding-left:calc(var(--spacing-xs) - 2px)}.calendar-day.term-hilary.extended-week:not(.other-month){border-left:3px solid var(--color-hilary-faded);padding-left:calc(var(--spacing-xs) - 2px)}.calendar-day.term-trinity.extended-week:not(.other-month){border-left:3px solid var(--color-trinity-faded);padding-left:calc(var(--spacing-xs) - 2px)}.day-number{font-size:var(--font-size-base);font-weight:700;margin-bottom:0}.calendar-day.other-month .day-number{color:var(--color-text-muted);font-weight:400}.term-week-badge{display:inline-block;padding:1px 3px;font-size:10px;font-weight:700;color:#fff;margin-top:var(--spacing-xs);text-transform:uppercase;letter-spacing:.05em}.term-week-badge.michaelmas:not(.extended-week){background-color:var(--color-michaelmas)}.term-week-badge.hilary:not(.extended-week){background-color:var(--color-hilary)}.term-week-badge.trinity:not(.extended-week){background-color:var(--color-trinity)}.term-week-badge.michaelmas.extended-week{background-color:var(--color-michaelmas-faded)}.term-week-badge.hilary.extended-week{background-color:var(--color-hilary-faded)}.term-week-badge.trinity.extended-week{background-color:var(--color-trinity-faded)}.result-success{border-left:4px solid #000000;background-color:var(--color-surface);color:var(--color-text);padding:var(--spacing-md)}.result-info{border-left:4px solid var(--color-primary);background-color:var(--color-surface);color:var(--color-text);padding:var(--spacing-md)}.result-warning{border-left:4px solid var(--color-accent);background-color:var(--color-surface);color:var(--color-text);padding:var(--spacing-md)}.result-error{border-left:4px solid var(--color-accent);background-color:#fee;color:var(--color-text);padding:var(--spacing-md)}.result-title{font-size:var(--font-size-base);font-weight:700;margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.05em}.result-details{font-size:var(--font-size-sm);line-height:var(--line-height);font-family:var(--font-family-mono)}.result-details strong{font-weight:700}.btn{display:inline-block;padding:var(--spacing-sm) var(--spacing-md);font-weight:700;text-align:center;cursor:pointer;border:var(--border-width) solid var(--color-border);text-transform:uppercase;letter-spacing:.05em}.btn-primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover{background-color:var(--color-background);color:var(--color-primary)}.btn-secondary{background-color:var(--color-background);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background-color:var(--color-primary);color:#fff}.btn-outline{background-color:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn-outline:hover{background-color:var(--color-primary);color:#fff}.card{background-color:var(--color-background);border:var(--border-width) solid var(--color-border);padding:var(--spacing-md)}.card-title{font-size:var(--font-size-base);font-weight:700;margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.05em;padding-bottom:var(--spacing-sm);border-bottom:var(--border-width) solid var(--color-border)}.card-content{color:var(--color-text);font-size:var(--font-size-sm);line-height:var(--line-height)}.search-suggestions{position:absolute;top:100%;left:0;right:0;margin-top:-1px;background:var(--color-background);border:var(--border-width) solid var(--color-border);border-top:none;max-height:200px;overflow-y:auto;z-index:1000;display:none}.search-suggestions.active{display:block}.suggestion-item{padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;display:flex;flex-direction:column;gap:0;border-bottom:var(--border-width) solid var(--color-border);font-family:var(--font-family-mono)}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover,.suggestion-item.selected{background:var(--color-primary);color:#fff}.suggestion-text{font-size:var(--font-size-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.suggestion-description{font-size:var(--font-size-sm);opacity:.8}.pwa-install-container{position:fixed;bottom:-100px;left:0;right:0;z-index:2000;pointer-events:none}.pwa-install-container.visible{bottom:0;pointer-events:auto}.pwa-install-prompt{background:var(--color-primary);color:#fff;border-top:var(--border-width-thick) solid var(--color-accent);padding:var(--spacing-md)}.pwa-install-content{max-width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.pwa-install-text{flex:1;font-size:var(--font-size-sm);margin:0;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.pwa-install-actions{display:flex;gap:var(--spacing-sm);align-items:center}.pwa-install-button{background:#fff;color:var(--color-primary);border:var(--border-width) solid white;padding:var(--spacing-sm) var(--spacing-md);font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:.05em}.pwa-install-button:hover{background:transparent;color:#fff}.pwa-dismiss-button{background:transparent;border:var(--border-width) solid white;color:#fff;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;font-size:16px;line-height:1}.pwa-dismiss-button:hover{background:#fff;color:var(--color-primary)}.pwa-update-container{position:fixed;top:-100px;left:0;right:0;z-index:2001}.pwa-update-container.visible{top:0}.pwa-update-prompt{background:var(--color-accent);color:#fff;padding:var(--spacing-md);display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);border-bottom:var(--border-width-thick) solid var(--color-primary)}.pwa-update-text{font-weight:700;margin:0;text-transform:uppercase;letter-spacing:.05em}.pwa-update-button{background:#fff;color:var(--color-accent);border:var(--border-width) solid white;padding:var(--spacing-sm) var(--spacing-md);font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:.05em}.pwa-update-button:hover{background:transparent;color:#fff}@media (max-width: 767px){.calendar-grid{font-size:var(--font-size-sm)}.calendar-day{min-height:40px;padding:1px}.term-week-badge{font-size:8px;padding:0 2px}.day-number{font-size:var(--font-size-sm)}.pwa-install-content{flex-direction:column;text-align:center;gap:var(--spacing-sm)}.pwa-install-actions{width:100%;justify-content:center}.pwa-update-prompt{flex-direction:column;text-align:center}}@media (min-width: 768px){.calendar-day{min-height:60px;padding:var(--spacing-sm)}.term-week-badge{font-size:10px;padding:2px 4px}}@media (min-width: 1024px){.calendar-day{min-height:70px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000c;display:none;align-items:center;justify-content:center;z-index:3000;padding:var(--spacing-md)}.modal-overlay.active{display:flex}.modal-container{background:var(--color-background);border:var(--border-width-thick) solid var(--color-border);width:100%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{background:var(--color-primary);color:#fff;padding:var(--spacing-md);display:flex;justify-content:space-between;align-items:center;border-bottom:var(--border-width) solid var(--color-border)}.modal-title{font-size:var(--font-size-lg);font-weight:700;margin:0;text-transform:uppercase;letter-spacing:.05em}.modal-close{background:transparent;border:var(--border-width) solid white;color:#fff;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:24px;line-height:1;padding:0}.modal-close:hover{background:#fff;color:var(--color-primary)}.modal-close:focus{outline:var(--border-width-thick) solid white;outline-offset:2px}.modal-content{padding:var(--spacing-lg);overflow-y:auto;flex:1}.shortcut-section{margin-bottom:var(--spacing-lg)}.shortcut-section:last-child{margin-bottom:0}.shortcut-heading{font-size:var(--font-size-base);font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:var(--border-width) solid var(--color-border)}.shortcut-list{margin:0;display:grid;gap:var(--spacing-sm)}.shortcut-list dt{font-family:var(--font-family-mono);font-weight:700;color:var(--color-primary)}.shortcut-list dd{margin:0 0 var(--spacing-sm) 0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.shortcut-list dt code{background:var(--color-surface);padding:2px 4px;border:var(--border-width) solid var(--color-border)}.example-list{list-style:none;padding:0;margin:0}.example-list li{font-family:var(--font-family-mono);background:var(--color-surface);border:var(--border-width) solid var(--color-border);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-sm);color:var(--color-primary);font-weight:700}.example-list li:last-child{margin-bottom:0}@media (max-width: 767px){.modal-container{max-width:100%;max-height:100%;height:100%}.modal-overlay{padding:0}}:root{--theme-name: "light"}[data-theme=dark]{--theme-name: "dark";--color-primary: #4A7BA7;--color-primary-hover: #6FA3D2;--color-accent: #D4626D;--color-michaelmas: #D4626D;--color-hilary: #5E8AB4;--color-trinity: #4A8B6F;--color-michaelmas-faded: #D4626D60;--color-hilary-faded: #5E8AB460;--color-trinity-faded: #4A8B6F60;--color-background: #001122;--color-surface: #001833;--color-border: #003366;--color-text: #E8F0F7;--color-text-muted: #8FA9C7}[data-theme=dark] .app-header{background-color:var(--color-background);border-bottom-color:var(--color-border)}[data-theme=dark] .app-footer{background-color:var(--color-background);border-top-color:var(--color-border)}[data-theme=dark] .theme-toggle{border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] .theme-toggle:hover{background:var(--color-primary);color:var(--color-background)}[data-theme=dark] .calendar-day-header{background-color:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .calendar-day.today{background-color:var(--color-primary);color:var(--color-background)}[data-theme=dark] .calendar-day.today .day-number{color:var(--color-background)}[data-theme=dark] .calendar-day.today .term-week-badge{background:var(--color-background);color:var(--color-primary)}[data-theme=dark] .search-button{background-color:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] .search-button:hover,[data-theme=dark] .nav-button:hover{background-color:var(--color-primary);color:var(--color-background)}[data-theme=dark] th{background:var(--color-surface);color:var(--color-text)}[data-theme=dark] .loading-overlay{background-color:var(--color-background)}[data-theme=dark] .info-button{border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] .info-button:hover{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-background)}[data-theme=dark] .github-button{border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] .github-button:hover{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-background)}[data-theme=dark] .modal-overlay{background-color:#001122f2}[data-theme=dark] .modal-container{background:var(--color-background);border-color:var(--color-border)}[data-theme=dark] .modal-header{background:var(--color-surface);border-bottom-color:var(--color-border)}[data-theme=dark] .modal-close{border-color:var(--color-text);color:var(--color-text)}[data-theme=dark] .modal-close:hover{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-background)}[data-theme=dark] .shortcut-heading{border-bottom-color:var(--color-border)}[data-theme=dark] .shortcut-list dt code{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .example-list li{background:var(--color-surface);border-color:var(--color-border);color:var(--color-primary)}[data-theme=dark] .loading-spinner{border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] .result-error{background-color:#300}[data-theme=dark] .pwa-install-prompt{background:var(--color-surface);color:var(--color-text);border-top-color:var(--color-accent)}[data-theme=dark] .pwa-install-button{background:var(--color-primary);color:var(--color-background);border-color:var(--color-primary)}[data-theme=dark] .pwa-install-button:hover{background:transparent;color:var(--color-primary)}[data-theme=dark] .suggestion-item:hover,[data-theme=dark] .suggestion-item.selected{background:var(--color-surface);color:var(--color-text)}[data-theme=dark] .calendar-day.highlighted.term-michaelmas:not(.extended-week){background-color:var(--color-michaelmas)!important;color:var(--color-background)}[data-theme=dark] .calendar-day.highlighted.term-michaelmas.extended-week{background-color:var(--color-michaelmas-faded)!important;color:var(--color-text)}[data-theme=dark] .calendar-day.highlighted.term-hilary:not(.extended-week){background-color:var(--color-hilary)!important;color:var(--color-background)}[data-theme=dark] .calendar-day.highlighted.term-hilary.extended-week{background-color:var(--color-hilary-faded)!important;color:var(--color-text)}[data-theme=dark] .calendar-day.highlighted.term-trinity:not(.extended-week){background-color:var(--color-trinity)!important;color:var(--color-background)}[data-theme=dark] .calendar-day.highlighted.term-trinity.extended-week{background-color:var(--color-trinity-faded)!important;color:var(--color-text)}[data-theme=dark] .calendar-day.highlighted:not(.term-michaelmas):not(.term-hilary):not(.term-trinity){background-color:var(--color-primary)!important;color:var(--color-background)}[data-theme=dark] a:focus,[data-theme=dark] button:focus,[data-theme=dark] .calendar-day:focus{outline-color:var(--color-primary)}[data-theme=dark] input,[data-theme=dark] textarea,[data-theme=dark] select{background-color:var(--color-background);border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] input:focus,[data-theme=dark] textarea:focus,[data-theme=dark] select:focus{border-color:var(--color-primary)}[data-theme=dark] .skip-link{background:var(--color-primary);color:var(--color-background);border-color:var(--color-primary)}[data-theme=dark] .skip-link:focus{outline-color:var(--color-primary)}@media (prefers-contrast: high){:root{--color-border: #000000;--color-text: #000000;--color-text-muted: #404040}[data-theme=dark]{--color-border: #ffffff;--color-text: #ffffff;--color-text-muted: #c0c0c0}.calendar-day{border:1px solid var(--color-border)}.term-week-badge{border:1px solid currentColor}}:focus-visible{outline:var(--border-width-thick) solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}@media print{:root,[data-theme=dark]{--color-primary: #000000;--color-background: #ffffff;--color-surface: #f0f0f0;--color-border: #000000;--color-text: #000000;--color-text-muted: #666666}*{box-shadow:none!important;text-shadow:none!important}.calendar-day{border:1px solid var(--color-border)}}
