@charset "UTF-8";:root{--app-vh: 1vh;--ui-primary: #6366f1;--ui-secondary: #a855f7;--ui-primary-soft: rgba(99, 102, 241, .12);--ui-primary-soft-strong: rgba(99, 102, 241, .22);--ui-bg-gradient: linear-gradient(135deg, #7c3aed 0%, #6366f1 45%, #22d3ee 100%);--ui-text: #0f172a;--ui-muted: #475569;--ui-surface: rgba(255, 255, 255, .9);--ui-surface-border: rgba(255, 255, 255, .28);--ui-radius-scale: 1;--ui-font-scale: 1;--ui-space-scale: 1;--ui-motion-scale: 1;--ui-danger: #ef4444;--ui-success: #10b981;--ui-shadow-soft: 0 10px 30px rgba(15, 23, 42, .12);--ui-shadow-strong: 0 20px 45px rgba(15, 23, 42, .18);--ui-back-btn-bg: rgba(255, 255, 255, .95);--ui-back-btn-text: #0f172a;--ui-back-btn-border: rgba(15, 23, 42, .16);--ui-back-btn-shadow: 0 8px 18px rgba(15, 23, 42, .18);--ui-back-btn-hover-bg: #ffffff;--ui-font-family: "MiSans", "HarmonyOS Sans SC", "Source Han Sans SC", "Noto Sans SC", "DM Sans", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "WenQuanYi Micro Hei", "Inter", sans-serif;--primary-color: var(--ui-primary);--secondary-color: var(--ui-secondary);--bg-gradient: var(--ui-bg-gradient);--glass-bg: var(--ui-surface);--glass-border: var(--ui-surface-border);--text-color: var(--ui-text)}*,*:before,*:after{box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{margin:0;min-height:100vh;font-family:var(--ui-font-family);background:var(--ui-bg-gradient);color:var(--ui-text);font-size:calc(16px * var(--ui-font-scale));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body,button,input,textarea,select{font-family:var(--ui-font-family);transition:color .35s ease,background-color .35s ease,border-color .35s ease,box-shadow .35s ease}html,body,#app,.app-shell,.dashboard,.schedule-view,.notification-view,.me-view,.settings-view,button,input,textarea,select{font-family:var(--ui-font-family)!important}#app{width:100%;height:100%;min-height:100dvh;height:100dvh;max-width:1200px;margin:0 auto}.glass-card{background:var(--ui-surface);backdrop-filter:blur(12px);border-radius:calc(16px * var(--ui-radius-scale));border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-soft);padding:calc(2rem * var(--ui-space-scale))}.btn{border:none;border-radius:calc(10px * var(--ui-radius-scale));padding:calc(.75rem * var(--ui-space-scale)) calc(1.5rem * var(--ui-space-scale));background:linear-gradient(to right,var(--ui-primary),var(--ui-secondary));color:#fff;font-weight:700;cursor:pointer;transition:transform calc(.2s * var(--ui-motion-scale)),box-shadow calc(.2s * var(--ui-motion-scale))}.btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #6366f159}input,select,textarea{width:100%;border-radius:calc(10px * var(--ui-radius-scale));border:1px solid rgba(148,163,184,.4);background:#f8fafcf2}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ui-primary);background:#fff}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff59;transform:translate(-50%,-50%);transition:width .5s ease,height .5s ease}.btn-ripple:active:after{width:260px;height:260px}.glitch-text{position:relative}.glitch-text:before,.glitch-text:after{content:attr(data-text);position:absolute;inset:0;opacity:.7}.glitch-text:before{color:#29c8e0;transform:translate(1px,-1px);animation:glitch-slice 2.8s infinite linear alternate-reverse}.glitch-text:after{color:#b74cc0;transform:translate(-1px,1px);animation:glitch-slice 3.2s infinite linear alternate-reverse}.neon-marquee{display:inline-block;white-space:nowrap;animation:neon-marquee 10s linear infinite}.back-btn{background:var(--ui-back-btn-bg)!important;color:var(--ui-back-btn-text)!important;border:1px solid var(--ui-back-btn-border)!important;box-shadow:var(--ui-back-btn-shadow)!important}.back-btn:hover{background:var(--ui-back-btn-hover-bg)!important}::-webkit-scrollbar{display:none}html.window-resizing,html.window-resizing *,html.window-resizing *:before,html.window-resizing *:after{transition-duration:0s!important;animation-duration:0s!important;animation-play-state:paused!important}html.window-resizing :is(.glass-card,.module-card,.dashboard-header,.today-panel,.notice-panel,.settings-section){backdrop-filter:none!important;-webkit-backdrop-filter:none!important}@keyframes glitch-slice{0%{clip-path:inset(40% 0 60% 0)}20%{clip-path:inset(20% 0 70% 0)}40%{clip-path:inset(60% 0 25% 0)}60%{clip-path:inset(30% 0 55% 0)}80%{clip-path:inset(10% 0 75% 0)}to{clip-path:inset(50% 0 35% 0)}}@keyframes neon-marquee{0%{transform:translate(0)}to{transform:translate(-30%)}}@media (max-width: 768px){body{align-items:flex-start;padding-top:0}.glass-card{padding:calc(1.5rem * var(--ui-space-scale));border-radius:calc(12px * var(--ui-radius-scale));margin:0 .5rem}.btn{width:100%;padding:calc(1rem * var(--ui-space-scale));font-size:16px}input,select,textarea{font-size:16px;padding:calc(1rem * var(--ui-space-scale))}}@media (max-width: 480px){.glass-card{padding:calc(1rem * var(--ui-space-scale));margin:0;border-radius:calc(8px * var(--ui-radius-scale))}h2{font-size:1.25rem}}:root{--ux-max-width: 1220px;--ux-page-x: clamp(10px, 2.2vw, 22px);--ux-page-y: clamp(10px, 2vw, 18px);--ux-bottom-safe: calc(128px + env(safe-area-inset-bottom)) ;--ux-header-height: clamp(64px, 8vw, 84px);--ux-header-title-size: clamp(20px, 2.2vw, 28px);--ux-header-title-size-mobile: clamp(18px, 4.8vw, 23px);--ux-card-radius: calc(18px * var(--ui-radius-scale));--ux-card-radius-sm: calc(12px * var(--ui-radius-scale));--ux-card-border: color-mix(in oklab, var(--ui-primary) 18%, rgba(148, 163, 184, .34));--ux-card-shadow: 0 14px 34px rgba(15, 23, 42, .14);--ux-card-shadow-hover: 0 20px 42px rgba(15, 23, 42, .2)}.app-shell{background-image:radial-gradient(1100px at 8% -10%,color-mix(in oklab,var(--ui-primary) 15%,transparent),transparent 58%),radial-gradient(1000px at 92% 108%,color-mix(in oklab,var(--ui-secondary) 16%,transparent),transparent 60%),var(--ui-bg-gradient);background-attachment:scroll,scroll,scroll}html[data-ui-decor=mesh] .app-shell:before,html[data-ui-decor=grain] .app-shell:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0}html[data-ui-decor=mesh] .app-shell:before{background:linear-gradient(transparent 96%,color-mix(in oklab,var(--ui-primary) 12%,transparent)),linear-gradient(90deg,transparent 96%,color-mix(in oklab,var(--ui-secondary) 11%,transparent) 100%);background-size:22px 22px,22px 22px;opacity:.2}html[data-ui-decor=grain] .app-shell:before{background-image:radial-gradient(rgba(15,23,42,.08) .5px,transparent .5px);background-size:3px 3px;opacity:.22}html[data-ui-decor=none] .app-shell:before{content:none}.app-shell>*{position:relative;z-index:1}.dashboard-header{width:min(var(--ux-max-width),100%);min-height:var(--ux-header-height);margin:0 auto 14px;padding:clamp(10px,2vw,16px);border-radius:calc(20px * var(--ui-radius-scale));border:1px solid var(--ux-card-border);background:linear-gradient(155deg,color-mix(in oklab,var(--ui-surface) 96%,#ffffff 4%),color-mix(in oklab,var(--ui-surface) 90%,var(--ui-primary-soft) 10%));box-shadow:var(--ux-card-shadow);display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative;z-index:2}.dashboard-header .brand{display:inline-flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}.dashboard-header .logo-img{width:22px;height:22px;object-fit:contain}.dashboard-header .title{margin:0;font-size:clamp(16px,4.4vw,20px);font-weight:800;letter-spacing:.2px;line-height:1.1;color:var(--ui-text)!important;background:none!important;-webkit-text-fill-color:currentColor!important;text-shadow:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-header .title.glitch-text:before,.dashboard-header .title.glitch-text:after{content:none!important}.dashboard-header .user-info{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;flex-shrink:0}.app-shell>:is(.dashboard,.notification-view,.me-view) .dashboard-header:not(.dashboard-header--home){display:flex!important;align-items:center!important;justify-content:space-between!important;flex-wrap:nowrap!important}.app-shell>:is(.dashboard,.notification-view,.me-view) .dashboard-header:not(.dashboard-header--home) .brand{min-width:0;flex:1 1 auto;justify-content:center}.app-shell>:is(.dashboard,.notification-view,.me-view) .dashboard-header:not(.dashboard-header--home) .title{font-size:clamp(17px,4.4vw,21px)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.app-shell>:is(.notification-view,.me-view) .dashboard-header{justify-content:center!important}.app-shell>:is(.dashboard,.notification-view,.me-view) .dashboard-header:not(.dashboard-header--home) .user-info{flex:0 0 auto;max-width:48%;flex-wrap:nowrap!important}.app-shell>:is(.dashboard,.notification-view,.me-view) .dashboard-header:not(.dashboard-header--home) .student-id{max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 768px){.dashboard-header{padding:10px 12px;min-height:62px}.dashboard-header .logo-img{width:20px;height:20px}.dashboard-header .title{font-size:var(--ux-header-title-size-mobile)}.app-shell>:is(.dashboard,.notification-view,.me-view) .dashboard-header:not(.dashboard-header--home) .user-info{max-width:56%}.app-shell>:is(.dashboard,.notification-view,.me-view) .dashboard-header:not(.dashboard-header--home) .student-id{max-width:150px}}.dashboard,.me-view,.settings-view,.notification-view,.resource-share-view,[class$=-view]:not(.schedule-view){width:min(var(--ux-max-width),100%);margin-inline:auto;padding-inline:var(--ux-page-x);padding-top:var(--ux-page-y);padding-bottom:var(--ux-bottom-safe)}.app-shell>.schedule-view{width:100%!important;max-width:none!important;margin-inline:0!important;padding-inline:0!important;padding-top:0!important}:is(.view-header,.t-page-header,.app-header,.grade-header,.elec-header,.qxzkb-header,.trans-header){width:min(var(--ux-max-width),100%);min-height:var(--ux-header-height);margin:0 auto 14px;padding:clamp(10px,2vw,16px);border-radius:calc(20px * var(--ui-radius-scale));border:1px solid var(--ux-card-border)!important;background:linear-gradient(155deg,color-mix(in oklab,var(--ui-surface) 96%,#ffffff 4%),color-mix(in oklab,var(--ui-surface) 84%,var(--ui-primary) 16%))!important;box-shadow:var(--ux-card-shadow)!important;display:grid!important;grid-template-columns:minmax(90px,124px) 1fr minmax(90px,124px)!important;align-items:center!important;gap:8px!important}:is(.view-header,.t-page-header,.app-header,.grade-header,.elec-header,.qxzkb-header,.trans-header)>h1,:is(.view-header,.t-page-header,.app-header,.grade-header,.elec-header,.qxzkb-header,.trans-header)>.title{margin:0!important;justify-self:center!important;text-align:center!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;font-size:var(--ux-header-title-size)!important;font-weight:800!important;line-height:1.2!important;color:var(--ui-text)!important}:is(.view-header,.t-page-header,.app-header,.grade-header,.elec-header,.qxzkb-header,.trans-header) .back-btn,:is(.view-header,.t-page-header,.app-header,.grade-header,.elec-header,.qxzkb-header,.trans-header) .header-btn{min-width:86px;height:42px;border-radius:12px!important}.app-shell :is(.back-btn,.header-btn){display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:90px!important;height:42px!important;padding:0 14px!important;border-radius:12px!important;border:1px solid color-mix(in oklab,var(--ui-primary) 24%,rgba(148,163,184,.44))!important;background:color-mix(in oklab,var(--ui-primary-soft) 62%,#fff 38%)!important;color:var(--ui-text)!important;font-size:14px!important;font-weight:700!important;line-height:1!important;box-shadow:0 8px 18px color-mix(in oklab,var(--ui-primary) 14%,transparent)!important}.app-shell :is(.back-btn,.header-btn):hover{background:color-mix(in oklab,var(--ui-primary-soft) 74%,#fff 26%)!important;transform:translateY(-1px)}:is(.view-header,.t-page-header,.app-header,.grade-header,.elec-header,.qxzkb-header,.trans-header) .header-spacer{justify-self:end;width:min(124px,100%)}:is(.view-header,.t-page-header,.app-header,.grade-header,.elec-header,.qxzkb-header,.trans-header) :is(.logout-btn,.header-btn.danger,.student-id,.student-number,.student-no,.user-info){display:none!important}:is(.glass-card,.module-card,.search-card,.filter-card,.result-card,.summary-card,.stats-card,.info-card,.list-card,.setting-card,.settings-section,.today-panel,.notice-panel,.results-info,.room-card,.calendar-card,.exam-item,.course-card,.transaction-card,.book-card,.resource-card,.t-card){border-radius:var(--ux-card-radius)!important;border:1px solid var(--ux-card-border)!important;box-shadow:var(--ux-card-shadow)!important;transition:transform calc(.18s * var(--ui-motion-scale)) ease,box-shadow calc(.18s * var(--ui-motion-scale)) ease!important}html[data-ui-card=glass] :is(.glass-card,.module-card,.search-card,.filter-card,.result-card,.summary-card,.stats-card,.info-card,.list-card,.setting-card,.settings-section,.today-panel,.notice-panel,.results-info,.room-card,.calendar-card,.exam-item,.course-card,.transaction-card,.book-card,.resource-card,.t-card){background:linear-gradient(154deg,color-mix(in oklab,#ffffff 92%,var(--ui-primary) 8%),color-mix(in oklab,#f8fafc 84%,var(--ui-secondary) 16%))!important;backdrop-filter:blur(15px)}html[data-ui-card=solid] :is(.glass-card,.module-card,.search-card,.filter-card,.result-card,.summary-card,.stats-card,.info-card,.list-card,.setting-card,.settings-section,.today-panel,.notice-panel,.results-info,.room-card,.calendar-card,.exam-item,.course-card,.transaction-card,.book-card,.resource-card,.t-card){background:color-mix(in oklab,#ffffff 94%,var(--ui-primary) 6%)!important}html[data-ui-card=outline] :is(.glass-card,.module-card,.search-card,.filter-card,.result-card,.summary-card,.stats-card,.info-card,.list-card,.setting-card,.settings-section,.today-panel,.notice-panel,.results-info,.room-card,.calendar-card,.exam-item,.course-card,.transaction-card,.book-card,.resource-card,.t-card){background:color-mix(in oklab,#ffffff 70%,transparent)!important;border-width:1.5px!important}:is(.glass-card,.module-card,.room-card,.settings-section,.book-card,.resource-card,.t-card--hoverable):not(.disabled):not(.bottom-tab-bar):hover{transform:translateY(-2px);box-shadow:var(--ux-card-shadow-hover)!important}.module-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:clamp(10px,1.2vw,14px)!important}.module-card .module-name{font-size:clamp(.94rem,2.2vw,1.08rem)!important;line-height:1.26!important;font-weight:700!important}html[data-ui-icon=line] .module-card .module-icon{background:transparent!important;border:none!important;box-shadow:none!important}html[data-ui-icon=mono] .module-card .module-icon,html[data-ui-icon=mono] .module-card .module-icon svg{color:var(--ui-text)!important;stroke:currentColor!important}html[data-ui-density=comfortable]{--ui-space-scale: 1.08;--ui-font-scale: 1.03}html[data-ui-density=balanced]{--ui-space-scale: 1;--ui-font-scale: 1}html[data-ui-density=compact]{--ui-space-scale: .9;--ui-font-scale: .95}.app-shell :is(input,select,textarea){min-height:44px;border-radius:var(--ux-card-radius-sm)!important;border:1px solid color-mix(in oklab,var(--ui-primary) 24%,rgba(148,163,184,.42))!important;background:#fffffff0!important;color:var(--ui-text)!important}.app-shell :is(input,select,textarea):focus{outline:none;border-color:var(--ui-primary)!important;box-shadow:0 0 0 3px color-mix(in oklab,var(--ui-primary) 20%,transparent)!important}.kpi-pill,.meta-pill,.head-pill,.status-pill{border-radius:999px!important;border:1px solid color-mix(in oklab,var(--ui-primary) 26%,transparent);background:color-mix(in oklab,var(--ui-primary-soft) 72%,#fff 28%);color:var(--ui-text);font-weight:700}.student-pill,.student-id,.semester-pill,.week-pill,.time-pill,.info-pill,.badge-pill,.cache-pill{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent);background:color-mix(in oklab,var(--ui-primary-soft) 72%,#fff 28%);color:var(--ui-text);font-size:12px;font-weight:700}.app-shell :is(.page-tag,.semester-tag,.semester-badge,.week-tag,.status-tag,.status-badge,.cache-status,.sync-tag,.device-tag,.meta-tag,.quick-tag){display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent);background:color-mix(in oklab,var(--ui-primary-soft) 68%,#fff 32%);color:var(--ui-text);font-size:12px;font-weight:700;flex-shrink:0}.kpi-pill{display:inline-flex;align-items:center;min-height:32px;padding:0 14px;box-shadow:0 8px 18px color-mix(in oklab,var(--ui-primary) 18%,transparent)}:is(.back-btn,.header-btn,.tab-btn,.query-btn,.download-btn,.font-btn,.preview-btn,.btn,.action-btn){border-radius:var(--ux-card-radius-sm)!important;border:1px solid color-mix(in oklab,var(--ui-primary) 26%,rgba(148,163,184,.3));font-weight:700!important}.bottom-tab-bar{transition:all calc(.2s * var(--ui-motion-scale)) ease;top:auto!important;inset-block-start:auto!important;height:auto!important;min-height:70px!important;max-height:106px!important;overflow:hidden}html[data-ui-nav=floating] .bottom-tab-bar{border-radius:20px!important;border:1px solid rgba(148,163,184,.3)!important;box-shadow:0 16px 30px #0f172a2e!important}html[data-ui-nav=pill] .bottom-tab-bar{border-radius:999px!important;padding-inline:14px!important}html[data-ui-nav=pill] .tab-item{border-radius:999px!important}html[data-ui-nav=compact] .bottom-tab-bar{width:min(640px,calc(100% - 26px))!important;padding:8px 12px!important;bottom:calc(10px + env(safe-area-inset-bottom))!important}html[data-ui-nav=compact] .tab-item{gap:2px!important;padding:6px 4px!important}html[data-theme=graphite_night] :is(input,select,textarea),html[data-theme=graphite_night] :is(.bottom-tab-bar,.exit-dialog-card,.font-modal-card){background:#0f172ad1!important;color:#e2e8f0!important}html[data-theme=graphite_night] :is(.glass-card,.module-card,.search-card,.filter-card,.result-card,.summary-card,.stats-card,.info-card,.list-card,.setting-card,.settings-section,.today-panel,.notice-panel,.results-info,.room-card,.calendar-card,.exam-item,.transaction-card,.book-card,.resource-card,.content-card,.modal-card,.mode-panel,.status-panel,.qr-panel,.order-panel,.stream-debug,.history-panel,.confirm-dialog,.thinking-window,.attachment-bar,.input-area){background:linear-gradient(160deg,#0f172adb,#1e293bd1)!important;border-color:color-mix(in oklab,var(--ui-primary) 28%,rgba(148,163,184,.28))!important}html[data-theme=graphite_night] .app-shell :is(.mode-panel,.status-panel,.qr-panel,.order-panel,.stream-debug,.history-panel,.confirm-dialog,.thinking-window,.attachment-bar,.input-area){background:linear-gradient(160deg,#0f172ad6,#1e293bcc)!important;border-color:color-mix(in oklab,var(--ui-primary) 26%,rgba(148,163,184,.28))!important}html[data-theme=graphite_night] .app-shell .dashboard .notice-panel .ticker-card{background:var(--ticker-card-bg, linear-gradient(135deg, #60a5fa, #3b82f6))!important;color:#fff!important}html[data-theme=graphite_night] .app-shell .dashboard .notice-panel :is(.ticker-card-title,.ticker-card-sub){background:transparent!important;background-image:none!important;box-shadow:none!important;color:#fff!important;text-shadow:none!important;filter:none!important}html[data-theme=graphite_night] .app-shell .schedule-view .courses-grid .day-column>.course-card{background:var(--course-bg, rgba(255, 255, 255, .92))!important;color:var(--course-text, #0f172a)!important;border-color:var(--course-border, rgba(148, 163, 184, .55))!important}html[data-theme=graphite_night] .app-shell :is(.glass-card,.module-card,.search-card,.filter-card,.result-card,.summary-card,.stats-card,.info-card,.list-card,.setting-card,.settings-section,.today-panel,.notice-panel,.results-info,.room-card,.calendar-card,.exam-item,.transaction-card,.book-card,.resource-card,.content-card,.modal-card,.mode-panel,.status-panel,.qr-panel,.order-panel,.stream-debug,.history-panel,.confirm-dialog,.thinking-window,.attachment-bar,.input-area){color:#dbe6f7!important}html[data-theme=graphite_night] .app-shell :is(a,.link,[class*=link]){color:#93c5fd!important}html[data-theme=graphite_night] .app-shell :is(button,.btn,[class*=btn]){color:#e7f0ff}html[data-theme=graphite_night] :is(.today-item-name,.module-name,.title,h1,h2,h3){color:#e2e8f0!important}html[data-theme=graphite_night] .app-shell :is(.content-card,.glass-card,.module-card,.settings-section,.resource-card,.book-card,.exam-item,.result-card,.summary-card) :is(p,small,li,h4,h5,h6){color:#dbe6f7!important}html[data-theme=graphite_night] .app-shell :is(.content-card,.glass-card,.module-card,.settings-section,.resource-card,.book-card,.exam-item,.result-card,.summary-card) :is(strong,b){color:#f8fbff!important}html[data-theme=graphite_night] .app-shell :is(input,select,textarea,option){color:#e2e8f0!important;background:#0f172ad1!important;border-color:#94a3b84d!important}html[data-theme=graphite_night] .app-shell :is(.page-tag,.semester-tag,.semester-badge,.week-tag,.status-tag,.status-badge,.cache-status,.sync-tag,.device-tag,.meta-tag,.quick-tag,.student-id,.student-pill,.semester-pill,.week-pill,.time-pill,.info-pill,.badge-pill,.cache-pill,.kpi-pill,.meta-pill,.head-pill,.status-pill,.share-btn,.logout-btn,.tab-btn,.history-btn,.ios26-select-trigger,.ios26-select-text){color:#e7f0ff!important;border-color:color-mix(in oklab,var(--ui-primary) 30%,rgba(148,163,184,.28))!important}html[data-theme=graphite_night] .app-shell :is(.page-tag,.semester-tag,.semester-badge,.week-tag,.status-tag,.status-badge,.cache-status,.sync-tag,.device-tag,.meta-tag,.quick-tag,.student-id,.student-pill,.semester-pill,.week-pill,.time-pill,.info-pill,.badge-pill,.cache-pill,.kpi-pill,.meta-pill,.head-pill,.status-pill,.share-btn,.logout-btn,.tab-btn,.history-btn,.ios26-select-trigger){background:linear-gradient(160deg,#0f172ac7,#1e293bbd)!important}html[data-theme=graphite_night] .app-shell ::placeholder{color:#9fb0cb!important}@media (max-width: 900px){.dashboard,.me-view,.settings-view,.notification-view,.resource-share-view,[class$=-view]{padding-inline:clamp(8px,3vw,14px)}}@media (max-width: 640px){.module-grid{gap:8px!important}:is(.view-header,.app-header,.grade-header,.elec-header,.qxzkb-header,.trans-header){grid-template-columns:minmax(80px,auto) 1fr minmax(80px,auto)!important;padding:10px!important}:is(.view-header,.app-header,.grade-header,.elec-header,.qxzkb-header,.trans-header)>h1,:is(.view-header,.app-header,.grade-header,.elec-header,.qxzkb-header,.trans-header)>.title{font-size:var(--ux-header-title-size-mobile)!important}.module-card .module-name{font-size:clamp(12px,3.2vw,14px)!important}}@media (prefers-reduced-motion: reduce){:is(.glass-card,.module-card,.room-card,.settings-section,.book-card,.resource-card,.btn,.back-btn,.header-btn){transition:none!important;animation:none!important}}.theme-module-icon[data-v-c6ffb6c8]{width:var(--badge-size);height:var(--badge-size);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:radial-gradient(120% 120% at 18% 18%,color-mix(in oklab,var(--ui-primary) 22%,#dcf1ff 78%),color-mix(in oklab,var(--ui-secondary) 14%,#eff8ff 86%));border:1px solid color-mix(in oklab,var(--ui-primary) 24%,rgba(148,163,184,.24));box-shadow:0 8px 16px color-mix(in oklab,var(--ui-primary) 14%,transparent),inset 0 1px #ffffffd1;overflow:hidden;color:var(--module-icon-color, #2f8dff)}.icon-svg[data-v-c6ffb6c8]{width:min(calc(var(--badge-size) * .56),calc(var(--icon-size) * .92));height:min(calc(var(--badge-size) * .56),calc(var(--icon-size) * .92));user-select:none;-webkit-user-drag:none;display:inline-flex;align-items:center;justify-content:center;color:inherit}.icon-img[data-v-c6ffb6c8]{width:min(calc(var(--badge-size) * .56),calc(var(--icon-size) * .92));height:min(calc(var(--badge-size) * .56),calc(var(--icon-size) * .92));user-select:none;-webkit-user-drag:none;object-fit:contain;display:block}.icon-mask[data-v-c6ffb6c8]{width:min(calc(var(--badge-size) * .56),calc(var(--icon-size) * .92));height:min(calc(var(--badge-size) * .56),calc(var(--icon-size) * .92));user-select:none;-webkit-user-drag:none;display:inline-block;background-color:currentColor;-webkit-mask-image:var(--icon-mask-url);mask-image:var(--icon-mask-url);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.icon-svg.icon-classroom[data-v-c6ffb6c8],.icon-img.icon-classroom[data-v-c6ffb6c8],.icon-mask.icon-classroom[data-v-c6ffb6c8]{width:min(calc(var(--badge-size) * .64),calc(var(--icon-size) * 1.16));height:min(calc(var(--badge-size) * .64),calc(var(--icon-size) * 1.16));transform:translate(-2px,2px)}.icon-svg.icon-academic[data-v-c6ffb6c8]{width:min(calc(var(--badge-size) * .62),calc(var(--icon-size) * 1.08));height:min(calc(var(--badge-size) * .62),calc(var(--icon-size) * 1.08));transform:translateY(1px)}.icon-svg[data-v-c6ffb6c8] svg{width:100%;height:100%;display:block}.icon-svg[data-v-c6ffb6c8] svg *{fill:currentColor!important;stroke:currentColor!important}.icon-svg[data-v-c6ffb6c8] [fill=none]{fill:none!important}.icon-svg[data-v-c6ffb6c8] [stroke=none]{stroke:none!important}.theme-module-icon.variant-tab[data-v-c6ffb6c8]{background:transparent;border:none;box-shadow:none}.theme-module-icon.variant-tab .icon-svg[data-v-c6ffb6c8]{width:var(--icon-size);height:var(--icon-size);color:currentColor}.theme-module-icon.variant-tab .icon-img[data-v-c6ffb6c8]{width:var(--icon-size);height:var(--icon-size)}.fallback-glyph[data-v-c6ffb6c8]{font-size:calc(var(--icon-size) * .8);line-height:1;color:color-mix(in oklab,var(--ui-primary) 84%,#111827 16%)}html[data-theme=campus_blue],html[data-theme=forest_mint],html[data-theme=sunset_orange],html[data-theme=minimal_slate],html[data-theme=graphite_night]{--module-icon-color: color-mix(in oklab, var(--ui-primary) 88%, #2ea8ff 12%)}html[data-theme=graphite_night]{color:var(--module-icon-color, #8fd8ff)!important;background:radial-gradient(120% 120% at 20% 16%,color-mix(in oklab,var(--ui-primary) 28%,#162033 72%),color-mix(in oklab,var(--ui-secondary) 20%,#101a2b 80%))!important;border-color:color-mix(in oklab,var(--ui-primary) 38%,rgba(148,163,184,.34))!important;box-shadow:0 10px 20px #080f1c57,inset 0 1px #ffffff0f!important}html[data-theme=graphite_night]{color:inherit!important;opacity:1!important;filter:none!important}html[data-ui-icon=mono]{opacity:.9}html[data-ui-icon=line]{opacity:.95}.dashboard[data-v-11d5d968]{min-height:100vh;background:var(--ui-bg-gradient);padding:20px;max-width:1120px;margin:0 auto}html[data-theme=cyberpunk] .dashboard[data-v-11d5d968]{position:relative;background:var(--ui-bg-gradient)}html[data-theme=cyberpunk] .dashboard[data-v-11d5d968]:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(41,200,224,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(41,200,224,.06) 1px,transparent 1px);background-size:48px 48px;pointer-events:none;z-index:0}html[data-theme=cyberpunk] .dashboard[data-v-11d5d968]>*{position:relative;z-index:1}.dashboard-header[data-v-11d5d968]{margin-bottom:14px}.maintenance-banner[data-v-11d5d968]{margin-bottom:14px;padding:12px 14px;border-radius:14px;border:1px solid color-mix(in srgb,#f97316 36%,transparent);background:color-mix(in srgb,#fff7ed 72%,var(--ui-surface));box-shadow:var(--card-shadow-soft)}.maintenance-banner--chaoxing[data-v-11d5d968]{border:1px solid color-mix(in srgb,#2563eb 34%,transparent);background:color-mix(in srgb,#eff6ff 74%,var(--ui-surface))}.maintenance-banner--chaoxing .maintenance-title[data-v-11d5d968]{color:#1d4ed8}.maintenance-banner--chaoxing .maintenance-text[data-v-11d5d968]{color:color-mix(in srgb,#1e3a8a 84%,var(--ui-text))}.maintenance-title[data-v-11d5d968]{font-size:16px;font-weight:800;color:#c2410c;margin-bottom:4px}.maintenance-text[data-v-11d5d968]{font-size:13px;line-height:1.5;color:color-mix(in srgb,#9a3412 88%,var(--ui-text))}.maintenance-meta[data-v-11d5d968]{margin-top:4px;font-size:12px;color:var(--ui-text-dim)}.dashboard-header--home[data-v-11d5d968]{display:flex;flex-direction:column;gap:8px}.home-header-top[data-v-11d5d968],.home-header-bottom[data-v-11d5d968]{display:flex;align-items:center;justify-content:space-between;gap:10px}.brand[data-v-11d5d968]{display:flex;align-items:center;gap:10px;min-width:0}.logo-img[data-v-11d5d968]{width:20px;height:20px;object-fit:contain}.brand .title[data-v-11d5d968]{font-size:clamp(15px,4vw,18px);font-weight:800;color:var(--ui-text);text-shadow:none;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-id[data-v-11d5d968]{color:var(--ui-text);font-weight:700;display:inline-flex;align-items:center;gap:8px;min-height:32px;background:color-mix(in oklab,var(--ui-primary-soft) 72%,#fff 28%);border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent);border-radius:999px;padding:0 12px}.student-id svg[data-v-11d5d968]{width:16px;height:16px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.student-entry[data-v-11d5d968]{border:none;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.student-entry[data-v-11d5d968]:hover{transform:translateY(-1px);box-shadow:0 10px 20px #3b82f633}.share-btn[data-v-11d5d968]{width:36px;height:36px;border-radius:8px;border:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.share-btn svg[data-v-11d5d968]{width:18px;height:18px;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.logout-btn[data-v-11d5d968]{min-width:68px;height:36px;padding:0 14px;border-radius:10px;border:none;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s}.share-btn[data-v-11d5d968]{background:var(--ui-primary-soft);color:var(--ui-primary)}.share-btn[data-v-11d5d968]:hover{background:#667eea;color:#fff}.logout-btn[data-v-11d5d968]{background:#ef44441f;color:var(--ui-danger)}.logout-btn[data-v-11d5d968]:hover{background:#dc2626;color:#fff}.module-grid[data-v-11d5d968]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:980px;margin:0 auto}.notice-panel[data-v-11d5d968]{margin:0 auto 24px;max-width:980px;background:var(--ui-surface);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--ui-surface-border);border-radius:20px;padding:16px;box-shadow:0 8px 32px #0000001a}html[data-theme=aurora] .notice-panel[data-v-11d5d968]{background:var(--ui-surface);border:1px solid var(--ui-surface-border);box-shadow:0 12px 28px #4f46e51f}.notice-ticker[data-v-11d5d968]{display:flex;align-items:center;overflow:hidden;height:120px}.ticker-track[data-v-11d5d968]{flex:1;overflow:hidden;position:relative}.ticker-items[data-v-11d5d968]{display:inline-flex;align-items:center;gap:20px;white-space:nowrap;flex-wrap:nowrap;width:max-content;padding-right:20px;transform:translateZ(0);transition-property:transform;transition-timing-function:cubic-bezier(.2,.9,.2,1);transition-duration:0ms;will-change:transform}.notice-ticker.swipe-mode[data-v-11d5d968]{touch-action:pan-y;user-select:none}.notice-ticker.swipe-mode .ticker-track[data-v-11d5d968]{overflow:hidden}.notice-ticker.swipe-mode.is-paused .ticker-items[data-v-11d5d968]{transition-duration:0ms!important}.ticker-item[data-v-11d5d968]{display:inline-block;height:120px;border-radius:12px;overflow:hidden;cursor:pointer;flex:0 0 auto;box-shadow:0 4px 12px #0000001a;transition:transform .2s;background:transparent}html[data-theme=aurora] .ticker-item[data-v-11d5d968]{background:transparent;box-shadow:0 10px 22px #4f46e52e}.ticker-item[data-v-11d5d968]:hover{transform:translateY(-2px)}.ticker-item.has-image[data-v-11d5d968]{width:auto;background:transparent;box-shadow:0 4px 12px #00000026}.ticker-img[data-v-11d5d968]{height:100%;width:auto;display:block;object-fit:cover;border-radius:12px;max-width:300px}.ticker-card[data-v-11d5d968]{height:100%;min-width:214px;background:var(--ticker-card-bg, linear-gradient(135deg, #60a5fa, #3b82f6));display:flex;flex-direction:column;justify-content:center;align-items:center;padding:16px;color:#fff;text-align:center;backdrop-filter:blur(6px)}html[data-theme=aurora] .ticker-card[data-v-11d5d968]{box-shadow:inset 0 0 0 1px #ffffff59}.ticker-card-title[data-v-11d5d968]{font-size:16px;font-weight:700;margin-bottom:8px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ticker-card-sub[data-v-11d5d968]{font-size:12px;opacity:.8;border:1px solid rgba(255,255,255,.4);padding:2px 8px;border-radius:99px}html[data-theme=graphite_night] .ticker-card-title[data-v-11d5d968],html[data-theme=graphite_night] .ticker-card-sub[data-v-11d5d968]{background:transparent!important;background-image:none!important;box-shadow:none!important;filter:none!important;color:#fff!important;text-shadow:none!important}.module-card[data-v-11d5d968]{background:linear-gradient(165deg,#fffffff2,#f7faffdb);border-radius:18px;border:1px solid rgba(148,163,184,.24);padding:6px 9px;text-align:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 10px 22px #0f172a1c;position:relative;overflow:hidden;min-height:58px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px}html[data-theme=cyberpunk] .module-card[data-v-11d5d968]{background:#0a0f1cd9;border:1px solid rgba(41,200,224,.35);box-shadow:0 0 12px #29c8e040;animation:cyber-pulse 5s ease-in-out infinite}html[data-theme=cyberpunk] .module-card[data-v-11d5d968]:before{height:3px;background:linear-gradient(90deg,var(--ui-neon-cyan),var(--ui-neon-pink));box-shadow:0 0 12px #29c8e080}html[data-theme=cyberpunk] .module-card[data-v-11d5d968]:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--hover-x, 50%) var(--hover-y, 50%),rgba(41,200,224,.25),transparent 60%);opacity:0;transition:opacity .25s ease;pointer-events:none}html[data-theme=cyberpunk] .module-card[data-v-11d5d968]:hover:after{opacity:1}html[data-theme=cyberpunk] .module-card[data-v-11d5d968]:hover:not(.disabled){box-shadow:0 0 18px #29c8e080,0 0 28px #b74cc059;transform:translateY(-6px)}html[data-theme=cyberpunk] .module-name[data-v-11d5d968]{color:var(--ui-text);text-shadow:0 0 8px rgba(41,200,224,.35)}html[data-theme=cyberpunk] .module-icon[data-v-11d5d968]{text-shadow:0 0 12px rgba(41,200,224,.6);animation:cyber-float-11d5d968 3.5s ease-in-out infinite}html[data-theme=cyberpunk] .share-btn[data-v-11d5d968],html[data-theme=cyberpunk] .logout-btn[data-v-11d5d968]{background:transparent;border:1px solid rgba(41,200,224,.4);color:var(--ui-neon-cyan);box-shadow:0 0 10px #29c8e059}html[data-theme=cyberpunk] .logout-btn[data-v-11d5d968]{color:var(--ui-neon-pink);border-color:#b74cc080;box-shadow:0 0 12px #b74cc059}html[data-theme=minimal] .dashboard[data-v-11d5d968]{background:#fff}html[data-theme=minimal] .dashboard-header[data-v-11d5d968],html[data-theme=minimal] .module-card[data-v-11d5d968]{background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:none}html[data-theme=minimal] .module-card[data-v-11d5d968]:before{height:4px;background:linear-gradient(90deg,#38bdf8,#0ea5e9);top:auto;bottom:0}html[data-theme=minimal] .tab-bar[data-v-11d5d968]{background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:none}html[data-theme=minimal] .share-btn[data-v-11d5d968],html[data-theme=minimal] .logout-btn[data-v-11d5d968]{background:#0ea5e914;color:#0ea5e9;border:1px solid rgba(14,165,233,.25)}@keyframes cyber-float-11d5d968{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.module-card[data-v-11d5d968]:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--accent-color)}.module-card[data-v-11d5d968]:hover:not(.disabled){transform:translateY(-4px);box-shadow:0 10px 20px #0000001f}.module-card.disabled[data-v-11d5d968]{opacity:.65;cursor:not-allowed;filter:grayscale(1);background:#e2e8f0;border:1px solid rgba(148,163,184,.6);box-shadow:none;--accent-color: #94a3b8}.module-icon[data-v-11d5d968]{display:inline-flex;align-items:center;justify-content:center;transition:transform .2s ease;margin-top:-1px}.module-name[data-v-11d5d968]{font-size:12px;font-weight:700;color:var(--ui-text);margin-bottom:2px;line-height:1.32;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%}.module-desc[data-v-11d5d968]{font-size:12px;color:var(--ui-muted)}.coming-soon[data-v-11d5d968]{position:absolute;top:12px;right:-30px;background:#fbbf24;color:#92400e;font-size:10px;padding:4px 32px;transform:rotate(45deg);font-weight:600}.today-panel[data-v-11d5d968]{max-width:980px;margin:26px auto 0;background:#fffffff5;border:1px solid rgba(148,163,184,.26);border-radius:22px;box-shadow:0 14px 34px #0f172a1f;padding:22px 20px}html[data-theme=cyberpunk] .today-panel[data-v-11d5d968]{background:#0a0f1ce6;border:1px solid rgba(41,200,224,.35);box-shadow:0 0 18px #29c8e040}.today-panel-head[data-v-11d5d968]{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;background:transparent!important;background-image:none!important;box-shadow:none!important;border:none!important}.today-panel-head h3[data-v-11d5d968],.today-title[data-v-11d5d968]{margin:0;font-size:20px;font-weight:800;letter-spacing:.2px;color:var(--ui-text);background:transparent!important;background-image:none!important;border:none!important;box-shadow:none!important;display:inline-flex;align-items:center}.today-panel-head h3[data-v-11d5d968]:before,.today-panel-head h3[data-v-11d5d968]:after,.today-title[data-v-11d5d968]:before,.today-title[data-v-11d5d968]:after{content:none!important}.today-time[data-v-11d5d968]{font-size:13px;font-weight:700;color:#4f46e5;background:#4f46e51f;border-radius:999px;padding:6px 12px}.today-empty[data-v-11d5d968]{border-radius:14px;background:#f8fafce6;border:1px solid rgba(203,213,225,.7);color:#475569;font-weight:600;padding:14px 16px}.today-error[data-v-11d5d968]{color:#b91c1c;background:#fef2f2e6;border-color:#fca5a5cc}.today-timeline[data-v-11d5d968]{--timeline-dot-size: 14px;--timeline-dot-top: 10px;--timeline-line-width: 2px;display:grid;grid-template-columns:1fr;gap:12px}.today-item[data-v-11d5d968]{display:grid;grid-template-columns:72px 26px 1fr;align-items:stretch}.today-item-time[data-v-11d5d968]{font-size:22px;font-weight:800;line-height:1;color:#0f172a;padding-top:2px}.today-item-line[data-v-11d5d968]{position:relative;display:flex;justify-content:center}.today-item-line[data-v-11d5d968]:after{content:"";position:absolute;top:calc(var(--timeline-dot-top) + var(--timeline-dot-size) / 2);bottom:-10px;left:50%;transform:translate(-50%);width:var(--timeline-line-width);background:linear-gradient(180deg,#60a5fa80,#e2e8f099)}.today-item:last-child .today-item-line[data-v-11d5d968]:after{display:none}.today-item-dot[data-v-11d5d968]{position:absolute;top:var(--timeline-dot-top);left:50%;transform:translate(-50%);width:var(--timeline-dot-size);height:var(--timeline-dot-size);border-radius:50%;background:linear-gradient(135deg,#60a5fa,#3b82f6);box-shadow:0 0 0 4px #60a5fa2e}.today-item-main[data-v-11d5d968]{padding:3px 0 10px}.today-item-name[data-v-11d5d968]{font-size:18px;font-weight:800;color:#111827;margin-bottom:8px}.today-item-meta[data-v-11d5d968]{font-size:15px;color:#64748b;line-height:1.65}.today-item-meta--location[data-v-11d5d968]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.today-meta-label[data-v-11d5d968]{color:#64748b;font-weight:600}.today-room-pill[data-v-11d5d968]{display:inline-flex;align-items:center;max-width:100%;padding:4px 12px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 26%,rgba(148,163,184,.42));background:linear-gradient(135deg,color-mix(in oklab,var(--ui-primary) 10%,#ffffff 90%),color-mix(in oklab,var(--ui-secondary) 14%,#ffffff 86%));color:color-mix(in oklab,var(--ui-primary) 68%,#0f172a 32%);font-size:16px;font-weight:800;line-height:1.25;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 5px 14px color-mix(in oklab,var(--ui-primary) 16%,transparent)}html[data-theme=cyberpunk] .today-item-time[data-v-11d5d968],html[data-theme=cyberpunk] .today-item-name[data-v-11d5d968]{color:#e2f7ff}html[data-theme=cyberpunk] .today-item-meta[data-v-11d5d968]{color:#94a3b8}html[data-theme=cyberpunk] .today-room-pill[data-v-11d5d968]{color:#d8f3ff;border-color:#67e8f96b}@media (max-width: 720px){.dashboard-header--home[data-v-11d5d968],.home-header-top[data-v-11d5d968],.home-header-bottom[data-v-11d5d968]{gap:8px}.brand .title[data-v-11d5d968]{font-size:clamp(14px,4vw,17px)}.student-id[data-v-11d5d968]{max-width:170px;overflow:hidden;text-overflow:ellipsis}.module-card[data-v-11d5d968]{padding:5px 4px;min-height:64px}.today-panel[data-v-11d5d968]{padding:16px 14px;border-radius:16px}.today-panel-head h3[data-v-11d5d968]{font-size:18px}.today-item[data-v-11d5d968]{grid-template-columns:56px 22px 1fr}.today-item-time[data-v-11d5d968]{font-size:18px}.today-item-name[data-v-11d5d968]{font-size:16px}.today-item-meta[data-v-11d5d968]{font-size:13px}.today-room-pill[data-v-11d5d968]{font-size:14px;padding:4px 10px}.module-name[data-v-11d5d968]{font-size:clamp(12px,3.2vw,14px);line-height:1.25}.module-icon[data-v-11d5d968]{transform:scale(.92)}}@media (max-width: 480px){.module-card[data-v-11d5d968]{padding:4px 3px;min-height:60px}.home-header-top[data-v-11d5d968]{gap:6px}.student-id[data-v-11d5d968]{max-width:148px;padding:0 10px}.logout-btn[data-v-11d5d968]{min-width:60px;padding:0 10px}.today-panel[data-v-11d5d968]{margin-top:20px;padding:14px 12px}.today-timeline[data-v-11d5d968]{--timeline-dot-size: 12px;--timeline-dot-top: 9px}.today-panel-head h3[data-v-11d5d968]{font-size:17px}.today-time[data-v-11d5d968]{font-size:12px;padding:4px 10px}.today-item[data-v-11d5d968]{grid-template-columns:48px 20px 1fr}.today-item-time[data-v-11d5d968]{font-size:16px}.today-item-name[data-v-11d5d968]{font-size:15px;margin-bottom:6px}.today-item-meta[data-v-11d5d968]{font-size:12px;line-height:1.5}.today-room-pill[data-v-11d5d968]{font-size:13px;padding:3px 9px}.module-name[data-v-11d5d968]{font-size:12px}.module-icon[data-v-11d5d968]{transform:scale(.88)}}.notice-modal-content[data-v-11d5d968]{user-select:text;-webkit-user-select:text}.header-actions[data-v-88f898ad]{display:flex;align-items:center;justify-content:flex-end;gap:8px}.t-card__header[data-v-2275a01a]{padding-bottom:calc(12px * var(--ui-space-scale));margin-bottom:calc(12px * var(--ui-space-scale));border-bottom:1px solid rgba(148,163,184,.18);font-weight:700;font-size:calc(15px * var(--ui-font-scale));color:var(--ui-text)}.t-card__body[data-v-2275a01a]{color:var(--ui-text)}.t-card__footer[data-v-2275a01a]{padding-top:calc(12px * var(--ui-space-scale));margin-top:calc(12px * var(--ui-space-scale));border-top:1px solid rgba(148,163,184,.18)}.t-card--compact[data-v-2275a01a]{padding:calc(1rem * var(--ui-space-scale))!important}.t-state[data-v-1c4d91f6]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(3rem * var(--ui-space-scale)) calc(1.5rem * var(--ui-space-scale));text-align:center;color:var(--ui-muted)}.t-state__icon[data-v-1c4d91f6]{font-size:3rem;margin-bottom:calc(12px * var(--ui-space-scale));line-height:1}.t-state__message[data-v-1c4d91f6]{margin:0;font-size:calc(14px * var(--ui-font-scale));font-weight:500;opacity:.8}.t-state__spinner[data-v-1c4d91f6]{width:36px;height:36px;border:3px solid rgba(99,102,241,.18);border-top-color:var(--ui-primary);border-radius:50%;animation:t-spin-1c4d91f6 .7s linear infinite;margin-bottom:calc(14px * var(--ui-space-scale))}.t-state--error .t-state__message[data-v-1c4d91f6]{color:var(--ui-danger)}@keyframes t-spin-1c4d91f6{to{transform:rotate(360deg)}}.t-modal__overlay[data-v-826bb601]{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;background:#0f172a73;backdrop-filter:blur(4px);padding:16px}.t-modal__container[data-v-826bb601]{width:100%;max-height:80vh;overflow-y:auto;border-radius:calc(20px * var(--ui-radius-scale))!important}.t-modal__header[data-v-826bb601]{display:flex;align-items:center;justify-content:space-between;margin-bottom:calc(14px * var(--ui-space-scale))}.t-modal__title[data-v-826bb601]{margin:0;font-size:calc(17px * var(--ui-font-scale));font-weight:800;color:var(--ui-text)}.t-modal__close[data-v-826bb601]{width:32px;height:32px;border:none;border-radius:8px;background:#94a3b824;color:var(--ui-muted);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s}.t-modal__close[data-v-826bb601]:hover{background:#ef44441f;color:var(--ui-danger)}.t-modal__body[data-v-826bb601]{color:var(--ui-text)}.t-modal__footer[data-v-826bb601]{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:calc(14px * var(--ui-space-scale));margin-top:calc(14px * var(--ui-space-scale));border-top:1px solid rgba(148,163,184,.18)}.t-modal-enter-active[data-v-826bb601],.t-modal-leave-active[data-v-826bb601]{transition:opacity calc(.2s * var(--ui-motion-scale)) ease}.t-modal-enter-active .t-modal__container[data-v-826bb601],.t-modal-leave-active .t-modal__container[data-v-826bb601]{transition:transform calc(.2s * var(--ui-motion-scale)) ease}.t-modal-enter-from[data-v-826bb601],.t-modal-leave-to[data-v-826bb601]{opacity:0}.t-modal-enter-from .t-modal__container[data-v-826bb601]{transform:scale(.92) translateY(12px)}.t-modal-leave-to .t-modal__container[data-v-826bb601]{transform:scale(.95) translateY(6px)}.t-list-item[data-v-6b8a99f6]{display:flex;align-items:center;gap:calc(12px * var(--ui-space-scale));padding:calc(14px * var(--ui-space-scale)) calc(16px * var(--ui-space-scale));border-radius:var(--ux-card-radius-sm, 12px);transition:background calc(.15s * var(--ui-motion-scale)) ease}.t-list-item--clickable[data-v-6b8a99f6]{cursor:pointer}.t-list-item--clickable[data-v-6b8a99f6]:hover{background:var(--ui-primary-soft)}.t-list-item--clickable[data-v-6b8a99f6]:active{background:var(--ui-primary-soft-strong)}.t-list-item__icon[data-v-6b8a99f6]{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--ui-primary-soft);color:var(--ui-primary);font-size:18px}.t-list-item__content[data-v-6b8a99f6]{flex:1;min-width:0}.t-list-item__action[data-v-6b8a99f6]{flex-shrink:0}.t-list-item__arrow[data-v-6b8a99f6]{flex-shrink:0;font-size:20px;color:var(--ui-muted);opacity:.5;font-weight:300}.t-badge[data-v-45408d6f]{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;font-size:calc(12px * var(--ui-font-scale));font-weight:700;line-height:1;white-space:nowrap}.t-badge--primary[data-v-45408d6f]{border:1px solid color-mix(in oklab,var(--ui-primary) 26%,transparent);background:color-mix(in oklab,var(--ui-primary) 12%,#fff 88%);color:var(--ui-primary)}.t-badge--success[data-v-45408d6f]{border:1px solid color-mix(in oklab,var(--ui-success) 26%,transparent);background:color-mix(in oklab,var(--ui-success) 12%,#fff 88%);color:var(--ui-success)}.t-badge--danger[data-v-45408d6f]{border:1px solid color-mix(in oklab,var(--ui-danger) 26%,transparent);background:color-mix(in oklab,var(--ui-danger) 12%,#fff 88%);color:var(--ui-danger)}.t-badge--warning[data-v-45408d6f]{border:1px solid color-mix(in oklab,#f59e0b 26%,transparent);background:color-mix(in oklab,#f59e0b 12%,#fff 88%);color:#b45309}.t-badge--info[data-v-45408d6f]{border:1px solid color-mix(in oklab,#06b6d4 26%,transparent);background:color-mix(in oklab,#06b6d4 12%,#fff 88%);color:#0e7490}.t-badge--muted[data-v-45408d6f]{border:1px solid rgba(148,163,184,.3);background:#94a3b81a;color:var(--ui-muted)}.t-action-bar[data-v-4945e37e]{position:sticky;bottom:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:center;gap:calc(12px * var(--ui-space-scale));padding:calc(12px * var(--ui-space-scale)) calc(16px * var(--ui-space-scale)) calc(12px * var(--ui-space-scale) + env(safe-area-inset-bottom))!important;border-radius:calc(16px * var(--ui-radius-scale)) calc(16px * var(--ui-radius-scale)) 0 0!important;border-bottom:none!important}.t-section[data-v-c227bf67]{margin-bottom:calc(16px * var(--ui-space-scale))}.t-section--flush[data-v-c227bf67]{margin-bottom:0}.t-section__title[data-v-c227bf67]{display:flex;align-items:center;gap:6px;margin:0 0 calc(10px * var(--ui-space-scale));font-size:calc(15px * var(--ui-font-scale));font-weight:800;color:var(--ui-text);letter-spacing:.2px}.t-section__icon[data-v-c227bf67]{font-size:1.1em}.t-section__badge[data-v-c227bf67]{margin-left:auto}.grade-view[data-v-f6a16530]{min-height:100%;background:var(--ui-bg-gradient);padding:16px 14px 120px;color:var(--ui-text)}.grade-header[data-v-f6a16530]{margin-bottom:12px}.grade-header .title[data-v-f6a16530]{display:flex;align-items:center;gap:8px;font-size:clamp(19px,2.2vw,24px);font-weight:800}.grade-header .icon[data-v-f6a16530]{font-size:24px}.back-btn[data-v-f6a16530],.logout-btn[data-v-f6a16530]{padding:8px 16px;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:all .2s}.back-btn[data-v-f6a16530]{background:var(--ui-primary-soft);color:var(--ui-primary);border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent)}.back-btn[data-v-f6a16530]:hover{background:var(--ui-primary);color:#fff}.logout-btn[data-v-f6a16530]{background:#ef44441f;color:var(--ui-danger)}.user-info[data-v-f6a16530]{display:flex;align-items:center;gap:12px}.filter-bar[data-v-f6a16530]{background:var(--ui-surface);padding:16px;margin:16px 0;border-radius:16px;border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-soft)}.filter-row[data-v-f6a16530]{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.filter-row+.filter-row[data-v-f6a16530]{margin-top:12px;padding-top:12px;border-top:1px dashed color-mix(in oklab,var(--ui-primary) 24%,var(--ui-surface-border))}.filter-actions-row[data-v-f6a16530]{justify-content:flex-end}.filter-advanced[data-v-f6a16530]{margin-top:10px}.search-box[data-v-f6a16530]{flex:1;min-width:200px;display:flex;align-items:center;background:var(--ui-surface);border-radius:10px;padding:0 12px;border:1px solid var(--ui-surface-border)}.search-icon[data-v-f6a16530]{margin-right:8px}.search-input[data-v-f6a16530]{flex:1;border:none!important;box-shadow:none!important;min-height:0!important;height:auto!important;background:transparent;padding:12px 0!important;font-size:14px;outline:none}.filter-select[data-v-f6a16530]{min-width:146px}.sort-select[data-v-f6a16530]{min-width:170px}.filter-select[data-v-f6a16530] .ios26-select-trigger{min-height:42px;border-radius:12px}.filter-group[data-v-f6a16530]{display:flex;align-items:center;gap:8px}.filter-group label[data-v-f6a16530]:first-child{font-size:13px;color:var(--ui-muted);white-space:nowrap}.radio-group[data-v-f6a16530]{display:flex;gap:4px}.radio-label[data-v-f6a16530]{padding:6px 12px;border-radius:8px;font-size:13px;cursor:pointer;background:var(--ui-primary-soft);border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent);transition:all .2s}.radio-label input[data-v-f6a16530]{display:none}.radio-label.active[data-v-f6a16530]{background:linear-gradient(135deg,var(--ui-primary),var(--ui-secondary));color:#fff;border-color:transparent}.ghost-btn[data-v-f6a16530]{padding:8px 14px;border-radius:10px;border:1px solid color-mix(in oklab,var(--ui-primary) 30%,transparent);background:var(--ui-primary-soft);color:var(--ui-primary);font-size:13px;cursor:pointer;transition:all .2s}.ghost-btn[data-v-f6a16530]:hover{background:color-mix(in oklab,var(--ui-primary-soft) 72%,#ffffff 28%)}.reset-btn[data-v-f6a16530]{padding:8px 16px;background:color-mix(in oklab,var(--ui-danger) 14%,#ffffff 86%);color:var(--ui-danger);border:none;border-radius:8px;font-size:13px;cursor:pointer;transition:all .2s;border:1px solid color-mix(in oklab,var(--ui-danger) 30%,transparent)}.reset-btn[data-v-f6a16530]:hover{background:var(--ui-danger);color:#fff}.stats-row[data-v-f6a16530]{display:flex;gap:12px;padding:0;margin-bottom:16px}.stat-card[data-v-f6a16530]{flex:1;background:var(--ui-surface);border-radius:16px;padding:16px;text-align:center;border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-soft)}.stat-value[data-v-f6a16530]{font-size:24px;font-weight:700;color:var(--ui-primary);display:inline-flex;align-items:center;justify-content:center;min-width:72px;min-height:38px;padding:0 12px;border-radius:999px;background:color-mix(in oklab,var(--ui-primary-soft) 70%,#fff 30%);border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent)}.stat-label[data-v-f6a16530]{font-size:12px;color:var(--ui-muted);margin-top:4px}.grade-list[data-v-f6a16530]{padding:0}.term-group[data-v-f6a16530]{margin-bottom:24px}.term-header[data-v-f6a16530]{font-size:15px;font-weight:800;color:var(--ui-text);margin-bottom:12px;display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent);background:color-mix(in oklab,var(--ui-primary-soft) 72%,#fff 28%)}.grade-grid[data-v-f6a16530]{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.grade-card[data-v-f6a16530]{background:var(--ui-surface);border-radius:14px;padding:16px;cursor:pointer;transition:all .3s;border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-soft);position:relative;overflow:hidden}.grade-card[data-v-f6a16530]:before{content:"";position:absolute;top:0;left:0;right:0;height:4px}.grade-card.excellent[data-v-f6a16530]:before{background:#10b981}.grade-card.good[data-v-f6a16530]:before{background:#3b82f6}.grade-card.pass[data-v-f6a16530]:before{background:#f59e0b}.grade-card.fail[data-v-f6a16530]:before{background:#ef4444}.grade-card[data-v-f6a16530]:hover{transform:translateY(-4px);box-shadow:var(--ui-shadow-strong)}.card-score[data-v-f6a16530]{font-size:28px;font-weight:700;margin-bottom:8px}.grade-card.excellent .card-score[data-v-f6a16530]{color:#10b981}.grade-card.good .card-score[data-v-f6a16530]{color:#3b82f6}.grade-card.pass .card-score[data-v-f6a16530]{color:#f59e0b}.grade-card.fail .card-score[data-v-f6a16530]{color:#ef4444}.card-name[data-v-f6a16530]{font-size:14px;font-weight:500;color:var(--ui-text);margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta[data-v-f6a16530]{font-size:11px;color:var(--ui-muted);display:flex;gap:8px;margin-bottom:6px}.card-status[data-v-f6a16530]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.status-chip[data-v-f6a16530]{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid transparent}.status-failed[data-v-f6a16530]{background:color-mix(in oklab,#ef4444 14%,#ffffff 86%);color:#ef4444;border-color:color-mix(in oklab,#ef4444 36%,transparent)}.status-makeup[data-v-f6a16530]{background:color-mix(in oklab,#f59e0b 16%,#ffffff 84%);color:#c26c00;border-color:color-mix(in oklab,#f59e0b 36%,transparent)}.status-deferred[data-v-f6a16530]{background:color-mix(in oklab,#3b82f6 16%,#ffffff 84%);color:#2563eb;border-color:color-mix(in oklab,#3b82f6 36%,transparent)}.status-exempt[data-v-f6a16530]{background:color-mix(in oklab,#10b981 16%,#ffffff 84%);color:#0f9f6e;border-color:color-mix(in oklab,#10b981 36%,transparent)}.card-teacher[data-v-f6a16530]{font-size:11px;color:var(--ui-muted);background:var(--ui-primary-soft);border:1px solid color-mix(in oklab,var(--ui-primary) 20%,transparent);padding:4px 8px;border-radius:999px;margin-top:8px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.no-results[data-v-f6a16530]{text-align:center;padding:60px 20px;color:var(--ui-muted)}.empty-icon[data-v-f6a16530]{font-size:64px;margin-bottom:16px}.no-results button[data-v-f6a16530]{margin-top:16px;padding:12px 24px;background:linear-gradient(135deg,var(--ui-primary),var(--ui-secondary));color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:700}.modal-overlay[data-v-f6a16530]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:14px}.modal-content[data-v-f6a16530]{background:var(--ui-surface);border-radius:20px;padding:22px 18px 16px;max-width:480px;width:100%;max-height:min(80vh,680px);overflow:auto;position:relative;animation:slideUp-f6a16530 .3s ease;border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-strong)}@keyframes slideUp-f6a16530{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-close[data-v-f6a16530]{position:absolute;top:10px;right:10px;width:32px;height:32px;border:none;background:var(--ui-primary-soft);color:var(--ui-text);border-radius:50%;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center}.detail-header[data-v-f6a16530]{text-align:center;margin-bottom:14px;padding-right:28px}.detail-score[data-v-f6a16530]{font-size:42px;font-weight:700;margin-bottom:6px}.detail-score.excellent[data-v-f6a16530]{color:#10b981}.detail-score.good[data-v-f6a16530]{color:#3b82f6}.detail-score.pass[data-v-f6a16530]{color:#f59e0b}.detail-score.fail[data-v-f6a16530]{color:#ef4444}.detail-header h2[data-v-f6a16530]{font-size:18px;color:var(--ui-text);margin:0}.detail-grid[data-v-f6a16530]{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.detail-item[data-v-f6a16530]{background:var(--ui-surface);padding:10px;border-radius:10px;border:1px solid var(--ui-surface-border)}.detail-item.full-width[data-v-f6a16530]{grid-column:span 2}.detail-label[data-v-f6a16530]{display:block;font-size:11px;color:var(--ui-muted);margin-bottom:3px}.detail-value[data-v-f6a16530]{font-size:14px;font-weight:500;color:var(--ui-text)}.detail-tags[data-v-f6a16530]{display:flex;flex-wrap:wrap;gap:8px}.detail-formula-note[data-v-f6a16530]{background:color-mix(in oklab,var(--ui-primary-soft) 64%,#fff 36%)}.detail-note-lines[data-v-f6a16530]{display:grid;gap:4px;font-size:13px;color:var(--ui-text);line-height:1.45}@media (max-width: 640px){.filter-row[data-v-f6a16530]{flex-direction:column;align-items:stretch}.filter-group[data-v-f6a16530]{width:100%;justify-content:space-between}.grade-grid[data-v-f6a16530]{grid-template-columns:repeat(2,1fr)}.stats-row[data-v-f6a16530]{flex-wrap:wrap}.stat-card[data-v-f6a16530]{min-width:calc(33% - 8px)}}.offline-banner[data-v-f6a16530]{margin:12px 0 0;padding:10px 14px;background:color-mix(in oklab,var(--ui-danger) 14%,#ffffff 86%);border:1px solid color-mix(in oklab,var(--ui-danger) 40%,transparent);color:var(--ui-danger);border-radius:12px;font-weight:600}.elec-view[data-v-8da15d89]{min-height:100vh;background:#f5f7fa}.elec-header[data-v-8da15d89]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#e53e3e,#c53030);color:#fff}.elec-header .title[data-v-8da15d89]{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:600}.back-btn[data-v-8da15d89],.logout-btn[data-v-8da15d89]{padding:8px 16px;border-radius:8px;border:none;cursor:pointer;background:#fff3;color:#fff;transition:background .2s}.back-btn[data-v-8da15d89]:hover,.logout-btn[data-v-8da15d89]:hover{background:#ffffff4d}.content[data-v-8da15d89]{padding:20px;max-width:600px;margin:0 auto}.selector-card[data-v-8da15d89]{background:#fff;border-radius:16px;padding:20px;box-shadow:0 4px 12px #0000000d;margin-bottom:20px}.selector-card h3[data-v-8da15d89]{margin:0 0 16px;font-size:16px;color:#2d3748}.select-group[data-v-8da15d89]{display:grid;gap:12px}.modern-select[data-v-8da15d89]{width:100%;padding:12px;border:1px solid #e2e8f0;border-radius:10px;font-size:14px;color:#4a5568;background-color:#fff;cursor:pointer;outline:none;transition:border-color .2s}.modern-select[data-v-8da15d89]:focus{border-color:#e53e3e}.modern-select[data-v-8da15d89]:disabled{background-color:#f7fafc;cursor:not-allowed;opacity:.7}.result-card[data-v-8da15d89]{background:#fff;border-radius:16px;padding:24px;box-shadow:0 8px 24px #e53e3e1a;text-align:center;position:relative;overflow:hidden}.status-badge[data-v-8da15d89]{position:absolute;top:16px;right:16px;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.status-badge.normal[data-v-8da15d89]{background:#def7ec;color:#03543f}.status-badge.warning[data-v-8da15d89]{background:#fde8e8;color:#9b1c1c}.balance-display[data-v-8da15d89]{margin:20px 0}.balance-display .label[data-v-8da15d89]{font-size:14px;color:#718096;margin-bottom:8px}.balance-display .value[data-v-8da15d89]{font-size:42px;font-weight:700;color:#2d3748}.balance-display .value.low[data-v-8da15d89]{color:#e53e3e}.balance-display .value small[data-v-8da15d89]{font-size:16px;font-weight:500;color:#718096}.disclaimer-text[data-v-8da15d89]{background:#fff7edf2;color:#c05621;padding:16px;border-radius:16px;font-size:13px;display:flex;align-items:flex-start;gap:12px;margin-bottom:24px;line-height:1.6;border:1px solid rgba(251,211,141,.4);box-shadow:0 4px 12px #ed893614;backdrop-filter:blur(8px)}.disclaimer-text .icon[data-v-8da15d89]{font-size:18px;flex-shrink:0;margin-top:1px}.detail-row[data-v-8da15d89]{display:flex;justify-content:center;gap:32px;margin-bottom:24px;padding-top:20px;border-top:1px solid #f0f0f0}.detail-item[data-v-8da15d89]{display:flex;flex-direction:column;gap:4px}.d-label[data-v-8da15d89]{font-size:12px;color:#a0aec0}.d-value[data-v-8da15d89]{font-size:16px;font-weight:600;color:#4a5568}.refresh-btn[data-v-8da15d89]{width:100%;padding:12px;background:#f7fafc;color:#4a5568;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s}.refresh-btn[data-v-8da15d89]:hover{background:#edf2f7;transform:translateY(-2px)}.loading-state[data-v-8da15d89],.empty-state[data-v-8da15d89],.error-msg[data-v-8da15d89]{text-align:center;padding:40px;color:#718096}.error-msg[data-v-8da15d89]{color:#e53e3e;background:#fff5f5;border-radius:12px}.spinner[data-v-8da15d89]{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #e53e3e;border-radius:50%;margin:0 auto 16px;animation:spin-8da15d89 1s linear infinite}@keyframes spin-8da15d89{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.offline-banner[data-v-8da15d89]{margin:12px 20px 0;padding:10px 14px;background:#ef444426;border:1px solid rgba(239,68,68,.4);color:#b91c1c;border-radius:12px;font-weight:600}.classroom-view[data-v-ea614841]{min-height:100vh;background:var(--ui-bg-gradient);color:var(--ui-text);padding-bottom:20px}.app-header[data-v-ea614841]{margin-bottom:12px}.title[data-v-ea614841]{display:inline-flex;align-items:center;gap:8px}.content-container[data-v-ea614841]{padding:0 14px;max-width:860px;margin:0 auto}.filter-card[data-v-ea614841]{background:var(--ui-surface);border-radius:16px;padding:16px;box-shadow:var(--ui-shadow-soft);border:1px solid var(--ui-surface-border);margin-bottom:16px}.filter-row[data-v-ea614841]{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.top-filter-row[data-v-ea614841]{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;flex-wrap:nowrap!important;gap:12px;align-items:end;width:100%}.filter-item[data-v-ea614841]{flex:1;min-width:100px}.top-filter-row .filter-item[data-v-ea614841]{min-width:0;width:100%;display:flex;flex-direction:column}.top-filter-row select[data-v-ea614841]{min-width:0;width:100%;max-width:100%;flex:0 0 auto}.filter-item label[data-v-ea614841]{display:block;font-size:12px;color:var(--ui-muted);margin-bottom:4px}select[data-v-ea614841],input[data-v-ea614841]{width:100%;padding:8px 10px;border:1px solid var(--ui-surface-border);border-radius:10px;font-size:14px;background:color-mix(in oklab,var(--ui-surface) 86%,#fff 14%);color:var(--ui-text)}.periods-row[data-v-ea614841]{margin-top:12px;flex-direction:column;gap:8px;align-items:stretch}.periods-label[data-v-ea614841]{display:flex;justify-content:space-between;align-items:center}.periods-label label[data-v-ea614841]{font-size:12px;color:var(--ui-muted)}.quick-actions span[data-v-ea614841]{font-size:12px;color:var(--ui-primary);margin-left:12px;cursor:pointer}.periods-grid[data-v-ea614841]{display:flex;flex-wrap:wrap;gap:8px}.period-tag[data-v-ea614841]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid color-mix(in oklab,var(--ui-primary) 24%,var(--ui-surface-border));border-radius:10px;font-size:14px;color:var(--ui-text);cursor:pointer;transition:all .2s;background:color-mix(in oklab,var(--ui-surface) 90%,#fff 10%)}.period-tag.active[data-v-ea614841]{background:linear-gradient(135deg,var(--ui-primary),var(--ui-secondary));color:#fff;border-color:transparent}.seats-input[data-v-ea614841]{flex:2}.input-group[data-v-ea614841]{display:flex;align-items:center;gap:8px}.input-group input[data-v-ea614841]{text-align:center}.query-btn[data-v-ea614841]{flex:1;min-width:130px;height:42px;padding:10px 12px;background:linear-gradient(135deg,var(--ui-primary),var(--ui-secondary));color:#fff;border:none;border-radius:10px;font-weight:700;cursor:pointer}.query-btn[data-v-ea614841]:disabled{opacity:.7;cursor:not-allowed}.empty-state[data-v-ea614841]{grid-column:1 / -1;text-align:center;padding:40px;color:var(--ui-muted);background:var(--ui-surface);border-radius:16px;border:1px dashed var(--ui-surface-border)}.empty-state .emoji[data-v-ea614841]{font-size:48px;margin-bottom:12px}.error-msg[data-v-ea614841]{background:color-mix(in oklab,var(--ui-danger) 14%,#ffffff 86%);color:var(--ui-danger);padding:12px;border-radius:10px;margin-bottom:16px;text-align:center;font-size:14px;border:1px solid color-mix(in oklab,var(--ui-danger) 38%,transparent)}.results-info[data-v-ea614841]{margin:16px 0;display:flex;justify-content:space-between;align-items:center;background:var(--ui-surface);padding:12px 16px;border-radius:14px;box-shadow:var(--ui-shadow-soft);border:1px solid var(--ui-surface-border)}.date-container[data-v-ea614841]{display:flex;flex-direction:column}.week-row[data-v-ea614841]{display:flex;gap:8px;align-items:center;margin-bottom:2px}.week-info[data-v-ea614841],.weekday[data-v-ea614841],.semester-info[data-v-ea614841]{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent);background:color-mix(in oklab,var(--ui-primary-soft) 70%,#fff 30%);font-size:12px;font-weight:700}.week-info[data-v-ea614841]{color:var(--ui-text)}.weekday[data-v-ea614841]{color:var(--ui-primary)}.date-row[data-v-ea614841]{font-size:13px;color:var(--ui-muted);margin-top:4px}.semester-info[data-v-ea614841]{color:var(--ui-muted)}.classroom-list[data-v-ea614841]{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.room-card[data-v-ea614841]{background:var(--ui-surface);border-radius:16px;padding:16px;box-shadow:var(--ui-shadow-soft);display:flex;flex-direction:column;position:relative;overflow:hidden;border:1px solid var(--ui-surface-border)}.room-card[data-v-ea614841]:active{transform:scale(.98)}.room-card[data-v-ea614841]:before{content:"";position:absolute;top:0;left:0;width:6px;height:100%;background:linear-gradient(180deg,var(--ui-primary),var(--ui-secondary))}.card-top[data-v-ea614841]{display:flex;justify-content:space-between;margin-bottom:8px}.room-seats[data-v-ea614841]{font-size:14px;font-weight:700;color:var(--ui-primary);background:color-mix(in oklab,var(--ui-primary-soft) 72%,#fff 28%);padding:2px 8px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent)}.room-type[data-v-ea614841]{font-size:10px;color:var(--ui-muted);border:1px solid var(--ui-surface-border);padding:1px 6px;border-radius:999px}.room-main[data-v-ea614841]{margin:8px 0}.room-name[data-v-ea614841]{font-size:18px;font-weight:800;color:var(--ui-text);line-height:1.2}.room-building[data-v-ea614841]{font-size:12px;color:var(--ui-muted);margin-top:4px}.card-bottom[data-v-ea614841]{display:flex;justify-content:space-between;align-items:flex-end;margin-top:auto}.floor-tag[data-v-ea614841]{font-size:12px;color:var(--ui-muted);background:color-mix(in oklab,var(--ui-primary-soft) 58%,#fff 42%);padding:2px 8px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 20%,transparent)}.status-tag[data-v-ea614841]{font-size:12px;font-weight:700}.status-tag.available[data-v-ea614841]{color:var(--ui-success);background:color-mix(in oklab,var(--ui-success) 13%,#fff 87%);border:1px solid color-mix(in oklab,var(--ui-success) 24%,transparent);border-radius:999px;padding:2px 8px}.offline-banner[data-v-ea614841]{margin:12px 14px 0;padding:10px 14px;background:color-mix(in oklab,var(--ui-danger) 14%,#ffffff 86%);border:1px solid color-mix(in oklab,var(--ui-danger) 40%,transparent);color:var(--ui-danger);border-radius:12px;font-weight:600}@media (max-width: 700px){.content-container[data-v-ea614841]{padding:0 10px}.top-filter-row[data-v-ea614841]{grid-template-columns:repeat(3,minmax(0,1fr))}.results-info[data-v-ea614841]{flex-direction:column;align-items:flex-start;gap:8px}}.schedule-view[data-v-5b418255]{--time-axis-width: 40px;--topbar-height: 52px;--date-header-height: 50px;--schedule-bottom-gap: calc(108px + env(safe-area-inset-bottom)) ;--schedule-safe-top: 0px;--slot-height: clamp( 46px, calc( ( var(--app-vh, 1vh) * 100 - var(--topbar-height) - var(--date-header-height) - var(--schedule-bottom-gap) ) / 11 ), 70px );width:100%;height:calc(var(--app-vh, 1vh) * 100);min-height:calc(var(--app-vh, 1vh) * 100);display:flex;flex-direction:column;background:var(--ui-bg-gradient);font-family:var(--ui-font-family);overflow:hidden;box-sizing:border-box;padding-top:8px}.schedule-topbar[data-v-5b418255]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;min-height:var(--topbar-height);background:var(--ui-surface);border-bottom:1px solid var(--ui-surface-border);box-sizing:border-box}.schedule-topbar .menu-btn[data-v-5b418255]{width:36px;height:32px;border:1px solid var(--ui-surface-border);border-radius:10px;background:var(--ui-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;box-shadow:var(--ui-shadow-soft);transition:transform .2s,box-shadow .2s,background .2s}.schedule-topbar .menu-btn[data-v-5b418255]:hover{transform:translateY(-1px);box-shadow:var(--ui-shadow-strong)}.menu-bar[data-v-5b418255]{width:16px;height:2px;background:var(--ui-text);border-radius:2px}.week-selector[data-v-5b418255]{position:relative;background:transparent!important;padding:0;min-height:32px;border-radius:0;border:none!important;box-shadow:none!important;display:flex;align-items:center}.week-selector[data-v-5b418255] .ios26-select-trigger{min-height:32px!important;height:32px!important;line-height:32px;font-size:13px;font-weight:800;padding:0 11px!important;border-radius:14px!important;background:var(--ui-surface)!important;box-shadow:none!important;border:1px solid var(--ui-surface-border)!important}.week-selector[data-v-5b418255] .ios26-select-value{white-space:nowrap}.week-selector[data-v-5b418255] .ios26-select-trigger:focus-visible{outline:none!important;box-shadow:none!important}.drawer-overlay[data-v-5b418255]{position:fixed;inset:0;background:#0f172a59;backdrop-filter:blur(2px);z-index:40}.drawer-panel[data-v-5b418255]{position:fixed;top:calc(env(safe-area-inset-top,0px) + 18px);left:0;width:min(78vw,320px);height:calc(100dvh - env(safe-area-inset-top,0px) - 18px);background:var(--ui-surface);border-right:1px solid var(--ui-surface-border);border-top-right-radius:16px;border-bottom-right-radius:16px;padding:18px 16px calc(28px + env(safe-area-inset-bottom,0px));box-shadow:12px 0 24px #0f172a29;z-index:50;display:flex;flex-direction:column;gap:12px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;box-sizing:border-box}.drawer-panel[data-v-5b418255]::-webkit-scrollbar{display:none}.drawer-title[data-v-5b418255]{font-size:16px;font-weight:700;color:var(--ui-text)}.drawer-section[data-v-5b418255]{display:grid;gap:8px}.drawer-subtitle[data-v-5b418255]{font-size:13px;font-weight:700;color:var(--ui-text)}.drawer-semester-row[data-v-5b418255]{display:grid;gap:8px}.drawer-select[data-v-5b418255]{width:100%;height:36px;border-radius:10px;border:1px solid var(--ui-surface-border);background:var(--ui-surface);color:var(--ui-text);font-size:13px;font-weight:600;padding:0 10px}.drawer-select[data-v-5b418255]:focus{outline:2px solid color-mix(in oklab,var(--ui-primary) 30%,transparent);outline-offset:1px}.drawer-error[data-v-5b418255]{font-size:12px;color:#dc2626}.drawer-style-switch[data-v-5b418255]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:4px;padding:4px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 20%,rgba(148,163,184,.34));background:color-mix(in oklab,var(--ui-primary-soft) 18%,var(--ui-surface) 82%)}.drawer-style-chip[data-v-5b418255]{border:none;background:transparent;color:var(--ui-muted);border-radius:999px;min-height:34px;padding:0 12px;text-align:center;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;white-space:nowrap;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}.drawer-style-chip strong[data-v-5b418255]{font-size:13px;font-weight:800}.drawer-style-chip.active[data-v-5b418255]{color:#fff;background:linear-gradient(135deg,var(--ui-primary),var(--ui-secondary));box-shadow:0 8px 18px color-mix(in oklab,var(--ui-primary) 24%,transparent)}.drawer-action[data-v-5b418255]{padding:10px 14px;border-radius:12px;border:none;background:linear-gradient(135deg,var(--ui-primary),#22d3ee);color:#fff;font-weight:600;cursor:pointer;box-shadow:0 8px 16px #3b82f638}.drawer-actions[data-v-5b418255]{display:grid;gap:10px}.drawer-course-group[data-v-5b418255]{display:grid;gap:8px;padding:10px;border-radius:12px;border:1px solid color-mix(in oklab,var(--ui-primary) 22%,var(--ui-surface-border));background:color-mix(in oklab,var(--ui-primary-soft) 24%,var(--ui-surface) 76%)}.drawer-course-actions[data-v-5b418255]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.drawer-sync-group[data-v-5b418255]{display:grid;gap:8px;padding:10px;border-radius:12px;border:1px solid color-mix(in oklab,var(--ui-primary) 22%,var(--ui-surface-border));background:color-mix(in oklab,var(--ui-primary-soft) 28%,var(--ui-surface) 72%)}.drawer-sync-actions[data-v-5b418255]{display:grid;gap:8px}.drawer-action.ghost[data-v-5b418255]{background:#111827;box-shadow:0 8px 16px #0f172a33}.drawer-action.add-course[data-v-5b418255]{background:linear-gradient(135deg,#f97316,#ec4899);box-shadow:0 10px 18px #ec489942}.drawer-action.manage-course[data-v-5b418255]{background:linear-gradient(135deg,#8b5cf6,#2563eb);box-shadow:0 10px 18px #4f46e538}.drawer-action.sync-upload[data-v-5b418255]{background:linear-gradient(135deg,#0ea5e9,#2563eb);box-shadow:0 10px 18px #2563eb3d}.drawer-action.sync-download[data-v-5b418255]{background:linear-gradient(135deg,#10b981,#0f766e);box-shadow:0 10px 18px #0f766e3d}.drawer-action[data-v-5b418255]:disabled{opacity:.7;cursor:not-allowed}.drawer-sync-status[data-v-5b418255]{display:grid;gap:4px}.drawer-sync-cooldown[data-v-5b418255],.drawer-sync-running[data-v-5b418255]{font-size:12px;color:var(--ui-muted);line-height:1.4}.drawer-sync-running[data-v-5b418255]{color:#0f766e;font-weight:600}.drawer-tip[data-v-5b418255]{font-size:12px;color:var(--ui-muted);line-height:1.5}.export-result[data-v-5b418255]{padding:10px;background:#f8fafcd9;border-radius:12px;border:1px solid var(--ui-surface-border)}.export-label[data-v-5b418255]{font-size:12px;color:var(--ui-muted);margin-bottom:6px}.export-row[data-v-5b418255]{display:flex;gap:8px}.export-input[data-v-5b418255]{flex:1;padding:8px 10px;border-radius:10px;border:1px solid var(--ui-surface-border);font-size:12px;color:var(--ui-text);background:#fff}.export-copy[data-v-5b418255]{padding:8px 10px;border-radius:10px;border:none;background:#111827;color:#fff;font-size:12px;cursor:pointer}.export-copied[data-v-5b418255]{margin-top:6px;font-size:12px;color:#059669;font-weight:600}.export-error[data-v-5b418255]{font-size:12px;color:#dc2626;background:#fff1f2;padding:8px 10px;border-radius:10px;border:1px solid #fecdd3}.drawer-fade-enter-active[data-v-5b418255],.drawer-fade-leave-active[data-v-5b418255]{transition:opacity .2s ease}.drawer-fade-enter-from[data-v-5b418255],.drawer-fade-leave-to[data-v-5b418255]{opacity:0}.drawer-slide-enter-active[data-v-5b418255],.drawer-slide-leave-active[data-v-5b418255]{transition:transform .25s ease}.drawer-slide-enter-from[data-v-5b418255],.drawer-slide-leave-to[data-v-5b418255]{transform:translate(-100%)}.date-header[data-v-5b418255]{height:var(--date-header-height);display:flex;border-bottom:1px solid color-mix(in oklab,var(--ui-primary) 18%,var(--ui-surface-border));background:var(--ui-surface);flex-shrink:0}.month-col[data-v-5b418255]{width:var(--time-axis-width);display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;color:var(--ui-text);font-size:14px}.month-label[data-v-5b418255]{font-size:10px;font-weight:400;color:var(--ui-muted)}.days-row[data-v-5b418255]{flex:1;display:flex}.day-col[data-v-5b418255]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.day-col.is-today[data-v-5b418255]{background:color-mix(in oklab,var(--ui-primary-soft) 82%,#fff 18%);border-radius:0 0 12px 12px}.day-col.is-today .day-num[data-v-5b418255]{color:color-mix(in oklab,var(--ui-primary) 78%,#0f172a 22%);font-weight:800;text-shadow:0 1px 0 color-mix(in oklab,#ffffff 70%,transparent)}.day-num[data-v-5b418255]{font-size:14px;color:var(--ui-text);font-weight:600}.day-label[data-v-5b418255]{font-size:10px;color:var(--ui-muted);display:flex;flex-direction:column;align-items:center;line-height:1.1}.timetable-container[data-v-5b418255]{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.grid-body[data-v-5b418255]{flex:1;display:flex;align-items:stretch;overflow-y:auto;min-height:0;padding-bottom:var(--schedule-bottom-gap);box-sizing:border-box;position:relative;background:linear-gradient(90deg,color-mix(in oklab,var(--ui-surface) 96%,#ffffff 4%) 0,color-mix(in oklab,var(--ui-surface) 96%,#ffffff 4%) var(--time-axis-width),transparent var(--time-axis-width));scrollbar-width:none}.grid-body[data-v-5b418255]::-webkit-scrollbar{display:none}.time-axis[data-v-5b418255]{width:var(--time-axis-width);background:color-mix(in oklab,var(--ui-surface) 96%,#ffffff 4%);border-right:1px solid color-mix(in oklab,var(--ui-primary) 18%,rgba(148,163,184,.35));display:flex;flex-direction:column;min-height:calc(var(--slot-height) * 11 + var(--schedule-bottom-gap));height:100%;padding-bottom:var(--schedule-bottom-gap);overflow:hidden;position:relative;align-self:stretch;box-sizing:border-box}.time-slot[data-v-5b418255]{flex:0 0 var(--slot-height);height:var(--slot-height);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;color:color-mix(in oklab,var(--ui-muted) 82%,#64748b 18%);border-bottom:1px dashed rgba(255,255,255,.08)}.period-num[data-v-5b418255]{font-size:14px;font-weight:700;color:var(--ui-text);margin:2px 0}.courses-grid[data-v-5b418255]{flex:1;display:flex;position:relative;min-height:calc(var(--slot-height) * 11 + var(--schedule-bottom-gap));padding-bottom:var(--schedule-bottom-gap);height:100%;box-sizing:border-box}.grid-lines[data-v-5b418255]{position:absolute;inset:0;display:flex;flex-direction:column;pointer-events:none}.line-row[data-v-5b418255]{height:var(--slot-height);border-bottom:1px dashed color-mix(in oklab,var(--ui-primary) 16%,rgba(226,232,240,.78));box-sizing:border-box}.day-column[data-v-5b418255]{flex:1;display:grid;grid-template-rows:repeat(11,var(--slot-height));grid-template-columns:1fr;padding:0 2px;position:relative;min-height:calc(var(--slot-height) * 11)}.day-column.is-today-column[data-v-5b418255]:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,color-mix(in oklab,var(--ui-primary-soft) 56%,transparent),color-mix(in oklab,var(--ui-primary-soft) 36%,transparent));border-left:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent);border-right:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent)}.course-card[data-v-5b418255]{margin:2px;padding:7px 5px;background:var(--course-bg, rgba(255, 255, 255, .92))!important;color:var(--course-text, #0f172a)!important;border-color:var(--course-border, rgba(148, 163, 184, .55))!important;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;font-size:12px;overflow:hidden;cursor:pointer;transition:transform .1s,box-shadow .1s;border:var(--course-border-width, 1px) solid var(--course-border, rgba(148, 163, 184, .55))!important;border-radius:var(--course-radius, 14px)!important;box-shadow:var(--course-shadow, 0 6px 14px rgba(71, 85, 105, .16))!important;z-index:1}.schedule-view .courses-grid .day-column>.course-card[data-v-5b418255]{border:var(--course-border-width, 1px) solid var(--course-border, rgba(148, 163, 184, .55))!important;border-radius:var(--course-radius, 14px)!important;box-shadow:var(--course-shadow, 0 6px 14px rgba(71, 85, 105, .16))!important;background:var(--course-bg, rgba(255, 255, 255, .92))!important;color:var(--course-text, #0f172a)!important}.schedule-view .courses-grid .day-column>.course-card.course-card--modern[data-v-5b418255]{border-radius:var(--course-radius, 14px)!important;box-shadow:var(--course-shadow, 0 6px 14px rgba(71, 85, 105, .16))!important}.schedule-view .courses-grid .day-column>.course-card.course-card--traditional[data-v-5b418255]{border-radius:8px!important;box-shadow:var(--course-shadow, 0 4px 10px rgba(15, 23, 42, .14))!important}.course-card.conflict .course-name[data-v-5b418255]{font-weight:700}.course-card.conflict .course-room[data-v-5b418255]{font-size:10px}.course-card[data-v-5b418255]:active{transform:scale(.98);box-shadow:0 0 1px #0000001a}.course-name[data-v-5b418255]{font-weight:600;font-size:12px;margin-bottom:4px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.course-room[data-v-5b418255]{font-size:11px;opacity:.88;font-weight:500}.modal-overlay[data-v-5b418255]{position:fixed;inset:0;background:#0006;z-index:320;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);padding:calc(env(safe-area-inset-top) + 10px) 12px calc(env(safe-area-inset-bottom) + 20px);box-sizing:border-box}.modal-content[data-v-5b418255]{background:#fff;width:80%;max-width:320px;border-radius:20px;padding:24px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.add-course-modal[data-v-5b418255]{width:min(92vw,400px);max-width:420px;max-height:min(74dvh,600px);display:flex;flex-direction:column;padding:16px}.add-course-body[data-v-5b418255]{display:grid;gap:10px;overflow-y:auto;max-height:calc(min(74dvh,600px) - 148px);padding-right:2px}.add-course-semester[data-v-5b418255]{font-size:12px;color:#475569;padding:6px 10px;border-radius:10px;background:#e2e8f08c}.add-row[data-v-5b418255]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.add-field[data-v-5b418255]{display:grid;gap:6px}.add-field>span[data-v-5b418255]{font-size:12px;color:#475569;font-weight:600}.add-field input[data-v-5b418255],.add-field select[data-v-5b418255]{width:100%;min-height:36px;border-radius:10px;border:1px solid #cbd5e1;background:#fff;color:#0f172a;font-size:13px;padding:0 10px;box-sizing:border-box}.add-field input[data-v-5b418255]:focus,.add-field select[data-v-5b418255]:focus{outline:2px solid rgba(37,99,235,.3);outline-offset:0}.week-picker-trigger[data-v-5b418255]{width:100%;min-height:38px;border-radius:10px;border:1px dashed #94a3b8;background:#f8fafcf2;color:#0f172a;font-size:13px;font-weight:600;cursor:pointer}.add-actions[data-v-5b418255]{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.add-course-error[data-v-5b418255]{margin-top:-2px}.modal-header[data-v-5b418255]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.modal-header h3[data-v-5b418255]{font-size:18px;color:#111827;margin:0;line-height:1.4}.close-btn[data-v-5b418255]{background:#f3f4f6;border:none;width:28px;height:28px;border-radius:50%;color:#6b7280;font-size:16px;cursor:pointer}.info-row[data-v-5b418255]{display:flex;justify-content:space-between;margin-bottom:12px;border-bottom:1px solid #f9fafb;padding-bottom:8px}.info-row[data-v-5b418255]:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.info-row .label[data-v-5b418255]{color:#9ca3af;font-size:13px}.info-row .value[data-v-5b418255]{color:#374151;font-size:13px;font-weight:500;text-align:right;max-width:70%}.custom-course-actions[data-v-5b418255]{margin-top:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.custom-delete-btn[data-v-5b418255]{min-height:34px;border-radius:10px;border:none;font-size:12px;font-weight:700;cursor:pointer}.custom-delete-btn.week[data-v-5b418255]{background:#fee2e2;color:#b91c1c}.custom-delete-btn.edit[data-v-5b418255]{background:#dbeafe;color:#1d4ed8}.custom-delete-btn.all[data-v-5b418255]{background:#dc2626;color:#fff}.detail-action-error[data-v-5b418255]{margin-top:10px;font-size:12px;color:#b91c1c;background:#fff1f2;border:1px solid #fecdd3;border-radius:10px;padding:8px 10px}.conflict-hint[data-v-5b418255]{font-size:12px;color:#475569;margin-bottom:10px}.conflict-item[data-v-5b418255]{border:1px solid #fecaca;background:#fff7f7;border-radius:12px;padding:10px;margin-bottom:10px}.conflict-item.clickable[data-v-5b418255]{cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.conflict-item.clickable[data-v-5b418255]:hover{transform:translateY(-1px);box-shadow:0 10px 18px #ef44441f}.conflict-item[data-v-5b418255]:last-child{margin-bottom:0}.conflict-item-title[data-v-5b418255]{font-size:13px;font-weight:700;color:#7f1d1d;display:flex;align-items:center;gap:6px}.conflict-tag[data-v-5b418255]{display:inline-flex;align-items:center;height:20px;border-radius:999px;padding:0 8px;font-size:11px;background:#111827;color:#fff}.conflict-item-row[data-v-5b418255]{margin-top:6px;font-size:12px;color:#374151}.manage-course-modal[data-v-5b418255]{width:min(92vw,560px);max-width:560px}.manage-course-body[data-v-5b418255]{max-height:min(72vh,560px);overflow-y:auto;display:grid;gap:12px}.manage-course-empty[data-v-5b418255],.manage-course-error[data-v-5b418255]{border-radius:12px;padding:14px;font-size:13px}.manage-course-empty[data-v-5b418255]{background:color-mix(in oklab,var(--ui-primary-soft) 18%,#ffffff 82%);color:#475569}.manage-course-error[data-v-5b418255]{background:#fff1f2;border:1px solid #fecdd3;color:#b91c1c}.manage-course-groups[data-v-5b418255]{display:grid;gap:12px}.manage-course-group[data-v-5b418255]{border-radius:14px;border:1px solid color-mix(in oklab,var(--ui-primary) 18%,var(--ui-surface-border));background:color-mix(in oklab,var(--ui-primary-soft) 14%,var(--ui-surface) 86%);overflow:hidden}.manage-course-group-header[data-v-5b418255]{width:100%;border:none;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;cursor:pointer}.manage-course-group-title[data-v-5b418255]{display:grid;gap:2px;text-align:left}.manage-course-group-title strong[data-v-5b418255]{font-size:14px;color:#0f172a}.manage-course-group-title span[data-v-5b418255],.manage-course-group-arrow[data-v-5b418255]{font-size:12px;color:#64748b}.manage-course-list[data-v-5b418255]{display:grid;gap:10px;padding:0 12px 12px}.manage-course-card[data-v-5b418255]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px;border-radius:12px;background:#ffffffd1;border:1px solid rgba(148,163,184,.2)}.manage-course-card-main[data-v-5b418255]{min-width:0;display:grid;gap:4px}.manage-course-card-name[data-v-5b418255]{font-size:14px;font-weight:700;color:#0f172a}.manage-course-card-meta[data-v-5b418255]{font-size:12px;color:#475569}.manage-course-card-actions[data-v-5b418255]{display:grid;gap:8px}.manage-course-btn[data-v-5b418255]{min-width:76px;min-height:34px;border:none;border-radius:10px;font-size:12px;font-weight:700;cursor:pointer}.manage-course-btn.edit[data-v-5b418255]{background:#dbeafe;color:#1d4ed8}.manage-course-btn.delete[data-v-5b418255]{background:#fee2e2;color:#b91c1c}.confirm-overlay[data-v-5b418255]{z-index:360}.confirm-modal[data-v-5b418255]{width:min(90vw,360px);max-width:360px;border-radius:16px;padding:16px}.confirm-title[data-v-5b418255]{font-size:15px;font-weight:700;color:#0f172a}.confirm-lines[data-v-5b418255]{margin-top:10px;display:grid;gap:6px}.confirm-lines p[data-v-5b418255]{margin:0;font-size:13px;color:#334155;line-height:1.4}.confirm-actions[data-v-5b418255]{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.confirm-btn[data-v-5b418255]{min-height:36px;border-radius:10px;border:none;font-size:13px;font-weight:700;cursor:pointer;color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8)}.confirm-btn.cancel[data-v-5b418255]{background:#e2e8f0;color:#334155}.confirm-btn.danger[data-v-5b418255]{background:linear-gradient(135deg,#dc2626,#b91c1c)}.fade-enter-active[data-v-5b418255],.fade-leave-active[data-v-5b418255]{transition:opacity .2s}.fade-enter-from[data-v-5b418255],.fade-leave-to[data-v-5b418255]{opacity:0}.week-slide-left-enter-active[data-v-5b418255],.week-slide-left-leave-active[data-v-5b418255],.week-slide-right-enter-active[data-v-5b418255],.week-slide-right-leave-active[data-v-5b418255]{transition:transform .24s cubic-bezier(.22,.61,.36,1),opacity .24s ease}.week-slide-left-enter-from[data-v-5b418255]{transform:translate(24px);opacity:0}.week-slide-left-leave-to[data-v-5b418255],.week-slide-right-enter-from[data-v-5b418255]{transform:translate(-24px);opacity:0}.week-slide-right-leave-to[data-v-5b418255]{transform:translate(24px);opacity:0}.offline-banner[data-v-5b418255]{margin:12px 0 0;padding:10px 14px;background:#ef444426;border:1px solid rgba(239,68,68,.4);color:#b91c1c;border-radius:12px;font-weight:600}.vacation-banner[data-v-5b418255]{margin:12px 0 0;padding:10px 14px;background:#f59e0b29;border:1px solid rgba(217,119,6,.35);color:#92400e;border-radius:12px;font-weight:600}.error-banner[data-v-5b418255]{margin:12px 0 0;padding:10px 14px;background:#ea580c1f;border:1px solid rgba(234,88,12,.3);color:#9a3412;border-radius:12px;font-weight:600}.topbar-right[data-v-5b418255]{display:flex;align-items:center;gap:8px}.semester-badge-wrap[data-v-5b418255]{position:relative}.semester-badge-btn[data-v-5b418255]{position:relative;width:32px;height:32px;border:1px solid var(--ui-surface-border);border-radius:10px;background:var(--ui-surface);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ui-text);box-shadow:var(--ui-shadow-soft);transition:transform .2s,box-shadow .2s}.semester-badge-btn[data-v-5b418255]:hover{transform:translateY(-1px);box-shadow:var(--ui-shadow-strong)}.semester-badge-dot[data-v-5b418255]{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 2px var(--ui-surface);pointer-events:none}.semester-badge-popover[data-v-5b418255]{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;padding:12px 14px;background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:12px;box-shadow:0 12px 32px #0f172a2e;text-align:center;z-index:25}.semester-badge-popover-title[data-v-5b418255]{font-size:12px;font-weight:600;color:#64748b}.semester-badge-popover-value[data-v-5b418255]{margin-top:4px;font-size:16px;font-weight:800;color:var(--ui-text)}.semester-badge-popover-desc[data-v-5b418255]{margin-top:4px;font-size:11px;color:#94a3b8}.badge-popover-enter-active[data-v-5b418255],.badge-popover-leave-active[data-v-5b418255]{transition:opacity .18s,transform .18s}.badge-popover-enter-from[data-v-5b418255],.badge-popover-leave-to[data-v-5b418255]{opacity:0;transform:translateY(-4px)}.week-picker-mask[data-v-5b418255]{position:fixed;inset:0;z-index:520;background:#0f172a7a;display:flex;align-items:flex-end;justify-content:center}.week-picker-sheet[data-v-5b418255]{width:min(100vw,520px);max-height:min(78dvh,620px);background:#fff;border-top-left-radius:18px;border-top-right-radius:18px;padding:14px 14px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -20px 44px #0f172a47;display:flex;flex-direction:column;gap:10px}.week-picker-header[data-v-5b418255]{display:flex;align-items:center;justify-content:space-between;gap:12px}.week-picker-title[data-v-5b418255]{font-size:14px;font-weight:700;color:#0f172a}.week-picker-ops[data-v-5b418255]{display:flex;gap:8px}.week-picker-ops button[data-v-5b418255]{border:1px solid #cbd5e1;background:#f8fafc;color:#334155;border-radius:8px;padding:4px 8px;font-size:12px;cursor:pointer}.week-picker-grid[data-v-5b418255]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;overflow-y:auto;padding-right:2px}.week-cell[data-v-5b418255]{min-height:34px;border-radius:10px;border:1px solid #cbd5e1;background:#f8fafc;color:#334155;font-size:12px;cursor:pointer}.week-cell.active[data-v-5b418255]{border-color:#2563eb;background:#dbeafe;color:#1d4ed8;font-weight:700}.week-picker-confirm[data-v-5b418255]{min-height:40px;border-radius:12px;border:none;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;font-size:14px;font-weight:700;cursor:pointer}.sheet-up-enter-active[data-v-5b418255],.sheet-up-leave-active[data-v-5b418255]{transition:opacity .2s ease}.sheet-up-enter-active .week-picker-sheet[data-v-5b418255],.sheet-up-leave-active .week-picker-sheet[data-v-5b418255]{transition:transform .24s ease}.sheet-up-enter-from[data-v-5b418255],.sheet-up-leave-to[data-v-5b418255]{opacity:0}.sheet-up-enter-from .week-picker-sheet[data-v-5b418255],.sheet-up-leave-to .week-picker-sheet[data-v-5b418255]{transform:translateY(100%)}.jump-current-btn[data-v-5b418255]{position:fixed;right:16px;top:50%;transform:translateY(-50%);padding:10px 12px;border-radius:14px;border:none;background:#3b82f6d9;color:#fff;font-weight:600;font-size:12px;box-shadow:0 10px 24px #3b82f64d;cursor:pointer;z-index:12}@media (max-width: 768px){.drawer-panel[data-v-5b418255]{top:calc(env(safe-area-inset-top,0px) + 10px);bottom:calc(112px + env(safe-area-inset-bottom,0px));height:auto;max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 124px);padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}.schedule-topbar[data-v-5b418255]{padding:10px 12px}.schedule-view[data-v-5b418255]{--time-axis-width: 32px;--topbar-height: 50px;--date-header-height: 44px}.week-selector[data-v-5b418255]{padding:0}.week-selector[data-v-5b418255] .ios26-select-trigger{min-height:30px!important;height:30px!important;line-height:30px!important;font-size:12px;font-weight:800;border-radius:13px!important}.month-col[data-v-5b418255],.time-axis[data-v-5b418255]{width:var(--time-axis-width)}.time-slot[data-v-5b418255]{font-size:9px}.period-num[data-v-5b418255]{font-size:12px}.day-column[data-v-5b418255]{grid-template-rows:repeat(11,var(--slot-height))}.line-row[data-v-5b418255]{height:var(--slot-height)}.course-card[data-v-5b418255]{padding:4px 2px;font-size:10px}.course-name[data-v-5b418255]{font-size:10px}.course-room[data-v-5b418255]{font-size:9px}.add-row[data-v-5b418255]{grid-template-columns:1fr;gap:8px}.add-actions[data-v-5b418255]{grid-template-columns:1fr}.week-picker-grid[data-v-5b418255]{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}}.qxzkb-view[data-v-b5d155c4]{min-height:100vh;background:var(--ui-bg-gradient, #f5f7fa);color:var(--ui-text)}.qxzkb-header[data-v-b5d155c4]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--ui-surface);border-bottom:1px solid var(--ui-surface-border);position:sticky;top:0;z-index:10;box-shadow:var(--ui-shadow-soft)}.qxzkb-header .title[data-v-b5d155c4]{display:flex;align-items:center;gap:8px;font-size:19px;font-weight:800}.back-btn[data-v-b5d155c4]{min-height:34px;padding:0 12px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 26%,transparent);background:var(--ui-primary-soft);color:var(--ui-primary);font-weight:700;cursor:pointer}.offline-banner[data-v-b5d155c4]{margin:12px 16px 0;padding:10px 12px;border-radius:12px;background:color-mix(in oklab,var(--ui-danger) 14%,#ffffff 86%);border:1px solid color-mix(in oklab,var(--ui-danger) 36%,transparent);color:var(--ui-danger);font-weight:600;font-size:13px}.content[data-v-b5d155c4]{padding:12px 14px 120px}.filter-card[data-v-b5d155c4]{padding:14px;border-radius:16px;background:var(--ui-surface);border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-soft)}.filter-header[data-v-b5d155c4]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.filter-title[data-v-b5d155c4]{font-size:16px;font-weight:800}.filter-actions[data-v-b5d155c4]{display:flex;align-items:center;gap:8px}.ghost-btn[data-v-b5d155c4],.primary-btn[data-v-b5d155c4]{min-height:32px;padding:0 12px;border-radius:999px;font-size:12px;cursor:pointer}.ghost-btn[data-v-b5d155c4]{border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent);background:var(--ui-primary-soft);color:var(--ui-primary)}.primary-btn[data-v-b5d155c4]{border:none;background:linear-gradient(135deg,var(--ui-primary),var(--ui-secondary));color:#fff;font-weight:700}.ghost-btn[data-v-b5d155c4]:disabled,.primary-btn[data-v-b5d155c4]:disabled{opacity:.55;cursor:not-allowed}.filter-grid[data-v-b5d155c4]{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 12px}.compact-grid[data-v-b5d155c4]{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.field[data-v-b5d155c4]{display:flex;flex-direction:column;gap:6px}.field label[data-v-b5d155c4]{font-size:12px;color:var(--ui-muted);font-weight:600}.text-input[data-v-b5d155c4]{min-height:36px;border-radius:12px;border:1px solid var(--ui-surface-border);background:var(--ui-surface);color:var(--ui-text);padding:0 10px;font-size:13px}.modern-select[data-v-b5d155c4] .ios26-select-trigger{min-height:36px;border-radius:12px}.compact-select[data-v-b5d155c4]{min-width:104px}.advanced-section[data-v-b5d155c4]{margin-top:12px;padding-top:10px;border-top:1px dashed color-mix(in oklab,var(--ui-primary) 26%,var(--ui-surface-border))}.kklx-section[data-v-b5d155c4]{margin-top:10px}.kklx-title[data-v-b5d155c4]{font-size:12px;color:var(--ui-muted);margin-bottom:8px;font-weight:600}.kklx-options[data-v-b5d155c4]{display:flex;flex-wrap:wrap;gap:8px}.kklx-chip[data-v-b5d155c4]{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border-radius:999px;background:var(--ui-primary-soft);color:var(--ui-primary);border:1px solid color-mix(in oklab,var(--ui-primary) 28%,transparent);font-size:12px}.pagination-bar[data-v-b5d155c4]{margin-top:12px;padding-top:10px;border-top:1px dashed color-mix(in oklab,var(--ui-primary) 20%,var(--ui-surface-border));display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.page-info[data-v-b5d155c4]{font-size:12px;color:var(--ui-muted)}.page-actions[data-v-b5d155c4]{display:flex;align-items:center;gap:8px}.error-banner[data-v-b5d155c4]{margin-top:12px;padding:10px 12px;border-radius:12px;background:color-mix(in oklab,var(--ui-danger) 12%,#ffffff 88%);border:1px solid color-mix(in oklab,var(--ui-danger) 30%,transparent);color:var(--ui-danger)}.loading[data-v-b5d155c4],.empty-state[data-v-b5d155c4]{text-align:center;padding:36px 12px;color:var(--ui-muted)}.empty-state.compact[data-v-b5d155c4]{padding:16px 8px}.result-list[data-v-b5d155c4]{margin-top:14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}.result-card[data-v-b5d155c4]{text-align:left;border:1px solid var(--ui-surface-border);background:var(--ui-surface);border-radius:14px;padding:12px;box-shadow:var(--ui-shadow-soft);display:flex;flex-direction:column;gap:8px;cursor:pointer}.result-card[data-v-b5d155c4]:hover{transform:translateY(-1px);box-shadow:var(--ui-shadow-strong)}.result-title[data-v-b5d155c4]{font-size:15px;font-weight:700;line-height:1.35}.result-brief[data-v-b5d155c4]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.brief-item[data-v-b5d155c4]{display:flex;flex-direction:column;gap:2px;min-width:0}.brief-item.full-row[data-v-b5d155c4]{grid-column:1 / -1}.brief-label[data-v-b5d155c4]{font-size:11px;color:var(--ui-muted)}.brief-value[data-v-b5d155c4]{font-size:13px;color:var(--ui-text);font-weight:600}.brief-value.multiline[data-v-b5d155c4]{font-weight:500;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.modal-overlay[data-v-b5d155c4]{position:fixed;inset:0;background:#0f172a7a;z-index:1000;display:flex;align-items:center;justify-content:center;padding:14px}.modal-content[data-v-b5d155c4]{width:min(920px,100%);max-height:min(86vh,860px);overflow:auto;background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:18px;box-shadow:var(--ui-shadow-strong);padding:16px;position:relative}.modal-close[data-v-b5d155c4]{position:sticky;top:0;margin-left:auto;width:30px;height:30px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 22%,transparent);background:var(--ui-primary-soft);color:var(--ui-primary);font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center}.modal-title[data-v-b5d155c4]{margin:8px 0 10px;font-size:20px;font-weight:800;line-height:1.3}.detail-section+.detail-section[data-v-b5d155c4]{margin-top:12px}.detail-section h3[data-v-b5d155c4]{margin:0 0 8px;font-size:14px;color:var(--ui-primary)}.detail-grid[data-v-b5d155c4]{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.detail-item[data-v-b5d155c4]{border:1px solid var(--ui-surface-border);border-radius:10px;padding:8px 10px;background:color-mix(in oklab,var(--ui-primary-soft) 62%,#fff 38%);display:flex;flex-direction:column;gap:4px}.detail-label[data-v-b5d155c4]{font-size:11px;color:var(--ui-muted)}.detail-value[data-v-b5d155c4]{font-size:13px;color:var(--ui-text);line-height:1.35;white-space:pre-wrap;word-break:break-word}.tab-bar[data-v-b5d155c4]{margin-top:14px;display:flex;gap:0;border-radius:12px;overflow:hidden;border:1px solid var(--ui-surface-border);background:var(--ui-surface)}.tab-btn[data-v-b5d155c4]{flex:1;min-height:40px;border:none;background:transparent;color:var(--ui-muted);font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s}.tab-btn.active[data-v-b5d155c4]{background:linear-gradient(135deg,var(--ui-primary),var(--ui-secondary));color:#fff}.tab-badge[data-v-b5d155c4]{min-width:20px;height:20px;border-radius:999px;background:color-mix(in oklab,var(--ui-primary) 18%,transparent);color:var(--ui-primary);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}.tab-btn.active .tab-badge[data-v-b5d155c4]{background:#ffffff4d;color:#fff}.tab-loading[data-v-b5d155c4]{font-size:12px}.class-search[data-v-b5d155c4]{margin-top:14px;margin-bottom:10px}.class-search .text-input[data-v-b5d155c4]{width:100%;box-sizing:border-box}.class-list[data-v-b5d155c4]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.class-card[data-v-b5d155c4]{text-align:left;border:1px solid var(--ui-surface-border);background:var(--ui-surface);border-radius:14px;padding:12px;box-shadow:var(--ui-shadow-soft);display:flex;flex-direction:column;gap:6px;cursor:pointer;transition:transform .15s,box-shadow .15s}.class-card[data-v-b5d155c4]:hover{transform:translateY(-1px);box-shadow:var(--ui-shadow-strong)}.class-name[data-v-b5d155c4]{font-size:15px;font-weight:700;line-height:1.35}.class-meta[data-v-b5d155c4]{font-size:12px;color:var(--ui-muted);display:flex;gap:4px}.class-teacher[data-v-b5d155c4]{font-size:13px;color:var(--ui-text);font-weight:600}.class-composition[data-v-b5d155c4]{font-size:12px;color:var(--ui-muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.class-schedule-view[data-v-b5d155c4]{margin-top:14px}.class-schedule-header[data-v-b5d155c4]{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}.class-schedule-title[data-v-b5d155c4]{font-size:17px;font-weight:800}.class-schedule-sub[data-v-b5d155c4]{width:100%;font-size:12px;color:var(--ui-muted);line-height:1.4}.week-selector[data-v-b5d155c4]{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:12px}.week-btn[data-v-b5d155c4]{width:36px;height:36px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 26%,transparent);background:var(--ui-primary-soft);color:var(--ui-primary);font-size:20px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center}.week-btn[data-v-b5d155c4]:disabled{opacity:.35;cursor:not-allowed}.week-label[data-v-b5d155c4]{font-size:16px;font-weight:700;color:var(--ui-text);min-width:80px;text-align:center}.schedule-grid-wrapper[data-v-b5d155c4]{--slot-height: 72px;--time-axis-width: 44px;background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:16px;overflow:hidden;box-shadow:var(--ui-shadow-soft)}.schedule-date-header[data-v-b5d155c4]{display:flex;border-bottom:1px solid color-mix(in oklab,var(--ui-primary) 18%,var(--ui-surface-border))}.schedule-corner[data-v-b5d155c4]{width:var(--time-axis-width);flex-shrink:0}.schedule-day-labels[data-v-b5d155c4]{flex:1;display:flex}.schedule-day-label[data-v-b5d155c4]{flex:1;text-align:center;font-size:12px;font-weight:700;padding:10px 0;color:var(--ui-text)}.schedule-grid-body[data-v-b5d155c4]{display:flex;overflow-y:auto;max-height:calc(var(--slot-height) * 11 + 12px)}.schedule-time-axis[data-v-b5d155c4]{width:var(--time-axis-width);flex-shrink:0;border-right:1px solid color-mix(in oklab,var(--ui-primary) 18%,rgba(148,163,184,.35));display:flex;flex-direction:column}.schedule-time-slot[data-v-b5d155c4]{flex:0 0 var(--slot-height);height:var(--slot-height);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:9px;color:var(--ui-muted)}.schedule-period-num[data-v-b5d155c4]{font-size:13px;font-weight:700;color:var(--ui-text);margin:1px 0}.schedule-time-start[data-v-b5d155c4],.schedule-time-end[data-v-b5d155c4]{font-size:9px}.schedule-courses-grid[data-v-b5d155c4]{flex:1;display:flex;position:relative;min-height:calc(var(--slot-height) * 11)}.schedule-grid-lines[data-v-b5d155c4]{position:absolute;inset:0;display:flex;flex-direction:column;pointer-events:none}.schedule-line-row[data-v-b5d155c4]{height:var(--slot-height);border-bottom:1px dashed color-mix(in oklab,var(--ui-primary) 16%,rgba(226,232,240,.78));box-sizing:border-box}.schedule-day-column[data-v-b5d155c4]{flex:1;display:grid;grid-template-rows:repeat(11,var(--slot-height));grid-template-columns:1fr;padding:0 1px;position:relative}.schedule-course-card[data-v-b5d155c4]{background:var(--course-bg, rgba(255, 255, 255, .92));color:var(--course-text, #334155);border-left:3px solid var(--course-border, #cbd5e1);border-radius:var(--course-radius, 14px);box-shadow:var(--course-shadow, 0 4px 10px rgba(0,0,0,.08));padding:4px 6px;margin:1px;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:2px;cursor:pointer;min-height:0;transition:transform .16s ease,box-shadow .16s ease}.schedule-course-card[data-v-b5d155c4]:hover{transform:translateY(-1px);box-shadow:0 10px 24px #4755692e}.schedule-course-name[data-v-b5d155c4]{font-size:11px;font-weight:700;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.schedule-course-room[data-v-b5d155c4]{font-size:9px;opacity:.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-course-teacher[data-v-b5d155c4]{font-size:9px;opacity:.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 700px){.filter-actions[data-v-b5d155c4]{width:100%;justify-content:flex-start}.result-list[data-v-b5d155c4],.class-list[data-v-b5d155c4]{grid-template-columns:1fr}.modal-content[data-v-b5d155c4]{padding:12px}.schedule-grid-wrapper[data-v-b5d155c4]{--slot-height: 60px;--time-axis-width: 38px}}.course-selection-view[data-v-c9be2b69]{min-height:100%;width:100%;min-width:0;box-sizing:border-box;overflow-x:clip;padding:6px 8px 96px}.course-page-header[data-v-c9be2b69]{display:grid;gap:8px;padding:8px 10px}.header-top[data-v-c9be2b69]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.course-page-title[data-v-c9be2b69]{margin:0;text-align:center;font-size:26px;font-weight:900;letter-spacing:.02em;color:var(--ui-text);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.refresh-btn[data-v-c9be2b69],.back-btn[data-v-c9be2b69]{width:96px;min-width:96px;min-height:40px;border-radius:14px;border:1px solid color-mix(in oklab,var(--ui-primary) 24%,var(--ui-surface-border));background:color-mix(in oklab,var(--ui-primary) 9%,var(--ui-surface));color:var(--ui-text);font-weight:800;display:inline-flex;align-items:center;justify-content:center;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.refresh-btn[data-v-c9be2b69]:hover,.back-btn[data-v-c9be2b69]:hover{box-shadow:var(--ui-shadow-soft);transform:translateY(-1px)}.refresh-btn[data-v-c9be2b69]:disabled,.back-btn[data-v-c9be2b69]:disabled{opacity:.6;cursor:not-allowed;transform:none}.refresh-btn[data-v-c9be2b69]{justify-self:end;background:linear-gradient(135deg,color-mix(in oklab,var(--ui-primary) 70%,white),color-mix(in oklab,var(--ui-secondary) 55%,white));border-color:color-mix(in oklab,var(--ui-primary) 44%,transparent);color:#fff}.refresh-btn-placeholder[data-v-c9be2b69]{width:96px;min-width:96px;min-height:40px}.header-meta-row[data-v-c9be2b69]{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px}.header-mini-pill[data-v-c9be2b69]{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;color:var(--ui-text);border:1px solid color-mix(in oklab,var(--ui-primary) 18%,var(--ui-surface-border));background:color-mix(in oklab,var(--ui-primary) 8%,var(--ui-surface))}.content[data-v-c9be2b69]{display:grid;gap:8px;margin-top:8px;min-width:0;max-width:100%}.entry-grid[data-v-c9be2b69]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.entry-tile[data-v-c9be2b69]{width:100%;text-align:left;padding:16px;display:grid;gap:8px;border:1px solid var(--ui-surface-border);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.entry-tile[data-v-c9be2b69]:hover{transform:translateY(-2px);box-shadow:var(--ui-shadow-strong)}.entry-badge[data-v-c9be2b69]{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-height:24px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}.entry-badge-selection[data-v-c9be2b69]{background:color-mix(in oklab,#f59e0b 18%,var(--ui-surface));color:#92400e;border:1px solid color-mix(in oklab,#f59e0b 34%,transparent)}.entry-badge-info[data-v-c9be2b69]{background:color-mix(in oklab,#0ea5e9 18%,var(--ui-surface));color:#0c4a6e;border:1px solid color-mix(in oklab,#0ea5e9 34%,transparent)}.entry-title[data-v-c9be2b69]{margin:0;font-size:22px;font-weight:900;color:var(--ui-text)}.entry-desc[data-v-c9be2b69]{margin:0;color:var(--ui-muted);line-height:1.6;font-size:13px}.glass-card[data-v-c9be2b69]{background:var(--ui-surface);border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-soft);border-radius:calc(26px * var(--theme-radius-scale, 1))}.detail-paragraph[data-v-c9be2b69]{word-break:break-word;overflow-wrap:anywhere}.batch-card[data-v-c9be2b69],.filter-card[data-v-c9be2b69]{padding:10px;min-width:0;max-width:100%;overflow:hidden}.section-head[data-v-c9be2b69],.filter-header[data-v-c9be2b69]{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}.section-head h3[data-v-c9be2b69],.filter-title[data-v-c9be2b69]{margin:0;font-size:20px;color:var(--ui-text)}.section-head p[data-v-c9be2b69],.filter-subtitle[data-v-c9be2b69]{margin:4px 0 0;color:var(--ui-muted);font-size:12px}.batch-select-wrap[data-v-c9be2b69]{margin-top:2px}.info-base-grid[data-v-c9be2b69]{grid-template-columns:minmax(0,320px)}.batch-select[data-v-c9be2b69] .ios26-select-trigger{min-height:40px;border-radius:14px}.filter-actions[data-v-c9be2b69]{display:flex;flex-wrap:wrap;gap:10px}.info-toggle-row[data-v-c9be2b69]{margin-top:8px}.info-toggle-check[data-v-c9be2b69]{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ui-muted)}.info-toggle-check input[data-v-c9be2b69]{width:16px;height:16px}.filter-grid[data-v-c9be2b69]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.compact-grid[data-v-c9be2b69]{grid-template-columns:repeat(5,minmax(0,1fr))}.field[data-v-c9be2b69]{display:grid;gap:4px}.span-2[data-v-c9be2b69]{grid-column:span 2}.field label[data-v-c9be2b69]{font-size:13px;color:var(--ui-muted)}.text-input[data-v-c9be2b69]{min-height:38px;border-radius:14px;border:1px solid var(--ui-surface-border);background:color-mix(in oklab,var(--ui-primary) 5%,var(--ui-surface));color:var(--ui-text);padding:10px 14px;outline:none}.modern-select[data-v-c9be2b69] .ios26-select-trigger{min-height:38px;border-radius:14px}.result-block[data-v-c9be2b69]{display:grid;gap:10px;min-width:0;max-width:100%}.loading-state[data-v-c9be2b69],.empty-state[data-v-c9be2b69]{text-align:center;padding:40px 16px;color:var(--ui-muted);border-radius:18px;border:1px dashed color-mix(in oklab,var(--ui-primary) 18%,var(--ui-surface-border));background:color-mix(in oklab,var(--ui-primary) 7%,var(--ui-surface))}.empty-state.compact[data-v-c9be2b69]{padding:16px}.info-source-tip[data-v-c9be2b69]{border-radius:14px;border:1px solid color-mix(in oklab,#0ea5e9 24%,var(--ui-surface-border));background:color-mix(in oklab,#0ea5e9 10%,var(--ui-surface));color:color-mix(in oklab,#0f4f5c 84%,var(--ui-text));padding:10px 12px;font-size:12px;font-weight:600}.course-list[data-v-c9be2b69]{display:grid;gap:6px;min-width:0;max-width:100%}.course-card[data-v-c9be2b69]{display:block;white-space:normal;width:100%;min-width:0;max-width:100%;box-sizing:border-box;text-align:left;padding:8px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease;overflow:hidden}.course-card[data-v-c9be2b69] *{min-width:0;max-width:100%;box-sizing:border-box}.course-card[data-v-c9be2b69]:hover{transform:translateY(-1px);box-shadow:var(--ui-shadow-strong)}.course-top[data-v-c9be2b69]{display:flex;justify-content:space-between;align-items:flex-start;gap:6px}.course-top>div[data-v-c9be2b69]:first-child{min-width:0}.course-top-right[data-v-c9be2b69]{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.course-name[data-v-c9be2b69]{font-size:16px;font-weight:800;color:var(--ui-text);line-height:1.25;word-break:break-word}.course-class[data-v-c9be2b69]{margin-top:2px;color:var(--ui-muted);font-size:12px;line-height:1.45;word-break:break-word}.course-credit[data-v-c9be2b69]{flex:0 0 auto;padding:5px 10px;border-radius:999px;background:color-mix(in oklab,var(--ui-secondary) 16%,var(--ui-surface));border:1px solid color-mix(in oklab,var(--ui-secondary) 24%,var(--ui-surface-border));font-weight:700;color:var(--ui-text)}.course-meta-row[data-v-c9be2b69]{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;margin-top:4px}.course-meta-row[data-v-c9be2b69]>*{min-width:0}.course-meta-row.secondary[data-v-c9be2b69]{align-items:center}.course-meta-row.compact[data-v-c9be2b69]{margin-top:0}.meta-chip[data-v-c9be2b69],.status-pill[data-v-c9be2b69]{display:inline-flex;align-items:center;justify-content:flex-start;min-width:0;max-width:100%;min-height:28px;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid transparent;line-height:1.3;white-space:normal;overflow-wrap:anywhere;text-align:left}.meta-chip[data-v-c9be2b69]{background:color-mix(in oklab,var(--ui-primary) 8%,var(--ui-surface));border-color:color-mix(in oklab,var(--ui-primary) 18%,var(--ui-surface-border));color:var(--ui-text)}.online-pill[data-v-c9be2b69]{background:color-mix(in oklab,#22d3ee 20%,var(--ui-surface));border-color:color-mix(in oklab,#06b6d4 35%,transparent);color:#0f4f5c}.status-pill.ready[data-v-c9be2b69]{background:color-mix(in oklab,#38bdf8 14%,var(--ui-surface));color:#0b4a6f;border-color:color-mix(in oklab,#38bdf8 34%,transparent)}.status-pill.picked[data-v-c9be2b69]{background:color-mix(in oklab,#34d399 18%,var(--ui-surface));color:#0f5132;border-color:color-mix(in oklab,#34d399 34%,transparent)}.status-pill.full[data-v-c9be2b69]{background:color-mix(in oklab,#a78bfa 18%,var(--ui-surface));color:#4c1d95;border-color:color-mix(in oklab,#8b5cf6 34%,transparent)}.status-pill.conflict[data-v-c9be2b69]{background:color-mix(in oklab,#fb923c 20%,var(--ui-surface));color:#9a3412;border-color:color-mix(in oklab,#fb923c 34%,transparent)}.status-pill.disabled[data-v-c9be2b69],.status-pill.neutral[data-v-c9be2b69],.status-pill.offline[data-v-c9be2b69],.status-pill.accent[data-v-c9be2b69],.status-pill.warning[data-v-c9be2b69],.status-pill.success[data-v-c9be2b69]{background:color-mix(in oklab,var(--ui-primary) 10%,var(--ui-surface));border-color:color-mix(in oklab,var(--ui-primary) 20%,var(--ui-surface-border));color:var(--ui-text)}.status-pill.warning[data-v-c9be2b69]{background:color-mix(in oklab,#f59e0b 18%,var(--ui-surface));color:#92400e;border-color:color-mix(in oklab,#f59e0b 34%,transparent)}.status-pill.success[data-v-c9be2b69]{background:color-mix(in oklab,#22c55e 16%,var(--ui-surface));color:#166534;border-color:color-mix(in oklab,#22c55e 34%,transparent)}.status-pill.accent[data-v-c9be2b69]{background:color-mix(in oklab,#8b5cf6 16%,var(--ui-surface));color:#5b21b6;border-color:color-mix(in oklab,#8b5cf6 34%,transparent)}.status-pill.offline[data-v-c9be2b69]{background:color-mix(in oklab,#64748b 18%,var(--ui-surface));color:#334155;border-color:color-mix(in oklab,#64748b 34%,transparent)}.teacher-chip[data-v-c9be2b69]{max-width:min(42%,180px)}.schedule-chip[data-v-c9be2b69]{flex:1 1 100%;max-width:100%;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-footer-row[data-v-c9be2b69]{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}.course-footer-row[data-v-c9be2b69]>*{min-width:0}.course-actions[data-v-c9be2b69]{display:flex;justify-content:flex-end;flex:0 0 auto;margin-left:auto;margin-top:0}.action-btn[data-v-c9be2b69],.ghost-btn[data-v-c9be2b69],.primary-btn[data-v-c9be2b69],.danger-btn[data-v-c9be2b69]{min-height:30px;border-radius:12px;padding:0 10px;font-weight:700}.conflict-meta-pill[data-v-c9be2b69]{background:color-mix(in oklab,#f97316 18%,var(--ui-surface));border-color:color-mix(in oklab,#f97316 36%,transparent);color:#9a3412}.success-meta-pill[data-v-c9be2b69]{background:color-mix(in oklab,#22c55e 16%,var(--ui-surface));border-color:color-mix(in oklab,#22c55e 34%,transparent);color:#166534}.ghost-btn[data-v-c9be2b69]{border:1px solid var(--ui-surface-border);background:color-mix(in oklab,var(--ui-primary) 6%,var(--ui-surface));color:var(--ui-text)}.primary-btn[data-v-c9be2b69],.action-btn.primary[data-v-c9be2b69]{border:none;background:linear-gradient(135deg,color-mix(in oklab,var(--ui-primary) 76%,white),color-mix(in oklab,var(--ui-secondary) 58%,white));color:#fff}.danger-btn[data-v-c9be2b69],.action-btn.danger[data-v-c9be2b69]{border:none;background:linear-gradient(135deg,color-mix(in oklab,var(--ui-danger, #ef4444) 76%,white),#f97316);color:#fff}.action-btn[data-v-c9be2b69]:disabled,.primary-btn[data-v-c9be2b69]:disabled,.danger-btn[data-v-c9be2b69]:disabled{opacity:.55;cursor:not-allowed}.modal-overlay[data-v-c9be2b69]{position:fixed;inset:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;padding:24px 16px calc(24px + env(safe-area-inset-bottom));z-index:420}.modal-content[data-v-c9be2b69]{width:min(760px,100%);max-height:min(88vh,920px);overflow:auto;padding:18px;border-radius:24px;background:var(--ui-surface);border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-strong)}.modal-header[data-v-c9be2b69]{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.modal-title[data-v-c9be2b69]{font-size:22px;font-weight:800;color:var(--ui-text)}.modal-subtitle[data-v-c9be2b69]{margin-top:6px;color:var(--ui-muted)}.close-btn[data-v-c9be2b69]{width:38px;height:38px;border-radius:999px;border:1px solid var(--ui-surface-border);background:color-mix(in oklab,var(--ui-primary) 7%,var(--ui-surface));color:var(--ui-text);font-size:22px}.detail-badges[data-v-c9be2b69]{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.detail-grid[data-v-c9be2b69]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.detail-item[data-v-c9be2b69]{padding:12px 14px;border-radius:16px;background:color-mix(in oklab,var(--ui-primary) 6%,var(--ui-surface));border:1px solid color-mix(in oklab,var(--ui-primary) 16%,var(--ui-surface-border))}.detail-label[data-v-c9be2b69]{display:block;font-size:12px;color:var(--ui-muted)}.detail-value[data-v-c9be2b69]{display:block;margin-top:6px;line-height:1.5;color:var(--ui-text);white-space:pre-wrap}.detail-section[data-v-c9be2b69]{margin-top:14px}.detail-section h4[data-v-c9be2b69]{margin:0 0 8px;color:var(--ui-text)}.detail-paragraph[data-v-c9be2b69],.detail-loading[data-v-c9be2b69]{padding:14px;border-radius:16px;background:color-mix(in oklab,var(--ui-primary) 6%,var(--ui-surface));border:1px solid color-mix(in oklab,var(--ui-primary) 16%,var(--ui-surface-border));color:var(--ui-text);line-height:1.7;white-space:pre-wrap}.detail-loading[data-v-c9be2b69]{margin-top:12px;color:var(--ui-muted)}.child-class-list[data-v-c9be2b69]{display:grid;gap:10px;margin-top:14px}.child-class-item[data-v-c9be2b69]{text-align:left;padding:14px;border-radius:18px;border:1px solid var(--ui-surface-border);background:color-mix(in oklab,var(--ui-primary) 5%,var(--ui-surface))}.child-class-item.active[data-v-c9be2b69]{border-color:color-mix(in oklab,var(--ui-primary) 40%,transparent);background:color-mix(in oklab,var(--ui-primary) 12%,var(--ui-surface))}.child-class-name[data-v-c9be2b69]{font-weight:800;color:var(--ui-text)}.child-class-meta[data-v-c9be2b69]{margin-top:6px;color:var(--ui-muted)}.confirm-actions[data-v-c9be2b69]{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.toast-pill[data-v-c9be2b69]{position:fixed;top:calc(16px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:520;max-width:min(86vw,520px);padding:12px 16px;border-radius:999px;color:#fff;font-weight:700;box-shadow:var(--ui-shadow-strong);text-align:center}.toast-pill.info[data-v-c9be2b69]{background:color-mix(in oklab,var(--ui-primary) 80%,black)}.toast-pill.success[data-v-c9be2b69]{background:color-mix(in oklab,#16a34a 80%,black)}.toast-pill.error[data-v-c9be2b69]{background:color-mix(in oklab,#dc2626 80%,black)}.fade-enter-active[data-v-c9be2b69],.fade-leave-active[data-v-c9be2b69]{transition:opacity .18s ease}.fade-enter-from[data-v-c9be2b69],.fade-leave-to[data-v-c9be2b69]{opacity:0}@media (max-width: 900px){.entry-grid[data-v-c9be2b69]{grid-template-columns:1fr}.course-page-title[data-v-c9be2b69]{font-size:23px}.refresh-btn[data-v-c9be2b69],.back-btn[data-v-c9be2b69]{width:90px;min-width:90px}.compact-grid[data-v-c9be2b69],.filter-grid[data-v-c9be2b69],.detail-grid[data-v-c9be2b69]{grid-template-columns:1fr}.span-2[data-v-c9be2b69]{grid-column:auto}.course-footer-row[data-v-c9be2b69]{align-items:stretch}.course-actions[data-v-c9be2b69]{width:100%}.course-actions>button[data-v-c9be2b69]{width:100%}}@media (max-width: 640px){.refresh-btn-placeholder[data-v-c9be2b69]{width:84px;min-width:84px}.course-selection-view[data-v-c9be2b69]{padding:6px 6px 92px}.course-page-header[data-v-c9be2b69]{padding:10px}.header-top[data-v-c9be2b69]{grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.refresh-btn[data-v-c9be2b69],.back-btn[data-v-c9be2b69]{width:84px;min-width:84px}.course-page-title[data-v-c9be2b69]{font-size:21px}.header-meta-row[data-v-c9be2b69]{justify-content:flex-start}.section-head[data-v-c9be2b69],.filter-header[data-v-c9be2b69]{flex-direction:column}.teacher-chip[data-v-c9be2b69]{max-width:100%}.schedule-chip[data-v-c9be2b69]{flex-basis:100%}.filter-actions[data-v-c9be2b69],.confirm-actions[data-v-c9be2b69]{width:100%}.filter-actions>button[data-v-c9be2b69],.confirm-actions>button[data-v-c9be2b69]{flex:1 1 0}.course-top-right[data-v-c9be2b69]{align-items:flex-start}.modal-content[data-v-c9be2b69]{padding:16px;border-radius:20px}.course-name[data-v-c9be2b69]{font-size:18px}}.student-info-view[data-v-8e2ad3e0]{min-height:100vh;background:var(--ui-bg-gradient);padding:20px;color:var(--ui-text)}.view-header[data-v-8e2ad3e0]{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:16px;box-shadow:var(--ui-shadow-soft);margin-bottom:16px}.view-header h1[data-v-8e2ad3e0]{margin:0;font-size:20px;color:var(--ui-text)}.back-btn[data-v-8e2ad3e0],.logout-btn[data-v-8e2ad3e0]{padding:8px 16px;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:all .2s}.back-btn[data-v-8e2ad3e0]{background:var(--ui-primary-soft);color:var(--ui-primary)}.back-btn[data-v-8e2ad3e0]:hover{background:var(--ui-primary);color:#fff}.logout-btn[data-v-8e2ad3e0]{background:#fee2e2;color:#dc2626}.logout-btn[data-v-8e2ad3e0]:hover{background:#dc2626;color:#fff}.offline-banner[data-v-8e2ad3e0]{margin:12px auto 0;max-width:1024px;padding:10px 14px;background:#ef444426;border:1px solid rgba(239,68,68,.4);color:#b91c1c;border-radius:12px;font-weight:600}.cache-tip[data-v-8e2ad3e0]{margin-bottom:14px;padding:10px 12px;border-radius:10px;border:1px solid #dbe5ff;background:#f3f7ff;color:#345178;font-size:13px}.auth-info-box[data-v-8e2ad3e0]{margin-bottom:16px;border:1px solid var(--ui-surface-border);border-radius:12px;background:#f8fbff;padding:12px}.auth-title[data-v-8e2ad3e0]{font-size:14px;font-weight:700;color:var(--ui-text);margin-bottom:10px}.auth-grid[data-v-8e2ad3e0]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.auth-item[data-v-8e2ad3e0]{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #e5ebf5}.auth-item b[data-v-8e2ad3e0]{font-size:13px;color:#1f2d3d}.auth-item .ok[data-v-8e2ad3e0]{color:#137333}.auth-item .warn[data-v-8e2ad3e0]{color:#b45309}.auth-item-full[data-v-8e2ad3e0]{grid-column:1 / -1}.view-content[data-v-8e2ad3e0]{max-width:1024px;margin:16px auto 0}.loading-state[data-v-8e2ad3e0],.error-state[data-v-8e2ad3e0],.empty-state[data-v-8e2ad3e0]{text-align:center;padding:56px 24px;background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:16px;box-shadow:var(--ui-shadow-soft)}.empty-state.compact[data-v-8e2ad3e0]{padding:30px 16px;border-radius:12px}.spinner[data-v-8e2ad3e0]{width:40px;height:40px;border:4px solid rgba(148,163,184,.28);border-top-color:var(--ui-primary);border-radius:50%;animation:spin-8e2ad3e0 1s linear infinite;margin:0 auto 16px}@keyframes spin-8e2ad3e0{to{transform:rotate(360deg)}}.error-icon[data-v-8e2ad3e0],.empty-icon[data-v-8e2ad3e0]{font-size:36px;margin-bottom:12px}.error-state button[data-v-8e2ad3e0]{margin-top:14px;padding:10px 22px;border:none;border-radius:8px;cursor:pointer;background:var(--ui-primary);color:#fff}.panel-stack[data-v-8e2ad3e0]{display:grid;gap:16px}.tab-nav[data-v-8e2ad3e0]{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:10px;background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:14px;box-shadow:var(--ui-shadow-soft)}.tab-btn[data-v-8e2ad3e0]{border:none;border-radius:10px;background:transparent;color:var(--ui-muted);font-size:14px;font-weight:600;padding:10px 8px;cursor:pointer;transition:all .2s}.tab-btn.active[data-v-8e2ad3e0]{background:var(--ui-primary-soft);color:var(--ui-primary)}.surface-card[data-v-8e2ad3e0]{background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:16px;box-shadow:var(--ui-shadow-soft);padding:22px}.profile-top[data-v-8e2ad3e0]{display:flex;align-items:center;gap:16px;margin-bottom:18px}.avatar[data-v-8e2ad3e0]{width:68px;height:68px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;font-weight:700;background:linear-gradient(135deg,var(--ui-primary),#22d3ee)}.profile-meta h2[data-v-8e2ad3e0]{margin:0;font-size:24px}.student-id[data-v-8e2ad3e0]{margin:6px 0 0;color:var(--ui-muted);font-size:14px}.inline-error[data-v-8e2ad3e0]{margin:0 0 14px;padding:10px 12px;border-radius:10px;background:#ef44441f;color:#b91c1c;font-size:13px;font-weight:600}.inline-loading[data-v-8e2ad3e0]{display:inline-flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--ui-muted);font-size:13px;font-weight:600}.mini-spinner[data-v-8e2ad3e0]{width:14px;height:14px;border:2px solid rgba(148,163,184,.3);border-top-color:var(--ui-primary);border-radius:50%;animation:spin-8e2ad3e0 .8s linear infinite}.info-grid[data-v-8e2ad3e0]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.info-item[data-v-8e2ad3e0]{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:12px;background:#ffffffad;border:1px solid var(--ui-surface-border)}.label[data-v-8e2ad3e0]{color:var(--ui-muted);font-size:12px}.value[data-v-8e2ad3e0]{color:var(--ui-text);font-size:15px;font-weight:600;word-break:break-word}.table-wrap[data-v-8e2ad3e0]{width:100%;overflow-x:auto;border:1px solid var(--ui-surface-border);border-radius:12px;background:#ffffffbf}.data-table[data-v-8e2ad3e0]{width:100%;min-width:680px;border-collapse:collapse}.data-table th[data-v-8e2ad3e0],.data-table td[data-v-8e2ad3e0]{padding:14px 16px;border-bottom:1px solid var(--ui-surface-border);text-align:left;font-size:14px}.data-table th[data-v-8e2ad3e0]{background:#94a3b81f;color:var(--ui-text);font-size:15px;font-weight:700}.data-table tr:last-child td[data-v-8e2ad3e0]{border-bottom:none}.mobile-list[data-v-8e2ad3e0]{display:none}.record-card[data-v-8e2ad3e0]{border-radius:12px;border:1px solid var(--ui-surface-border);background:#ffffffb3;padding:14px}.record-card+.record-card[data-v-8e2ad3e0]{margin-top:10px}.record-head[data-v-8e2ad3e0]{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.record-head h3[data-v-8e2ad3e0]{margin:0;font-size:16px;color:var(--ui-text)}.auth-badge[data-v-8e2ad3e0]{display:inline-flex;align-items:center;justify-content:center;min-width:56px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}.auth-badge.success[data-v-8e2ad3e0],.auth-inline.success[data-v-8e2ad3e0]{color:#047857}.auth-badge.success[data-v-8e2ad3e0]{background:#10b98129}.auth-badge.fail[data-v-8e2ad3e0],.auth-inline.fail[data-v-8e2ad3e0]{color:#b91c1c}.auth-badge.fail[data-v-8e2ad3e0]{background:#ef444429}.auth-badge.neutral[data-v-8e2ad3e0],.auth-inline.neutral[data-v-8e2ad3e0]{color:var(--ui-primary)}.auth-badge.neutral[data-v-8e2ad3e0]{background:#3b82f629}.auth-inline[data-v-8e2ad3e0]{display:inline-flex;align-items:center;gap:8px;font-weight:700}.auth-dot[data-v-8e2ad3e0]{width:8px;height:8px;border-radius:50%;background:currentColor}.record-meta[data-v-8e2ad3e0]{display:grid;gap:8px}.meta-row[data-v-8e2ad3e0]{display:flex;justify-content:space-between;align-items:center;gap:12px}.meta-row .value[data-v-8e2ad3e0]{text-align:right;font-size:14px}.pagination-bar[data-v-8e2ad3e0]{margin-top:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.total-text[data-v-8e2ad3e0]{color:var(--ui-muted);font-size:14px}.pager-controls[data-v-8e2ad3e0]{display:flex;align-items:center;gap:6px}.pager-btn[data-v-8e2ad3e0]{min-width:34px;height:34px;border-radius:8px;border:1px solid var(--ui-surface-border);background:#fff;color:var(--ui-text);cursor:pointer;padding:0 10px}.pager-btn.active[data-v-8e2ad3e0]{border-color:var(--ui-primary);background:var(--ui-primary);color:#fff}.pager-btn[data-v-8e2ad3e0]:disabled{opacity:.45;cursor:not-allowed}.page-size[data-v-8e2ad3e0]{display:inline-flex;align-items:center;gap:8px;color:var(--ui-muted);font-size:14px}.page-size select[data-v-8e2ad3e0]{border:1px solid var(--ui-surface-border);border-radius:8px;height:34px;padding:0 10px;background:#fff}@media (max-width: 900px){.info-grid[data-v-8e2ad3e0]{grid-template-columns:1fr}}@media (max-width: 760px){.table-wrap[data-v-8e2ad3e0]{display:none}.mobile-list[data-v-8e2ad3e0]{display:block}.pagination-bar[data-v-8e2ad3e0]{flex-direction:column;align-items:flex-start}}@media (max-width: 640px){.student-info-view[data-v-8e2ad3e0]{padding:14px}.view-header[data-v-8e2ad3e0]{padding:12px}.view-header h1[data-v-8e2ad3e0]{font-size:17px}.back-btn[data-v-8e2ad3e0],.logout-btn[data-v-8e2ad3e0]{padding:7px 12px;font-size:13px}.tab-nav[data-v-8e2ad3e0]{grid-template-columns:1fr}.surface-card[data-v-8e2ad3e0]{padding:16px}.profile-top[data-v-8e2ad3e0]{align-items:flex-start}.profile-meta h2[data-v-8e2ad3e0]{font-size:20px}.meta-row[data-v-8e2ad3e0]{flex-direction:column;align-items:flex-start;gap:4px}.meta-row .value[data-v-8e2ad3e0]{text-align:left}}.exam-view[data-v-dfbd93d1]{min-height:100vh;background:var(--ui-bg-gradient);padding:20px;color:var(--ui-text)}.view-header[data-v-dfbd93d1]{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:16px;box-shadow:var(--ui-shadow-soft);margin-bottom:16px}.view-header h1[data-v-dfbd93d1]{display:inline-flex;align-items:center;gap:8px;font-size:20px;margin:0;color:var(--ui-text);text-shadow:0 2px 8px rgba(15,23,42,.12)}.back-btn[data-v-dfbd93d1],.logout-btn[data-v-dfbd93d1]{padding:8px 16px;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:all .2s}.back-btn[data-v-dfbd93d1]{background:var(--ui-primary-soft);color:var(--ui-primary)}.back-btn[data-v-dfbd93d1]:hover{background:var(--ui-primary);color:#fff}.logout-btn[data-v-dfbd93d1]{background:#fee2e2;color:#dc2626}.logout-btn[data-v-dfbd93d1]:hover{background:#dc2626;color:#fff}.semester-selector[data-v-dfbd93d1]{background:var(--ui-surface);border:1px solid var(--ui-surface-border);padding:16px 24px;border-radius:12px;margin-bottom:16px;display:flex;align-items:center;gap:12px;box-shadow:var(--ui-shadow-soft)}.semester-selector label[data-v-dfbd93d1]{font-weight:500;color:var(--ui-text)}.semester-selector select[data-v-dfbd93d1]{padding:10px 16px;border-radius:8px;border:1px solid var(--ui-surface-border);font-size:14px;min-width:180px;cursor:pointer;background:var(--ui-surface);color:var(--ui-text)}.semester-selector select[data-v-dfbd93d1]:focus{outline:none;border-color:var(--ui-primary)}.view-content[data-v-dfbd93d1]{max-width:800px;margin:0 auto}.loading-state[data-v-dfbd93d1],.error-state[data-v-dfbd93d1],.empty-state[data-v-dfbd93d1]{text-align:center;padding:60px 20px;background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:20px;color:var(--ui-text);box-shadow:var(--ui-shadow-soft)}.spinner[data-v-dfbd93d1]{width:40px;height:40px;border:4px solid #e5e7eb;border-top-color:var(--ui-primary);border-radius:50%;animation:spin-dfbd93d1 1s linear infinite;margin:0 auto 16px}@keyframes spin-dfbd93d1{to{transform:rotate(360deg)}}.error-icon[data-v-dfbd93d1],.empty-icon[data-v-dfbd93d1]{font-size:48px;margin-bottom:16px}.error-state button[data-v-dfbd93d1]{margin-top:16px;padding:10px 24px;background:var(--ui-primary);color:#fff;border:none;border-radius:8px;cursor:pointer}.exam-card.is-passed[data-v-dfbd93d1]{background:var(--ui-surface);opacity:.8;box-shadow:var(--ui-shadow-soft);border:1px dashed var(--ui-surface-border)}.exam-card.is-passed .course-name[data-v-dfbd93d1]{color:var(--ui-muted)}.exam-card.is-passed .exam-type[data-v-dfbd93d1]{background:var(--ui-primary-soft);color:var(--ui-primary)}.exam-status-badge[data-v-dfbd93d1]{display:inline-block;padding:4px 10px;background:#94a3b899;color:#fff;border-radius:6px;font-size:12px;font-weight:500;margin-right:12px}.exam-list[data-v-dfbd93d1]{display:flex;flex-direction:column;gap:12px}.exam-card[data-v-dfbd93d1]{background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:16px;padding:14px 16px;box-shadow:var(--ui-shadow-soft)}.exam-header[data-v-dfbd93d1]{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--ui-surface-border)}.exam-type[data-v-dfbd93d1]{display:inline-block;padding:4px 10px;background:var(--ui-primary-soft);color:var(--ui-primary);border-radius:6px;font-size:12px;font-weight:500;margin-right:12px}.course-name[data-v-dfbd93d1]{font-size:16px;font-weight:600;color:var(--ui-text)}.exam-details[data-v-dfbd93d1]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 10px}.detail-item[data-v-dfbd93d1]{display:flex;align-items:center;gap:8px;color:var(--ui-muted);font-size:13px}.detail-item .icon[data-v-dfbd93d1]{font-size:16px}@media (max-width: 640px){.exam-card[data-v-dfbd93d1]{padding:12px 14px}.course-name[data-v-dfbd93d1]{font-size:15px}.exam-details[data-v-dfbd93d1]{grid-template-columns:1fr}.semester-selector[data-v-dfbd93d1]{flex-direction:column;align-items:flex-start}.semester-selector select[data-v-dfbd93d1]{width:100%}}.offline-banner[data-v-dfbd93d1]{margin:12px 0 0;padding:10px 14px;background:#ef444426;border:1px solid rgba(239,68,68,.4);color:#b91c1c;border-radius:12px;font-weight:600}.ranking-view[data-v-33310ec0]{min-height:100vh;background:var(--ui-bg-gradient);padding:18px 14px 110px;color:var(--ui-text)}.view-header[data-v-33310ec0]{margin-bottom:16px}.view-header h1[data-v-33310ec0]{display:inline-flex;align-items:center;gap:8px;font-size:clamp(19px,2.2vw,24px);margin:0;color:var(--ui-text)}.semester-selector[data-v-33310ec0]{background:var(--ui-surface);border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-soft);padding:16px;border-radius:16px;margin-bottom:16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.semester-selector .label[data-v-33310ec0]{font-weight:700;color:var(--ui-text)}.semester-selector select[data-v-33310ec0]{padding:10px 14px;border-radius:10px;border:1px solid var(--ui-surface-border);font-size:14px;min-width:200px;cursor:pointer;color:var(--ui-text);background:color-mix(in oklab,var(--ui-surface) 88%,#fff 12%)}.semester-selector select[data-v-33310ec0]:focus{outline:none;border-color:var(--ui-primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--ui-primary) 20%,transparent)}.search-btn[data-v-33310ec0]{padding:10px 18px;background:linear-gradient(135deg,var(--ui-primary),var(--ui-secondary));color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:700;transition:transform .2s}.search-btn[data-v-33310ec0]:hover{transform:scale(1.02)}.view-content[data-v-33310ec0]{max-width:900px;margin:0 auto}.loading-state[data-v-33310ec0],.error-state[data-v-33310ec0],.empty-state[data-v-33310ec0]{text-align:center;padding:60px 20px;background:var(--ui-surface);border-radius:16px;border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-soft);color:var(--ui-text)}.spinner[data-v-33310ec0]{width:40px;height:40px;border:4px solid color-mix(in oklab,var(--ui-primary) 14%,#e5e7eb);border-top-color:var(--ui-primary);border-radius:50%;animation:spin-33310ec0 1s linear infinite;margin:0 auto 16px}@keyframes spin-33310ec0{to{transform:rotate(360deg)}}.error-icon[data-v-33310ec0],.empty-icon[data-v-33310ec0]{font-size:48px;margin-bottom:16px}.error-state button[data-v-33310ec0]{margin-top:16px;padding:10px 24px;background:linear-gradient(135deg,var(--ui-primary),var(--ui-secondary));color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:700}.hint[data-v-33310ec0]{font-size:14px;color:var(--ui-muted);margin-top:8px}.ranking-card[data-v-33310ec0]{background:var(--ui-surface);border-radius:18px;overflow:hidden;box-shadow:var(--ui-shadow-soft);border:1px solid var(--ui-surface-border)}.student-info[data-v-33310ec0]{padding:24px;background:linear-gradient(135deg,color-mix(in oklab,var(--ui-primary-soft) 62%,#ffffff 38%),color-mix(in oklab,var(--ui-primary-soft) 40%,var(--ui-secondary) 60%));border-bottom:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent)}.info-row[data-v-33310ec0]{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:12px}.info-row[data-v-33310ec0]:last-child{margin-bottom:0}.info-row.highlight[data-v-33310ec0]{margin-top:16px;padding-top:16px;border-top:1px dashed color-mix(in oklab,var(--ui-primary) 38%,transparent)}.info-item[data-v-33310ec0]{font-size:15px;color:var(--ui-text);display:inline-flex;align-items:center;min-height:34px;padding:4px 10px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent);background:color-mix(in oklab,#ffffff 78%,var(--ui-primary-soft) 22%)}.info-item strong[data-v-33310ec0]{color:color-mix(in oklab,var(--ui-primary) 72%,#1e3a8a 28%);margin-right:4px}.info-item .score[data-v-33310ec0]{font-size:18px;font-weight:700;color:var(--ui-secondary)}.info-item .gpa-badge[data-v-33310ec0]{display:inline-block;padding:6px 16px;background:linear-gradient(135deg,var(--ui-primary),var(--ui-secondary));color:#fff;border-radius:999px;font-size:20px;font-weight:800;box-shadow:0 8px 16px color-mix(in oklab,var(--ui-primary) 26%,transparent);margin-left:4px}.ranking-table-wrapper[data-v-33310ec0]{padding:24px;overflow-x:auto}.ranking-table[data-v-33310ec0]{width:100%;border-collapse:collapse;text-align:center}.ranking-table th[data-v-33310ec0]{background:linear-gradient(135deg,var(--ui-primary),var(--ui-secondary));color:#fff;padding:14px 16px;font-weight:600;font-size:14px}.ranking-table th[data-v-33310ec0]:first-child{border-radius:8px 0 0}.ranking-table th[data-v-33310ec0]:last-child{border-radius:0 8px 0 0}.ranking-table td[data-v-33310ec0]{padding:16px;border-bottom:1px solid var(--ui-surface-border)}.method-name[data-v-33310ec0]{text-align:left;font-weight:500;color:var(--ui-text);background:color-mix(in oklab,var(--ui-primary-soft) 52%,#fff 48%)}.method-name.bold[data-v-33310ec0]{font-weight:700;color:var(--ui-text)}.rank-cell[data-v-33310ec0]{font-size:16px}.rank-value[data-v-33310ec0]{display:inline-block;padding:6px 10px;background:color-mix(in oklab,var(--ui-primary-soft) 72%,#fff 28%);color:var(--ui-primary);border-radius:999px;font-weight:700;border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent)}.rank-value.highlight-rank[data-v-33310ec0]{background:linear-gradient(135deg,color-mix(in oklab,var(--ui-secondary) 18%,#fff 82%),color-mix(in oklab,var(--ui-primary) 16%,#fff 84%));color:color-mix(in oklab,var(--ui-secondary) 68%,#111827 32%);font-weight:700;border:1px solid color-mix(in oklab,var(--ui-secondary) 34%,transparent)}.class-highlight[data-v-33310ec0]{padding:20px 24px;background:linear-gradient(135deg,color-mix(in oklab,var(--ui-secondary) 18%,#ffffff 82%),color-mix(in oklab,var(--ui-primary) 16%,#ffffff 84%));display:flex;justify-content:center;border-top:1px solid color-mix(in oklab,var(--ui-primary) 20%,transparent)}.highlight-badge[data-v-33310ec0]{font-size:18px;font-weight:700;color:var(--ui-text)}.big-rank[data-v-33310ec0]{font-size:32px;font-weight:800;color:var(--ui-primary);margin:0 4px}@media (max-width: 640px){.info-row[data-v-33310ec0]{flex-direction:column;gap:8px}.semester-selector[data-v-33310ec0]{flex-direction:column;align-items:flex-start;gap:12px}.semester-selector select[data-v-33310ec0],.search-btn[data-v-33310ec0]{width:100%}.ranking-table th[data-v-33310ec0],.ranking-table td[data-v-33310ec0]{padding:10px 8px;font-size:13px}.rank-value[data-v-33310ec0]{padding:4px 8px;font-size:13px}.big-rank[data-v-33310ec0]{font-size:24px}}.offline-banner[data-v-33310ec0]{margin:12px 0 0;padding:10px 14px;background:color-mix(in oklab,var(--ui-danger) 14%,#ffffff 86%);border:1px solid color-mix(in oklab,var(--ui-danger) 40%,transparent);color:var(--ui-danger);border-radius:12px;font-weight:600}.calendar-view[data-v-67fbab41]{min-height:100vh;background:var(--ui-bg-gradient);color:var(--ui-text);padding:16px 14px 120px}.view-header[data-v-67fbab41]{margin-bottom:12px}.view-header h1[data-v-67fbab41]{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:clamp(19px,2.2vw,24px);color:var(--ui-text)}.back-btn[data-v-67fbab41],.logout-btn[data-v-67fbab41]{padding:8px 16px;border-radius:8px;border:none;cursor:pointer;background:var(--ui-primary-soft);color:var(--ui-primary);border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent)}.controls[data-v-67fbab41]{display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:16px;box-shadow:var(--ui-shadow-soft);margin-bottom:16px}.controls select[data-v-67fbab41]{padding:10px 12px;border-radius:10px;border:1px solid var(--ui-surface-border);color:var(--ui-text);background:color-mix(in oklab,var(--ui-surface) 88%,#fff 12%)}.meta[data-v-67fbab41]{display:flex;flex-wrap:wrap;gap:8px}.meta span[data-v-67fbab41]{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent);background:color-mix(in oklab,var(--ui-primary-soft) 70%,#fff 30%);color:var(--ui-text);font-size:12px;font-weight:700}.loading[data-v-67fbab41],.error[data-v-67fbab41]{padding:20px 12px;text-align:center;color:var(--ui-muted);background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:14px;box-shadow:var(--ui-shadow-soft);margin-bottom:16px}.calendar-table-wrapper[data-v-67fbab41]{padding:0 0 24px;overflow-x:auto}.calendar-table[data-v-67fbab41]{width:100%;min-width:980px;border-collapse:collapse;background:var(--ui-surface);border-radius:16px;overflow:hidden;box-shadow:var(--ui-shadow-soft);border:1px solid var(--ui-surface-border)}.calendar-table thead th[data-v-67fbab41]{background:linear-gradient(135deg,color-mix(in oklab,var(--ui-primary-soft) 78%,#fff 22%),color-mix(in oklab,var(--ui-secondary) 12%,#fff 88%));color:var(--ui-text);font-weight:700;padding:12px 8px;border-bottom:1px solid var(--ui-surface-border);font-size:13px;text-align:center}.calendar-table td[data-v-67fbab41]{border-bottom:1px solid var(--ui-surface-border);border-right:1px solid var(--ui-surface-border);padding:8px 6px;text-align:center;vertical-align:middle;font-size:12px;color:var(--ui-text)}.calendar-table tbody tr.is-current[data-v-67fbab41]{background:color-mix(in oklab,var(--ui-primary-soft) 64%,#fff 36%)}.month-col[data-v-67fbab41],.week-col[data-v-67fbab41]{width:80px}.remark-col[data-v-67fbab41]{width:120px}.month-cell[data-v-67fbab41]{font-weight:600;color:var(--ui-text);background:color-mix(in oklab,var(--ui-primary-soft) 44%,#fff 56%)}.week-cell[data-v-67fbab41]{font-weight:600;color:var(--ui-primary)}.day-cell[data-v-67fbab41]{min-width:90px}.day-num[data-v-67fbab41]{font-weight:600;color:var(--ui-text)}.day-lunar[data-v-67fbab41]{margin-top:2px;font-size:11px;color:var(--ui-muted)}.day-remark[data-v-67fbab41]{margin-top:4px;font-size:11px;color:var(--ui-danger)}.day-remark.holiday[data-v-67fbab41]{display:inline-block;padding:2px 6px;border-radius:999px;background:color-mix(in oklab,var(--ui-danger) 14%,#ffffff 86%);color:var(--ui-danger);border:1px solid color-mix(in oklab,var(--ui-danger) 32%,transparent);font-weight:600}.remark-cell[data-v-67fbab41]{color:var(--ui-muted);font-size:12px}.offline-banner[data-v-67fbab41]{margin:12px 0 0;padding:10px 14px;background:color-mix(in oklab,var(--ui-danger) 14%,#ffffff 86%);border:1px solid color-mix(in oklab,var(--ui-danger) 40%,transparent);color:var(--ui-danger);border-radius:12px;font-weight:600}.progress-view[data-v-d78b1d48]{min-height:100vh;background:var(--ui-bg-gradient, #f5f7fa);color:var(--ui-text)}.view-header[data-v-d78b1d48]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--ui-surface);border-bottom:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-soft)}.back-btn[data-v-d78b1d48]{min-height:34px;padding:0 12px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 26%,transparent);background:var(--ui-primary-soft);color:var(--ui-primary);font-weight:700;cursor:pointer}.view-header h1[data-v-d78b1d48]{margin:0;font-size:20px}.offline-banner[data-v-d78b1d48]{margin:12px 16px 0;padding:10px 12px;border-radius:12px;background:color-mix(in oklab,var(--ui-danger) 14%,#ffffff 86%);border:1px solid color-mix(in oklab,var(--ui-danger) 36%,transparent);color:var(--ui-danger);font-weight:600;font-size:13px}.controls[data-v-d78b1d48]{margin:12px 16px 0;padding:12px;border-radius:14px;border:1px solid var(--ui-surface-border);background:var(--ui-surface);box-shadow:var(--ui-shadow-soft);display:flex;align-items:center;gap:10px}.controls label[data-v-d78b1d48]{font-size:12px;color:var(--ui-muted);font-weight:700}.fasz-select[data-v-d78b1d48]{min-width:220px}.fasz-select[data-v-d78b1d48] .ios26-select-trigger{min-height:36px;border-radius:12px}.loading[data-v-d78b1d48],.error[data-v-d78b1d48],.empty[data-v-d78b1d48]{margin:12px 16px 0;text-align:center;padding:24px 12px;color:var(--ui-muted);border-radius:14px;border:1px solid var(--ui-surface-border);background:var(--ui-surface)}.content[data-v-d78b1d48]{padding:12px 14px 120px}.summary-card[data-v-d78b1d48]{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.summary-item[data-v-d78b1d48]{border:1px solid var(--ui-surface-border);border-radius:10px;padding:8px 10px;background:var(--ui-surface);display:flex;flex-direction:column;gap:2px}.summary-label[data-v-d78b1d48]{font-size:11px;color:var(--ui-muted)}.summary-value[data-v-d78b1d48]{font-size:14px;font-weight:700}.category-section[data-v-d78b1d48]{margin-top:12px;display:flex;flex-direction:column;gap:10px}.category-card[data-v-d78b1d48]{border:1px solid var(--ui-surface-border);border-radius:14px;padding:12px;background:var(--ui-surface);box-shadow:var(--ui-shadow-soft)}.category-header[data-v-d78b1d48]{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.category-header h2[data-v-d78b1d48]{margin:0;font-size:16px}.category-path[data-v-d78b1d48],.category-requirement[data-v-d78b1d48]{margin:4px 0 0;font-size:12px;color:var(--ui-muted)}.course-count[data-v-d78b1d48]{min-height:28px;padding:0 10px;border-radius:999px;background:var(--ui-primary-soft);color:var(--ui-primary);font-size:12px;font-weight:700;display:inline-flex;align-items:center}.course-list[data-v-d78b1d48]{margin-top:8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.course-card[data-v-d78b1d48]{border:1px solid var(--ui-surface-border);border-radius:10px;background:color-mix(in oklab,var(--ui-primary-soft) 62%,#fff 38%);padding:8px 10px;text-align:left;cursor:pointer;width:100%;display:flex;flex-direction:column;gap:6px;align-items:flex-start;white-space:normal;overflow:hidden}.course-title[data-v-d78b1d48]{font-size:14px;font-weight:700;line-height:1.3;width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-meta[data-v-d78b1d48]{display:flex;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--ui-muted);line-height:1.25;width:100%}.course-meta span[data-v-d78b1d48]{display:inline-flex;align-items:center;min-height:20px;padding:0 6px;border-radius:999px;background:color-mix(in oklab,var(--ui-primary-soft) 50%,#fff 50%);border:1px solid color-mix(in oklab,var(--ui-primary) 18%,transparent)}.status-pill[data-v-d78b1d48]{font-weight:700;border-width:1px;border-style:solid}.state-done[data-v-d78b1d48]{background:color-mix(in oklab,#10b981 18%,#ffffff 82%);color:#0f9f6e;border-color:color-mix(in oklab,#10b981 40%,transparent)}.state-todo[data-v-d78b1d48]{background:color-mix(in oklab,#ef4444 16%,#ffffff 84%);color:#dc2626;border-color:color-mix(in oklab,#ef4444 40%,transparent)}.state-pending[data-v-d78b1d48]{background:color-mix(in oklab,#f59e0b 18%,#ffffff 82%);color:#c26c00;border-color:color-mix(in oklab,#f59e0b 40%,transparent)}.state-unknown[data-v-d78b1d48]{background:color-mix(in oklab,var(--ui-primary-soft) 55%,#fff 45%);color:var(--ui-primary);border-color:color-mix(in oklab,var(--ui-primary) 24%,transparent)}.modal-overlay[data-v-d78b1d48]{position:fixed;inset:0;background:#0f172a7a;z-index:1000;display:flex;align-items:center;justify-content:center;padding:14px}.modal-content[data-v-d78b1d48]{width:min(920px,100%);max-height:min(86vh,860px);overflow:auto;background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:18px;box-shadow:var(--ui-shadow-strong);padding:16px}.modal-close[data-v-d78b1d48]{margin-left:auto;width:30px;height:30px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 22%,transparent);background:var(--ui-primary-soft);color:var(--ui-primary);font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center}.modal-top h2[data-v-d78b1d48]{margin:8px 0 6px;font-size:20px}.modal-tags[data-v-d78b1d48]{display:flex;gap:8px;flex-wrap:wrap}.modal-tag[data-v-d78b1d48]{min-height:24px;padding:0 8px;border-radius:999px;background:var(--ui-primary-soft);color:var(--ui-primary);font-size:12px;display:inline-flex;align-items:center}.modal-path[data-v-d78b1d48]{margin-top:6px;font-size:12px;color:var(--ui-muted)}.detail-grid[data-v-d78b1d48]{margin-top:10px;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.detail-item[data-v-d78b1d48]{border:1px solid var(--ui-surface-border);border-radius:10px;padding:8px 10px;background:color-mix(in oklab,var(--ui-primary-soft) 62%,#fff 38%);display:flex;flex-direction:column;gap:3px}.detail-label[data-v-d78b1d48]{font-size:11px;color:var(--ui-muted)}.detail-value[data-v-d78b1d48]{font-size:13px;line-height:1.35;word-break:break-word;white-space:pre-wrap}@media (max-width: 760px){.controls[data-v-d78b1d48]{flex-direction:column;align-items:stretch}.fasz-select[data-v-d78b1d48]{min-width:0}.course-list[data-v-d78b1d48]{grid-template-columns:1fr}}.training-plan-view[data-v-48b7947c]{min-height:100vh;background:var(--ui-bg-gradient);color:var(--ui-text)}.view-header[data-v-48b7947c]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--ui-surface);color:var(--ui-text)}.back-btn[data-v-48b7947c],.logout-btn[data-v-48b7947c]{padding:8px 16px;border-radius:8px;border:none;cursor:pointer;background:var(--ui-primary-soft);color:var(--ui-primary)}.filters[data-v-48b7947c]{background:var(--ui-surface);margin:16px;padding:16px;border-radius:12px;border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-soft)}.filter-grid[data-v-48b7947c]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 16px}.compact-main[data-v-48b7947c]{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.filter-grid label[data-v-48b7947c]{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ui-text)}.filter-grid select[data-v-48b7947c],.filter-grid input[data-v-48b7947c]{padding:8px 10px;border-radius:8px;border:1px solid var(--ui-surface-border);font-size:13px;background:var(--ui-surface);color:var(--ui-text)}.filter-actions[data-v-48b7947c]{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.advanced-section[data-v-48b7947c]{margin-top:12px;padding-top:12px;border-top:1px dashed var(--ui-surface-border)}.filter-actions button[data-v-48b7947c]{padding:8px 16px;border-radius:8px;border:none;cursor:pointer;font-weight:600}.filter-actions .primary[data-v-48b7947c]{background:var(--ui-primary);color:#fff}.filter-actions .ghost[data-v-48b7947c]{background:var(--ui-primary-soft);color:var(--ui-primary)}.content[data-v-48b7947c]{padding:0 16px 24px}.state[data-v-48b7947c]{padding:16px;color:var(--ui-muted)}.state.error[data-v-48b7947c]{color:var(--ui-danger)}.course-grid[data-v-48b7947c]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.course-card[data-v-48b7947c]{background:var(--ui-surface);border-radius:16px;padding:16px;border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-soft);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.course-card[data-v-48b7947c]:hover{transform:translateY(-4px);box-shadow:var(--ui-shadow-strong)}.course-title[data-v-48b7947c]{font-size:16px;font-weight:700;color:var(--ui-text);margin-bottom:10px}.course-tags[data-v-48b7947c]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.tag[data-v-48b7947c]{font-size:12px;padding:4px 10px;border-radius:999px;background:var(--ui-primary-soft);color:var(--ui-primary);font-weight:600}.tag.primary[data-v-48b7947c]{background:var(--ui-primary-soft-strong);color:var(--ui-primary)}.tag.ghost[data-v-48b7947c]{background:#10b9811f;color:var(--ui-success)}.course-sub[data-v-48b7947c]{display:flex;justify-content:space-between;color:var(--ui-muted);font-size:12px;font-weight:600}.empty[data-v-48b7947c]{text-align:center;color:var(--ui-muted);padding:20px}.pagination[data-v-48b7947c]{margin-top:12px;display:flex;align-items:center;gap:12px}.pagination button[data-v-48b7947c]{padding:6px 12px;border-radius:6px;border:1px solid var(--ui-surface-border);background:var(--ui-surface);color:var(--ui-text);cursor:pointer}.pagination button[data-v-48b7947c]:disabled{opacity:.5;cursor:not-allowed}.modal-overlay[data-v-48b7947c]{position:fixed;inset:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:30;padding:20px}.modal-content[data-v-48b7947c]{background:var(--ui-surface);border-radius:16px;width:min(520px,100%);padding:20px;border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-strong)}.modal-header[data-v-48b7947c]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-header h3[data-v-48b7947c]{margin:0;font-size:18px;color:var(--ui-text)}.close-btn[data-v-48b7947c]{width:28px;height:28px;border-radius:50%;border:none;background:var(--ui-primary-soft);color:var(--ui-primary);font-size:18px;cursor:pointer}.modal-body[data-v-48b7947c]{display:grid;gap:12px}.detail-item[data-v-48b7947c]{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--ui-text);border-bottom:1px solid var(--ui-surface-border);padding-bottom:8px}.detail-item .label[data-v-48b7947c]{color:var(--ui-muted)}.detail-item .value[data-v-48b7947c]{font-weight:600;text-align:right}.offline-banner[data-v-48b7947c]{margin:12px 16px 0;padding:10px 14px;background:#ef444426;border:1px solid rgba(239,68,68,.4);color:#b91c1c;border-radius:12px;font-weight:600}.login-container[data-v-2a390736]{max-width:520px;margin:1.2rem auto;padding:1.3rem 1.15rem;text-align:center}.logo[data-v-2a390736]{margin-bottom:.6rem;display:flex;justify-content:center}.logo-img[data-v-2a390736]{width:56px;height:56px;object-fit:contain}h2[data-v-2a390736]{color:var(--primary-color);margin:0 0 .35rem;font-size:1.28rem}.subtitle[data-v-2a390736]{color:#64748b;margin:0 0 .92rem;font-size:.84rem}.entry-switch[data-v-2a390736]{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;border:1px solid #dbe5f0;border-radius:999px;background:linear-gradient(135deg,#f8fafc,#eef2ff);padding:3px;margin-bottom:.5rem}.entry-slider[data-v-2a390736]{position:absolute;left:4px;top:4px;width:calc(50% - 4px);height:calc(100% - 8px);border-radius:999px;background:linear-gradient(135deg,#2563eb,#4f46e5);box-shadow:0 8px 18px #3b82f647;transition:transform .25s ease;z-index:0}.entry-slider.is-chaoxing[data-v-2a390736]{transform:translate(100%)}.entry-btn[data-v-2a390736]{position:relative;z-index:1;border:0;border-radius:999px;padding:.48rem .16rem;background:transparent;color:#334155;font-size:.86rem;font-weight:700;cursor:pointer;transition:color .22s ease}.entry-btn.active[data-v-2a390736]{color:#fff}.mode-capsule[data-v-2a390736]{display:inline-flex;align-items:center;justify-content:center;margin:0 0 .65rem;padding:.25rem .72rem;border-radius:999px;font-size:.75rem;color:#1d4ed8;background:linear-gradient(135deg,#dbeafe,#e0e7ff);border:1px solid #bfdbfe}.form-container[data-v-2a390736]{margin-top:.45rem}.input-group[data-v-2a390736]{text-align:left;margin-bottom:.72rem}.input-group label[data-v-2a390736]{display:block;margin-bottom:.3rem;font-weight:600;color:var(--text-color);font-size:.88rem}.input-group input[data-v-2a390736]{width:100%;padding:.62rem .7rem;border:2px solid #e5e7eb;border-radius:10px;font-size:.92rem;box-sizing:border-box}.input-group input[data-v-2a390736]:focus{border-color:var(--primary-color);outline:none}.checkbox-group[data-v-2a390736]{display:flex;justify-content:flex-start;margin-bottom:.65rem}.checkbox-group.agreement[data-v-2a390736]{display:block;width:100%;margin-top:.88rem;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding:0 0 2px}.checkbox-label[data-v-2a390736]{display:flex;align-items:center;cursor:pointer;font-size:.88rem;color:#475569;user-select:text}.checkbox-label--agreement[data-v-2a390736]{display:inline-flex;align-items:center;width:max-content;min-width:max-content;flex:0 0 auto;white-space:nowrap;flex-wrap:nowrap;gap:2px;background:linear-gradient(135deg,#ecfeff,#eff6ff);border:1px solid #bae6fd;border-radius:999px;padding:.35rem .68rem}.agreement-text[data-v-2a390736]{display:inline;white-space:nowrap;flex:0 0 auto;margin-right:1px;font-size:.82rem}.link-btn[data-v-2a390736]{background:none;border:none;display:inline-flex;align-items:center;flex:0 0 auto;color:var(--primary-color);cursor:pointer;font-weight:700;padding:0 2px;white-space:nowrap;font-size:.82rem}.link-btn[data-v-2a390736]:hover{text-decoration:underline}.real-checkbox[data-v-2a390736]{display:none}.custom-checkbox[data-v-2a390736]{width:16px;height:16px;flex:0 0 auto;border:2px solid #d1d5db;border-radius:5px;margin-right:6px;display:inline-flex;align-items:center;justify-content:center;background:#fff}.real-checkbox:checked+.custom-checkbox[data-v-2a390736]{background:var(--primary-color);border-color:var(--primary-color)}.custom-checkbox[data-v-2a390736]:after{content:"✓";color:#fff;font-size:12px;font-weight:700;opacity:0}.real-checkbox:checked+.custom-checkbox[data-v-2a390736]:after{opacity:1}.login-btn[data-v-2a390736]{width:100%;padding:.7rem;background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;border:none;border-radius:11px;font-size:.92rem;font-weight:700;cursor:pointer;transition:all .2s}.login-btn[data-v-2a390736]:hover:not(:disabled){transform:translateY(-1px)}.login-btn[data-v-2a390736]:disabled{opacity:.65;cursor:not-allowed}.action-pills[data-v-2a390736]{display:flex;flex-wrap:wrap;gap:.45rem;margin:.62rem 0 .26rem}.action-pill[data-v-2a390736]{display:inline-flex;align-items:center;justify-content:center;padding:.34rem .64rem;border-radius:999px;font-size:.74rem;font-weight:600;border:1px solid transparent;white-space:nowrap}.action-pill-link[data-v-2a390736]{color:#1d4ed8;text-decoration:none;background:linear-gradient(135deg,#dbeafe,#e0e7ff);border-color:#bfdbfe}.action-pill-link[data-v-2a390736]:hover{text-decoration:underline}.action-pill-btn[data-v-2a390736]{color:#0f766e;background:linear-gradient(135deg,#ccfbf1,#e0f2fe);border-color:#99f6e4;cursor:pointer}.action-pill-note[data-v-2a390736]{color:#9a3412;background:linear-gradient(135deg,#ffedd5,#fef3c7);border-color:#fed7aa}.qr-panel[data-v-2a390736]{border:1px solid #dbe2ea;border-radius:12px;padding:.74rem;margin-top:.45rem;background:linear-gradient(180deg,#f8fafc,#f1f5f9)}.qr-panel-head[data-v-2a390736]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:.55rem}.qr-panel-title[data-v-2a390736]{font-size:.79rem;font-weight:700;color:#0f172a}.qr-close-btn[data-v-2a390736]{border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#475569;font-size:.72rem;padding:.2rem .48rem;cursor:pointer}.qr-image-box[data-v-2a390736]{width:198px;height:198px;margin:0 auto;background:#fff;border-radius:10px;border:1px solid #dbe2ea;display:flex;align-items:center;justify-content:center;overflow:hidden}.qr-image[data-v-2a390736]{width:100%;height:100%;object-fit:contain}.qr-placeholder[data-v-2a390736]{color:#94a3b8;font-size:.84rem;padding:0 1rem}.qr-status[data-v-2a390736]{margin:.58rem 0 .3rem;color:#334155;font-size:.84rem}.qr-countdown[data-v-2a390736]{margin:0 0 .6rem;color:#0f766e;font-size:.76rem;font-weight:600}.mode-info[data-v-2a390736]{margin-top:.56rem;padding:.5rem;background:#e0f2fe;border-radius:10px}.mode-info.mode-info-warn[data-v-2a390736]{background:#fff7ed}.info-text[data-v-2a390736]{font-size:.79rem;color:#0c4a6e}.mode-info.mode-info-warn .info-text[data-v-2a390736]{color:#9a3412}.progress-container[data-v-2a390736]{padding:1.2rem 0 .3rem}.loading-spinner[data-v-2a390736]{display:flex;justify-content:center}.spinner[data-v-2a390736]{width:42px;height:42px;border:4px solid #e2e8f0;border-top:4px solid var(--primary-color);border-radius:50%;animation:spin-2a390736 1s linear infinite}@keyframes spin-2a390736{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.status-msg[data-v-2a390736]{margin-top:.65rem;font-size:.84rem;color:#334155}.status-msg.error[data-v-2a390736]{color:#b91c1c;font-weight:600}.fade-slide-enter-active[data-v-2a390736],.fade-slide-leave-active[data-v-2a390736]{transition:all .2s ease}.fade-slide-enter-from[data-v-2a390736],.fade-slide-leave-to[data-v-2a390736]{opacity:0;transform:translateY(-6px)}@media (max-width: 560px){.login-container[data-v-2a390736]{padding:1rem .85rem;margin:.75rem auto}.qr-image-box[data-v-2a390736]{width:186px;height:186px}.action-pills[data-v-2a390736]{gap:.45rem}.action-pill[data-v-2a390736]{font-size:.76rem}}.me-view[data-v-902558a2]{min-height:100vh;padding:20px 20px 110px;background:var(--ui-bg-gradient)}.dashboard-header .brand[data-v-902558a2]{display:flex;align-items:center;gap:10px;min-width:0}.logo-img[data-v-902558a2]{width:18px;height:18px;object-fit:contain}.dashboard-header .user-info[data-v-902558a2]{display:flex;align-items:center;gap:10px}.dashboard-header .title[data-v-902558a2]{font-size:clamp(16px,4.2vw,20px);font-weight:800;letter-spacing:.2px;color:var(--ui-text)!important;background:none!important;-webkit-text-fill-color:currentColor!important;text-shadow:none!important;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-header .title[data-v-902558a2]::selection{color:#fff;-webkit-text-fill-color:#fff;background:color-mix(in oklab,var(--ui-primary) 70%,#111827 30%)}.dashboard-header .title.glitch-text[data-v-902558a2]:before{content:none}.dashboard-header .title.glitch-text[data-v-902558a2]:after{content:none}.page-tag[data-v-902558a2]{display:inline-flex;align-items:center;justify-content:center;height:24px;min-width:42px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:700;color:var(--ui-primary);background:color-mix(in oklab,var(--ui-primary-soft) 70%,#fff 30%);border:1px solid color-mix(in oklab,var(--ui-primary) 30%,transparent)}.profile-inline[data-v-902558a2]{display:flex;align-items:center;gap:12px;padding:6px 10px;border-radius:12px;background:var(--ui-primary-soft)}.avatar[data-v-902558a2]{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:var(--ui-primary-soft-strong)}.avatar svg[data-v-902558a2],.student-id svg[data-v-902558a2]{width:14px;height:14px;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;fill:none}.student-id[data-v-902558a2]{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:800;color:var(--ui-text);border:1px solid color-mix(in oklab,var(--ui-primary) 24%,transparent);background:linear-gradient(135deg,color-mix(in oklab,var(--ui-primary) 20%,#fff 80%),color-mix(in oklab,var(--ui-secondary) 15%,#fff 85%));box-shadow:0 8px 18px color-mix(in oklab,var(--ui-primary) 20%,transparent)}.hero-info h2[data-v-902558a2]{margin:0 0 2px;font-size:16px;font-weight:700;color:var(--ui-text)}.hero-info p[data-v-902558a2]{margin:0;color:var(--ui-muted);font-weight:600}.me-content[data-v-902558a2]{padding:20px}.me-row[data-v-902558a2]{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--ui-surface-border);font-size:15px}.me-row .label[data-v-902558a2]{color:var(--ui-muted)}.me-row .value[data-v-902558a2]{font-weight:600;color:var(--ui-text)}@media (max-width: 768px){.dashboard-header[data-v-902558a2]{gap:8px;padding:10px 12px}.dashboard-header .user-info[data-v-902558a2]{max-width:62%;justify-content:flex-end;flex-wrap:nowrap;gap:6px}.dashboard-header .student-id[data-v-902558a2]{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.me-actions[data-v-902558a2]{display:flex;gap:12px;margin-top:18px}.me-actions button[data-v-902558a2]{flex:1;padding:10px 14px;border:none;border-radius:12px;font-weight:600;cursor:pointer}.me-actions .primary[data-v-902558a2]{background:var(--ui-primary);color:#fff}.me-actions .danger[data-v-902558a2]{background:var(--ui-danger);color:#fff}.legal-section[data-v-902558a2]{margin-top:20px;padding:20px}.section-title[data-v-902558a2]{margin:0 0 16px;font-size:16px;font-weight:700;color:var(--ui-text)}.quick-links[data-v-902558a2]{margin-top:20px;padding:20px}.links-grid[data-v-902558a2]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.link-item[data-v-902558a2]{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;background:var(--ui-primary-soft);border:1px solid var(--ui-primary-soft-strong);border-radius:16px;cursor:pointer;transition:all .2s}.link-item[data-v-902558a2]:hover{background:var(--ui-primary-soft-strong);transform:translateY(-2px)}.link-item[data-v-902558a2]:active{transform:scale(.98)}.link-icon[data-v-902558a2]{width:24px;height:24px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;background:#ffffffb8;border:1px solid rgba(148,163,184,.22)}.link-svg[data-v-902558a2]{width:14px;height:14px;stroke:color-mix(in oklab,var(--ui-primary) 82%,var(--ui-secondary) 18%);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;fill:none}.link-text[data-v-902558a2]{font-size:14px;font-weight:600;color:var(--ui-muted)}.legal-title[data-v-902558a2]{margin:0 0 12px;font-size:18px;font-weight:700;color:var(--ui-text)}.legal-tabs[data-v-902558a2]{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px}.legal-tab[data-v-902558a2]{padding:10px 12px;border:1px solid var(--ui-primary-soft-strong);border-radius:12px;background:var(--ui-primary-soft);color:var(--ui-text);font-weight:600;cursor:pointer}.legal-tab.active[data-v-902558a2]{background:var(--ui-primary);color:#fff;border-color:var(--ui-primary)}.legal-content[data-v-902558a2]{color:var(--ui-muted);line-height:1.7;font-size:14px}.legal-content ul[data-v-902558a2]{margin:8px 0 0 18px;padding:0}.legal-content li[data-v-902558a2]{margin:6px 0}.modal-mask[data-v-902558a2]{position:fixed;inset:0;z-index:100;background:#00000080;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}.modal-card[data-v-902558a2]{background:var(--ui-surface);width:85%;max-width:320px;padding:24px;border-radius:16px;box-shadow:var(--ui-shadow-strong)}.modal-card h3[data-v-902558a2]{margin-top:0;color:var(--ui-text)}.github-link[data-v-902558a2]{display:block;margin:10px 0;color:var(--ui-primary);text-decoration:underline;cursor:pointer;word-break:break-all}.modal-card h3[data-v-902558a2]{margin-bottom:16px;font-size:18px}.modal-card .intro[data-v-902558a2]{margin-bottom:20px;color:var(--ui-text);line-height:1.6}.modal-card .section[data-v-902558a2]{margin-bottom:16px}.modal-card .label[data-v-902558a2]{font-size:12px;color:var(--ui-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.modal-card .github-link[data-v-902558a2]{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--ui-card-bg);border-radius:8px;color:var(--ui-primary);text-decoration:none;font-size:14px;word-break:break-all}.modal-card .github-link .icon[data-v-902558a2]{width:18px;height:18px;flex-shrink:0}.modal-card .tag[data-v-902558a2]{display:inline-block;padding:2px 8px;background:var(--ui-primary);color:#fff;border-radius:4px;font-size:11px;margin-right:8px}.modal-card .thanks[data-v-902558a2]{padding:12px;background:var(--ui-card-bg);border-radius:8px;border-left:3px solid var(--ui-primary)}.modal-card .thanks p[data-v-902558a2]{margin:0 0 8px;font-size:13px;color:var(--ui-muted);line-height:1.5}.modal-card .thanks p[data-v-902558a2]:last-child{margin-bottom:0}.modal-card .thanks .highlight[data-v-902558a2]{color:var(--ui-primary);font-weight:600;text-align:center;padding-top:8px;border-top:1px dashed var(--ui-border)}.opensource-list[data-v-902558a2]{margin:0;padding-left:20px;font-size:14px;color:var(--ui-muted)}.modal-actions[data-v-902558a2]{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.btn-primary[data-v-902558a2]{background:var(--ui-primary);color:#fff;border:none;padding:8px 20px;border-radius:8px;font-weight:600;cursor:pointer}.profile-summary[data-v-902558a2]{display:flex;align-items:center;gap:16px;margin-bottom:16px}.official-view[data-v-52f40eb9]{min-height:100vh;display:flex;flex-direction:column;background:#f5f5f5}.view-header[data-v-52f40eb9]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;position:sticky;top:0;z-index:100}.view-header h1[data-v-52f40eb9]{margin:0;font-size:18px;font-weight:700}.back-btn[data-v-52f40eb9],.external-btn[data-v-52f40eb9]{padding:8px 16px;background:#fff3;color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer;transition:background .2s}.back-btn[data-v-52f40eb9]:hover,.external-btn[data-v-52f40eb9]:hover{background:#ffffff4d}.external-btn[data-v-52f40eb9]{padding:8px 12px}.iframe-container[data-v-52f40eb9]{flex:1;position:relative;min-height:calc(100vh - 60px)}.iframe-container iframe[data-v-52f40eb9]{width:100%;height:100%;min-height:calc(100vh - 60px);border:none;background:#fff}.loading-overlay[data-v-52f40eb9]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fffffff2;z-index:10}.spinner[data-v-52f40eb9]{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#6366f1;border-radius:50%;animation:spin-52f40eb9 1s linear infinite}@keyframes spin-52f40eb9{to{transform:rotate(360deg)}}.loading-overlay p[data-v-52f40eb9]{margin-top:12px;color:#6b7280;font-size:14px}.feedback-view[data-v-6a8c7690]{min-height:100vh;display:flex;flex-direction:column;background:#f5f5f5}.view-header[data-v-6a8c7690]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;position:sticky;top:0;z-index:100}.view-header h1[data-v-6a8c7690]{margin:0;font-size:18px;font-weight:700}.back-btn[data-v-6a8c7690],.external-btn[data-v-6a8c7690]{padding:8px 16px;background:#fff3;color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer;transition:background .2s}.back-btn[data-v-6a8c7690]:hover,.external-btn[data-v-6a8c7690]:hover{background:#ffffff4d}.external-btn[data-v-6a8c7690]{padding:8px 12px}.iframe-container[data-v-6a8c7690]{flex:1;position:relative;min-height:calc(100vh - 60px)}.iframe-container iframe[data-v-6a8c7690]{width:100%;height:100%;min-height:calc(100vh - 60px);border:none;background:#fff}.loading-overlay[data-v-6a8c7690]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fffffff2;z-index:10}.spinner[data-v-6a8c7690]{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#f59e0b;border-radius:50%;animation:spin-6a8c7690 1s linear infinite}@keyframes spin-6a8c7690{to{transform:rotate(360deg)}}.loading-overlay p[data-v-6a8c7690]{margin-top:12px;color:#6b7280;font-size:14px}.notification-view[data-v-a37583bb]{min-height:100%;padding:18px 14px 120px;color:var(--ui-text);background:var(--ui-bg-gradient)}.logo-img[data-v-a37583bb]{width:18px;height:18px;object-fit:contain}.hero-card[data-v-a37583bb],.setting-card[data-v-a37583bb],.info-card[data-v-a37583bb]{background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:16px;box-shadow:var(--ui-shadow-soft)}.hero-card[data-v-a37583bb]{display:grid;gap:14px;padding:16px;margin-bottom:12px}.hero-left[data-v-a37583bb],.hero-actions[data-v-a37583bb]{display:flex;flex-wrap:wrap;gap:8px}.setting-card[data-v-a37583bb]{padding:2px 16px 12px;margin-bottom:12px}.setting-item[data-v-a37583bb]{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid color-mix(in oklab,var(--ui-primary) 10%,rgba(148,163,184,.35))}.setting-item[data-v-a37583bb]:last-of-type{border-bottom:none}.setting-label h3[data-v-a37583bb]{margin:0 0 4px;font-size:15px;color:var(--ui-text)}.setting-label[data-v-a37583bb]{min-width:0}.setting-label p[data-v-a37583bb]{margin:0;font-size:12px;line-height:1.6;color:var(--ui-muted);word-break:break-word}.status-row[data-v-a37583bb]{margin-top:4px;display:flex;flex-wrap:wrap;gap:8px}.status-pill[data-v-a37583bb]{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:700;color:var(--ui-text);background:color-mix(in oklab,var(--ui-primary-soft) 72%,#fff 28%);border:1px solid color-mix(in oklab,var(--ui-primary) 22%,transparent)}.status-pill.soft[data-v-a37583bb]{color:var(--ui-muted);background:color-mix(in oklab,var(--ui-primary-soft) 48%,#fff 52%)}.switch[data-v-a37583bb]{position:relative;display:inline-block;width:50px;height:28px;flex:0 0 auto;justify-self:end;align-self:center}.switch input[data-v-a37583bb]{opacity:0;width:0;height:0}.slider[data-v-a37583bb]{position:absolute;cursor:pointer;inset:0;background-color:color-mix(in oklab,var(--ui-primary) 24%,rgba(148,163,184,.42));transition:.3s}.slider[data-v-a37583bb]:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:#fff;transition:.3s}input:checked+.slider[data-v-a37583bb]{background-color:var(--ui-primary)}input:checked+.slider[data-v-a37583bb]:before{transform:translate(22px)}.slider.round[data-v-a37583bb]{border-radius:34px}.slider.round[data-v-a37583bb]:before{border-radius:50%}.select-input[data-v-a37583bb]{justify-self:end;width:min(56vw,320px);max-width:100%;min-width:168px;padding:8px 10px;border-radius:8px;border:1px solid color-mix(in oklab,var(--ui-primary) 16%,rgba(148,163,184,.4));background:color-mix(in oklab,var(--ui-surface) 88%,#fff 12%);color:var(--ui-text)}.info-grid[data-v-a37583bb]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.info-card[data-v-a37583bb]{padding:14px}.info-card h3[data-v-a37583bb]{margin:0 0 8px;font-size:15px;font-weight:800}.hint[data-v-a37583bb]{margin:0 0 10px;font-size:12px;line-height:1.6;color:var(--ui-muted)}.kv[data-v-a37583bb]{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:8px 0}.kv span[data-v-a37583bb]{color:var(--ui-muted);font-size:12px}.kv strong[data-v-a37583bb]{color:var(--ui-text);font-size:14px}.kv strong.low[data-v-a37583bb]{color:#dc2626}.list[data-v-a37583bb]{margin:0;padding:0;list-style:none;display:grid;gap:8px}.list li[data-v-a37583bb]{border-radius:10px;border:1px solid color-mix(in oklab,var(--ui-primary) 12%,rgba(148,163,184,.25));background:color-mix(in oklab,var(--ui-primary-soft) 20%,#fff 80%);padding:9px 10px;display:grid;gap:3px}.item-main[data-v-a37583bb]{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--ui-text)}.item-sub[data-v-a37583bb]{font-size:12px;color:var(--ui-muted)}.tag[data-v-a37583bb]{border-radius:999px;background:color-mix(in oklab,var(--ui-danger) 15%,#fff 85%);color:var(--ui-danger);border:1px solid color-mix(in oklab,var(--ui-danger) 35%,transparent);padding:1px 6px;font-size:10px;font-weight:700}.empty[data-v-a37583bb]{margin:0;font-size:12px;color:var(--ui-muted)}.btn-primary[data-v-a37583bb],.btn-secondary[data-v-a37583bb]{border:none;border-radius:10px;min-height:36px;padding:0 12px;font-weight:700;font-size:13px;cursor:pointer;transition:filter .2s ease}.btn-primary[data-v-a37583bb]{color:#fff;background:linear-gradient(130deg,var(--ui-primary),var(--ui-secondary))}.btn-secondary[data-v-a37583bb]{color:var(--ui-primary);background:var(--ui-primary-soft);border:1px solid color-mix(in oklab,var(--ui-primary) 25%,transparent)}.btn-mini[data-v-a37583bb]{min-height:30px;padding:0 10px;font-size:12px;border-radius:999px}.btn-primary[data-v-a37583bb]:hover,.btn-secondary[data-v-a37583bb]:hover{filter:brightness(1.04)}.btn-primary[data-v-a37583bb]:disabled,.btn-secondary[data-v-a37583bb]:disabled{opacity:.6;cursor:not-allowed}.status-msg[data-v-a37583bb]{margin:12px 0 0;color:color-mix(in oklab,var(--ui-primary) 82%,#111827 18%);font-size:13px}.status-err[data-v-a37583bb]{margin:6px 0 0;color:#dc2626;font-size:12px;word-break:break-all}.modal-mask[data-v-a37583bb]{position:fixed;inset:0;z-index:100;background:#00000080;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}.modal-card[data-v-a37583bb]{background:var(--ui-surface);width:85%;max-width:320px;padding:20px;border-radius:16px;box-shadow:var(--ui-shadow-strong);border:1px solid var(--ui-surface-border)}.modal-card h3[data-v-a37583bb]{margin:0 0 8px}.modal-card p[data-v-a37583bb]{margin:0;color:var(--ui-muted);line-height:1.6}.modal-actions[data-v-a37583bb]{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.btn-text[data-v-a37583bb]{background:none;border:none;color:var(--ui-muted);cursor:pointer;font-weight:700}@media (max-width: 980px){.info-grid[data-v-a37583bb]{grid-template-columns:1fr}}@media (max-width: 768px){.hero-actions[data-v-a37583bb]{flex-direction:column}.hero-actions .btn-primary[data-v-a37583bb],.hero-actions .btn-secondary[data-v-a37583bb]{width:100%}}.config-editor[data-v-49103ce2]{min-height:100vh;padding:20px 20px 120px;background:linear-gradient(135deg,#7c3aed,#4f46e5 55%,#22d3ee)}.editor-header[data-v-49103ce2]{color:#fff;margin-bottom:16px}.editor-header h2[data-v-49103ce2]{margin:8px 0 4px;font-size:26px}.editor-header p[data-v-49103ce2]{margin:0;font-size:14px;opacity:.92}.back-btn[data-v-49103ce2]{border:none;border-radius:999px;padding:8px 14px;background:#fff3;color:#fff;cursor:pointer}.editor-card[data-v-49103ce2]{background:#fffffff2;border:1px solid rgba(148,163,184,.3);border-radius:16px;box-shadow:0 8px 22px #0f172a1f;padding:16px;margin-bottom:14px}.editor-card h3[data-v-49103ce2]{margin:0 0 10px;color:#0f172a}.form-grid[data-v-49103ce2]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}label[data-v-49103ce2]{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#334155}.toggle[data-v-49103ce2]{flex-direction:row;align-items:center;gap:8px}input[data-v-49103ce2],textarea[data-v-49103ce2]{border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px;font-size:13px;color:#0f172a;background:#fff}.tabs[data-v-49103ce2]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.tab-btn[data-v-49103ce2]{border:none;border-radius:999px;padding:6px 12px;font-size:13px;background:#e0e7ff;color:#4338ca;cursor:pointer}.tab-btn.active[data-v-49103ce2]{background:#4338ca;color:#fff}.add-btn[data-v-49103ce2]{margin-left:auto;border:none;border-radius:10px;padding:6px 12px;font-size:13px;background:#10b981;color:#fff;cursor:pointer}.notice-editor[data-v-49103ce2]{border:1px solid #e2e8f0;border-radius:14px;background:#fff;padding:12px;margin-bottom:12px}.notice-header[data-v-49103ce2]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.notice-header h4[data-v-49103ce2]{margin:0;color:#0f172a}.remove-btn[data-v-49103ce2]{border:none;border-radius:8px;background:#fee2e2;color:#b91c1c;padding:4px 10px;cursor:pointer}.markdown-editor[data-v-49103ce2]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:10px}.markdown-editor h5[data-v-49103ce2]{margin:0 0 6px;color:#334155}.markdown-preview[data-v-49103ce2]{border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;min-height:120px;padding:10px;color:#334155;line-height:1.6}.actions[data-v-49103ce2]{display:flex;gap:10px;margin-top:10px}.btn-primary[data-v-49103ce2],.btn-secondary[data-v-49103ce2]{border:none;border-radius:10px;padding:8px 14px;cursor:pointer}.btn-primary[data-v-49103ce2]{background:#4f46e5;color:#fff}.btn-secondary[data-v-49103ce2]{background:#e2e8f0;color:#334155}.empty[data-v-49103ce2]{text-align:center;color:#64748b;padding:10px 0}.error[data-v-49103ce2]{margin:8px 0 0;color:#dc2626}.settings-view[data-v-c20d8859]{min-height:100vh;padding:22px 18px 124px;color:var(--ui-text);background:var(--ui-bg-gradient)}.settings-header[data-v-c20d8859]{margin-bottom:14px;padding:12px 16px}.brand[data-v-c20d8859]{display:flex;align-items:center;gap:10px}.logo-img[data-v-c20d8859]{width:20px;height:20px;object-fit:contain}.title-wrap[data-v-c20d8859]{display:grid;gap:2px}.title[data-v-c20d8859]{font-size:clamp(19px,2.4vw,24px);font-weight:800;line-height:1.1}.sub-title[data-v-c20d8859]{font-size:12px;font-weight:700;color:var(--ui-muted)}.settings-intro[data-v-c20d8859]{margin-bottom:14px;padding:16px;display:grid;gap:10px}.settings-intro p[data-v-c20d8859]{margin:0;color:var(--ui-muted);line-height:1.65}.pill-row[data-v-c20d8859]{display:flex;flex-wrap:wrap;gap:8px}.meta-pill[data-v-c20d8859]{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 26%,transparent);background:color-mix(in oklab,var(--ui-primary-soft) 70%,#fff 30%);color:var(--ui-text);font-size:12px;font-weight:700}.student-pill[data-v-c20d8859]{background:linear-gradient(135deg,color-mix(in oklab,var(--ui-primary) 26%,#fff 74%),color-mix(in oklab,var(--ui-secondary) 20%,#fff 80%));box-shadow:0 8px 16px color-mix(in oklab,var(--ui-primary) 24%,transparent)}.tab-bar[data-v-c20d8859]{display:flex;gap:10px;margin-bottom:14px}.tab-btn[data-v-c20d8859]{border:1px solid color-mix(in oklab,var(--ui-primary) 24%,rgba(148,163,184,.42));background:var(--ui-surface);color:var(--ui-muted);height:38px;padding:0 16px;border-radius:999px;font-size:14px;font-weight:700;cursor:pointer}.tab-btn.active[data-v-c20d8859]{border-color:transparent;color:#fff;background:linear-gradient(130deg,var(--ui-primary),var(--ui-secondary))}.settings-section[data-v-c20d8859]{margin-bottom:14px;padding:16px}.startup-page-section[data-v-c20d8859]{padding:12px 16px}.startup-page-row[data-v-c20d8859]{display:flex;align-items:center;justify-content:space-between;gap:12px}.startup-page-label[data-v-c20d8859]{font-size:15px;font-weight:700;color:var(--ui-text)}.startup-page-toggle[data-v-c20d8859]{display:flex;border-radius:10px;overflow:hidden;border:1px solid var(--ui-surface-border)}.startup-page-toggle .toggle-btn[data-v-c20d8859]{padding:6px 18px;font-size:13px;font-weight:700;border:none;background:var(--ui-surface);color:var(--ui-muted);cursor:pointer;transition:background .2s,color .2s}.startup-page-toggle .toggle-btn+.toggle-btn[data-v-c20d8859]{border-left:1px solid var(--ui-surface-border)}.startup-page-toggle .toggle-btn.active[data-v-c20d8859]{background:var(--ui-primary);color:#fff}.section-head[data-v-c20d8859]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.settings-section h3[data-v-c20d8859]{margin:0;font-size:17px;font-weight:800;color:var(--ui-text)}.mini-btn[data-v-c20d8859]{border:1px solid color-mix(in oklab,var(--ui-primary) 22%,rgba(148,163,184,.34));background:var(--ui-surface);color:var(--ui-text);border-radius:10px;height:36px;padding:0 12px;font-size:13px;font-weight:700;cursor:pointer}.mini-btn.danger[data-v-c20d8859]{border-color:#ef44446b;background:#fee2e2c7;color:#b91c1c}.preset-grid[data-v-c20d8859]{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.preset-card[data-v-c20d8859]{border:1px solid color-mix(in oklab,var(--ui-primary) 18%,rgba(148,163,184,.34));border-radius:14px;padding:10px;background:color-mix(in oklab,var(--ui-surface) 88%,#fff 12%);display:grid;gap:6px;text-align:left;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.preset-card.active[data-v-c20d8859]{border-color:color-mix(in oklab,var(--ui-primary) 72%,#fff 28%);box-shadow:0 10px 20px color-mix(in oklab,var(--ui-primary) 24%,transparent)}.preset-card[data-v-c20d8859]:hover{transform:translateY(-1px)}.preset-swatch[data-v-c20d8859]{width:100%;height:56px;border-radius:10px;border:1px solid rgba(255,255,255,.52)}.preset-name[data-v-c20d8859]{font-size:14px;font-weight:800;color:var(--ui-text)}.preset-tagline[data-v-c20d8859]{font-size:12px;line-height:1.5;color:var(--ui-muted)}.option-group[data-v-c20d8859]{display:grid;gap:8px;margin-top:14px}.option-group>label[data-v-c20d8859]{font-size:13px;font-weight:700;color:var(--ui-muted)}.chip-row[data-v-c20d8859]{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.option-chip[data-v-c20d8859]{border:1px solid color-mix(in oklab,var(--ui-primary) 18%,rgba(148,163,184,.32));background:color-mix(in oklab,var(--ui-surface) 88%,#fff 12%);color:var(--ui-text);border-radius:12px;padding:10px;text-align:left;display:grid;gap:4px;cursor:pointer}.option-chip strong[data-v-c20d8859]{font-size:13px}.option-chip small[data-v-c20d8859]{font-size:12px;color:var(--ui-muted);line-height:1.45}.option-chip.active[data-v-c20d8859]{border-color:color-mix(in oklab,var(--ui-primary) 72%,white);background:color-mix(in oklab,var(--ui-primary) 12%,#fff 88%);box-shadow:0 8px 18px color-mix(in oklab,var(--ui-primary) 22%,transparent)}.profile-grid[data-v-c20d8859]{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.profile-card[data-v-c20d8859]{border:1px solid color-mix(in oklab,var(--ui-primary) 20%,rgba(148,163,184,.34));background:color-mix(in oklab,var(--ui-surface) 86%,#fff 14%);color:var(--ui-text);border-radius:12px;padding:12px;text-align:left;cursor:pointer;display:grid;gap:6px}.profile-card strong[data-v-c20d8859]{font-size:14px}.profile-card span[data-v-c20d8859]{font-size:12px;line-height:1.5;color:var(--ui-muted)}.font-actions[data-v-c20d8859]{display:flex;flex-wrap:wrap;gap:8px}.font-btn[data-v-c20d8859]{border:1px solid color-mix(in oklab,var(--ui-primary) 24%,rgba(148,163,184,.34));background:color-mix(in oklab,var(--ui-surface) 88%,#fff 12%);color:var(--ui-text);border-radius:10px;height:38px;padding:0 12px;font-size:13px;font-weight:700;cursor:pointer}.font-btn.active[data-v-c20d8859]{border-color:transparent;color:#fff;background:linear-gradient(130deg,var(--ui-primary),var(--ui-secondary))}.font-cdn[data-v-c20d8859]{margin-top:12px;display:grid;gap:8px}.font-cdn>label[data-v-c20d8859],.font-availability>label[data-v-c20d8859]{font-size:13px;font-weight:700;color:var(--ui-muted)}.font-cdn-row[data-v-c20d8859]{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.font-cdn-btn[data-v-c20d8859]{border:1px solid color-mix(in oklab,var(--ui-primary) 22%,rgba(148,163,184,.36));background:color-mix(in oklab,var(--ui-surface) 90%,#fff 10%);color:var(--ui-text);border-radius:12px;padding:9px 10px;text-align:left;cursor:pointer;display:grid;gap:4px}.font-cdn-btn strong[data-v-c20d8859]{font-size:13px}.font-cdn-btn small[data-v-c20d8859]{font-size:12px;line-height:1.45;color:var(--ui-muted)}.font-cdn-btn.active[data-v-c20d8859]{border-color:transparent;background:linear-gradient(130deg,var(--ui-primary),var(--ui-secondary));box-shadow:0 8px 18px color-mix(in oklab,var(--ui-primary) 25%,transparent)}.font-cdn-btn.active strong[data-v-c20d8859],.font-cdn-btn.active small[data-v-c20d8859]{color:#fff}.font-availability[data-v-c20d8859]{margin-top:12px;display:grid;gap:8px}.font-availability ul[data-v-c20d8859]{margin:0;padding-left:18px;display:grid;gap:6px}.font-availability li[data-v-c20d8859]{font-size:12px;color:var(--ui-muted);line-height:1.5}.font-download-row[data-v-c20d8859]{margin-top:10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.backend-summary[data-v-c20d8859]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.backend-shell[data-v-c20d8859],.debug-shell[data-v-c20d8859]{display:grid;gap:12px}.debug-head-actions[data-v-c20d8859]{display:flex;gap:8px;flex-wrap:wrap}.debug-filter-row[data-v-c20d8859]{display:flex;flex-wrap:wrap;gap:8px}.debug-filter-btn[data-v-c20d8859]{border:1px solid color-mix(in oklab,var(--ui-primary) 20%,rgba(148,163,184,.35));background:color-mix(in oklab,var(--ui-surface) 90%,#fff 10%);color:var(--ui-muted);border-radius:999px;height:32px;padding:0 12px;font-size:12px;font-weight:700;cursor:pointer}.debug-filter-btn.active[data-v-c20d8859]{border-color:transparent;color:#fff;background:linear-gradient(130deg,var(--ui-primary),var(--ui-secondary))}.debug-log-panel[data-v-c20d8859]{max-height:52vh;overflow:auto;border:1px solid color-mix(in oklab,var(--ui-primary) 18%,rgba(148,163,184,.3));border-radius:12px;padding:10px;background:color-mix(in oklab,var(--ui-surface) 92%,#fff 8%);display:grid;gap:8px}.debug-log-item[data-v-c20d8859]{border:1px solid color-mix(in oklab,var(--ui-primary) 16%,rgba(148,163,184,.28));border-radius:10px;padding:8px 10px;background:#fff9;display:grid;gap:6px}.debug-log-head[data-v-c20d8859]{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;font-weight:700}.debug-time[data-v-c20d8859]{color:var(--ui-muted)}.debug-level[data-v-c20d8859],.debug-scope[data-v-c20d8859]{border-radius:999px;padding:0 8px;min-height:20px;display:inline-flex;align-items:center}.debug-level[data-v-c20d8859]{background:#94a3b833;color:#334155}.debug-scope[data-v-c20d8859]{background:color-mix(in oklab,var(--ui-primary-soft) 65%,#fff 35%);color:var(--ui-text)}.debug-message[data-v-c20d8859]{margin:0;font-size:12px;line-height:1.55;color:var(--ui-text);word-break:break-word}.debug-log-item.lvl-debug .debug-level[data-v-c20d8859]{color:#1d4ed8;background:#93c5fd4d}.debug-log-item.lvl-info .debug-level[data-v-c20d8859]{color:#065f46;background:#6ee7b747}.debug-log-item.lvl-warn .debug-level[data-v-c20d8859]{color:#92400e;background:#fde68a59}.debug-log-item.lvl-error[data-v-c20d8859]{border-color:#ef444466;background:#fef2f2d9}.debug-log-item.lvl-error .debug-level[data-v-c20d8859]{color:#991b1b;background:#fca5a561}.backend-block[data-v-c20d8859]{border:1px solid color-mix(in oklab,var(--ui-primary) 18%,rgba(148,163,184,.28));border-radius:14px;padding:12px;background:color-mix(in oklab,var(--ui-surface) 92%,#fff 8%);display:grid;gap:10px}.backend-block h4[data-v-c20d8859]{margin:0;font-size:15px;font-weight:800;color:var(--ui-text)}.section-head-compact[data-v-c20d8859]{margin-bottom:0}.toggle-row[data-v-c20d8859]{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid color-mix(in oklab,var(--ui-primary) 18%,rgba(148,163,184,.3));border-radius:12px;padding:10px;transition:all .2s ease}.toggle-row.inactive[data-v-c20d8859]{border-color:color-mix(in oklab,var(--ui-primary) 15%,rgba(148,163,184,.34));background:color-mix(in oklab,var(--ui-surface) 94%,#fff 6%)}.toggle-row.active[data-v-c20d8859]{border-color:#f9731685;background:linear-gradient(135deg,#fb923c2e,#f973161f)}.toggle-text[data-v-c20d8859]{display:grid;gap:4px}.toggle-text strong[data-v-c20d8859]{font-size:14px;color:var(--ui-text)}.toggle-text small[data-v-c20d8859]{color:var(--ui-muted);line-height:1.5}.toggle-meta[data-v-c20d8859]{display:inline-flex;align-items:center;gap:8px}.toggle-badge[data-v-c20d8859]{min-height:26px;border-radius:999px;padding:0 10px;border:1px solid rgba(148,163,184,.36);display:inline-flex;align-items:center;font-size:12px;font-weight:700}.toggle-badge.inactive[data-v-c20d8859]{color:#1d4ed8;border-color:#3b82f666;background:#60a5fa33}.toggle-badge.active[data-v-c20d8859]{color:#9a3412;border-color:#f9731680;background:#fb923c42}.toggle-switch[data-v-c20d8859]{width:54px;height:30px;border-radius:999px;border:1px solid rgba(148,163,184,.54);background:#94a3b880;display:inline-flex;align-items:center;padding:3px;cursor:pointer;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease;box-shadow:inset 0 0 0 1px #ffffff3d}.toggle-switch .toggle-thumb[data-v-c20d8859]{width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f172a47;transition:transform .2s ease,background .2s ease}.toggle-switch.checked[data-v-c20d8859]{border-color:#f9731694;background:linear-gradient(130deg,#fb923c,#f97316);box-shadow:0 0 0 3px #fb923c38}.toggle-switch.checked .toggle-thumb[data-v-c20d8859]{transform:translate(24px);background:#fff7ed}.toggle-switch[data-v-c20d8859]:focus-visible{outline:none;box-shadow:0 0 0 3px #6366f13d,inset 0 0 0 1px #ffffff3d}.status-pill[data-v-c20d8859]{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 22%,transparent);background:color-mix(in oklab,var(--ui-primary-soft) 72%,#fff 28%);color:var(--ui-text);font-size:12px;font-weight:700}.cloud-sync-status-grid[data-v-c20d8859]{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.cloud-sync-status-item[data-v-c20d8859]{border:1px solid color-mix(in oklab,var(--ui-primary) 18%,rgba(148,163,184,.32));border-radius:12px;padding:10px;background:color-mix(in oklab,var(--ui-surface) 94%,#fff 6%);display:grid;gap:4px}.cloud-sync-status-item small[data-v-c20d8859]{font-size:12px;color:var(--ui-muted)}.cloud-sync-status-item strong[data-v-c20d8859]{font-size:14px;color:var(--ui-text)}.cloud-sync-status-item span[data-v-c20d8859]{font-size:12px;color:var(--ui-muted)}.cloud-sync-status-item .ok[data-v-c20d8859]{color:#0f766e}.cloud-sync-status-item .error[data-v-c20d8859],.cloud-sync-error[data-v-c20d8859]{color:#b91c1c}.backend-grid[data-v-c20d8859]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.field[data-v-c20d8859]{display:grid;gap:8px}.field span[data-v-c20d8859]{font-size:13px;font-weight:700;color:var(--ui-muted)}.field input[data-v-c20d8859]{height:42px;border-radius:10px;border:1px solid color-mix(in oklab,var(--ui-primary) 22%,rgba(148,163,184,.4));background:color-mix(in oklab,var(--ui-surface) 90%,#fff 10%);padding:0 12px;color:var(--ui-text)}.probe-list[data-v-c20d8859]{display:grid;gap:8px}.probe-item[data-v-c20d8859]{border:1px solid color-mix(in oklab,var(--ui-primary) 16%,rgba(148,163,184,.28));border-radius:12px;padding:10px;background:color-mix(in oklab,var(--ui-surface) 94%,#fff 6%);display:flex;align-items:center;justify-content:space-between;gap:10px}.probe-main[data-v-c20d8859]{min-width:0;display:grid;gap:3px}.probe-main strong[data-v-c20d8859]{font-size:14px;color:var(--ui-text)}.probe-main small[data-v-c20d8859]{font-size:12px;color:var(--ui-muted)}.probe-url[data-v-c20d8859]{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--ui-muted);background:#94a3b81f;border-radius:8px;padding:3px 8px}.probe-state[data-v-c20d8859]{flex-shrink:0;min-height:30px;padding:0 10px;border-radius:999px;border:1px solid color-mix(in oklab,var(--ui-primary) 20%,rgba(148,163,184,.24));display:inline-flex;align-items:center;font-size:12px;font-weight:700;color:var(--ui-muted);background:#94a3b81f}.probe-state.fast[data-v-c20d8859]{color:#0f5132;border-color:#16a34a73;background:#22c55e29}.probe-state.medium[data-v-c20d8859]{color:#7c4a03;border-color:#f59e0b8c;background:#f59e0b2e}.probe-state.slow[data-v-c20d8859]{color:#842029;border-color:#dc262680;background:#f8717133}.probe-state.testing[data-v-c20d8859]{color:#1d4ed8;border-color:#3b82f685;background:#60a5fa33}.probe-state.error[data-v-c20d8859]{color:#842029;border-color:#dc26268c;background:#f8717133}.hint[data-v-c20d8859]{margin-top:10px;font-size:13px;color:var(--ui-muted);line-height:1.6}.mini-btn[data-v-c20d8859]:disabled{opacity:.6;cursor:not-allowed}.font-modal[data-v-c20d8859]{position:fixed;inset:0;z-index:9999;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:20px}.font-modal-card[data-v-c20d8859]{width:min(360px,100%);background:color-mix(in oklab,var(--ui-surface) 92%,#fff 8%);border-radius:16px;border:1px solid color-mix(in oklab,var(--ui-primary) 18%,rgba(148,163,184,.36));box-shadow:var(--ui-shadow-strong);padding:18px}.font-modal-card h3[data-v-c20d8859]{margin:0;font-size:20px;color:var(--ui-text)}.font-modal-card p[data-v-c20d8859]{margin:8px 0 0;color:var(--ui-muted);line-height:1.6}.font-modal-progress[data-v-c20d8859]{margin-top:14px;display:grid;gap:8px}.progress-bar[data-v-c20d8859]{width:100%;height:8px;border-radius:999px;background:#94a3b840;overflow:hidden}.progress-fill[data-v-c20d8859]{height:100%;background:linear-gradient(90deg,var(--ui-primary),var(--ui-secondary))}.font-error[data-v-c20d8859]{color:var(--ui-danger);font-size:13px}.font-step[data-v-c20d8859]{margin-top:8px;font-size:13px;color:var(--ui-muted)}.font-modal-actions[data-v-c20d8859]{margin-top:12px;display:flex;gap:8px;justify-content:flex-end}.btn-secondary[data-v-c20d8859],.btn-primary[data-v-c20d8859]{border:1px solid color-mix(in oklab,var(--ui-primary) 20%,rgba(148,163,184,.3));border-radius:10px;min-width:88px;height:38px;font-size:13px;font-weight:700;cursor:pointer}.btn-secondary[data-v-c20d8859]{background:color-mix(in oklab,var(--ui-primary-soft) 42%,#fff 58%);color:var(--ui-text)}.btn-primary[data-v-c20d8859]{border:none;color:#fff;background:linear-gradient(130deg,var(--ui-primary),var(--ui-secondary))}@media (max-width: 720px){.settings-view[data-v-c20d8859]{padding:14px 12px 110px}.settings-header[data-v-c20d8859]{padding:10px 12px}.title[data-v-c20d8859]{font-size:20px}.preset-grid[data-v-c20d8859],.chip-row[data-v-c20d8859],.profile-grid[data-v-c20d8859],.backend-grid[data-v-c20d8859]{grid-template-columns:1fr}.font-actions[data-v-c20d8859]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.font-cdn-row[data-v-c20d8859]{grid-template-columns:1fr}.toggle-row[data-v-c20d8859],.probe-item[data-v-c20d8859]{align-items:flex-start;flex-direction:column}.probe-state[data-v-c20d8859]{width:100%;justify-content:center}}.export-view[data-v-7ad3e048]{min-height:100vh;padding:20px 20px 120px;background:var(--ui-bg-gradient);font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,Source Han Sans CN,sans-serif}.view-header[data-v-7ad3e048]{display:flex;align-items:center;justify-content:space-between;margin:0 auto 18px;max-width:1080px;background:#ffffffe6;border:1px solid rgba(148,163,184,.3);border-radius:22px;padding:14px 16px}.view-header h1[data-v-7ad3e048]{margin:0;font-size:24px;color:var(--ui-text)}.back-btn[data-v-7ad3e048],.logout-btn[data-v-7ad3e048]{min-width:84px;height:36px;border:none;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;color:var(--ui-text);background:var(--ui-primary-soft)}.logout-btn[data-v-7ad3e048]{color:#ef4444;background:#ef44441f}.intro-card[data-v-7ad3e048],.config-card[data-v-7ad3e048],.actions-card[data-v-7ad3e048],.preview-wrap[data-v-7ad3e048]{max-width:1080px;margin:0 auto 16px;background:#ffffffe6;border:1px solid rgba(148,163,184,.25);border-radius:22px;padding:18px 20px}.intro-card h2[data-v-7ad3e048]{margin:0 0 8px;font-size:22px;color:var(--ui-text)}.intro-card p[data-v-7ad3e048]{margin:0;color:var(--ui-muted);font-size:14px;line-height:1.6}.card-title-row[data-v-7ad3e048]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.config-card h3[data-v-7ad3e048]{margin:0 0 10px;font-size:19px;color:var(--ui-text)}.inline-switch[data-v-7ad3e048]{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--ui-text)}.inline-switch input[data-v-7ad3e048]{width:18px;height:18px}.semester-hint[data-v-7ad3e048],.hint-line[data-v-7ad3e048]{font-size:13px;color:var(--ui-muted)}.hint-line.warn[data-v-7ad3e048],.warn-text[data-v-7ad3e048]{color:#b45309;font-weight:600}.semester-grid[data-v-7ad3e048],.month-grid[data-v-7ad3e048]{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.semester-chip[data-v-7ad3e048],.month-chip[data-v-7ad3e048]{display:flex;align-items:center;gap:8px;border:1px solid rgba(59,130,246,.35);border-radius:12px;padding:8px 10px;font-size:14px;color:#1d4ed8;cursor:pointer;user-select:none;background:#eff6ffbf}.semester-chip input[data-v-7ad3e048],.month-chip input[data-v-7ad3e048]{width:16px;height:16px;margin:0}.semester-chip.active[data-v-7ad3e048],.month-chip.active[data-v-7ad3e048]{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.semester-chip.disabled[data-v-7ad3e048]{opacity:.55;cursor:not-allowed}.module-grid[data-v-7ad3e048]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.module-item[data-v-7ad3e048]{display:flex;align-items:center;gap:8px;border:1px solid rgba(148,163,184,.35);border-radius:16px;padding:9px 11px;background:#f8fafce6;cursor:pointer;min-width:0;overflow:hidden}.module-item input[data-v-7ad3e048]{width:16px;height:16px;margin:0;flex:0 0 auto}.module-item.active[data-v-7ad3e048]{border-color:#2563eb;background:#dbeafebf}.module-icon[data-v-7ad3e048]{display:inline-flex;justify-content:center;font-size:18px;line-height:1;flex:0 0 auto}.module-name[data-v-7ad3e048]{font-size:14px;color:#1f2937;line-height:1.3;font-weight:600;flex:1;min-width:0;word-break:keep-all;overflow-wrap:break-word}.semester-tag[data-v-7ad3e048]{border-radius:999px;background:#6366f124;color:#4f46e5;font-size:12px;padding:2px 8px;font-weight:700;flex:0 0 auto}.actions-card[data-v-7ad3e048]{display:flex;flex-wrap:wrap;gap:10px}.action-btn[data-v-7ad3e048]{border:none;border-radius:12px;padding:10px 14px;min-width:158px;font-size:14px;font-weight:700;color:#fff;cursor:pointer}.action-btn[data-v-7ad3e048]:disabled{opacity:.65;cursor:not-allowed}.action-btn.prepare[data-v-7ad3e048]{background:linear-gradient(135deg,#1d4ed8,#0ea5e9)}.action-btn.json[data-v-7ad3e048]{background:linear-gradient(135deg,#16a34a,#22c55e)}.action-btn.image[data-v-7ad3e048]{background:linear-gradient(135deg,#7c3aed,#a855f7)}.feedback[data-v-7ad3e048]{max-width:1080px;margin:0 auto 12px;border-radius:12px;padding:10px 12px;font-size:14px;font-weight:600}.feedback.error[data-v-7ad3e048]{background:#fee2e2eb;border:1px solid rgba(248,113,113,.5);color:#b91c1c}.feedback.success[data-v-7ad3e048]{background:#dcfce7eb;border:1px solid rgba(74,222,128,.5);color:#166534}.preview-content[data-v-7ad3e048]{background:linear-gradient(180deg,#f7f9ff,#eff4ff);border-radius:18px;border:1px solid rgba(148,163,184,.35);padding:16px}.preview-content.capture-mode[data-v-7ad3e048]{border-radius:0;border:none;box-shadow:none}.preview-header[data-v-7ad3e048]{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:14px;background:#fff;border-radius:12px;border:1px solid rgba(148,163,184,.25);padding:10px 12px;margin-bottom:12px}.preview-header h2[data-v-7ad3e048]{margin:0 0 4px;font-size:22px}.preview-header p[data-v-7ad3e048]{margin:2px 0;font-size:13px;color:#475569}.preview-summary[data-v-7ad3e048]{align-self:center;flex:1 1 280px;min-width:220px;max-width:none;font-size:13px;color:#334155;line-height:1.6;text-align:right;overflow-wrap:anywhere}.preview-module[data-v-7ad3e048]{background:#fff;border-radius:14px;border:1px solid rgba(148,163,184,.3);margin-bottom:12px}.preview-module-header[data-v-7ad3e048]{padding:10px 14px;border-bottom:1px solid rgba(148,163,184,.25);background:linear-gradient(90deg,#3b82f61f,#0ea5e90d);border-radius:14px 14px 0 0}.preview-module-header h3[data-v-7ad3e048]{margin:0;font-size:18px;color:#0f172a}.module-block[data-v-7ad3e048]{padding:12px 14px}.module-empty[data-v-7ad3e048]{padding:12px 14px;color:#64748b}.module-empty.error[data-v-7ad3e048]{color:#b91c1c}.module-kv-grid[data-v-7ad3e048]{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.module-kv[data-v-7ad3e048]{display:flex;justify-content:space-between;gap:10px;align-items:center;border-radius:10px;border:1px solid rgba(148,163,184,.28);padding:8px 10px;background:#f8fafcbf;font-size:13px}.module-kv span[data-v-7ad3e048]{color:#475569}.module-kv strong[data-v-7ad3e048]{color:#0f172a}.term-block[data-v-7ad3e048]{border:1px solid rgba(148,163,184,.25);border-radius:12px;padding:10px;margin-bottom:10px}.term-block h4[data-v-7ad3e048]{margin:0 0 8px;font-size:15px;color:#1e3a8a}.detail-table[data-v-7ad3e048]{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}.detail-table th[data-v-7ad3e048],.detail-table td[data-v-7ad3e048]{border:1px solid rgba(148,163,184,.28);padding:6px 7px;text-align:left;vertical-align:top;overflow-wrap:anywhere;word-break:break-word}.detail-table th[data-v-7ad3e048]{background:#f1f5f9f2;color:#334155;font-weight:700}.classroom-grid[data-v-7ad3e048]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.classroom-card[data-v-7ad3e048]{border-radius:12px;border:1px solid rgba(148,163,184,.3);background:#f8fafcd9;padding:10px}.classroom-card h5[data-v-7ad3e048]{margin:0 0 6px;font-size:14px;color:#1e3a8a}.classroom-card p[data-v-7ad3e048]{margin:4px 0;color:#475569;font-size:14px}.cache-preview[data-v-7ad3e048]{margin:10px 0 0;max-height:220px;overflow:auto;background:#0f172af0;color:#e2e8f0;border-radius:10px;padding:10px;font-size:14px}@media (max-width: 768px){.export-view[data-v-7ad3e048]{padding:14px 12px 110px}.view-header h1[data-v-7ad3e048]{font-size:20px}.back-btn[data-v-7ad3e048],.logout-btn[data-v-7ad3e048]{min-width:68px;font-size:14px}.intro-card h2[data-v-7ad3e048]{font-size:19px}.intro-card p[data-v-7ad3e048],.hint-line[data-v-7ad3e048],.semester-hint[data-v-7ad3e048]{font-size:13px}.config-card h3[data-v-7ad3e048]{font-size:17px}.module-grid[data-v-7ad3e048]{grid-template-columns:repeat(2,1fr)}.module-name[data-v-7ad3e048]{font-size:14px}.semester-tag[data-v-7ad3e048]{font-size:12px}.action-btn[data-v-7ad3e048]{width:100%;font-size:14px}.feedback[data-v-7ad3e048]{font-size:13px}.preview-header[data-v-7ad3e048]{flex-direction:column}.preview-summary[data-v-7ad3e048]{max-width:100%;text-align:left;font-size:13px;min-width:0}.preview-header h2[data-v-7ad3e048]{font-size:19px}.preview-header p[data-v-7ad3e048]{font-size:12px}.preview-module-header h3[data-v-7ad3e048]{font-size:16px}.module-kv[data-v-7ad3e048],.detail-table[data-v-7ad3e048]{font-size:12px}}.update-dialog-overlay[data-v-42e74ddd]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.update-dialog[data-v-42e74ddd]{background:#fff;border-radius:20px;width:100%;max-width:380px;overflow:hidden;box-shadow:0 20px 60px #0000004d}.dialog-header[data-v-42e74ddd]{display:flex;align-items:center;gap:12px;padding:20px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.dialog-header .icon[data-v-42e74ddd]{font-size:28px}.dialog-header h3[data-v-42e74ddd]{margin:0;font-size:20px;font-weight:700}.dialog-content[data-v-42e74ddd]{padding:20px;min-height:120px}.checking[data-v-42e74ddd]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 0}.spinner[data-v-42e74ddd]{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#6366f1;border-radius:50%;animation:spin-42e74ddd 1s linear infinite}@keyframes spin-42e74ddd{to{transform:rotate(360deg)}}.checking p[data-v-42e74ddd]{margin:12px 0 0;color:#6b7280}.version-info[data-v-42e74ddd]{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:16px}.version-badge[data-v-42e74ddd]{padding:6px 14px;border-radius:20px;font-size:14px;font-weight:600}.version-badge.new[data-v-42e74ddd]{background:#10b981;color:#fff}.version-badge.current[data-v-42e74ddd]{background:#f3f4f6;color:#6b7280}.arrow[data-v-42e74ddd]{font-size:20px;color:#9ca3af}.release-notes[data-v-42e74ddd]{background:#f9fafb;border-radius:12px;padding:14px;margin-bottom:12px}.release-notes h4[data-v-42e74ddd]{margin:0 0 8px;font-size:14px;color:#374151}.notes-content[data-v-42e74ddd]{font-size:13px;color:#6b7280;line-height:1.6;max-height:150px;overflow-y:auto}.platform-info[data-v-42e74ddd]{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#9ca3af}.up-to-date[data-v-42e74ddd]{display:flex;flex-direction:column;align-items:center;padding:20px 0}.up-to-date .icon[data-v-42e74ddd]{font-size:48px;margin-bottom:12px}.up-to-date p[data-v-42e74ddd]{margin:0;font-size:18px;font-weight:600;color:#374151}.up-to-date .version[data-v-42e74ddd]{margin-top:4px;color:#9ca3af;font-size:14px}.error[data-v-42e74ddd]{display:flex;flex-direction:column;align-items:center;padding:20px 0;color:#6b7280}.error .icon[data-v-42e74ddd]{font-size:48px;margin-bottom:12px}.error p[data-v-42e74ddd]{margin:0 0 16px;text-align:center}.retry-btn[data-v-42e74ddd]{padding:8px 20px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer}.dialog-actions[data-v-42e74ddd]{display:flex;gap:12px;padding:16px 20px;background:#f9fafb;border-top:1px solid #e5e7eb}.dialog-actions button[data-v-42e74ddd]{flex:1;padding:12px 16px;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:transform .2s,opacity .2s}.dialog-actions button[data-v-42e74ddd]:active{transform:scale(.98)}.dialog-actions button[data-v-42e74ddd]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-42e74ddd]{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.btn-secondary[data-v-42e74ddd]{background:#e5e7eb;color:#374151}.download-progress[data-v-42e74ddd]{display:flex;align-items:center;gap:12px;margin:16px 0;padding:12px;background:#f0f9ff;border-radius:12px}.progress-bar[data-v-42e74ddd]{flex:1;height:8px;background:#e0e7ff;border-radius:4px;overflow:hidden}.progress-fill[data-v-42e74ddd]{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:4px;transition:width .3s ease}.progress-text[data-v-42e74ddd]{font-size:14px;font-weight:600;color:#6366f1;min-width:45px;text-align:right}.toast-container[data-v-004e62ac]{position:fixed;top:40px;left:50%;transform:translate(-50%);z-index:9999;padding:10px 20px;border-radius:25px;font-size:14px;font-weight:500;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;justify-content:center;min-width:120px;backdrop-filter:blur(10px)}.toast-container.info[data-v-004e62ac]{background:#1e293bd1;color:#fff}.toast-container.success[data-v-004e62ac]{background:#10b981e6;color:#fff}.toast-container.warning[data-v-004e62ac]{background:#f59e0be6;color:#fff}.toast-container.error[data-v-004e62ac]{background:#ef4444e6;color:#fff}.toast-fade-enter-active[data-v-004e62ac],.toast-fade-leave-active[data-v-004e62ac]{transition:all .3s cubic-bezier(.16,1,.3,1)}.toast-fade-enter-from[data-v-004e62ac],.toast-fade-leave-to[data-v-004e62ac]{opacity:0;transform:translate(-50%,-20px)}.trans-view[data-v-7b75a437]{min-height:100vh;background:#f5f7fa;font-family:Inter,sans-serif}.trans-header[data-v-7b75a437]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#ff6b6b,#ee5253);color:#fff;position:sticky;top:0;z-index:10;box-shadow:0 4px 12px #ee52534d}.offline-banner[data-v-7b75a437]{background:#fff3cd;color:#856404;padding:10px 16px;text-align:center;font-size:14px}.trans-header .title[data-v-7b75a437]{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600}.back-btn[data-v-7b75a437]{padding:8px 16px;border-radius:20px;border:none;cursor:pointer;background:#fff3;color:#fff;font-size:14px;backdrop-filter:blur(4px);transition:background .2s}.back-btn[data-v-7b75a437]:hover{background:#ffffff4d}.header-spacer[data-v-7b75a437]{width:112px;height:1px}.content[data-v-7b75a437]{padding:20px;max-width:600px;margin:0 auto}.dashboard-card[data-v-7b75a437]{background:#fff;border-radius:16px;padding:20px;margin-bottom:24px;box-shadow:0 4px 20px #0000000d}.month-selector[data-v-7b75a437]{display:flex;align-items:center;gap:12px;margin-bottom:20px}.calendar-icon[data-v-7b75a437]{font-size:20px}.modern-select[data-v-7b75a437]{flex:1;padding:10px 16px;border:1px solid #edf2f7;border-radius:12px;background:#f8fafc;font-size:16px;color:#2d3748;font-weight:500;outline:none;transition:all .2s}.modern-select[data-v-7b75a437]:focus{border-color:#ee5253;box-shadow:0 0 0 3px #ee52531a}.stats-row[data-v-7b75a437]{display:flex;justify-content:space-between;gap:20px;padding-top:16px;border-top:1px solid #edf2f7}.stat-item[data-v-7b75a437]{display:flex;flex-direction:column;gap:4px}.stat-item .label[data-v-7b75a437]{font-size:12px;color:#a0aec0;font-weight:500}.stat-item .value[data-v-7b75a437]{font-size:20px;font-weight:700;font-family:Outfit,sans-serif}.value.expense[data-v-7b75a437]{color:#2d3748}.value.income[data-v-7b75a437]{color:#48bb78}.transaction-list[data-v-7b75a437]{display:flex;flex-direction:column;gap:16px}.trans-item[data-v-7b75a437]{background:#fff;border-radius:16px;padding:16px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 8px #00000005;transition:transform .2s}.trans-item[data-v-7b75a437]:active{transform:scale(.98)}.trans-icon[data-v-7b75a437]{width:40px;height:40px;border-radius:12px;background:#fff5f5;display:flex;align-items:center;justify-content:center;font-size:20px}.trans-main[data-v-7b75a437]{flex:1;display:flex;flex-direction:column;gap:4px;overflow:hidden}.trans-name[data-v-7b75a437]{font-weight:600;color:#2d3748;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trans-date[data-v-7b75a437]{font-size:12px;color:#a0aec0}.trans-right[data-v-7b75a437]{text-align:right;display:flex;flex-direction:column;gap:4px;align-items:flex-end}.trans-amt[data-v-7b75a437]{font-weight:700;font-size:16px;font-family:Outfit,sans-serif}.trans-amt.expense[data-v-7b75a437]{color:#2d3748}.trans-amt.income[data-v-7b75a437]{color:#48bb78}.trans-balance[data-v-7b75a437]{font-size:11px;color:#cbd5e0}.loading-state[data-v-7b75a437],.empty-state[data-v-7b75a437]{text-align:center;padding:60px 20px;color:#718096}.empty-icon[data-v-7b75a437]{font-size:48px;margin-bottom:16px;display:block;opacity:.5}.error-msg[data-v-7b75a437]{text-align:center;padding:20px;color:#e53e3e;background:#fff;border-radius:16px;box-shadow:0 4px 12px #e53e3e1a}.retry-btn[data-v-7b75a437]{margin-left:10px;padding:6px 16px;border-radius:8px;border:none;background:#fee2e2;color:#e53e3e;font-weight:600;cursor:pointer}.spinner[data-v-7b75a437]{width:32px;height:32px;border:3px solid #f3f3f3;border-top:3px solid #FF6B6B;border-radius:50%;margin:0 auto 16px;animation:spin-7b75a437 .8s linear infinite}@keyframes spin-7b75a437{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.disclaimer-text[data-v-7b75a437]{background:#fff7edf2;color:#c05621;padding:16px;border-radius:16px;font-size:13px;display:flex;align-items:flex-start;gap:12px;margin-bottom:24px;line-height:1.6;border:1px solid rgba(251,211,141,.4);box-shadow:0 4px 12px #ed893614;backdrop-filter:blur(8px);transition:all .3s ease}.disclaimer-text[data-v-7b75a437]:hover{transform:translateY(-1px);box-shadow:0 6px 16px #ed89361f}.disclaimer-text .icon[data-v-7b75a437]{font-size:18px;flex-shrink:0;margin-top:1px}.campus-code-view[data-v-48b41f92]{min-height:100vh;background:radial-gradient(120% 120% at 5% 0%,color-mix(in oklab,var(--ui-primary) 18%,#f8fbff 82%),#f7f9fc 45%),linear-gradient(180deg,#f7f9fc,#eef3f9);padding:0 0 24px;color:#0f172a}.code-header[data-v-48b41f92]{position:sticky;top:0;z-index:12;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:color-mix(in oklab,var(--ui-primary) 18%,rgba(255,255,255,.94));border-bottom:1px solid color-mix(in oklab,var(--ui-primary) 18%,rgba(148,163,184,.26));backdrop-filter:blur(12px)}.title-wrap[data-v-48b41f92]{display:inline-flex;align-items:center;gap:8px;font-weight:700}.title-text[data-v-48b41f92]{font-size:17px;letter-spacing:.4px}.header-placeholder[data-v-48b41f92]{width:72px;height:1px;display:inline-block}.header-btn[data-v-48b41f92]{border:none;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;color:#0f172a;background:color-mix(in oklab,var(--ui-primary) 12%,rgba(255,255,255,.9))}.mode-panel[data-v-48b41f92]{margin:14px 16px 0;padding:8px;border-radius:16px;display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#ffffffeb;border:1px solid rgba(148,163,184,.22)}.mode-chip[data-v-48b41f92]{border:none;border-radius:12px;padding:10px 8px;font-weight:700;font-size:14px;color:#334155;background:#f8fafceb}.mode-chip.active[data-v-48b41f92]{color:#fff;background:linear-gradient(135deg,color-mix(in oklab,var(--ui-primary) 84%,#1e3a8a 16%),color-mix(in oklab,var(--ui-secondary) 84%,#2563eb 16%));box-shadow:0 10px 24px color-mix(in oklab,var(--ui-primary) 24%,transparent)}.mode-chip.disabled[data-v-48b41f92]{opacity:.42}.status-panel[data-v-48b41f92],.qr-panel[data-v-48b41f92],.order-panel[data-v-48b41f92]{margin:12px 16px 0;border-radius:18px;padding:14px;background:#fffffff0;border:1px solid rgba(148,163,184,.2);box-shadow:0 10px 22px #0f172a0d}.line[data-v-48b41f92]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 2px}.line .label[data-v-48b41f92]{color:#64748b;font-size:13px}.line .value[data-v-48b41f92]{font-weight:700;font-size:14px}.loading-block[data-v-48b41f92]{padding:20px 8px 8px;text-align:center;color:#475569}.spinner[data-v-48b41f92]{margin:0 auto 10px;width:30px;height:30px;border-radius:50%;border:3px solid #e2e8f0;border-top-color:color-mix(in oklab,var(--ui-primary) 82%,#2563eb 18%);animation:spin-48b41f92 .75s linear infinite}.qr-body[data-v-48b41f92]{display:flex;flex-direction:column;align-items:center}.qr-fallback-image[data-v-48b41f92]{width:248px;height:248px;object-fit:contain;border-radius:12px;border:1px solid rgba(148,163,184,.25);margin-bottom:10px;background:#fff}.qr-empty[data-v-48b41f92]{margin-top:10px;color:#64748b;font-size:13px}.banner[data-v-48b41f92]{margin-top:10px;border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.5}.banner.error[data-v-48b41f92]{color:#b91c1c;border:1px solid rgba(248,113,113,.4);background:#fee2e2b8}.banner.idle[data-v-48b41f92]{color:#334155;border:1px solid rgba(148,163,184,.4);background:#f1f5f9d6}.banner.warn[data-v-48b41f92]{color:#9a3412;border:1px solid rgba(251,191,36,.45);background:#fef3c7c7}.banner.success[data-v-48b41f92]{color:#166534;border:1px solid rgba(74,222,128,.4);background:#dcfce7cc}.meta-grid[data-v-48b41f92]{margin-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.meta-item[data-v-48b41f92]{border-radius:12px;padding:10px;background:#f8fafcdb;border:1px solid rgba(148,163,184,.16)}.meta-item span[data-v-48b41f92]{display:block;color:#64748b;font-size:12px}.meta-item strong[data-v-48b41f92]{display:block;margin-top:4px;font-size:14px}.refresh-btn[data-v-48b41f92]{width:100%;margin-top:14px;border:none;border-radius:12px;padding:11px 14px;font-size:14px;font-weight:700;color:#fff;background:linear-gradient(135deg,color-mix(in oklab,var(--ui-primary) 86%,#0f172a 14%),color-mix(in oklab,var(--ui-secondary) 88%,#1d4ed8 12%))}.refresh-btn[data-v-48b41f92]:disabled{opacity:.6}.order-panel h3[data-v-48b41f92]{margin:0 0 8px;font-size:14px}.order-panel p[data-v-48b41f92]{margin:4px 0;color:#475569;font-size:13px}html[data-theme=graphite_night]{background:radial-gradient(130% 120% at 8% 0%,rgba(37,99,235,.16),transparent 42%),linear-gradient(180deg,#07111f,#0d1726 52%,#132132);color:#e2e8f0}html[data-theme=graphite_night]{background:linear-gradient(160deg,#0f172ae6,#1e293bd6)!important;border-color:color-mix(in oklab,var(--ui-primary) 28%,rgba(148,163,184,.28))!important;box-shadow:0 16px 34px #02061747,inset 0 1px #ffffff0a}html[data-theme=graphite_night]{background:linear-gradient(160deg,#0f172ac2,#1e293bb8)!important;color:#dbe6f7!important;border:1px solid color-mix(in oklab,var(--ui-primary) 24%,rgba(148,163,184,.24))!important}html[data-theme=graphite_night]{color:#fff!important;background:linear-gradient(135deg,color-mix(in oklab,var(--ui-primary) 86%,#1e3a8a 14%),color-mix(in oklab,var(--ui-secondary) 88%,#0ea5e9 12%))!important}html[data-theme=graphite_night]{background:linear-gradient(160deg,#080f1c99,#0f172a85)!important;border-color:color-mix(in oklab,var(--ui-primary) 18%,rgba(148,163,184,.18))!important}html[data-theme=graphite_night]{color:#dbe6f7!important;border-color:#94a3b852!important;background:#0f172ad1!important}html[data-theme=graphite_night]{color:#fde68a!important;border-color:#fbbf2457!important;background:#78350f4d!important}html[data-theme=graphite_night]{color:#fecaca!important;border-color:#f8717157!important;background:#7f1d1d57!important}html[data-theme=graphite_night]{color:#bbf7d0!important;border-color:#4ade8057!important;background:#14532d57!important}@keyframes spin-48b41f92{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ai-view[data-v-0480d69a]{--ai-input-height: 88px;--ai-attachment-height: 0px;--ai-keyboard-offset: 0px;--ai-safe-top: env(safe-area-inset-top, 0px);--ai-safe-bottom: env(safe-area-inset-bottom, 0px);--ai-bottom-offset: var(--ai-keyboard-offset, 0px);height:calc(var(--app-vh, 1vh) * 100);max-height:calc(var(--app-vh, 1vh) * 100);min-height:calc(var(--app-vh, 1vh) * 100);display:flex;flex-direction:column;position:relative;background:linear-gradient(135deg,#f5f7fa,#e9edf5);padding-top:0;padding-bottom:8px;box-sizing:border-box;overflow:hidden}.stream-debug[data-v-0480d69a]{margin:8px 14px 0;padding:6px 10px;display:flex;flex-wrap:wrap;gap:6px 10px;font-size:11px;color:#475569}.debug-pill[data-v-0480d69a]{padding:2px 8px;border-radius:999px;background:#94a3b833;color:#334155;font-weight:600}.debug-pill.active[data-v-0480d69a]{background:#3b82f633;color:#1d4ed8}.ai-header[data-v-0480d69a]{min-height:58px;margin:8px 14px 0;padding:10px 12px;background:#ffffffe6;backdrop-filter:blur(10px);z-index:100;box-shadow:0 2px 10px #0000000d}.header-top-row[data-v-0480d69a]{width:100%;display:flex;align-items:center;justify-content:space-between;min-height:42px;gap:10px;min-width:0}.header-left-actions[data-v-0480d69a]{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-width:0}.model-select[data-v-0480d69a]{flex:0 0 auto;margin-left:auto;width:clamp(180px,34vw,300px);min-width:180px;max-width:min(58vw,320px)}.model-select[data-v-0480d69a] .ios26-select-trigger{min-height:42px}.model-select[data-v-0480d69a] .ios26-select-text{font-size:14px}.history-btn[data-v-0480d69a]{border:1px solid rgba(148,163,184,.35);background:#ffffffd1;border-radius:999px;padding:0 14px;min-height:42px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}.back-btn[data-v-0480d69a]{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;min-height:42px;border-radius:14px;border:1px solid rgba(0,0,0,.08);background:#fffc;color:#111827;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #00000014}.chat-area[data-v-0480d69a]{flex:1 1 auto;min-height:0;overflow-y:auto;padding:12px 0 16px;scroll-padding-bottom:24px;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.messages[data-v-0480d69a]{display:flex;flex-direction:column;gap:12px;padding:0 14px;min-height:min-content}.message-row[data-v-0480d69a]{display:flex;gap:10px;width:100%;align-items:flex-start}.message-row.user[data-v-0480d69a]{flex-direction:row-reverse}.avatar[data-v-0480d69a]{width:36px;height:36px;background:#eef1f6;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.message-row.assistant .avatar[data-v-0480d69a]{background:#e1f5fe}.message-row.user .avatar[data-v-0480d69a]{background:#c8e6c9}.bubble[data-v-0480d69a]{background:#fff;padding:10px 14px;border-radius:12px;box-shadow:0 6px 18px #0000000f;font-size:15px;line-height:1.5;max-width:calc(100% - 56px);display:flex;flex-direction:column;gap:4px}.bubble[data-v-0480d69a]>:last-child{margin-bottom:0!important}.message-row.user .bubble[data-v-0480d69a]{background:linear-gradient(135deg,#9be76d,#6fdc85)}.text[data-v-0480d69a]{width:100%;word-break:break-word;margin:0}.plain-text[data-v-0480d69a]{white-space:pre-wrap;line-height:1.45;margin:0}.rich-text[data-v-0480d69a]{white-space:normal;line-height:1.5}.rich-text[data-v-0480d69a] p{margin:0!important}.rich-text[data-v-0480d69a] p+p{margin-top:.42em}.rich-text[data-v-0480d69a] *:last-child{margin-bottom:0!important}.rich-text[data-v-0480d69a] ul,.rich-text[data-v-0480d69a] ol{margin:.36em 0 .24em 1.2em;padding:0}.rich-text[data-v-0480d69a] li{margin:.18em 0}.rich-text[data-v-0480d69a] li>p{margin:0}.rich-text[data-v-0480d69a] h1,.rich-text[data-v-0480d69a] h2,.rich-text[data-v-0480d69a] h3,.rich-text[data-v-0480d69a] h4,.rich-text[data-v-0480d69a] h5,.rich-text[data-v-0480d69a] h6{margin:.3em 0 .25em;line-height:1.35}.rich-text[data-v-0480d69a] pre{background:#0000000a;padding:10px;border-radius:8px;overflow-x:auto;margin:.32em 0}.rich-text[data-v-0480d69a] code{background:#0000000a;padding:0 4px;border-radius:4px}.rich-text[data-v-0480d69a] .katex-display{margin:.3em 0;overflow-x:auto}.thinking-block[data-v-0480d69a]{border:1px dashed rgba(148,163,184,.6);background:#f8fafc;border-radius:8px;padding:6px 8px;margin-bottom:6px}.thinking-window[data-v-0480d69a]{border:1px solid rgba(99,102,241,.22);background:linear-gradient(180deg,#eef2ffe6,#f1f5f9eb);border-radius:12px;padding:8px 10px;margin-bottom:4px}.thinking-window-header[data-v-0480d69a]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:8px}.thinking-window-title[data-v-0480d69a]{font-size:12px;font-weight:700;color:#4338ca}.thinking-window-state[data-v-0480d69a]{font-size:11px;color:#6366f1;background:#6366f124;padding:2px 8px;border-radius:999px}.thinking-toggle[data-v-0480d69a]{border:none;background:#94a3b833;color:#475569;border-radius:999px;padding:2px 10px;font-size:12px;cursor:pointer}.thinking-content[data-v-0480d69a]{margin-top:6px;font-size:13px;color:#475569;white-space:normal;margin-bottom:0}.thinking-content[data-v-0480d69a] p{margin:0!important}.thinking-placeholder[data-v-0480d69a]{margin-top:2px;font-size:12px;color:#64748b}.progress-hint[data-v-0480d69a]{font-size:12px;color:#64748b;margin-bottom:6px}.stream-loading[data-v-0480d69a]{display:inline-flex;align-items:center;gap:6px;margin-bottom:6px;color:#64748b;font-size:12px}.dot[data-v-0480d69a]{width:6px;height:6px;border-radius:50%;background:#93c5fd;animation:aiDot-0480d69a 1s infinite ease-in-out}.dot[data-v-0480d69a]:nth-child(2){animation-delay:.15s}.dot[data-v-0480d69a]:nth-child(3){animation-delay:.3s}.stream-label[data-v-0480d69a]{margin-left:2px}@keyframes aiDot-0480d69a{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}.attachment-preview[data-v-0480d69a]{margin-bottom:5px;font-weight:700;font-size:.9em;color:#555;border-bottom:1px solid rgba(0,0,0,.1);padding-bottom:4px}.attachment-bar[data-v-0480d69a]{padding:8px 14px;background:#ffffffe6;display:flex;justify-content:space-between;align-items:center;border:1px solid rgba(148,163,184,.32);border-radius:14px;margin:8px 12px 0;flex:0 0 auto;box-sizing:border-box}.input-area[data-v-0480d69a]{padding:10px 14px calc(10px + var(--ai-safe-bottom));background:#fffffff5;display:flex;gap:10px;align-items:center;margin:8px 12px;flex:0 0 auto;border-radius:22px;border:1px solid rgba(148,163,184,.34);box-shadow:0 -2px 16px #0f172a14;box-sizing:border-box;min-height:72px}.input-area input[type=text][data-v-0480d69a]{flex:1;padding:10px;border:1px solid #ddd;border-radius:20px;outline:none;background:#f8fafc}.attach-btn[data-v-0480d69a],.send-btn[data-v-0480d69a]{background:none;border:none;cursor:pointer;font-size:1.2rem;padding:8px}.send-btn[data-v-0480d69a]{color:#007bff;font-weight:700;font-size:1rem}.send-btn[data-v-0480d69a]:disabled{color:#ccc}.status-msg[data-v-0480d69a]{text-align:center;color:#666;margin-top:20px}.status-msg.error[data-v-0480d69a]{color:#dc2626}.retry-btn[data-v-0480d69a]{margin-top:10px;padding:6px 12px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;cursor:pointer}.history-backdrop[data-v-0480d69a]{position:fixed;left:0;right:0;top:calc(var(--ai-safe-top) + 88px);bottom:calc(var(--ai-input-height) + var(--ai-attachment-height) + 16px);background:#0f172a3d;backdrop-filter:blur(2px);z-index:140}.history-panel[data-v-0480d69a]{position:fixed;top:calc(var(--ai-safe-top) + 94px);left:10px;width:min(360px,calc(100vw - 20px));bottom:calc(var(--ai-input-height) + var(--ai-attachment-height) + 16px);height:auto;background:#fffffff5;border-radius:16px;box-shadow:0 16px 40px #00000029;border:1px solid rgba(0,0,0,.06);display:flex;flex-direction:column;transform:translate(-104%);transition:transform .22s ease;z-index:150;overflow:hidden}.history-panel.open[data-v-0480d69a]{transform:translate(0)}.history-header[data-v-0480d69a]{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid rgba(0,0,0,.06)}.history-close[data-v-0480d69a]{border:none;background:#f3f4f6;width:28px;height:28px;border-radius:50%;font-size:16px;cursor:pointer}.new-chat-btn[data-v-0480d69a]{margin:10px 12px;border:1px solid #e5e7eb;background:#fff;border-radius:10px;padding:8px 12px;font-size:13px;cursor:pointer}.history-list[data-v-0480d69a]{flex:1;overflow-y:auto;padding:6px 10px 12px;display:flex;flex-direction:column;gap:8px}.history-item[data-v-0480d69a]{text-align:left;padding:8px 10px 10px;border-radius:12px;border:1px solid transparent;background:#f8fafc;cursor:pointer;position:relative}.history-item.active[data-v-0480d69a]{border-color:#93c5fd;background:#eef2ff}.history-title[data-v-0480d69a]{font-size:13px;font-weight:600;color:#1f2937;margin-bottom:4px;max-width:calc(100% - 52px)}.history-meta[data-v-0480d69a]{font-size:11px;color:#6b7280}.history-preview[data-v-0480d69a]{margin-top:4px;font-size:12px;color:#475569;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.history-delete[data-v-0480d69a]{position:absolute;top:6px;right:8px;border:none;background:#ef44441f;color:#b91c1c;border-radius:10px;padding:4px 8px;font-size:11px;cursor:pointer}.confirm-backdrop[data-v-0480d69a]{position:fixed;inset:0;z-index:260;background:#0f172a5c;backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:18px}.confirm-dialog[data-v-0480d69a]{width:min(380px,calc(100vw - 24px));border-radius:16px;padding:16px;border:1px solid rgba(148,163,184,.35);background:#fffffff2}.confirm-dialog h4[data-v-0480d69a]{margin:0;font-size:17px;font-weight:700;color:#0f172a}.confirm-dialog p[data-v-0480d69a]{margin:10px 0 0;font-size:13px;line-height:1.5;color:#475569}.confirm-error[data-v-0480d69a]{margin-top:10px;padding:8px 10px;border-radius:10px;font-size:12px;color:#b91c1c;background:#fee2e2cc}.confirm-actions[data-v-0480d69a]{margin-top:14px;display:flex;justify-content:flex-end;gap:10px}.confirm-actions button[data-v-0480d69a]{border:none;border-radius:10px;padding:8px 14px;font-size:13px;cursor:pointer}.confirm-cancel[data-v-0480d69a]{background:#94a3b833;color:#334155}.confirm-danger[data-v-0480d69a]{background:#ef4444;color:#fff;font-weight:600}html[data-theme=graphite_night]{background:radial-gradient(135% 120% at 6% 0%,rgba(37,99,235,.14),transparent 42%),linear-gradient(180deg,#07111f,#0d1726 52%,#132132);color:#e2e8f0}html[data-theme=graphite_night]{background:linear-gradient(160deg,#0f172ae6,#1e293bd6)!important;border-color:color-mix(in oklab,var(--ui-primary) 28%,rgba(148,163,184,.28))!important;color:#dbe6f7!important}html[data-theme=graphite_night]{background:linear-gradient(160deg,#0f172ac2,#1e293bb8)!important;color:#e7f0ff!important;border-color:color-mix(in oklab,var(--ui-primary) 24%,rgba(148,163,184,.24))!important}html[data-theme=graphite_night]{background:#0f172aad!important;color:#dbe6f7!important}html[data-theme=graphite_night]{background:#2563eb38!important;color:#bfdbfe!important}html[data-theme=graphite_night]{background:linear-gradient(160deg,#0f172af0,#1e293be0)!important;border:1px solid color-mix(in oklab,var(--ui-primary) 18%,rgba(148,163,184,.22));color:#e2e8f0!important;box-shadow:0 10px 22px #0206173d}html[data-theme=graphite_night]{color:#08111f!important}html[data-theme=graphite_night]{color:#f8fbff!important}html[data-theme=graphite_night]{background:#0f172ac7!important;border-color:transparent!important}html[data-theme=graphite_night]{background:#1e40af38!important;border-color:#60a5fa5c!important}html[data-theme=graphite_night]{background:#0f172abd!important;color:#e2e8f0!important;border-color:#94a3b83d!important}html[data-theme=graphite_night]{color:#9fb0cb!important}html[data-theme=graphite_night]{background:#080f1cb8!important;color:#e2e8f0!important}@media (max-width: 768px){.ai-header[data-v-0480d69a]{min-height:54px;margin:8px 10px 0;padding:8px 10px}.header-top-row[data-v-0480d69a]{min-height:38px;gap:6px}.header-left-actions[data-v-0480d69a]{gap:6px}.history-btn[data-v-0480d69a]{padding:0 10px;min-height:38px;font-size:12px}.model-select[data-v-0480d69a] .ios26-select-trigger{min-height:38px;padding:0 12px}.model-select[data-v-0480d69a] .ios26-select-text{font-size:13px}.model-select[data-v-0480d69a]{width:clamp(160px,46vw,228px);max-width:56vw;min-width:160px}.history-backdrop[data-v-0480d69a]{top:calc(var(--ai-safe-top) + 82px)}.history-panel[data-v-0480d69a]{top:calc(var(--ai-safe-top) + 88px)}}.campus-map-view[data-v-a9c63e33]{min-height:100vh;padding:20px 20px 110px;background:var(--ui-bg-gradient)}.view-header[data-v-a9c63e33]{display:grid;grid-template-columns:112px 1fr 112px;align-items:center;padding:16px 20px;border-radius:16px;background:var(--ui-surface);border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-soft)}.view-header h1[data-v-a9c63e33]{margin:0;text-align:center;font-size:22px;color:var(--ui-text)}.header-btn[data-v-a9c63e33]{border:1px solid var(--ui-surface-border);background:var(--ui-primary-soft);color:var(--ui-text);border-radius:10px;padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer;width:112px;justify-self:start}.header-spacer[data-v-a9c63e33]{width:112px;height:1px;justify-self:end}.intro-card[data-v-a9c63e33]{margin-top:16px;padding:14px 16px;border-radius:14px;background:var(--ui-surface);border:1px solid var(--ui-surface-border);color:var(--ui-muted)}.intro-card p[data-v-a9c63e33]{margin:0;line-height:1.6}.intro-card p+p[data-v-a9c63e33]{margin-top:6px}.maps-grid[data-v-a9c63e33]{margin-top:18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.mini-program-card[data-v-a9c63e33]{margin-top:18px;padding:16px;border-radius:16px;background:var(--ui-surface);border:1px solid var(--ui-surface-border);box-shadow:var(--ui-shadow-soft)}.mini-program-head[data-v-a9c63e33]{display:flex;align-items:center;justify-content:space-between;gap:12px}.mini-program-head h2[data-v-a9c63e33]{margin:0;color:var(--ui-text);font-size:20px}.mini-program-head span[data-v-a9c63e33]{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;color:#0f766e;background:#0f766e1f}.mini-program-desc[data-v-a9c63e33]{margin:10px 0 0;color:var(--ui-muted);line-height:1.6}.mini-program-btn[data-v-a9c63e33]{margin-top:12px;width:100%;border:none;border-radius:12px;background:linear-gradient(125deg,#059669,#16a34a);color:#fff;font-size:16px;font-weight:700;padding:12px 14px;cursor:pointer}.mini-program-btn[data-v-a9c63e33]:disabled{opacity:.65;cursor:not-allowed}.mini-program-code[data-v-a9c63e33]{margin-top:10px;border-radius:10px;border:1px dashed rgba(30,41,59,.18);background:#94a3b81f;color:#334155;font-size:13px;line-height:1.45;word-break:break-all;padding:8px 10px}.map-card[data-v-a9c63e33]{background:var(--ui-surface);border:1px solid var(--ui-surface-border);border-radius:16px;overflow:hidden;box-shadow:var(--ui-shadow-soft)}.map-cover[data-v-a9c63e33]{position:relative;height:170px;background:#0f172a12}.map-cover img[data-v-a9c63e33]{width:100%;height:100%;object-fit:cover}.cover-badge[data-v-a9c63e33]{position:absolute;top:10px;right:10px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;color:#fff;background:#1e40afd1}.map-meta[data-v-a9c63e33]{padding:12px 14px 8px}.map-meta h3[data-v-a9c63e33]{margin:0;color:var(--ui-text);font-size:18px}.map-meta p[data-v-a9c63e33]{margin:8px 0 0;color:var(--ui-muted);font-size:14px}.open-btn[data-v-a9c63e33]{margin:0 14px 14px;width:calc(100% - 28px);border:none;border-radius:12px;background:linear-gradient(120deg,#2563eb,#0891b2);color:#fff;font-weight:700;padding:10px 12px;cursor:pointer}.viewer-overlay[data-v-a9c63e33]{position:fixed;inset:0;z-index:90;background:#030712db;display:flex;justify-content:center;align-items:center;padding:12px}.viewer-shell[data-v-a9c63e33]{width:min(1100px,100%);height:min(88vh,850px);background:#0b1220;border:1px solid rgba(148,163,184,.3);border-radius:18px;overflow:hidden;display:flex;flex-direction:column}.viewer-toolbar[data-v-a9c63e33]{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;background:#0f172ae6;color:#e2e8f0}.viewer-title h3[data-v-a9c63e33]{margin:0;font-size:17px}.viewer-title span[data-v-a9c63e33]{font-size:12px;opacity:.88}.viewer-actions[data-v-a9c63e33]{display:flex;gap:8px}.viewer-actions button[data-v-a9c63e33]{border:1px solid rgba(148,163,184,.35);border-radius:10px;background:#0f172aa3;color:#e2e8f0;padding:6px 10px;cursor:pointer}.viewer-actions .close-btn[data-v-a9c63e33]{color:#fca5a5}.viewer-viewport[data-v-a9c63e33]{position:relative;flex:1;overflow:hidden;touch-action:none;background:radial-gradient(circle at 12% 18%,rgba(56,189,248,.12),transparent 42%),radial-gradient(circle at 85% 85%,rgba(59,130,246,.14),transparent 45%),#020617}.viewer-image[data-v-a9c63e33]{position:absolute;left:50%;top:50%;max-width:100%;max-height:100%;user-select:none;transform-origin:center center;transition:transform .08s linear}@media (max-width: 768px){.campus-map-view[data-v-a9c63e33]{padding:14px 14px 100px}.view-header[data-v-a9c63e33]{grid-template-columns:94px 1fr 94px;padding:12px 14px}.view-header h1[data-v-a9c63e33]{font-size:20px}.header-btn[data-v-a9c63e33],.header-spacer[data-v-a9c63e33]{width:94px}.maps-grid[data-v-a9c63e33]{grid-template-columns:1fr}.mini-program-head h2[data-v-a9c63e33]{font-size:18px}.viewer-shell[data-v-a9c63e33]{height:84vh}.viewer-toolbar[data-v-a9c63e33]{align-items:flex-start;flex-direction:column}}.library-view[data-v-04c00390]{min-height:100%;padding:14px;color:#10213a}.view-header[data-v-04c00390]{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:16px;background:#f5f7fff2;border:1px solid rgba(96,114,176,.2);backdrop-filter:blur(10px)}.view-header h1[data-v-04c00390]{margin:0;font-size:clamp(16px,2.4vw,20px);font-weight:900}.header-spacer[data-v-04c00390]{width:44px;height:30px;display:inline-block}.header-btn[data-v-04c00390]{border:none;border-radius:10px;background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#14213d;font-size:12px;font-weight:800;padding:6px 9px;cursor:pointer}.header-btn.danger[data-v-04c00390]{color:#b91c1c}.search-panel[data-v-04c00390]{margin-top:10px;border-radius:14px;padding:10px;background:#f5f7fff0;border:1px solid rgba(96,114,176,.2)}.search-row[data-v-04c00390]{display:flex;gap:8px;align-items:center}.search-input[data-v-04c00390]{flex:1;min-width:0;border:1px solid #b8c6e5;border-radius:10px;padding:9px 10px;font-size:12px;font-weight:600;color:#0f172a}.search-btn[data-v-04c00390],.filter-toggle[data-v-04c00390],.ghost-btn[data-v-04c00390],.pager-btn[data-v-04c00390],.chip[data-v-04c00390],.close-btn[data-v-04c00390]{border:none;cursor:pointer}.search-btn[data-v-04c00390]{border-radius:10px;background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;font-size:11px;font-weight:800;padding:9px 12px}.search-btn[data-v-04c00390]:disabled{opacity:.6;cursor:not-allowed}.search-ops[data-v-04c00390]{margin-top:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-toggle[data-v-04c00390]{border-radius:10px;background:#e2e8f0;color:#0f172a;font-size:11px;font-weight:700;padding:8px 10px}.select-line[data-v-04c00390]{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:#334155}.select-line select[data-v-04c00390]{border:1px solid #cbd5e1;border-radius:8px;padding:4px 8px;font-size:11px;font-weight:600}.checkbox-line[data-v-04c00390]{display:inline-flex;gap:6px;align-items:center;font-size:11px;font-weight:700}.ghost-btn[data-v-04c00390]{background:transparent;color:#1d4ed8;border:1px solid #93c5fd;border-radius:8px;padding:6px 9px;font-size:11px;font-weight:700}.summary[data-v-04c00390]{margin:8px 0 0;font-size:11px;font-weight:700;color:#475569}.error[data-v-04c00390]{margin-top:8px;color:#b91c1c;font-size:11px;font-weight:700}.content-layout[data-v-04c00390]{margin-top:10px;display:grid;grid-template-columns:1fr;gap:10px}.top-filter-panel[data-v-04c00390]{margin-top:10px}.filter-panel[data-v-04c00390],.result-panel[data-v-04c00390]{border-radius:14px;padding:10px;background:#f5f7fff0;border:1px solid rgba(96,114,176,.2)}.filter-group+.filter-group[data-v-04c00390]{margin-top:10px}.filter-group h3[data-v-04c00390]{margin:0 0 6px;font-size:12px;font-weight:900}.chips[data-v-04c00390]{display:flex;flex-wrap:wrap;gap:6px}.chip[data-v-04c00390]{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:700;background:#e2e8f0;color:#1e293b}.chip small[data-v-04c00390]{color:#475569}.chip.active[data-v-04c00390]{background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff}.chip.active small[data-v-04c00390]{color:#e2e8f0}.empty-chip[data-v-04c00390]{color:#64748b;font-size:10px}.result-list[data-v-04c00390]{display:grid;gap:8px}.book-card[data-v-04c00390]{display:grid;grid-template-columns:78px 1fr;gap:10px;border-radius:12px;border:1px solid #cbd5e1;background:#fff;padding:9px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.book-card[data-v-04c00390]:hover{transform:translateY(-1px);box-shadow:0 10px 20px #0f172a1f}.book-cover-wrap[data-v-04c00390]{width:78px;height:106px;border-radius:10px;overflow:hidden;border:1px solid #e2e8f0;background:#f8fafc}.book-cover[data-v-04c00390]{width:100%;height:100%;object-fit:cover;display:block}.book-cover-empty[data-v-04c00390]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:11px;color:#64748b;background:linear-gradient(135deg,#eef2ff,#f8fafc)}.book-info[data-v-04c00390]{min-width:0}.book-title[data-v-04c00390]{margin:0;color:#0f172a;font-size:14px;font-weight:900;line-height:1.35}.book-meta[data-v-04c00390]{margin:5px 0 0;color:#334155;font-size:11px;line-height:1.45}.split[data-v-04c00390]{margin:0 6px;color:#94a3b8}.book-badge[data-v-04c00390]{margin:7px 0 0;display:inline-block;border-radius:999px;background:#dbeafe;color:#1d4ed8;padding:4px 8px;font-size:10px;font-weight:800}.loading-box[data-v-04c00390],.empty-box[data-v-04c00390]{border-radius:12px;border:1px dashed #94a3b8;padding:16px;text-align:center;color:#475569;font-weight:700;font-size:11px}.pager[data-v-04c00390]{margin-top:10px;display:flex;align-items:center;justify-content:center;gap:10px}.pager-btn[data-v-04c00390]{border-radius:8px;background:#e2e8f0;color:#0f172a;padding:6px 10px;font-size:11px;font-weight:700}.pager-btn[data-v-04c00390]:disabled{opacity:.5;cursor:not-allowed}.pager-info[data-v-04c00390]{font-size:11px;color:#334155;font-weight:700}.detail-mask[data-v-04c00390]{position:fixed;inset:0;z-index:2000;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:14px}.detail-card[data-v-04c00390]{width:min(940px,100%);max-height:92vh;overflow:auto;border-radius:16px;background:#f8fafc;border:1px solid #cbd5e1;padding:12px}.detail-head[data-v-04c00390]{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}.detail-head h2[data-v-04c00390]{margin:0;color:#0f172a;font-size:16px;font-weight:900;line-height:1.3}.close-btn[data-v-04c00390]{border-radius:8px;background:#e2e8f0;color:#0f172a;font-size:11px;font-weight:700;padding:6px 9px}.detail-main[data-v-04c00390]{margin-top:10px;display:grid;grid-template-columns:120px 1fr;gap:10px}.detail-cover-wrap[data-v-04c00390]{width:120px;height:160px;border-radius:10px;overflow:hidden;border:1px solid #dbe4f0;background:#eef2ff}.detail-cover[data-v-04c00390]{width:100%;height:100%;object-fit:cover}.detail-cover-empty[data-v-04c00390]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:11px;color:#64748b}.detail-grid[data-v-04c00390],.holding-grid[data-v-04c00390]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.holding-grid[data-v-04c00390]{margin-top:10px}.detail-item[data-v-04c00390]{border-radius:10px;border:1px solid #cbd5e1;background:#fff;padding:7px 9px}.detail-item .label[data-v-04c00390]{display:block;color:#64748b;font-size:10px;font-weight:700}.detail-item .value[data-v-04c00390]{margin-top:4px;display:block;color:#0f172a;font-size:11px;font-weight:800;line-height:1.4;word-break:break-all}.holding-panel[data-v-04c00390],.detail-desc[data-v-04c00390],.holding-list-panel[data-v-04c00390]{margin-top:10px}.holding-panel h3[data-v-04c00390],.detail-desc h3[data-v-04c00390],.holding-list-panel h3[data-v-04c00390]{margin:0;color:#0f172a;font-size:13px;font-weight:900}.holding-table-wrap[data-v-04c00390]{margin-top:10px;overflow-x:auto;border-radius:12px;border:1px solid #cbd5e1;background:#fff}.holding-table[data-v-04c00390]{width:100%;min-width:980px;border-collapse:collapse}.holding-table th[data-v-04c00390],.holding-table td[data-v-04c00390]{padding:8px 10px;border-bottom:1px solid #e2e8f0;text-align:left;font-size:11px;line-height:1.5;color:#0f172a;white-space:nowrap}.holding-table thead th[data-v-04c00390]{position:sticky;top:0;z-index:1;background:#f1f5f9;font-weight:800}.holding-table tbody tr[data-v-04c00390]:nth-child(2n){background:#f8fafc}.holding-table tbody tr:last-child td[data-v-04c00390]{border-bottom:none}.holding-location[data-v-04c00390]{display:inline-block;padding:2px 8px;border-radius:999px;background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;font-weight:700}.holding-status[data-v-04c00390]{display:inline-block;padding:2px 8px;border-radius:999px;font-weight:700}.holding-status-available[data-v-04c00390]{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534}.holding-status-borrowed[data-v-04c00390]{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#b91c1c}.holding-status-reserved[data-v-04c00390]{background:linear-gradient(135deg,#ffedd5,#fed7aa);color:#c2410c}.holding-status-default[data-v-04c00390]{background:#e2e8f0;color:#334155}.detail-desc p[data-v-04c00390]{margin:8px 0 0;color:#334155;line-height:1.6;font-size:11px;white-space:pre-wrap}@media (max-width: 900px){.library-view[data-v-04c00390]{padding:12px}.view-header h1[data-v-04c00390]{font-size:16px}.search-row[data-v-04c00390]{flex-wrap:wrap}.search-btn[data-v-04c00390]{width:100%}.book-card[data-v-04c00390]{grid-template-columns:68px 1fr}.book-cover-wrap[data-v-04c00390]{width:68px;height:92px}.detail-main[data-v-04c00390]{grid-template-columns:1fr}.detail-cover-wrap[data-v-04c00390]{width:110px;height:148px}.detail-grid[data-v-04c00390],.holding-grid[data-v-04c00390]{grid-template-columns:1fr}}.resource-share-view[data-v-460b43f5]{min-height:100%;padding:14px 14px 20px;color:var(--ui-text, #0f172a)}.module-header[data-v-460b43f5]{display:grid;grid-template-columns:96px 1fr 96px;gap:10px;align-items:center;padding:10px;border-radius:16px;background:color-mix(in oklab,var(--ui-surface, #fff) 92%,transparent);border:1px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 26%,transparent)}.module-title[data-v-460b43f5]{margin:0;text-align:center;font-size:clamp(1.08rem,1.7vw,1.34rem)}.header-btn[data-v-460b43f5]{height:36px;border-radius:12px;border:1px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 32%,transparent);background:color-mix(in oklab,var(--ui-surface, #fff) 94%,transparent);color:var(--ui-text, #0f172a);font-size:.94rem;font-weight:700;cursor:pointer}.header-btn[data-v-460b43f5]:disabled{opacity:.55;cursor:not-allowed}.path-card[data-v-460b43f5],.list-card[data-v-460b43f5]{margin-top:12px;border-radius:16px;background:color-mix(in oklab,var(--ui-surface, #fff) 92%,transparent);border:1px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 20%,transparent);padding:12px}.path-btn[data-v-460b43f5]{width:100%;height:36px;border-radius:12px;border:1px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 32%,transparent);background:color-mix(in oklab,var(--ui-surface, #fff) 95%,transparent);font-size:.92rem;font-weight:700;cursor:pointer}.path-btn[data-v-460b43f5]:disabled{opacity:.55;cursor:not-allowed}.breadcrumbs[data-v-460b43f5]{margin-top:9px;display:flex;flex-wrap:wrap;gap:8px}.crumb-chip[data-v-460b43f5]{border:1px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 36%,transparent);border-radius:999px;height:28px;padding:0 10px;background:color-mix(in oklab,var(--ui-surface, #fff) 95%,transparent);color:var(--ui-primary, #3b82f6);font-size:.84rem;font-weight:700;cursor:pointer}.crumb-chip.active[data-v-460b43f5]{background:color-mix(in oklab,var(--ui-primary, #3b82f6) 16%,transparent)}.list-meta[data-v-460b43f5]{display:flex;align-items:center;justify-content:space-between;gap:8px}.count-chip[data-v-460b43f5]{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:999px;background:color-mix(in oklab,var(--ui-primary, #3b82f6) 14%,transparent);color:var(--ui-primary, #3b82f6);font-size:.84rem;font-weight:700}.error-text[data-v-460b43f5]{color:#dc2626;font-size:.82rem}.empty[data-v-460b43f5]{margin-top:10px;border-radius:12px;border:1px dashed color-mix(in oklab,var(--ui-primary, #3b82f6) 28%,transparent);color:var(--ui-muted, #475569);font-size:.9rem;font-weight:600;min-height:72px;display:grid;place-items:center}.items-grid[data-v-460b43f5]{margin-top:10px;display:grid;grid-template-columns:1fr;gap:9px}.item-card[data-v-460b43f5]{border:1px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 22%,transparent);border-radius:13px;padding:10px;background:color-mix(in oklab,var(--ui-surface, #fff) 96%,transparent);text-align:left;cursor:pointer}.item-title-row[data-v-460b43f5]{display:flex;align-items:center;gap:8px}.item-icon[data-v-460b43f5]{width:28px;height:28px;border-radius:9px;display:inline-grid;place-items:center;font-size:1rem;background:#e2e8f0}.item-title[data-v-460b43f5]{font-size:clamp(.92rem,1.35vw,1.02rem);font-weight:700;line-height:1.32;word-break:break-all}.item-meta-row[data-v-460b43f5]{margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.meta-chip[data-v-460b43f5]{height:26px;padding:0 9px;border-radius:999px;font-size:.78rem;font-weight:700;display:inline-flex;align-items:center;color:#1f2937;background:#e2e8f0}.item-time[data-v-460b43f5],.meta-size[data-v-460b43f5]{color:var(--ui-muted, #64748b);font-size:.76rem}.type-folder[data-v-460b43f5]{background:#fef3c7;color:#92400e}.type-video[data-v-460b43f5]{background:#fee2e2;color:#b91c1c}.type-audio[data-v-460b43f5]{background:#ede9fe;color:#6d28d9}.type-image[data-v-460b43f5]{background:#dbeafe;color:#1d4ed8}.type-pdf[data-v-460b43f5]{background:#ffe4e6;color:#be123c}.type-word[data-v-460b43f5]{background:#dbeafe;color:#1e3a8a}.type-sheet[data-v-460b43f5]{background:#dcfce7;color:#166534}.type-slide[data-v-460b43f5]{background:#ffedd5;color:#c2410c}.type-text[data-v-460b43f5]{background:#e2e8f0;color:#334155}.type-other[data-v-460b43f5]{background:#e5e7eb;color:#374151}.preview-overlay[data-v-460b43f5]{position:fixed;inset:0;z-index:5000;background:#0f172a73;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:14px}.preview-modal[data-v-460b43f5]{width:min(920px,100%);max-height:92vh;border-radius:18px;background:color-mix(in oklab,var(--ui-surface, #fff) 96%,transparent);border:1px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 24%,transparent);box-shadow:0 18px 48px #0f172a52;padding:14px;display:flex;flex-direction:column;gap:10px}.preview-head h3[data-v-460b43f5]{margin:0;font-size:clamp(1.02rem,1.65vw,1.22rem);line-height:1.3;word-break:break-all}.preview-path[data-v-460b43f5]{margin:4px 0 0;color:var(--ui-muted, #64748b);font-size:.82rem;word-break:break-all}.preview-actions[data-v-460b43f5]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.action-btn[data-v-460b43f5]{height:38px;border-radius:11px;border:1px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 32%,transparent);background:color-mix(in oklab,var(--ui-surface, #fff) 95%,transparent);font-size:.9rem;font-weight:700;color:var(--ui-text, #0f172a);cursor:pointer}.action-btn.primary[data-v-460b43f5]{border:none;color:#fff;background:linear-gradient(135deg,var(--ui-primary, #3b82f6),var(--ui-secondary, #06b6d4))}.preview-body[data-v-460b43f5]{position:relative;min-height:220px;border:1px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 22%,transparent);border-radius:13px;background:color-mix(in oklab,var(--ui-surface, #fff) 98%,transparent);overflow:hidden;flex:1;display:flex}.preview-body.viewer-fullscreen[data-v-460b43f5]{position:fixed;inset:0;width:100vw;height:100dvh;z-index:5200;border:none;border-radius:0;background:#0f172a}.viewer-exit-btn[data-v-460b43f5]{position:absolute;top:calc(env(safe-area-inset-top,0px) + 10px);left:10px;z-index:5210;height:36px;padding:0 12px;border:1px solid rgba(255,255,255,.34);border-radius:10px;background:#0f172a9e;color:#fff;font-size:.88rem;font-weight:700;cursor:pointer;backdrop-filter:blur(8px)}.preview-loading[data-v-460b43f5],.preview-empty[data-v-460b43f5]{width:100%;min-height:200px;display:grid;place-items:center;color:var(--ui-muted, #64748b);font-size:.9rem;font-weight:600;padding:16px}.preview-frame[data-v-460b43f5]{width:100%;min-height:56vh;border:none}.pdf-viewer[data-v-460b43f5]{width:100%;display:flex;flex-direction:column;gap:8px;padding:10px;background:#f8fafc}.preview-body.viewer-fullscreen .pdf-viewer[data-v-460b43f5]{min-height:100dvh;background:#0f172a;padding-top:calc(env(safe-area-inset-top,0px) + 52px)}.pdf-toolbar[data-v-460b43f5]{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.preview-body.viewer-fullscreen .pdf-toolbar[data-v-460b43f5]{justify-content:center}.pdf-tool-btn[data-v-460b43f5]{height:32px;min-width:56px;border-radius:10px;border:1px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 30%,transparent);background:#fff;color:#0f172a;font-size:.82rem;font-weight:700;cursor:pointer}.pdf-tool-btn[data-v-460b43f5]:disabled{opacity:.55;cursor:not-allowed}.pdf-page-chip[data-v-460b43f5]{height:30px;padding:0 10px;border-radius:999px;background:color-mix(in oklab,var(--ui-primary, #3b82f6) 14%,transparent);color:var(--ui-primary, #3b82f6);font-size:.8rem;font-weight:700;display:inline-flex;align-items:center;border:none;cursor:pointer}.preview-body.viewer-fullscreen .pdf-page-chip[data-v-460b43f5]{background:#ffffff2e;color:#fff}.pdf-canvas-wrap[data-v-460b43f5]{width:100%;flex:1;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-x pan-y;display:flex;justify-content:flex-start;align-items:flex-start;border:1px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 16%,transparent);border-radius:12px;background:#fff;cursor:grab}.pdf-canvas-wrap[data-v-460b43f5]:not(.zoomed){justify-content:center}.preview-body.viewer-fullscreen .pdf-canvas-wrap[data-v-460b43f5]{height:100%;background:#111827;border-color:#fff3}.pdf-canvas-wrap.panning[data-v-460b43f5]{cursor:grabbing;user-select:none}.pdf-canvas[data-v-460b43f5]{display:block;margin:0 auto;box-shadow:0 8px 24px #0f172a33}.preview-media-wrap[data-v-460b43f5],.preview-image-wrap[data-v-460b43f5]{width:100%;min-height:220px;display:grid;place-items:center;background:#0f172a}.xgplayer-wrap[data-v-460b43f5]{width:100%;height:100%;min-height:260px;padding:10px;background:linear-gradient(180deg,#0f172a,#111827)}.xgplayer-wrap.audio[data-v-460b43f5]{min-height:180px;background:linear-gradient(180deg,#111827,#1f2937)}.xgplayer-host[data-v-460b43f5]{width:100%;height:100%;border-radius:12px;overflow:hidden}[data-v-460b43f5] .xgplayer{border-radius:12px;overflow:hidden;background:#000}[data-v-460b43f5] .xgplayer .xgplayer-controls{backdrop-filter:blur(6px)}[data-v-460b43f5] .xgplayer .xgplayer-start{transform:scale(1.1)}.preview-body.viewer-fullscreen .xgplayer-wrap[data-v-460b43f5]{min-height:100dvh;height:100dvh;padding-top:calc(env(safe-area-inset-top,0px) + 52px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 8px)}.preview-body.viewer-fullscreen .xgplayer-host[data-v-460b43f5]{width:100%;height:100dvh}.preview-image[data-v-460b43f5]{max-width:100%;max-height:70vh;object-fit:contain}.preview-body.viewer-fullscreen .preview-image[data-v-460b43f5]{max-height:100dvh}.preview-text[data-v-460b43f5]{margin:0;width:100%;min-height:56vh;overflow:auto;padding:12px;font-size:.84rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:#0f172a}.preview-hint[data-v-460b43f5]{margin:0;color:var(--ui-muted, #64748b);font-size:.78rem}.preview-body.viewer-fullscreen .preview-frame[data-v-460b43f5],.preview-body.viewer-fullscreen .preview-text[data-v-460b43f5]{min-height:100dvh;height:100dvh}.center-loading-overlay[data-v-460b43f5]{position:fixed;inset:0;z-index:5100;background:#0f172a38;display:flex;align-items:center;justify-content:center}.center-loading-card[data-v-460b43f5]{min-width:210px;border-radius:14px;border:1px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 24%,transparent);background:color-mix(in oklab,var(--ui-surface, #fff) 96%,transparent);padding:14px 18px;display:grid;justify-items:center;gap:8px}.center-loading-card p[data-v-460b43f5]{margin:0;font-size:.9rem;color:var(--ui-text, #0f172a)}.spinner[data-v-460b43f5]{width:24px;height:24px;border:3px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 30%,transparent);border-top-color:var(--ui-primary, #3b82f6);border-radius:50%;animation:spin-460b43f5 1s linear infinite}@keyframes spin-460b43f5{to{transform:rotate(360deg)}}@media (max-width: 760px){.module-header[data-v-460b43f5]{grid-template-columns:88px 1fr 88px;gap:8px}.module-title[data-v-460b43f5]{font-size:1.02rem}.header-btn[data-v-460b43f5],.path-btn[data-v-460b43f5]{font-size:.86rem;height:34px}.crumb-chip[data-v-460b43f5],.count-chip[data-v-460b43f5]{font-size:.8rem;height:26px}.item-title[data-v-460b43f5]{font-size:.9rem}.item-time[data-v-460b43f5],.meta-size[data-v-460b43f5],.meta-chip[data-v-460b43f5]{font-size:.74rem}.preview-actions[data-v-460b43f5]{grid-template-columns:1fr}.preview-frame[data-v-460b43f5]{min-height:48vh}.preview-text[data-v-460b43f5]{min-height:48vh;font-size:.8rem}.pdf-tool-btn[data-v-460b43f5]{height:30px;font-size:.78rem;min-width:50px}.pdf-page-chip[data-v-460b43f5]{height:28px;font-size:.76rem}}.fade-enter-active[data-v-fe27baa6],.fade-leave-active[data-v-fe27baa6]{transition:opacity .3s ease}.fade-enter-from[data-v-fe27baa6],.fade-leave-to[data-v-fe27baa6]{opacity:0}.coming-soon-page[data-v-fe27baa6]{min-height:calc(var(--app-vh, 1vh) * 100);background:var(--ui-bg-gradient);display:flex;align-items:center;justify-content:center}.coming-soon-content[data-v-fe27baa6]{text-align:center;color:#fff}.coming-soon-content .emoji[data-v-fe27baa6]{font-size:80px;margin-bottom:20px}.coming-soon-content h2[data-v-fe27baa6]{font-size:28px;margin-bottom:12px}.coming-soon-content p[data-v-fe27baa6]{opacity:.8;margin-bottom:24px}.coming-soon-content button[data-v-fe27baa6]{padding:12px 32px;background:var(--ui-surface);color:var(--ui-primary);border:none;border-radius:99px;font-weight:600;cursor:pointer;margin-top:12px;transition:transform .2s}.select-text[data-v-fe27baa6]{user-select:text;-webkit-user-select:text}.coming-soon-content button[data-v-fe27baa6]:hover{transform:scale(1.05)}.view-transition-root[data-v-fe27baa6]{width:100%;min-height:100%}.module-fade-enter-active[data-v-fe27baa6],.module-fade-leave-active[data-v-fe27baa6]{transition:opacity calc(.16s * var(--ui-motion-scale)) ease,transform calc(.16s * var(--ui-motion-scale)) ease}.module-fade-enter-from[data-v-fe27baa6],.module-fade-leave-to[data-v-fe27baa6]{opacity:0;transform:translateY(4px)}@media (prefers-reduced-motion: reduce){.module-fade-enter-active[data-v-fe27baa6],.module-fade-leave-active[data-v-fe27baa6]{transition:none}}.app-shell[data-v-fe27baa6]{--safe-top-fallback: 0px;min-height:calc(var(--app-vh, 1vh) * 100);height:calc(var(--app-vh, 1vh) * 100);position:relative;padding-top:env(safe-area-inset-top);padding-bottom:calc(128px + env(safe-area-inset-bottom));overflow-y:scroll;overflow-x:hidden;scrollbar-gutter:stable;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.app-shell.no-scroll[data-v-fe27baa6]{height:calc(var(--app-vh, 1vh) * 100);overflow:hidden;padding-bottom:env(safe-area-inset-bottom)}.app-shell.ai-full[data-v-fe27baa6]{padding-bottom:0}.app-shell.ai-full>.view-transition-root[data-v-fe27baa6]{min-height:100%;height:100%;display:flex}.app-shell.ai-full>.view-transition-root>.ai-view[data-v-fe27baa6]{width:100%;min-height:100%;height:100%!important}.app-shell.ios-safe[data-v-fe27baa6]{--safe-top-fallback: 44px}.app-shell.schedule-full[data-v-fe27baa6]{--schedule-safe-top: max(env(safe-area-inset-top), var(--safe-top-fallback, 0px));padding-top:var(--schedule-safe-top);padding-bottom:calc(128px + env(safe-area-inset-bottom));overflow:hidden}.app-shell.schedule-full>.schedule-view[data-v-fe27baa6],.app-shell.schedule-full>.view-transition-root>.schedule-view[data-v-fe27baa6]{width:100%!important;max-width:none!important;margin:0!important;min-height:calc(var(--app-vh, 1vh) * 100 - var(--schedule-safe-top))!important;height:calc(var(--app-vh, 1vh) * 100 - var(--schedule-safe-top))!important;padding:0!important}@media (max-width: 900px){.app-shell.schedule-full[data-v-fe27baa6]{--safe-top-fallback: max(var(--safe-top-fallback, 0px), 44px);--schedule-safe-top: max(env(safe-area-inset-top), var(--safe-top-fallback, 44px))}}.app-shell>.dashboard[data-v-fe27baa6],.app-shell>[class$=-view][data-v-fe27baa6]:not(.schedule-view):not(.ai-view),.app-shell>.view-transition-root>.dashboard[data-v-fe27baa6],.app-shell>.view-transition-root>[class$=-view][data-v-fe27baa6]:not(.schedule-view):not(.ai-view){min-height:calc(var(--app-vh, 1vh) * 100)!important;height:auto!important}.bottom-tab-bar[data-v-fe27baa6]{position:fixed;top:auto;left:50%;right:auto;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom) + 8px);display:grid;grid-template-columns:repeat(4,1fr);align-items:center;align-content:center;gap:6px;padding:8px 14px;height:auto;min-height:62px;max-height:92px;width:min(540px,calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 20px));border-radius:20px;backdrop-filter:blur(20px);background:linear-gradient(135deg,#ffffffeb,#ffffffc7);border:1px solid rgba(148,163,184,.3);box-shadow:0 14px 30px #0f172a29;z-index:60;pointer-events:auto}.bottom-tab-bar[data-v-fe27baa6]:hover,.bottom-tab-bar[data-v-fe27baa6]:focus-within{transform:translate(-50%)}.tab-item[data-v-fe27baa6]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 5px;border:none;background:transparent;color:var(--ui-muted);font-size:12px;border-radius:12px;cursor:pointer;transition:all .2s ease;position:relative}.tab-item.active[data-v-fe27baa6]{color:var(--ui-primary);background:var(--ui-primary-soft);box-shadow:0 8px 18px #3b82f633}.tab-item.active .tab-icon[data-v-fe27baa6]{transform:translateY(-1px)}.tab-icon[data-v-fe27baa6]{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;position:relative}.tab-icon-svg[data-v-fe27baa6]{width:22px;height:22px;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.tab-item.active .tab-icon[data-v-fe27baa6]:after{content:"";position:absolute;right:-3px;bottom:-2px;width:8px;height:8px;border-radius:999px;background:linear-gradient(135deg,var(--ui-primary),var(--ui-secondary));border:1px solid rgba(255,255,255,.9);box-shadow:0 0 0 2px color-mix(in oklab,var(--ui-primary) 22%,transparent)}.tab-label[data-v-fe27baa6]{font-size:12px;letter-spacing:.2px}.login-mask[data-v-fe27baa6]{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0f172a73;backdrop-filter:blur(6px);z-index:20}.login-mask-card[data-v-fe27baa6]{padding:16px 24px;background:var(--ui-surface);border-radius:16px;font-weight:600;color:var(--ui-text);border:1px solid rgba(148,163,184,.3);box-shadow:var(--ui-shadow-soft)}.exit-dialog-overlay[data-v-fe27baa6]{position:fixed;inset:0;z-index:9999;background:#0f172a6b;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px}.exit-dialog-card[data-v-fe27baa6]{width:min(420px,100%);background:linear-gradient(145deg,#fffffffa,#f8fafcf2);border:1px solid rgba(148,163,184,.32);border-radius:20px;box-shadow:var(--ui-shadow-strong);padding:22px}.exit-dialog-card h3[data-v-fe27baa6]{margin:0 0 10px;font-size:24px;color:var(--ui-text)}.exit-dialog-card p[data-v-fe27baa6]{margin:0;font-size:18px;color:var(--ui-muted)}.exit-dialog-actions[data-v-fe27baa6]{margin-top:20px;display:flex;justify-content:flex-end;gap:12px}.btn-secondary[data-v-fe27baa6],.btn-danger[data-v-fe27baa6],.btn-primary[data-v-fe27baa6]{height:42px;min-width:96px;padding:0 16px;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer}.btn-secondary[data-v-fe27baa6]{background:var(--ui-primary-soft);color:var(--ui-text)}.btn-primary[data-v-fe27baa6]{background:var(--ui-primary);color:#fff}.btn-danger[data-v-fe27baa6]{background:#ef4444;color:#fff}.btn-secondary[data-v-fe27baa6]:disabled,.btn-primary[data-v-fe27baa6]:disabled,.btn-danger[data-v-fe27baa6]:disabled{opacity:.65;cursor:not-allowed}.force-update-overlay[data-v-fe27baa6]{position:fixed;inset:0;background:#020617ad;z-index:9998;display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(5px)}.force-update-card[data-v-fe27baa6]{background:linear-gradient(180deg,#fffffff5,#f7fafff0);border-radius:20px;padding:22px 20px 18px;width:100%;max-width:390px;text-align:left;border:1px solid color-mix(in oklab,var(--ui-primary) 28%,rgba(148,163,184,.24));box-shadow:0 28px 60px #0f172a52}.force-update-card h3[data-v-fe27baa6]{margin:0 0 10px;font-size:21px;line-height:1.25;color:#0f172a}.force-update-message[data-v-fe27baa6]{color:#334155;margin:0 0 12px;line-height:1.55;font-size:14px}.force-update-meta[data-v-fe27baa6]{color:#475569;font-size:13px;margin:0}.force-update-download[data-v-fe27baa6]{margin-top:10px;padding:10px 11px;border-radius:12px;background:#f1f5f9cc;border:1px solid rgba(148,163,184,.35)}.force-update-label[data-v-fe27baa6]{display:block;margin-bottom:6px;font-size:12px;font-weight:700;color:#475569}.force-update-link[data-v-fe27baa6]{width:100%;border:none;background:transparent;color:#1d4ed8;font-size:12px;font-weight:600;text-align:left;line-height:1.4;cursor:pointer;padding:0}.force-update-actions[data-v-fe27baa6]{margin-top:14px;display:flex;justify-content:flex-end}.force-update-btn[data-v-fe27baa6]{min-width:120px}.notice-modal-overlay[data-v-fe27baa6],.notice-confirm-overlay[data-v-fe27baa6]{position:fixed;inset:0;background:#00000073;z-index:9997;display:flex;align-items:center;justify-content:center;padding:20px}.notice-modal[data-v-fe27baa6],.notice-confirm-card[data-v-fe27baa6]{background:var(--ui-surface);border-radius:18px;width:100%;max-width:520px;max-height:82vh;overflow:auto;padding:20px;box-shadow:var(--ui-shadow-strong)}.notice-modal-header[data-v-fe27baa6]{display:flex;align-items:center;justify-content:space-between;gap:12px}.notice-modal-header h3[data-v-fe27baa6]{margin:0;font-size:20px;color:var(--ui-text)}.notice-close[data-v-fe27baa6]{border:none;background:var(--ui-primary-soft);width:32px;height:32px;border-radius:50%;font-size:18px;cursor:pointer}.notice-modal-meta[data-v-fe27baa6]{color:var(--ui-muted);font-size:12px;margin:8px 0 12px}.notice-modal-image img[data-v-fe27baa6]{width:100%;border-radius:12px;margin-bottom:12px}.notice-modal-content[data-v-fe27baa6]{color:var(--ui-muted);line-height:1.6}.notice-link[data-v-fe27baa6]{display:inline-block;margin-top:12px;color:var(--ui-primary);text-decoration:none}.notice-confirm-title[data-v-fe27baa6]{font-weight:600;margin:8px 0 12px}.notice-confirm-content[data-v-fe27baa6]{color:var(--ui-muted);line-height:1.6}.notice-confirm-actions[data-v-fe27baa6]{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}.ios26-select[data-v-212afffd]{position:relative;width:100%;min-width:0}.ios26-select-native[data-v-212afffd]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;user-select:none}.ios26-select-trigger[data-v-212afffd]{width:100%;min-height:42px;padding:0 14px;border-radius:14px;border:1px solid rgba(148,163,184,.35);background:#f8fafceb;border:1px solid color-mix(in oklab,var(--ui-primary, #2563eb) 24%,rgba(148,163,184,.45));background:linear-gradient(160deg,color-mix(in oklab,#ffffff 88%,var(--ui-primary, #2563eb) 12%),color-mix(in oklab,#f8fafc 84%,var(--ui-secondary, #06b6d4) 16%));box-shadow:inset 0 1px #ffffffd1,0 8px 20px color-mix(in oklab,var(--ui-primary, #2563eb) 12%,transparent);display:inline-flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .22s ease}.ios26-select-trigger[data-v-212afffd]:active{transform:translateY(1px) scale(.997);box-shadow:inset 0 1px #ffffffb8,0 4px 12px color-mix(in oklab,var(--ui-primary, #2563eb) 14%,transparent)}.ios26-select-text[data-v-212afffd]{flex:1;min-width:0;text-align:left;font-size:15px;font-weight:700;color:color-mix(in oklab,var(--ui-text, #0f172a) 94%,#ffffff 6%);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.15px}.ios26-select-text.placeholder[data-v-212afffd]{color:color-mix(in oklab,var(--ui-muted, #475569) 84%,#ffffff 16%)}.ios26-select-arrow[data-v-212afffd]{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;color:color-mix(in oklab,var(--ui-primary, #2563eb) 60%,var(--ui-text, #0f172a) 40%);flex-shrink:0}.ios26-select-arrow svg[data-v-212afffd]{width:12px;height:12px}.ios26-select-arrow path[data-v-212afffd]{stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ios26-select.is-disabled .ios26-select-trigger[data-v-212afffd],.ios26-select-trigger[data-v-212afffd]:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}.ios26-select-overlay[data-v-212afffd]{position:fixed;inset:0;z-index:9999;background:#080f1c57;display:flex;align-items:flex-end;justify-content:center;padding:12px;box-sizing:border-box;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.ios26-select-sheet[data-v-212afffd]{width:min(540px,100%);max-height:min(78vh,560px);margin:0 auto;border-radius:22px 22px 16px 16px;border:1px solid rgba(148,163,184,.34);background:#f8fafcf5;border:1px solid color-mix(in oklab,var(--ui-primary, #2563eb) 16%,rgba(148,163,184,.38));background:linear-gradient(165deg,color-mix(in oklab,#ffffff 92%,var(--ui-primary, #2563eb) 8%),color-mix(in oklab,#f8fafc 86%,var(--ui-secondary, #06b6d4) 14%));box-shadow:0 22px 52px #080f1c4d,inset 0 1px #ffffffc7;overflow:hidden;display:flex;flex-direction:column;transform:translateY(0)}.ios26-select-handle[data-v-212afffd]{display:block;width:38px;height:4px;border-radius:999px;margin:10px auto 4px;background:color-mix(in oklab,var(--ui-muted, #64748b) 36%,#ffffff 64%)}.ios26-select-title[data-v-212afffd]{text-align:center;font-size:13px;font-weight:700;letter-spacing:.25px;color:color-mix(in oklab,var(--ui-muted, #475569) 86%,#ffffff 14%);padding:6px 18px 10px;flex-shrink:0}.ios26-select-list[data-v-212afffd]{flex:1;overflow-y:auto;padding:0 10px 10px;background:transparent}.ios26-select-item[data-v-212afffd]{width:100%;border:1px solid transparent;background:#ffffffeb;background:color-mix(in oklab,#ffffff 92%,var(--ui-primary, #2563eb) 8%);min-height:46px;padding:0 14px;border-radius:12px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;color:var(--ui-text, #0f172a);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .15s ease}.ios26-select-item[data-v-212afffd]:not(.is-disabled):active{transform:scale(.995);background:color-mix(in oklab,#ffffff 78%,var(--ui-primary, #2563eb) 22%)}.ios26-select-item.is-active[data-v-212afffd]{border-color:#3b82f659;background:#edf8fff0;border-color:color-mix(in oklab,var(--ui-primary, #2563eb) 34%,rgba(148,163,184,.4));background:linear-gradient(160deg,color-mix(in oklab,#ffffff 80%,var(--ui-primary, #2563eb) 20%),color-mix(in oklab,#f1f5f9 68%,var(--ui-secondary, #06b6d4) 32%));box-shadow:0 8px 16px color-mix(in oklab,var(--ui-primary, #2563eb) 16%,transparent)}.ios26-select-item.is-disabled[data-v-212afffd]{opacity:.45;cursor:not-allowed}.ios26-select-item-label[data-v-212afffd]{text-align:left;font-size:14px;font-weight:700;line-height:1.4;color:var(--ui-text, #0f172a)}.ios26-select-item-check[data-v-212afffd]{opacity:0;font-size:16px;font-weight:700;color:var(--ui-primary, #2563eb);margin-left:10px}.ios26-select-item.is-active .ios26-select-item-check[data-v-212afffd]{opacity:1}.ios26-select-cancel[data-v-212afffd]{width:100%;border:none;border-top:1px solid rgba(148,163,184,.3);background:#ffffffeb;border-top:1px solid color-mix(in oklab,var(--ui-primary, #2563eb) 20%,rgba(148,163,184,.34));min-height:52px;background:color-mix(in oklab,#ffffff 88%,var(--ui-primary, #2563eb) 12%);color:var(--ui-primary, #2563eb);font-size:15px;font-weight:800;cursor:pointer;flex-shrink:0;transition:background-color .15s ease,transform .15s ease}.ios26-select-cancel[data-v-212afffd]:active{background-color:color-mix(in oklab,#ffffff 76%,var(--ui-primary, #2563eb) 24%);transform:scale(.996)}.ios26-select-fade-enter-active[data-v-212afffd],.ios26-select-fade-leave-active[data-v-212afffd]{transition:opacity .18s ease}.ios26-select-fade-enter-from[data-v-212afffd],.ios26-select-fade-leave-to[data-v-212afffd]{opacity:0}html[data-theme=graphite_night]{background:#02061794!important}html[data-theme=graphite_night]{border:1px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 24%,rgba(148,163,184,.34))!important;background:linear-gradient(165deg,#0f172af5,#1e293bf0)!important;box-shadow:0 24px 56px #0206178f,inset 0 1px #ffffff0f!important}html[data-theme=graphite_night]{background:#94a3b880!important}html[data-theme=graphite_night]{color:#cbd5e1!important}html[data-theme=graphite_night]{background:transparent!important}html[data-theme=graphite_night]{border-color:color-mix(in oklab,var(--ui-primary, #3b82f6) 18%,rgba(148,163,184,.26))!important;background:linear-gradient(160deg,#0f172ae0,#1e293bd6)!important;color:#e2e8f0!important}html[data-theme=graphite_night]{color:#e2e8f0!important}html[data-theme=graphite_night]{background:linear-gradient(160deg,#2563eb6b,#0ea5e95c)!important}html[data-theme=graphite_night]{border-color:color-mix(in oklab,var(--ui-primary, #3b82f6) 44%,rgba(148,163,184,.24))!important;background:linear-gradient(160deg,#2563eb70,#0ea5e95c)!important;box-shadow:0 10px 20px #1e40af47!important}html[data-theme=graphite_night]{color:#93c5fd!important}html[data-theme=graphite_night]{border-top:1px solid color-mix(in oklab,var(--ui-primary, #3b82f6) 22%,rgba(148,163,184,.28))!important;background:linear-gradient(165deg,#0f172afa,#1e293bf0)!important;color:#93c5fd!important}html[data-theme=graphite_night]{background:linear-gradient(165deg,#1e293bfa,#0f172af5)!important}@media (min-width: 769px){.ios26-select-overlay[data-v-212afffd]{align-items:center;padding:20px}.ios26-select-sheet[data-v-212afffd]{border-radius:18px;width:min(460px,90%);max-height:min(72vh,560px)}.ios26-select-handle[data-v-212afffd]{display:none}}@media (max-width: 768px){.ios26-select-trigger[data-v-212afffd]{min-height:42px;border-radius:13px}.ios26-select-text[data-v-212afffd]{font-size:15px}.ios26-select-sheet[data-v-212afffd]{width:min(100%,520px);border-radius:22px 22px 14px 14px;max-height:min(74vh,580px)}.ios26-select-item-label[data-v-212afffd]{font-size:15px}.ios26-select-overlay[data-v-212afffd]{padding:10px 10px calc(12px + env(safe-area-inset-bottom))}}html.window-resizing{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;transition:none!important}
