.auth-page[data-v-0d58bf97]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e6f0ff,#f8fbff);padding:24px}.card[data-v-0d58bf97]{width:360px;max-width:95vw;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000014;overflow:hidden}.card-header[data-v-0d58bf97]{display:flex;border-bottom:1px solid #f0f0f0}.tab[data-v-0d58bf97]{flex:1;padding:12px 0;border:none;background:transparent;font-size:16px;cursor:pointer}.tab.active[data-v-0d58bf97]{color:#1677ff;border-bottom:2px solid #1677ff}.form[data-v-0d58bf97]{padding:20px;display:flex;flex-direction:column;gap:12px}.field[data-v-0d58bf97]{display:flex;flex-direction:column;gap:6px;font-size:14px}input[data-v-0d58bf97]{padding:8px 10px;border-radius:8px;border:1px solid #d9d9d9;font-size:14px;outline:none}input[data-v-0d58bf97]:focus{border-color:#1677ff}.btn[data-v-0d58bf97]{padding:10px 14px;border-radius:8px;border:none;background:#1677ff;color:#fff;font-size:15px;cursor:pointer}.btn[data-v-0d58bf97]:disabled{opacity:.6;cursor:not-allowed}.error[data-v-0d58bf97]{color:#d00;margin:0}.success[data-v-0d58bf97]{color:#0f9d58;margin:0}.page[data-v-8819726a]{min-height:100vh;background:#f5f5f5;padding:24px 12px}.container[data-v-8819726a]{width:90vw;max-width:800px;margin:0 auto;background:#fff;border-radius:12px;padding:24px 40px;box-shadow:0 4px 12px #00000014}h1[data-v-8819726a]{margin-top:0;text-align:center}.section[data-v-8819726a]{margin-top:24px}.form[data-v-8819726a]{display:flex;flex-direction:column;gap:12px}.field[data-v-8819726a]{display:flex;flex-direction:column;gap:4px;font-size:14px}input[data-v-8819726a],textarea[data-v-8819726a],select[data-v-8819726a]{padding:6px 8px;border-radius:6px;border:1px solid #ddd;font-size:14px;outline:none;font-family:inherit}input[data-v-8819726a]:focus,textarea[data-v-8819726a]:focus,select[data-v-8819726a]:focus{border-color:#1677ff}.btn[data-v-8819726a]{padding:8px 16px;border-radius:6px;border:none;background:#e6f4ff;color:#1677ff;font-size:14px;cursor:pointer;align-self:flex-start}.btn.primary[data-v-8819726a]{background:#1677ff;color:#fff}.btn[data-v-8819726a]:hover{opacity:.9}.error[data-v-8819726a]{color:#d00;margin-top:16px}.success[data-v-8819726a]{color:#0f9d58;margin-top:16px}.page[data-v-89cd3e03]{min-height:100vh;background:#f5f5f5;padding:24px 12px}.container[data-v-89cd3e03]{width:90vw;max-width:800px;margin:0 auto;background:#fff;border-radius:12px;padding:24px 40px;box-shadow:0 4px 12px #00000014}h1[data-v-89cd3e03]{margin-top:0;text-align:center}.toolbar[data-v-89cd3e03]{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}.toolbar-item[data-v-89cd3e03]{display:flex;align-items:center;gap:6px}.toolbar label[data-v-89cd3e03]{font-size:14px}select[data-v-89cd3e03],input[type=date][data-v-89cd3e03]{padding:4px 8px;border-radius:6px;border:1px solid #ddd;font-size:14px;outline:none}select[data-v-89cd3e03]:focus,input[type=date][data-v-89cd3e03]:focus{border-color:#1677ff}.btn[data-v-89cd3e03]{padding:6px 12px;border-radius:6px;border:none;background:#1677ff;color:#fff;font-size:14px;cursor:pointer}.btn[data-v-89cd3e03]:hover{opacity:.9}.subject-group[data-v-89cd3e03]{margin-top:16px;padding-top:8px;border-top:1px solid #eee}.subject-title[data-v-89cd3e03]{margin:0 0 8px;font-size:18px;text-align:left}.hw-item[data-v-89cd3e03]{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #f0f0f0;width:100%}.hw-main[data-v-89cd3e03]{flex:1;text-align:left}.hw-content[data-v-89cd3e03]{font-size:15px}.hw-content.done[data-v-89cd3e03]{text-decoration:line-through;color:#888}.hw-remark[data-v-89cd3e03]{font-size:13px;color:#666;margin-top:2px}.hw-meta[data-v-89cd3e03]{margin-top:4px;font-size:13px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}.duration-input[data-v-89cd3e03]{width:80px;padding:2px 6px;border-radius:4px;border:1px solid #ddd;font-size:13px}.duration-input[data-v-89cd3e03]:focus{border-color:#1677ff}.status[data-v-89cd3e03]{color:#1677ff}.error[data-v-89cd3e03]{color:#d00;margin-top:16px}.success[data-v-89cd3e03]{color:#0f9d58;margin-top:16px}.layout[data-v-87f45774]{display:flex;min-height:100vh;background:#f5f5f5}.sidebar[data-v-87f45774]{width:220px;background:#001529;color:#fff;display:flex;flex-direction:column;padding:16px 12px}.logo[data-v-87f45774]{margin:0 0 16px 4px;font-size:20px}.user-row[data-v-87f45774]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:8px;background:#ffffff0f;margin-bottom:12px;font-size:14px}.logout-btn[data-v-87f45774]{border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;border-radius:6px;padding:4px 8px;cursor:pointer;font-size:12px}.logout-btn[data-v-87f45774]:hover{background:#ffffff1f}.nav[data-v-87f45774]{display:flex;flex-direction:column;gap:8px}.nav-item[data-v-87f45774]{text-align:left;padding:8px 12px;border-radius:6px;border:none;background:transparent;color:#fff;cursor:pointer;font-size:14px}.nav-item[data-v-87f45774]:hover{background:#ffffff26}.nav-item.active[data-v-87f45774]{background:#1677ff}.content[data-v-87f45774]{flex:1;padding:24px;overflow:auto}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.card{padding:2em}#app{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
