.top-actions .icon-button,.top-actions #background-toggle{width:42px;height:42px;min-width:42px;padding:8px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;box-sizing:border-box}
.top-actions .icon-button svg{width:23px;height:23px;flex:none;display:block}
.campus-brand-icon{display:block;width:100%;height:100%;overflow:hidden;border-radius:inherit}
.mark:has(.campus-brand-icon){padding:4px;overflow:hidden;border-radius:11px;background:#fff;flex-shrink:0}
html[data-background-mode="day"] .mark:has(.campus-brand-icon){background:#080808}
.ui-arrow{display:inline-block;width:1em;height:1em;vertical-align:-.12em;stroke:#fff;fill:none;flex:none;filter:drop-shadow(0 1px 1px #0006)}
.suggestion .ui-arrow{display:inline-block;width:1em;height:1em;margin:0 0 0 4px}
.panel>[data-action="prefnew"]{margin-top:22px}
.explore-hint{bottom:var(--explore-hint-bottom,150px);margin:0;z-index:2}
.campus-confetti{position:fixed;inset:0;width:100%;height:100%;z-index:250;pointer-events:none}
.tt-progress{display:flex;gap:10px;margin:0 0 20px;padding:0;list-style:none;flex-wrap:wrap}
.tt-progress li{display:flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid #ffffff30;border-radius:99px;color:#cbd8df;font-size:12px}
.tt-progress li[aria-current="step"]{background:#ffffff16;border-color:#ffffffa0;color:#fff}
.tt-progress span{display:grid;place-items:center;width:20px;height:20px;border:1px solid #ffffff50;border-radius:50%;font-size:10px}
.tt-preview-image{position:relative;overflow:hidden;border-radius:13px;animation:tt-image-enter .5s ease-out both}
.tt-preview-image img{display:block}
.tt-scanline{position:absolute;left:0;right:0;top:0;height:3px;background:#a4e9ff;box-shadow:0 0 24px 5px #6cd9ff88;opacity:0;pointer-events:none}
.is-recognizing .tt-scanline{opacity:1;animation:tt-scan 1.8s ease-in-out infinite}
.tt-source.is-recognizing .tt-preview-image:after{content:'';position:absolute;inset:0;border:1px solid #a4e9ff77;border-radius:inherit;pointer-events:none}
.timetable-modal #tt-preview .action-card{animation:tt-result-enter .45s ease-out both}
.tt-upload-star{font-size:10px;letter-spacing:.15em;color:#c7e9f1;margin:8px 0 14px}
.campus-import-success{position:fixed;left:50%;top:42%;z-index:250;transform:translate(-50%,-50%);padding:22px 30px;background:#203a46ed;border:1px solid #d3eef58a;border-radius:22px;color:#fff;text-align:center;box-shadow:0 15px 50px #0004;pointer-events:none}
.campus-import-success strong{display:block;font-size:22px}.campus-import-success span{display:block;margin-top:7px;font-size:13px}
@keyframes tt-scan{0%,100%{top:0}50%{top:calc(100% - 3px)}}
@keyframes tt-image-enter{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@keyframes tt-result-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:720px){.top-actions .icon-button,.top-actions #background-toggle{width:34px;height:34px;min-width:34px;flex-basis:34px;padding:5px}.top-actions{gap:6px}.top-actions button:not(.icon-button){padding:8px 9px;font-size:10px}.tt-progress{gap:6px}.tt-progress li{padding:6px 8px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.tt-preview-image,.is-recognizing .tt-scanline,.timetable-modal #tt-preview .action-card{animation:none}.is-recognizing .tt-scanline{top:50%}}
