:root{--color-bg-page: #131417;--color-bg-frame: #1a1c21;--color-bg-card: #262a32;--color-border: #383d47;--color-border-strong: #4d535f;--color-text-primary: #f6f7f8;--color-text-secondary: #c8ccd4;--color-text-muted: #9ba0aa;--color-accent: #6f9bf5;--color-accent-contrast: #ffffff;--color-accent-bg: #24365c;--color-accent-disabled: #33456c;--color-danger: #f37c71;--color-success: #5fc164;--tt-hue-0: #6f9bf5;--tt-hue-1: #4caf7d;--tt-hue-2: #a78bfa;--tt-hue-3: #e0a458;--tt-hue-4: #4fb8b0;--tt-hue-5: #e08fc0;--tt-hue-6: #c9b23c;--tt-hue-7: #8b93f0;color-scheme:dark}:root{font-size:16px}:root[data-font-size=small]{font-size:15px}:root[data-font-size=large]{font-size:18px}:root[data-theme=light]{--color-bg-page: #f0f1f4;--color-bg-frame: #ffffff;--color-bg-card: #f5f6f8;--color-border: #e1e3e8;--color-border-strong: #c9ccd3;--color-text-primary: #16181c;--color-text-secondary: #26282c;--color-text-muted: #3a3d42;--color-accent: #3b6fd6;--color-accent-contrast: #ffffff;--color-accent-bg: #e8f0fe;--color-accent-disabled: #c7d7f5;--color-danger: #d9483c;--color-success: #3d8b40;color-scheme:light}*{box-sizing:border-box}body{margin:0;font-family:Pretendard,-apple-system,Apple SD Gothic Neo,Malgun Gothic,sans-serif;background:var(--color-bg-page);color:var(--color-text-primary)}.app-container{min-height:100vh;min-height:100dvh;min-height:var(--app-vh, 100dvh);display:flex;align-items:center;justify-content:center}.app-frame{position:relative;width:100%;max-width:420px;height:100vh;height:100dvh;height:var(--app-vh, 100dvh);max-height:900px;background:var(--color-bg-frame);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-border);box-shadow:0 12px 32px #0006}@media(max-width:480px){.app-frame{max-height:none;border:none;box-shadow:none}}.screen-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--color-border);flex-shrink:0}.screen-header-left{display:flex;align-items:center;gap:8px;color:var(--color-text-muted)}.screen-title{font-size:1rem;font-weight:800;letter-spacing:-.3px;color:var(--color-accent)}.back-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;color:var(--color-text-secondary);cursor:pointer}.avatar-btn{width:28px;height:28px;border-radius:50%;background:var(--color-bg-card);color:var(--color-text-secondary);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.account-menu{position:relative;flex-shrink:0}.account-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:160px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:10px;padding:6px;box-shadow:0 8px 24px #00000040;z-index:20}.account-menu-item{display:block;width:100%;text-align:left;padding:9px 10px;border-radius:6px;background:none;border:none;font-size:.875rem;color:var(--color-text-primary);cursor:pointer}.account-menu-item:hover:not(:disabled){background:var(--color-accent-bg)}.account-menu-item:disabled{color:var(--color-text-muted);cursor:not-allowed}.account-menu-item.danger{color:var(--color-danger)}.account-menu-divider{height:1px;margin:6px 4px;background:var(--color-border)}.settings-theme-options{display:flex;gap:8px}.settings-theme-btn{flex:1;padding:10px;border-radius:10px;border:1px solid var(--color-border);background:none;color:var(--color-text-secondary);font-size:.875rem;cursor:pointer}.settings-theme-btn.active{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-bg)}.settings-field-hint{font-size:.8125rem;color:var(--color-text-muted);line-height:1.5;margin:0 0 10px}.settings-inline-field{display:flex;gap:8px}.settings-inline-field .onb-select{flex:1}@keyframes settings-highlight-pulse{0%,to{box-shadow:0 0 0 0 transparent;transform:scale(1);border-color:var(--color-border)}50%{box-shadow:0 0 0 5px var(--color-accent-bg);transform:scale(1.015);border-color:var(--color-accent)}}.settings-highlight{animation:settings-highlight-pulse .7s ease-in-out 3}@media(prefers-reduced-motion:reduce){.settings-highlight{animation:none;border-color:var(--color-accent)}}.profile-career-name{flex:1;display:flex;align-items:center;font-size:.9375rem;font-weight:700}.profile-roadmap-list{margin-top:14px;padding-top:14px;border-top:1px solid var(--color-border)}.profile-danger-zone{border-color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 10%,var(--color-bg-card))}.profile-delete-btn{width:100%;padding:.875rem;margin-top:.625rem;background:var(--color-danger);color:var(--color-accent-contrast);border:none;border-radius:10px;font-size:.9375rem;font-weight:700;cursor:pointer}.profile-delete-btn:disabled{opacity:.6;cursor:not-allowed}.prompt-bar{display:flex;align-items:center;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:var(--color-bg-frame);flex-shrink:0}.prompt-bar-pill{flex:1;min-width:0;display:flex;align-items:center;border:1px solid var(--color-border-strong);border-radius:18px;padding:8px 12px;background:var(--color-bg-card);text-align:left;cursor:pointer}.prompt-bar-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:.875rem;font-family:inherit;color:var(--color-text-primary);resize:none;overflow-y:auto;line-height:1.4;max-height:120px}.prompt-bar-input:disabled{color:var(--color-text-muted)}.prompt-send-btn{width:32px;height:32px;border-radius:50%;background:var(--color-accent);color:var(--color-accent-contrast);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;font-size:1.0625rem}.prompt-send-btn:disabled{background:var(--color-accent-disabled);cursor:not-allowed}.auth-page{flex:1;display:flex;flex-direction:column;overflow-y:auto}.auth-body{flex:1;padding:24px 20px;display:flex;flex-direction:column;justify-content:center}.auth-heading{font-size:1.6875rem;font-weight:800;text-align:center;margin:0 0 8px;color:var(--color-text-primary)}.auth-subheading{font-size:.875rem;color:var(--color-text-muted);text-align:center;margin:0 0 32px}.auth-field{margin-bottom:16px}.auth-field label{display:block;margin-bottom:6px;font-size:.875rem;color:var(--color-text-secondary)}.auth-field input{width:100%;padding:13px 14px;border:1px solid var(--color-border-strong);border-radius:10px;font-size:.9375rem;background:var(--color-bg-card);color:var(--color-text-primary)}.auth-submit-btn{width:100%;padding:14px;margin-top:10px;background:var(--color-accent);color:var(--color-accent-contrast);border:none;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer}.auth-toggle-text{margin-top:20px;text-align:center;font-size:.875rem;color:var(--color-text-muted)}.auth-toggle-link{background:none;border:none;padding:0;font:inherit;font-weight:700;text-decoration:underline;color:var(--color-accent);cursor:pointer}.auth-error{color:var(--color-danger);font-size:.875rem;margin:4px 0 0}.home-page{flex:1;display:flex;flex-direction:column;overflow:hidden}.home-body{flex:1;overflow-y:auto;padding:16px}.home-error{color:var(--color-danger);font-size:.875rem;margin:0 0 12px;white-space:pre-wrap}.home-greeting{font-size:.875rem;color:var(--color-text-secondary);margin:0 0 10px}.home-subgreeting{font-size:1rem;font-weight:700;margin:0;color:var(--color-text-primary)}.home-subgreeting-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 16px}.home-grade-fix-link{flex-shrink:0;background:none;border:none;padding:0;font-size:.75rem;color:var(--color-text-muted);text-decoration:underline;cursor:pointer}.home-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:14px;margin-bottom:12px}@keyframes skeleton-pulse{0%,to{opacity:.5}50%{opacity:1}}.skeleton{background:var(--color-border);border-radius:6px;animation:skeleton-pulse 1.2s ease-in-out infinite}.skeleton-text{height:14px}.skeleton-greeting{width:55%;height:12px;margin-bottom:10px}.skeleton-subgreeting{width:70%;height:16px;margin-bottom:12px}.skeleton-card{display:flex;flex-direction:column;gap:10px}.skeleton-label{width:35%}.skeleton-credit{width:50%;height:28px}.skeleton-bar{width:100%;height:8px;border-radius:999px}.skeleton-row{width:90%}.home-card-label{font-size:.8125rem;font-weight:700;color:var(--color-text-muted);margin:0 0 10px}.home-card-row{display:flex;align-items:flex-start;gap:8px;font-size:.875rem;color:var(--color-text-secondary)}.home-card-row svg{flex-shrink:0;margin-top:1px;color:var(--color-text-muted)}.home-card-row.shortfall-danger svg{color:var(--color-danger)}.home-card-row.shortfall-ok svg{color:var(--color-success)}.home-credit-value{margin-bottom:8px}.home-credit-number{font-size:1.4375rem;font-weight:700;color:var(--color-text-primary)}.home-credit-total{font-size:.875rem;color:var(--color-text-secondary)}.home-progress-track{height:8px;background:var(--color-border);border-radius:4px;overflow:hidden}.home-progress-fill{height:100%;background:var(--color-accent)}.grad-remaining-text{margin:8px 0 0;font-size:.8125rem;color:var(--color-text-secondary)}.grad-category-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}.grad-category-row .home-card-label{margin:0}.grad-category-value{font-size:.875rem;font-weight:700;color:var(--color-text-secondary)}.grad-category-value.satisfied{color:var(--color-success)}.grad-empty-notice{border-color:var(--color-accent);background:var(--color-accent-bg)}.grad-empty-notice-text{margin:0 0 12px;font-size:.8125rem;color:var(--color-text-secondary);line-height:1.6}.grad-overflow-note{margin:6px 0 0;font-size:.75rem;color:var(--color-text-muted)}.grad-flex-note{margin:8px 0 0;font-size:.75rem;color:var(--color-text-muted);line-height:1.5}.grad-subcheck-row{display:flex;align-items:center;gap:8px;margin-top:8px}.grad-subcheck-label{margin:0;font-size:.75rem;color:var(--color-text-secondary)}.grad-cert-row{display:flex;align-items:flex-start;gap:10px}.grad-cert-check{flex-shrink:0;width:16px;height:16px;margin-top:2px;border-radius:4px;border:1px solid var(--color-border-strong);background:transparent;display:flex;align-items:center;justify-content:center}.grad-cert-check.satisfied{color:var(--color-success)}.grad-cert-desc{margin:0;font-size:.8125rem;line-height:1.6;color:var(--color-text-secondary)}.grad-shortfall-box{background:color-mix(in srgb,var(--color-danger) 15%,var(--color-bg-card));border:1px solid var(--color-danger);border-radius:12px;padding:14px;margin-bottom:12px;font-size:.875rem;color:var(--color-text-primary)}.grad-shortfall-box p:last-child{margin:0}.grad-shortfall-list{margin:0;padding-left:18px}.grad-shortfall-list li{margin-bottom:4px}.grad-shortfall-list li:last-child{margin-bottom:0}.grad-shortfall-box.ok{background:color-mix(in srgb,var(--color-success) 15%,var(--color-bg-card));border-color:var(--color-success)}.home-quick-label{font-size:.8125rem;font-weight:700;color:var(--color-text-muted);margin:0 0 8px}.home-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.home-quick-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;font-size:.8125rem;color:var(--color-text-secondary);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:10px;cursor:pointer}.home-quick-btn svg{color:var(--color-text-secondary)}.home-quick-btn:disabled{color:var(--color-text-muted);cursor:not-allowed}.home-quick-btn:disabled svg{color:var(--color-text-muted)}.bottom-tab-bar{display:flex;align-items:center;justify-content:space-around;padding:6px 10px 10px;border-top:1px solid var(--color-border);background:var(--color-bg-frame);flex-shrink:0}.bottom-tab{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:none;border:none;border-radius:50%;color:var(--color-text-muted);cursor:pointer}.bottom-tab.active{color:var(--color-accent)}.bottom-tab-chat{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-top:-16px;border-radius:50%;border:none;background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer}.bottom-tab-chat.active{box-shadow:0 0 0 3px var(--color-accent-bg)}.bottom-tab-disabled{opacity:.4;cursor:not-allowed}.chat-page{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-messages-container{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.chat-bubble{max-width:80%;padding:10px 14px;border-radius:10px;background:var(--color-bg-card)}.chat-bubble.user{align-self:flex-end;background:var(--color-accent-bg)}.chat-bubble .message-sender{font-size:.8125rem;font-weight:700;color:var(--color-text-secondary);margin-bottom:4px}.chat-bubble .message-text{white-space:pre-wrap;line-height:1.5;font-size:.9375rem;color:var(--color-text-primary)}.chat-bubble .message-time{font-size:.75rem;color:var(--color-text-muted);margin-top:4px}.message-citations{margin-top:8px;padding-top:8px;border-top:1px solid var(--color-border);font-size:.8125rem;color:var(--color-text-secondary)}.citations-toggle{background:none;border:none;padding:0;color:var(--color-accent);font-size:.8125rem;cursor:pointer}.message-citations ul{margin:6px 0 0;padding-left:16px}.chat-disclaimer{padding:0 16px 12px;font-size:.75rem;color:var(--color-text-muted);text-align:center;flex-shrink:0}.typing-dots{display:flex;gap:4px;padding:6px 0 2px}.typing-dots span{width:6px;height:6px;border-radius:50%;background:var(--color-text-muted);animation:typing-bounce 1.2s infinite ease-in-out}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.courses-page{flex:1;display:flex;flex-direction:column;overflow:hidden}.courses-body{flex:1;overflow-y:auto;padding:16px}.courses-year-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.courses-year-tab{font-size:.8125rem;padding:6px 10px;border-radius:14px;border:1px solid var(--color-border);background:none;color:var(--color-text-muted);white-space:nowrap;cursor:pointer}.courses-year-tab.active{background:var(--color-accent-bg);color:var(--color-accent);border-color:var(--color-accent-bg)}.courses-semester-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:14px}.courses-semester-nav{border:none;background:none;color:var(--color-text-muted);font-size:1.125rem;line-height:1;padding:4px 6px;cursor:pointer}.courses-semester-nav:disabled{color:var(--color-border);cursor:default}.courses-semester-toggle{display:flex;gap:6px}.courses-semester-btn{font-size:.8125rem;padding:6px 14px;border-radius:14px;border:1px solid var(--color-border);background:none;color:var(--color-text-muted);white-space:nowrap;cursor:pointer}.courses-semester-btn.active{background:var(--color-accent-bg);color:var(--color-accent);border-color:var(--color-accent-bg)}.courses-summary-row{display:flex;gap:8px;margin-bottom:14px}.courses-summary-stat{flex:1;border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:12px;padding:10px 12px}.courses-summary-row-total .courses-summary-stat{background:none;border-style:dashed}.courses-summary-row-total .courses-summary-value{font-size:.9375rem;color:var(--color-text-secondary)}.courses-summary-value{font-size:1.0625rem;font-weight:500;margin:0;color:var(--color-text-primary)}.courses-section-label{font-size:.8125rem;font-weight:700;color:var(--color-text-muted);margin:0 0 8px}.courses-timetable{border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:12px;padding:10px;margin-bottom:16px;overflow-x:auto}.courses-timetable-grid{display:grid;grid-template-columns:20px repeat(5,1fr);gap:3px;font-size:.6875rem;min-width:260px}.courses-timetable-corner{height:100%}.courses-timetable-daylabel{text-align:center;color:var(--color-text-muted);padding-bottom:4px}.courses-timetable-periodlabel{color:var(--color-text-muted);text-align:center;display:flex;align-items:center;justify-content:center}.courses-timetable-cell{min-height:26px;border-radius:4px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2;padding:2px;color:var(--color-text-muted)}.courses-timetable-cell.filled{background:var(--color-accent-bg);color:var(--color-accent)}.courses-timetable-cell.tt-c0{background:color-mix(in srgb,var(--tt-hue-0) 22%,var(--color-bg-card));color:var(--tt-hue-0)}.courses-timetable-cell.tt-c1{background:color-mix(in srgb,var(--tt-hue-1) 22%,var(--color-bg-card));color:var(--tt-hue-1)}.courses-timetable-cell.tt-c2{background:color-mix(in srgb,var(--tt-hue-2) 22%,var(--color-bg-card));color:var(--tt-hue-2)}.courses-timetable-cell.tt-c3{background:color-mix(in srgb,var(--tt-hue-3) 22%,var(--color-bg-card));color:var(--tt-hue-3)}.courses-timetable-cell.tt-c4{background:color-mix(in srgb,var(--tt-hue-4) 22%,var(--color-bg-card));color:var(--tt-hue-4)}.courses-timetable-cell.tt-c5{background:color-mix(in srgb,var(--tt-hue-5) 22%,var(--color-bg-card));color:var(--tt-hue-5)}.courses-timetable-cell.tt-c6{background:color-mix(in srgb,var(--tt-hue-6) 22%,var(--color-bg-card));color:var(--tt-hue-6)}.courses-timetable-cell.tt-c7{background:color-mix(in srgb,var(--tt-hue-7) 22%,var(--color-bg-card));color:var(--tt-hue-7)}.courses-empty{font-size:.875rem;color:var(--color-text-muted);margin:0 0 12px}.courses-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.courses-list-item{display:flex;align-items:center;gap:8px;border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:10px;padding:10px 12px}.courses-list-item-info{flex:1;min-width:0}.courses-list-item-name{font-size:.875rem;font-weight:500;margin:0;color:var(--color-text-primary)}.courses-list-item-meta{font-size:.75rem;color:var(--color-text-muted);margin:2px 0 0}.courses-grade-select{font-size:.8125rem;padding:4px 6px;border-radius:6px;border:1px solid var(--color-border-strong);background:var(--color-bg-frame);color:var(--color-text-primary);flex-shrink:0}.courses-delete-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;display:flex;align-items:center}.courses-add-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:12px;font-size:.875rem;font-weight:500;background:var(--color-accent);color:var(--color-accent-contrast);border:none;border-radius:10px;cursor:pointer}.courses-add-form{border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:12px;padding:14px}.courses-add-form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.courses-add-mode-toggle{display:flex;gap:6px}.courses-add-mode-toggle button{font-size:.8125rem;padding:6px 10px;border-radius:14px;border:1px solid var(--color-border);background:none;color:var(--color-text-muted);cursor:pointer}.courses-add-mode-toggle button.active{background:var(--color-accent-bg);color:var(--color-accent);border-color:var(--color-accent-bg)}.courses-pdf-hint-wrap{position:relative}.courses-pdf-hint-bubble{position:absolute;bottom:calc(100% + 8px);right:0;background:var(--color-accent);color:var(--color-accent-contrast);font-size:.75rem;font-weight:700;padding:6px 10px;border-radius:8px;white-space:nowrap;box-shadow:0 2px 8px #00000040}.courses-pdf-hint-bubble:after{content:"";position:absolute;top:100%;right:14px;border:5px solid transparent;border-top-color:var(--color-accent)}.courses-close-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center}.courses-search-box{display:flex;align-items:center;gap:8px;border:1px solid var(--color-border-strong);border-radius:18px;padding:8px 12px;margin-bottom:10px;color:var(--color-text-muted)}.courses-search-box input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:.875rem;color:var(--color-text-primary);font-family:inherit}.courses-search-results{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}.courses-search-result{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:1px solid var(--color-border);background:var(--color-bg-frame);border-radius:8px;padding:8px 10px;cursor:pointer;text-align:left}.courses-manual-fields .auth-field{margin-bottom:12px}.courses-manual-hint{font-size:.8125rem;color:var(--color-text-muted);line-height:1.5;margin:0 0 12px}.courses-manual-only-note{font-size:.8125rem;color:var(--color-text-muted);margin:0}.courses-catalog-back{display:block;width:100%;margin-top:8px;padding:4px 0;background:none;border:none;font-family:inherit;text-align:center;cursor:pointer}.courses-category-select{width:100%;padding:13px 14px;border:1px solid var(--color-border-strong);border-radius:10px;font-size:.9375rem;background:var(--color-bg-card);color:var(--color-text-primary)}.courses-schedule-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.courses-schedule-row select{padding:6px 8px;border:1px solid var(--color-border-strong);border-radius:6px;background:var(--color-bg-frame);color:var(--color-text-primary);font-size:.875rem}.courses-schedule-remove{background:none;border:none;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center}.courses-schedule-add{display:flex;align-items:center;gap:4px;margin-top:2px;padding:6px 10px;border:1px dashed var(--color-border-strong);border-radius:8px;background:none;color:var(--color-text-secondary);font-size:.8125rem;cursor:pointer}.courses-pdf-help{border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-frame);padding:10px 12px;margin-bottom:10px}.courses-pdf-help summary{font-size:.8125rem;font-weight:700;color:var(--color-accent);cursor:pointer}.courses-pdf-help-intro{margin:10px 0 0;font-size:.75rem;color:var(--color-text-secondary)}.courses-pdf-help-doctype{margin:10px 0 0;font-size:.8125rem;font-weight:700;color:var(--color-text-primary)}.courses-pdf-help-doctype:first-of-type{margin-top:10px}.courses-pdf-help-divider{margin:10px 0 0;font-size:.75rem;font-weight:700;color:var(--color-text-muted);text-align:center}.courses-pdf-help-steps{margin:8px 0;padding-left:18px;font-size:.8125rem;color:var(--color-text-secondary);line-height:1.6}.courses-pdf-help-steps li+li{margin-top:6px}.courses-pdf-help-note{margin:0;font-size:.75rem;color:var(--color-text-muted);line-height:1.5}.courses-pdf-upload-btn{display:flex;align-items:center;justify-content:center;padding:12px;border:1px dashed var(--color-border-strong);border-radius:10px;background:var(--color-bg-frame);color:var(--color-accent);font-size:.875rem;font-weight:600;cursor:pointer;text-align:center}.courses-pdf-warnings{margin-bottom:8px}.courses-pdf-pf-section{border:1px solid color-mix(in srgb,var(--color-danger) 45%,var(--color-border));background:color-mix(in srgb,var(--color-danger) 8%,var(--color-bg-frame));border-radius:10px;padding:10px 12px;margin-bottom:10px}.courses-pdf-pf-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:4px}.courses-pdf-pf-title{display:flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:700;color:var(--color-text-primary)}.courses-pdf-pf-badge{background:var(--color-danger);color:var(--color-accent-contrast);font-size:.6875rem;font-weight:700;border-radius:999px;padding:1px 7px}.courses-pdf-pf-progress{font-size:.75rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.courses-pdf-pf-desc{margin:0 0 8px;font-size:.75rem;color:var(--color-text-secondary);line-height:1.5}.courses-pdf-pf-list{display:flex;flex-direction:column;gap:6px}.courses-pdf-pf-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-card)}.courses-pdf-pf-item.resolved{border-color:color-mix(in srgb,var(--color-accent) 55%,var(--color-border))}.courses-pdf-pf-item-info{flex:1;min-width:0}.courses-pdf-pf-item-name{margin:0;font-size:.8125rem;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.courses-pdf-pf-item-meta{margin:1px 0 0;font-size:.6875rem;color:var(--color-text-muted)}.courses-pdf-pf-toggle-group{flex:none;display:flex;border:1px solid var(--color-border-strong);border-radius:999px;overflow:hidden}.courses-pdf-pf-toggle-group button{border:none;padding:5px 10px;background:var(--color-bg-frame);color:var(--color-text-muted);font-size:.6875rem;font-weight:700;font-family:inherit;cursor:pointer}.courses-pdf-pf-toggle-group button.active-f{background:var(--color-danger);color:var(--color-accent-contrast)}.courses-pdf-pf-toggle-group button.active-np{background:var(--color-accent);color:var(--color-accent-contrast)}.courses-pdf-pf-note{margin:8px 0 0;font-size:.6875rem;color:var(--color-text-muted);line-height:1.5}.courses-pdf-grade-tag{display:inline-block;padding:6px 8px;border:1px solid var(--color-border-strong);border-radius:6px;background:var(--color-bg-card);color:var(--color-text-primary);font-size:.8125rem;font-weight:700;text-align:center}.courses-pdf-grade-tag.is-f{border-color:var(--color-danger);color:var(--color-danger)}.courses-pdf-grade-tag.is-np{border-color:var(--color-accent);color:var(--color-accent)}.courses-pdf-table{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto;margin-bottom:12px}.courses-pdf-row{padding:8px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-frame)}.courses-pdf-row.excluded{opacity:.45}.courses-pdf-row-main{display:flex;align-items:center;gap:8px}.courses-pdf-row-main .courses-pdf-name{flex:1;min-width:0}.courses-pdf-row-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--color-border)}.courses-pdf-meta-field{display:flex;flex-direction:column;gap:3px}.courses-pdf-meta-label{font-size:.6875rem;color:var(--color-text-muted)}.courses-pdf-meta-category{flex:1 1 100px}.courses-pdf-meta-credits{flex:0 1 60px}.courses-pdf-meta-year,.courses-pdf-meta-semester,.courses-pdf-meta-grade{flex:0 1 70px}.courses-pdf-row input[type=text],.courses-pdf-row input[type=number],.courses-pdf-row select{width:100%;min-width:0;padding:6px 8px;border:1px solid var(--color-border-strong);border-radius:6px;background:var(--color-bg-card);color:var(--color-text-primary);font-size:.8125rem;font-family:inherit}.courses-pdf-category-missing{border-color:var(--color-danger)}.onb-dots{display:flex;gap:5px;flex:1;justify-content:center}.onb-dot{width:6px;height:6px;border-radius:50%;background:var(--color-border-strong)}.onb-dot.active{background:var(--color-accent);width:16px;border-radius:3px}.onb-dot.done{background:var(--color-accent);opacity:.5}.onb-q-title{font-size:1.25rem;font-weight:800;margin:0 0 6px;letter-spacing:-.2px}.onb-q-sub{font-size:.875rem;color:var(--color-text-muted);margin:0 0 24px;line-height:1.5}.onb-option-list{display:flex;flex-direction:column;gap:10px}.onb-option-card{display:flex;flex-direction:column;gap:3px;padding:14px 16px;border:1px solid var(--color-border-strong);border-radius:12px;background:var(--color-bg-card);cursor:pointer;text-align:left;color:var(--color-text-primary);font-family:inherit;width:100%}.onb-option-card:hover:not(:disabled){background:var(--color-accent-bg)}.onb-option-card.selected{border-color:var(--color-accent);background:var(--color-accent-bg)}.onb-option-card:disabled{opacity:.4;cursor:not-allowed}.onb-option-title{font-size:.9375rem;font-weight:500}.onb-option-caption{font-size:.8125rem;color:var(--color-text-muted)}.onb-option-card.selected .onb-option-caption{color:var(--color-accent)}.onb-option-card:disabled .onb-option-caption{color:var(--color-danger)}.onb-field-group{margin-bottom:18px}.onb-field-label{display:block;font-size:.8125rem;font-weight:700;color:var(--color-text-muted);margin-bottom:8px}.onb-select{width:100%;padding:12px 14px;border:1px solid var(--color-border-strong);border-radius:10px;font-size:.9375rem;background:var(--color-bg-card);color:var(--color-text-primary);font-family:inherit}select.onb-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ba0aa' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px}:root[data-theme=light] select.onb-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233a3d42' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}.onb-chip-row{display:flex;gap:8px;flex-wrap:wrap}.onb-chip{flex:1;min-width:70px;padding:12px;border:1px solid var(--color-border-strong);border-radius:10px;background:var(--color-bg-card);color:var(--color-text-primary);font-size:.875rem;cursor:pointer;font-family:inherit}.onb-chip.selected{border-color:var(--color-accent);background:var(--color-accent-bg);color:var(--color-accent);font-weight:700}.onb-chip:disabled{opacity:.35;cursor:not-allowed}.onb-hint{margin:8px 0 0;font-size:.8125rem;color:var(--color-text-muted);line-height:1.5}.onb-summary-list{display:flex;flex-direction:column;gap:10px}.onb-summary-row{display:flex;justify-content:space-between;align-items:baseline;padding:12px 14px;background:var(--color-bg-card);border-radius:10px;border:1px solid var(--color-border)}.onb-summary-key{font-size:.8125rem;color:var(--color-text-muted)}.onb-summary-val{font-size:.875rem;font-weight:700}.onb-summary-val-warning{color:var(--color-danger)}.onb-summary-row-editable{width:100%;font:inherit;color:inherit;cursor:pointer;text-align:left}.onb-summary-row-editable:hover{border-color:var(--color-text-muted)}.onb-summary-row-right{display:flex;align-items:center;gap:8px;color:var(--color-text-muted)}.onb-done-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:40px 0}.onb-done-circle{width:56px;height:56px;border-radius:50%;background:var(--color-success);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.6875rem}.onb-done-title{font-size:1.125rem;font-weight:800;margin:4px 0 0}.onb-done-sub{font-size:.875rem;color:var(--color-text-muted)}.onb-skip-link{display:block;margin:16px auto 0;padding:4px;background:none;border:none;font-size:.75rem;color:var(--color-text-muted);text-decoration:underline;cursor:pointer}.screen-header-right{display:flex;align-items:center;gap:8px}.career-recommend-btn{padding:6px 12px;border-radius:14px;border:none;background:var(--color-accent-bg);color:var(--color-accent);font-size:.8125rem;font-weight:700;cursor:pointer}.career-recommend-btn:disabled{color:var(--color-text-muted);cursor:not-allowed}.career-chat-messages{display:flex;flex-direction:column;gap:12px}.import-toast{position:absolute;top:64px;left:50%;transform:translate(-50%);max-width:calc(100% - 32px);display:flex;align-items:center;justify-content:center;gap:6px;background:color-mix(in srgb,var(--color-success) 15%,var(--color-bg-card));border:1px solid var(--color-success);color:var(--color-success);font-size:.8125rem;font-weight:400;white-space:nowrap;text-align:center;padding:9px 16px;border-radius:20px;box-shadow:0 4px 16px #0000004d;z-index:50}.career-result-banner{display:flex;align-items:center;justify-content:center;width:100%;padding:10px;margin-bottom:10px;border-radius:10px;border:1px solid var(--color-accent);background:var(--color-accent-bg);color:var(--color-accent);font-size:.8125rem;font-weight:700;cursor:pointer}.career-edit-icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;color:var(--color-text-secondary);cursor:pointer}.career-edit-icon-btn:disabled{color:var(--color-text-muted);cursor:not-allowed}.career-edit-intro-body{font-size:.9375rem;color:var(--color-text-secondary);line-height:1.6;margin:0 0 32px}.career-edit-question{margin-bottom:22px}.career-edit-question-title{display:block;font-size:1.0625rem;font-weight:800;margin-bottom:10px}.career-candidate-list{display:flex;flex-direction:column;gap:12px;margin-bottom:8px}.career-candidate-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px}.career-candidate-title{font-size:.9375rem;font-weight:700;color:var(--color-text-primary)}.career-candidate-reasoning{font-size:.8125rem;color:var(--color-text-secondary);line-height:1.6;margin:0}.career-roadmap-group{margin-bottom:16px}.career-roadmap-label{display:block;font-size:.75rem;font-weight:700;color:var(--color-text-muted);margin-bottom:8px}.career-roadmap-item{display:flex;flex-direction:column;gap:4px}.career-roadmap-course{font-size:.875rem;font-weight:700;color:var(--color-text-primary)}.career-roadmap-reason{font-size:.75rem;color:var(--color-text-muted);line-height:1.5}.career-confirm-loading{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.career-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:career-spin .8s linear infinite}@keyframes career-spin{to{transform:rotate(360deg)}}.career-confirm-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:20px;z-index:40}.career-confirm-modal{width:100%;background:var(--color-bg-frame);border:1px solid var(--color-border);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:10px}.career-confirm-title{font-size:.9375rem;font-weight:700;color:var(--color-text-primary)}.career-confirm-body{font-size:.8125rem;color:var(--color-text-muted);line-height:1.6;margin:0}.career-confirm-cancel{width:100%;padding:11px;border-radius:10px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-size:.8125rem;cursor:pointer}
