.block-wrap[data-v-40864d54]{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 18px;background:#f8fafc;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,sans-serif}.block-card[data-v-40864d54]{width:100%;max-width:420px;background:#fff;border-radius:16px;padding:32px 24px;text-align:center;box-shadow:0 8px 30px #0f172a14}.block-icon[data-v-40864d54]{font-size:44px;margin-bottom:12px}.block-title[data-v-40864d54]{font-size:20px;font-weight:800;color:#0f172a;margin:0 0 12px;line-height:1.4}.block-desc[data-v-40864d54]{font-size:14px;color:#475569;line-height:1.7;margin:0 0 20px}.block-guide[data-v-40864d54]{text-align:left;background:#f1f5f9;border-radius:12px;padding:16px}.guide-title[data-v-40864d54]{font-size:13px;font-weight:800;color:#334155;margin-bottom:8px}.guide-list[data-v-40864d54]{margin:0 0 12px;padding-left:18px}.guide-list li[data-v-40864d54]{font-size:13px;color:#475569;line-height:1.8}.url-row[data-v-40864d54]{display:flex;align-items:center;gap:8px}.url-text[data-v-40864d54]{flex:1;font-size:12.5px;color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:8px 10px;word-break:break-all;-webkit-user-select:all;user-select:all}.copy-btn[data-v-40864d54]{flex-shrink:0;font-size:12.5px;font-weight:700;color:#fff;background:#6b35ff;border:none;border-radius:8px;padding:9px 12px;cursor:pointer}.copy-btn[data-v-40864d54]:active{background:#5a2be0}.block-foot[data-v-40864d54]{font-size:12px;color:#94a3b8;margin:18px 0 0}.login-wrap[data-v-cba7277b]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#0f172a,#1e3a5f 60%,#0f172a);padding:20px 16px}.login-card[data-v-cba7277b]{width:100%;max-width:440px;background:#fff;border-radius:24px;padding:44px 32px 36px;box-shadow:0 32px 80px #0006}.login-logo[data-v-cba7277b]{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.logo-text[data-v-cba7277b]{font-size:26px;font-weight:900;color:#6b35ff;letter-spacing:1.5px}.logo-badge[data-v-cba7277b]{font-size:11px;font-weight:700;color:#6b35ff;background:#ede9fe;padding:4px 12px;border-radius:20px}.login-hero[data-v-cba7277b]{text-align:center;margin-bottom:32px}.login-icon[data-v-cba7277b]{font-size:52px;margin-bottom:12px}.login-title[data-v-cba7277b]{font-size:22px;font-weight:800;color:#0f172a;margin-bottom:10px}.login-desc[data-v-cba7277b]{font-size:14px;color:#475569;line-height:1.7}.google-btn[data-v-cba7277b]{width:100%;height:56px;display:flex;align-items:center;justify-content:center;gap:12px;background:#fff;border:1.5px solid #e2e8f0;border-radius:14px;font-size:16px;font-weight:600;color:#0f172a;cursor:pointer;transition:all .15s;margin-bottom:24px}.google-btn[data-v-cba7277b]:hover{background:#f8fafc;border-color:#6b35ff;box-shadow:0 0 0 3px #6b35ff1a}.google-btn[data-v-cba7277b]:active{transform:scale(.98)}.login-notice[data-v-cba7277b]{font-size:12px;color:#94a3b8;text-align:center;line-height:1.6}.block-notice[data-v-cba7277b]{display:flex;align-items:flex-start;gap:8px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:12px;padding:12px 14px;margin-bottom:24px;font-size:13px;font-weight:600;line-height:1.5}.cb-wrap[data-v-4badec4b]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#0f172a,#1e3a5f 60%,#0f172a)}.cb-card[data-v-4badec4b]{background:#fff;border-radius:24px;padding:52px 36px;text-align:center;max-width:340px;width:90%;box-shadow:0 32px 80px #0006}.cb-icon[data-v-4badec4b]{font-size:48px;margin-bottom:16px}.cb-title[data-v-4badec4b]{font-size:20px;font-weight:800;margin-bottom:10px;color:#0f172a}.cb-title.error[data-v-4badec4b]{color:#dc2626}.cb-msg[data-v-4badec4b]{font-size:14px;color:#64748b;line-height:1.6;margin-bottom:24px}.cb-btn[data-v-4badec4b]{width:100%;height:52px;background:#6b35ff;color:#fff;border:none;border-radius:14px;font-size:16px;font-weight:700;cursor:pointer;transition:background .15s}.cb-btn[data-v-4badec4b]:hover{background:#5a2de0}.cb-spinner[data-v-4badec4b]{width:48px;height:48px;border:4px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-4badec4b .8s linear infinite;margin:0 auto 20px}@keyframes spin-4badec4b{to{transform:rotate(360deg)}}.totp-wrap[data-v-5438a602]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#0f172a,#1e3a5f 60%,#0f172a);padding:20px 16px}.totp-card[data-v-5438a602]{width:100%;max-width:400px;background:#fff;border-radius:24px;padding:44px 32px 36px;box-shadow:0 32px 80px #0006;text-align:center}.totp-header[data-v-5438a602]{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.logo-text[data-v-5438a602]{font-size:24px;font-weight:900;color:#6b35ff;letter-spacing:1.5px}.logo-badge[data-v-5438a602]{font-size:11px;font-weight:700;color:#6b35ff;background:#ede9fe;padding:4px 10px;border-radius:20px}.totp-icon[data-v-5438a602]{font-size:48px;margin-bottom:12px}.totp-title[data-v-5438a602]{font-size:24px;font-weight:800;color:#0f172a;margin-bottom:8px}.totp-desc[data-v-5438a602]{font-size:14px;color:#475569;line-height:1.7;margin-bottom:28px}.code-wrap[data-v-5438a602]{margin-bottom:16px}.code-input[data-v-5438a602]{width:100%;height:72px;font-size:36px;font-weight:700;letter-spacing:8px;text-align:center;border:2px solid #e2e8f0;border-radius:16px;color:#0f172a;background:#f8fafc;outline:none;-webkit-appearance:none;transition:border-color .15s;font-variant-numeric:tabular-nums}.code-input[data-v-5438a602]:focus{border-color:#6b35ff;background:#fff;box-shadow:0 0 0 3px #6b35ff1a}.totp-error[data-v-5438a602]{background:#fef2f2;color:#dc2626;border:1px solid #fecaca;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:500;margin-bottom:16px}.err-enter-active[data-v-5438a602],.err-leave-active[data-v-5438a602]{transition:all .2s}.err-enter-from[data-v-5438a602],.err-leave-to[data-v-5438a602]{opacity:0;transform:translateY(-4px)}.totp-btn[data-v-5438a602]{width:100%;height:56px;background:#6b35ff;color:#fff;border:none;border-radius:14px;font-size:17px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.totp-btn[data-v-5438a602]:disabled{background:#a78bfa;cursor:not-allowed}.totp-btn[data-v-5438a602]:not(:disabled):hover{background:#5a2de0}.back-btn[data-v-5438a602]{background:none;border:none;color:#94a3b8;font-size:14px;cursor:pointer;padding:8px}.btn-spinner[data-v-5438a602]{width:22px;height:22px;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin-5438a602 .7s linear infinite}@keyframes spin-5438a602{to{transform:rotate(360deg)}}.setup-wrap[data-v-ac5ef3d3]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#0f172a,#1e3a5f 60%,#0f172a);padding:20px 16px}.setup-card[data-v-ac5ef3d3]{width:100%;max-width:400px;background:#fff;border-radius:24px;padding:44px 32px 36px;box-shadow:0 32px 80px #0006;text-align:center}.setup-header[data-v-ac5ef3d3]{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.logo-text[data-v-ac5ef3d3]{font-size:24px;font-weight:900;color:#6b35ff;letter-spacing:1.5px}.logo-badge[data-v-ac5ef3d3]{font-size:11px;font-weight:700;color:#6b35ff;background:#ede9fe;padding:4px 10px;border-radius:20px}.step-icon[data-v-ac5ef3d3]{font-size:44px;margin-bottom:10px}.setup-title[data-v-ac5ef3d3]{font-size:22px;font-weight:800;color:#0f172a;margin-bottom:10px}.setup-desc[data-v-ac5ef3d3]{font-size:14px;color:#475569;line-height:1.7;margin-bottom:20px}.qr-placeholder[data-v-ac5ef3d3]{width:180px;height:180px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}.qr-spinner[data-v-ac5ef3d3]{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-ac5ef3d3 .8s linear infinite}.qr-box[data-v-ac5ef3d3]{margin-bottom:16px}.qr-img[data-v-ac5ef3d3]{width:200px;height:200px;border-radius:12px;border:1px solid #e2e8f0;image-rendering:pixelated}.qr-fallback[data-v-ac5ef3d3]{background:#f8fafc;border-radius:12px;padding:16px;margin-bottom:16px}.fallback-label[data-v-ac5ef3d3]{font-size:12px;font-weight:600;color:#94a3b8;margin-bottom:8px}.fallback-uri[data-v-ac5ef3d3]{font-size:10px;color:#475569;word-break:break-all;font-family:monospace}.app-links[data-v-ac5ef3d3]{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:20px}.app-link-label[data-v-ac5ef3d3]{font-size:11px;color:#94a3b8}.app-badge[data-v-ac5ef3d3]{font-size:10px;font-weight:700;padding:3px 8px;background:#1c1c1e;color:#fff;border-radius:6px}.code-wrap[data-v-ac5ef3d3]{margin-bottom:16px}.code-input[data-v-ac5ef3d3]{width:100%;height:72px;font-size:36px;font-weight:700;letter-spacing:8px;text-align:center;border:2px solid #e2e8f0;border-radius:16px;color:#0f172a;background:#f8fafc;outline:none;-webkit-appearance:none;transition:border-color .15s}.code-input[data-v-ac5ef3d3]:focus{border-color:#6b35ff;background:#fff;box-shadow:0 0 0 3px #6b35ff1a}.setup-error[data-v-ac5ef3d3]{background:#fef2f2;color:#dc2626;border:1px solid #fecaca;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:500;margin-bottom:16px}.err-enter-active[data-v-ac5ef3d3],.err-leave-active[data-v-ac5ef3d3]{transition:all .2s}.err-enter-from[data-v-ac5ef3d3],.err-leave-to[data-v-ac5ef3d3]{opacity:0;transform:translateY(-4px)}.setup-btn[data-v-ac5ef3d3]{width:100%;height:56px;background:#6b35ff;color:#fff;border:none;border-radius:14px;font-size:17px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.setup-btn[data-v-ac5ef3d3]:disabled{background:#a78bfa;cursor:not-allowed}.setup-btn[data-v-ac5ef3d3]:not(:disabled):hover{background:#5a2de0}.back-btn[data-v-ac5ef3d3]{background:none;border:none;color:#94a3b8;font-size:14px;cursor:pointer;padding:8px}.btn-spinner[data-v-ac5ef3d3]{width:22px;height:22px;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin-ac5ef3d3 .7s linear infinite}@keyframes spin-ac5ef3d3{to{transform:rotate(360deg)}}.portal-root[data-v-dd9384b1]{min-height:100vh;display:flex;flex-direction:column;background:#f1f5f9}.reject-alarm[data-v-dd9384b1]{display:flex;align-items:center;gap:12px;background:#fef2f2;border-bottom:1px solid #fecaca;padding:12px 18px;color:#7f1d1d;animation:raSlide-dd9384b1 .3s ease}@keyframes raSlide-dd9384b1{0%{transform:translateY(-100%);opacity:0}to{transform:none;opacity:1}}.ra-icon[data-v-dd9384b1]{font-size:20px;flex-shrink:0}.ra-text[data-v-dd9384b1]{display:flex;flex-direction:column;gap:2px;min-width:0}.ra-text b[data-v-dd9384b1]{font-size:14px;font-weight:800;color:#b91c1c}.ra-detail[data-v-dd9384b1]{font-size:12.5px;color:#991b1b;overflow:hidden;text-overflow:ellipsis}.ra-btn[data-v-dd9384b1]{margin-left:auto;flex-shrink:0;background:#dc2626;color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:800;cursor:pointer}.ra-btn[data-v-dd9384b1]:hover{background:#b91c1c}.ra-close[data-v-dd9384b1]{flex-shrink:0;background:none;border:none;color:#b91c1c;font-size:15px;cursor:pointer;padding:4px 6px;line-height:1}@media (prefers-reduced-motion: reduce){.reject-alarm[data-v-dd9384b1]{animation:none}}.mobile-header[data-v-dd9384b1]{position:sticky;top:0;z-index:100;background:#0f172a;padding:0 16px;height:52px;display:flex;align-items:center;justify-content:space-between}.header-logo[data-v-dd9384b1]{font-size:18px;font-weight:900;color:#6b35ff;letter-spacing:1.5px}.header-right[data-v-dd9384b1]{display:flex;align-items:center;gap:10px}.header-name[data-v-dd9384b1]{font-size:13px;font-weight:600;color:#94a3b8}.logout-btn[data-v-dd9384b1]{background:none;border:1px solid #334155;color:#94a3b8;padding:4px 10px;border-radius:6px;font-size:11px;cursor:pointer}.portal-body[data-v-dd9384b1]{flex:1;display:flex;overflow:hidden}.portal-sidebar[data-v-dd9384b1]{display:none;width:220px;flex-shrink:0;background:#fff;border-right:1px solid #e2e8f0;flex-direction:column;height:100vh;position:sticky;top:0;overflow-y:auto}.sidebar-brand[data-v-dd9384b1]{padding:20px 20px 16px;border-bottom:1px solid #f1f5f9;display:flex;flex-direction:column;gap:2px}.brand-logo[data-v-dd9384b1]{font-size:18px;font-weight:900;color:#6b35ff;letter-spacing:1.5px}.brand-sub[data-v-dd9384b1]{font-size:10px;font-weight:600;color:#94a3b8}.sidebar-user[data-v-dd9384b1]{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid #f1f5f9}.user-avatar[data-v-dd9384b1]{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#6b35ff,#a78bfa);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-name[data-v-dd9384b1]{font-size:13px;font-weight:700;color:#0f172a;display:block}.user-role[data-v-dd9384b1]{font-size:11px;color:#94a3b8}.sidebar-nav[data-v-dd9384b1]{flex:1;padding:12px 8px;display:flex;flex-direction:column;gap:1px;overflow-y:auto}.sidebar-nav .nav-item[data-v-dd9384b1]{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;font-size:13px;font-weight:600;color:#475569;text-decoration:none;transition:all .15s;cursor:pointer}.sidebar-nav .nav-item .nav-icon[data-v-dd9384b1]{font-size:15px;width:20px;text-align:center;flex-shrink:0}.sidebar-nav .nav-item[data-v-dd9384b1]:hover{background:#f8fafc;color:#0f172a}.sidebar-nav .nav-item.active[data-v-dd9384b1]{background:#fef9c3;color:#92400e;font-weight:700}.sidebar-nav .nav-item.sub[data-v-dd9384b1]{padding-left:20px;font-size:12.5px;font-weight:500}.sidebar-nav .nav-item.sub.active[data-v-dd9384b1]{background:#fef9c3;color:#92400e;font-weight:700}.nav-group-label[data-v-dd9384b1]{font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.8px;padding:12px 12px 4px}.nav-subgroup-label[data-v-dd9384b1]{font-size:11.5px;font-weight:700;color:#64748b;padding:8px 12px 3px 20px}.sidebar-nav .nav-item.sub2[data-v-dd9384b1]{padding-left:34px;font-size:12.5px;font-weight:500}.sidebar-nav .nav-item.sub2.active[data-v-dd9384b1]{background:#fef9c3;color:#92400e;font-weight:700}.sidebar-footer[data-v-dd9384b1]{padding:12px 16px;border-top:1px solid #f1f5f9}.logout-btn-sidebar[data-v-dd9384b1]{width:100%;padding:8px;border:1px solid #e2e8f0;background:none;border-radius:8px;color:#64748b;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.logout-btn-sidebar[data-v-dd9384b1]:hover{border-color:#6b35ff;color:#6b35ff}.portal-content[data-v-dd9384b1]{flex:1;overflow-y:auto;min-width:0;padding:20px 16px 90px}.bottom-nav[data-v-dd9384b1]{position:fixed;bottom:0;left:0;right:0;height:64px;background:#fff;border-top:1px solid #e2e8f0;display:grid;grid-template-columns:repeat(5,1fr);z-index:100;padding-bottom:env(safe-area-inset-bottom,0px)}.bottom-nav .nav-item[data-v-dd9384b1]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:#94a3b8;transition:color .15s;padding:8px 0;-webkit-tap-highlight-color:transparent}.bottom-nav .nav-item.active[data-v-dd9384b1]{color:#6b35ff}.bottom-nav .nav-icon[data-v-dd9384b1]{width:22px;height:22px;display:block;background:currentColor;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.nav-home[data-v-dd9384b1]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z'/%3E%3Cpolyline points='9 22 9 12 15 12 15 22'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z'/%3E%3Cpolyline points='9 22 9 12 15 12 15 22'/%3E%3C/svg%3E")}.nav-att[data-v-dd9384b1]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h18M9 21V9'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h18M9 21V9'/%3E%3C/svg%3E")}.nav-cal[data-v-dd9384b1]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E")}.nav-doc[data-v-dd9384b1]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3C/svg%3E")}.nav-more[data-v-dd9384b1]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.nav-label[data-v-dd9384b1]{font-size:10px;font-weight:700;white-space:nowrap}@media (min-width: 1024px){.mobile-header[data-v-dd9384b1]{display:none}.portal-sidebar[data-v-dd9384b1]{display:flex}.bottom-nav[data-v-dd9384b1]{display:none}.portal-content[data-v-dd9384b1]{padding:24px 28px}}@media (min-width: 768px) and (max-width: 1023px){.portal-content[data-v-dd9384b1]{padding:20px 20px 80px}}.page[data-v-5c5d8d6e]{display:flex;flex-direction:column;gap:14px}.greeting-row[data-v-5c5d8d6e]{display:flex;align-items:center;justify-content:space-between}.greeting-name[data-v-5c5d8d6e]{font-size:19px;font-weight:800;color:#0f172a}.greeting-class[data-v-5c5d8d6e]{font-size:13px;color:#64748b;margin-top:2px}.profile-btn[data-v-5c5d8d6e]{font-size:12px;font-weight:700;color:#6b35ff;border:1.5px solid #6b35ff;border-radius:8px;padding:6px 14px;text-decoration:none;white-space:nowrap}.loading-box[data-v-5c5d8d6e]{display:flex;justify-content:center;padding:60px 0}.spinner[data-v-5c5d8d6e]{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-5c5d8d6e .8s linear infinite}@keyframes spin-5c5d8d6e{to{transform:rotate(360deg)}}.section-card[data-v-5c5d8d6e]{background:#fff;border-radius:16px;padding:16px;box-shadow:0 1px 4px #0000000f}.card-header[data-v-5c5d8d6e]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-title[data-v-5c5d8d6e]{font-size:14px;font-weight:800;color:#0f172a}.card-more[data-v-5c5d8d6e]{font-size:12px;color:#6b35ff;text-decoration:none;font-weight:600}.date-row[data-v-5c5d8d6e]{display:flex;align-items:flex-end;gap:6px;margin-bottom:14px}.date-field[data-v-5c5d8d6e]{display:flex;flex-direction:column;gap:3px}.date-label[data-v-5c5d8d6e]{font-size:11px;font-weight:700;color:#64748b}.date-input[data-v-5c5d8d6e]{width:130px;padding:7px 8px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:12px;color:#0f172a;background:#f8fafc;outline:none}.date-input[data-v-5c5d8d6e]:focus{border-color:#6b35ff}.date-sep[data-v-5c5d8d6e]{font-size:14px;color:#94a3b8;padding-bottom:6px}.date-apply-btn[data-v-5c5d8d6e]{flex-shrink:0;padding:8px 16px;background:#6b35ff;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:52px}.date-apply-btn[data-v-5c5d8d6e]:disabled{background:#a78bfa;cursor:not-allowed}.mini-spinner[data-v-5c5d8d6e]{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-5c5d8d6e .7s linear infinite}.att-grid[data-v-5c5d8d6e]{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.att-item[data-v-5c5d8d6e]{display:flex;flex-direction:column;align-items:center;gap:3px;background:#f8fafc;border-radius:10px;padding:10px 4px}.att-num[data-v-5c5d8d6e]{font-size:22px;font-weight:800}.att-lbl[data-v-5c5d8d6e]{font-size:11px;font-weight:600;color:#64748b}.att-present .att-num[data-v-5c5d8d6e]{color:#16a34a}.att-late .att-num[data-v-5c5d8d6e]{color:#d97706}.att-early .att-num[data-v-5c5d8d6e]{color:#2563eb}.att-absent .att-num[data-v-5c5d8d6e]{color:#dc2626}.att-excuse .att-num[data-v-5c5d8d6e]{color:#6b35ff}.excuse-block[data-v-5c5d8d6e]{margin-left:10cm;flex-shrink:0;border:2px solid #6b35ff;background:#f5f0ff;border-radius:10px;padding:6px 14px;display:inline-flex;align-items:center}.excuse-block-text[data-v-5c5d8d6e]{font-size:13px;font-weight:700;color:#6b35ff;white-space:nowrap}.cumul-absent-row[data-v-5c5d8d6e]{margin-top:8px;padding:8px 10px;background:#fee2e2;border-radius:8px;font-size:12px;color:#b91c1c;display:flex;align-items:center;gap:6px}.cumul-warn-row[data-v-5c5d8d6e]{margin-top:8px;padding:8px 10px;background:#fff7ed;border-radius:8px;font-size:12px;color:#92400e;display:flex;align-items:center;gap:6px}.cumul-icon[data-v-5c5d8d6e]{font-size:14px}.att-rate-bar[data-v-5c5d8d6e]{margin-top:10px;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.att-rate-fill[data-v-5c5d8d6e]{height:100%;background:linear-gradient(90deg,#6b35ff,#a78bfa);border-radius:3px;transition:width .5s}.att-rate-label[data-v-5c5d8d6e]{font-size:12px;color:#64748b;text-align:right;margin-top:4px;font-weight:600}.today-att[data-v-5c5d8d6e]{margin-top:12px;padding:10px 12px;background:#f8fafc;border-radius:10px}.today-att-head[data-v-5c5d8d6e]{font-size:11.5px;font-weight:700;color:#64748b;margin-bottom:6px}.today-att-times[data-v-5c5d8d6e]{display:flex;align-items:center;gap:10px}.ta-item[data-v-5c5d8d6e]{flex:1;display:flex;align-items:baseline;gap:6px}.ta-label[data-v-5c5d8d6e]{font-size:11.5px;color:#94a3b8;font-weight:600}.ta-time[data-v-5c5d8d6e]{font-size:19px;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums}.ta-time.empty[data-v-5c5d8d6e]{color:#cbd5e1;font-weight:700}.ta-sep[data-v-5c5d8d6e]{width:1px;align-self:stretch;background:#e2e8f0}.today-att-none[data-v-5c5d8d6e]{font-size:12.5px;color:#94a3b8}.recent-att[data-v-5c5d8d6e]{margin-top:10px}.recent-att-head[data-v-5c5d8d6e]{font-size:11.5px;font-weight:700;color:#64748b;margin-bottom:4px}.recent-row[data-v-5c5d8d6e]{display:flex;align-items:center;gap:8px;padding:6px 2px;border-top:1px solid #f1f5f9;font-size:12.5px}.rr-date[data-v-5c5d8d6e]{width:62px;color:#475569;font-weight:600}.rr-time[data-v-5c5d8d6e]{flex:1;color:#0f172a;font-variant-numeric:tabular-nums}.rr-badge[data-v-5c5d8d6e]{font-size:10.5px;font-weight:700;border-radius:8px;padding:2px 7px;background:#f1f5f9;color:#64748b;white-space:nowrap}.rb-PRESENT[data-v-5c5d8d6e]{background:#dcfce7;color:#15803d}.rb-ABSENT[data-v-5c5d8d6e]{background:#fee2e2;color:#b91c1c}.rb-LATE[data-v-5c5d8d6e],.rb-LATE_EARLY_LEAVE[data-v-5c5d8d6e]{background:#ffedd5;color:#c2410c}.rb-EARLY_LEAVE[data-v-5c5d8d6e],.rb-EARLY_LEAVE_RETURN[data-v-5c5d8d6e]{background:#fef3c7;color:#a16207}.sched-card[data-v-5c5d8d6e]{padding:16px 0}.sched-card .card-header[data-v-5c5d8d6e]{padding:0 16px;margin-bottom:10px}.sched-grid[data-v-5c5d8d6e]{display:flex;flex-direction:column}.sg-head[data-v-5c5d8d6e]{display:grid;grid-template-columns:80px 1fr 72px 72px 72px;background:#f8fafc;border-top:1px solid #f1f5f9;border-bottom:2px solid #e2e8f0;padding:0 16px}.sgh-cell[data-v-5c5d8d6e]{padding:8px 6px;font-size:11px;font-weight:700;color:#94a3b8;text-align:center;white-space:nowrap}.sgh-subject[data-v-5c5d8d6e]{text-align:left}.sg-row[data-v-5c5d8d6e]{display:grid;grid-template-columns:80px 1fr 72px 72px 72px;padding:0 16px;border-bottom:1px solid #f8fafc;transition:background .12s;align-items:center}.sg-row[data-v-5c5d8d6e]:last-child{border-bottom:none}.sg-row[data-v-5c5d8d6e]:hover{background:#faf5ff}.sgd-cell[data-v-5c5d8d6e]{padding:10px 6px;font-size:12px;color:#374151;text-align:center}.sgd-subject[data-v-5c5d8d6e]{text-align:left;display:flex;align-items:center;gap:6px;min-width:0}.sgd-inst[data-v-5c5d8d6e]{font-size:11px;color:#64748b;text-align:center}.sgd-ltime[data-v-5c5d8d6e]{text-align:center}.sgd-date[data-v-5c5d8d6e]{display:flex;flex-wrap:wrap;align-items:center;gap:2px;justify-content:center}.sgd-date-val[data-v-5c5d8d6e]{font-size:11px;font-weight:700;color:#1e293b}.sgd-date-sep[data-v-5c5d8d6e]{font-size:10px;color:#94a3b8}.sgd-dow[data-v-5c5d8d6e]{font-size:10px;color:#94a3b8;font-weight:600}.sgd-dow.weekend[data-v-5c5d8d6e]{color:#ef4444}.sg-subject-name[data-v-5c5d8d6e]{font-size:13px;font-weight:600;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sgd-ltime-text[data-v-5c5d8d6e]{font-size:11px;font-weight:600;color:#334155;white-space:nowrap}.ltime-weekend[data-v-5c5d8d6e]{color:#94a3b8}.ltime-holiday[data-v-5c5d8d6e]{color:#dc2626;font-weight:700}.ltime-adjusted[data-v-5c5d8d6e]{color:#7c3aed}@media (max-width: 540px){.sched-grid[data-v-5c5d8d6e]{overflow-x:auto}.sg-head[data-v-5c5d8d6e],.sg-row[data-v-5c5d8d6e]{grid-template-columns:70px 110px 60px 60px 60px;min-width:360px}}.sched-header-right[data-v-5c5d8d6e]{display:flex;align-items:center;gap:10px}.display-toggle[data-v-5c5d8d6e]{display:flex;gap:2px;background:#f1f5f9;border-radius:8px;padding:2px}.toggle-btn[data-v-5c5d8d6e]{padding:4px 10px;border:none;background:transparent;border-radius:6px;font-size:11px;font-weight:700;color:#64748b;cursor:pointer}.toggle-btn.active[data-v-5c5d8d6e]{background:#fff;color:#6b35ff;box-shadow:0 1px 3px #00000014}.home-cal-wrap[data-v-5c5d8d6e]{padding:0 4px 8px}.cal-loading[data-v-5c5d8d6e]{display:flex;justify-content:center;padding:40px 0}.home-cal-nav[data-v-5c5d8d6e]{display:flex;align-items:center;gap:10px;padding:8px 12px 12px}.cal-nav-btn[data-v-5c5d8d6e]{width:30px;height:30px;border:1.5px solid #e2e8f0;background:#fff;border-radius:8px;font-size:16px;cursor:pointer;color:#475569;display:flex;align-items:center;justify-content:center}.cal-nav-btn[data-v-5c5d8d6e]:hover{background:#f1f5f9}.cal-title[data-v-5c5d8d6e]{font-size:14px;font-weight:800;color:#0f172a;flex:1}.cal-today-btn[data-v-5c5d8d6e]{padding:4px 10px;border:1.5px solid #6b35ff;background:#fff;border-radius:8px;font-size:11px;font-weight:700;color:#6b35ff;cursor:pointer}.cal-today-btn[data-v-5c5d8d6e]:hover{background:#ede9fe}.cal-grid[data-v-5c5d8d6e]{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#e2e8f0;border-radius:10px;overflow:hidden}.cal-dow[data-v-5c5d8d6e]{background:#f8fafc;padding:7px 2px;text-align:center;font-size:10px;font-weight:700;color:#64748b}.cal-dow.dow-sun[data-v-5c5d8d6e]{color:#ef4444}.cal-dow.dow-sat[data-v-5c5d8d6e]{color:#3b82f6}.cal-day[data-v-5c5d8d6e]{background:#fff;min-height:76px;padding:4px;display:flex;flex-direction:column;gap:2px;cursor:default;transition:background .12s}.cal-day--active[data-v-5c5d8d6e]{cursor:pointer}.cal-day--active[data-v-5c5d8d6e]:hover{background:#faf5ff}.cal-day--other[data-v-5c5d8d6e]{background:#fafafa}.cal-day--other .cal-day-num[data-v-5c5d8d6e]{color:#cbd5e1}.cal-day--today[data-v-5c5d8d6e]{background:#faf5ff}.cal-day--weekend[data-v-5c5d8d6e]{background:#f8f9fb}.cal-day--weekend.cal-day--other[data-v-5c5d8d6e]{background:#f4f5f8}.cal-day--holiday[data-v-5c5d8d6e]{background:#fff5f5!important}.cal-day--holiday[data-v-5c5d8d6e]:hover{background:#fee2e2!important}.cal-day-top[data-v-5c5d8d6e]{display:flex;align-items:center;gap:3px;margin-bottom:2px}.cal-day-num[data-v-5c5d8d6e]{font-size:11px;font-weight:700;color:#374151;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.cal-day-num.num-sun[data-v-5c5d8d6e]{color:#ef4444}.cal-day-num.num-sat[data-v-5c5d8d6e]{color:#3b82f6}.cal-day-num.num-today[data-v-5c5d8d6e]{background:#6b35ff;color:#fff!important}.cal-hol-badge[data-v-5c5d8d6e]{font-size:8px;font-weight:700;color:#dc2626;background:#fee2e2;padding:1px 3px;border-radius:3px;white-space:nowrap}.cal-event[data-v-5c5d8d6e]{font-size:9px;font-weight:600;padding:2px 4px;border-radius:4px;overflow:hidden;line-height:1.4}.cal-event.type-lecture[data-v-5c5d8d6e]{background:#dbeafe;color:#1d4ed8}.cal-event.type-special[data-v-5c5d8d6e]{background:#fef9c3;color:#a16207}.cal-event.type-eval[data-v-5c5d8d6e]{background:#fce7f3;color:#9d174d}.cal-event.type-project[data-v-5c5d8d6e]{background:#d1fae5;color:#065f46}.cal-ev-name[data-v-5c5d8d6e]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-ev-ltime[data-v-5c5d8d6e]{font-size:8px;font-weight:700;color:#7c3aed;margin-top:1px}.cal-ev-instr[data-v-5c5d8d6e]{font-size:8px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-more[data-v-5c5d8d6e]{font-size:9px;color:#94a3b8;font-weight:600;padding:0 3px}.day-detail-backdrop[data-v-5c5d8d6e]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.day-detail[data-v-5c5d8d6e]{background:#fff;border-radius:16px;padding:20px;width:100%;max-width:360px;box-shadow:0 8px 32px #0000002e;display:flex;flex-direction:column;gap:10px}.day-detail-header[data-v-5c5d8d6e]{display:flex;align-items:center;justify-content:space-between}.day-detail-date[data-v-5c5d8d6e]{font-size:15px;font-weight:800;color:#0f172a}.day-detail-close[data-v-5c5d8d6e]{width:28px;height:28px;border:none;background:#f1f5f9;border-radius:8px;font-size:13px;cursor:pointer;color:#64748b;display:flex;align-items:center;justify-content:center}.day-holiday-notice[data-v-5c5d8d6e]{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#dc2626;background:#fff5f5;padding:8px 12px;border-radius:8px}.day-no-sched[data-v-5c5d8d6e]{font-size:13px;color:#94a3b8;text-align:center;padding:12px 0}.day-detail-row[data-v-5c5d8d6e]{padding:10px 12px;background:#f8fafc;border-radius:10px}.day-detail-info[data-v-5c5d8d6e]{min-width:0}.day-detail-subject[data-v-5c5d8d6e]{font-size:14px;font-weight:700;color:#0f172a;margin-bottom:8px}.day-detail-meta[data-v-5c5d8d6e]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ltime-chip[data-v-5c5d8d6e]{display:flex;align-items:center;gap:3px;font-size:11px;font-weight:700;color:#334155;background:#f1f5f9;padding:3px 7px;border-radius:5px}.ltime-chip.ltime-adjusted[data-v-5c5d8d6e]{color:#7c3aed;background:#ede9fe}.ltime-chip.ltime-holiday[data-v-5c5d8d6e]{color:#dc2626;background:#fee2e2}.instructor-chip[data-v-5c5d8d6e]{display:flex;align-items:center;gap:3px;font-size:11px;color:#475569;background:#f1f5f9;padding:3px 7px;border-radius:5px}.prac-chip[data-v-5c5d8d6e]{color:#0369a1;background:#e0f2fe}.score-summary[data-v-5c5d8d6e]{display:flex;flex-direction:column;align-items:center;padding:8px 0}.score-big[data-v-5c5d8d6e]{font-size:44px;font-weight:900;color:#6b35ff;line-height:1}.score-unit[data-v-5c5d8d6e]{font-size:20px;font-weight:700}.score-sub[data-v-5c5d8d6e]{font-size:13px;color:#94a3b8;margin-top:6px}.alert-card[data-v-5c5d8d6e]{display:flex;align-items:center;gap:8px;background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:12px 14px;font-size:13px;color:#92400e}.alert-icon[data-v-5c5d8d6e]{font-size:18px}.alert-card>span[data-v-5c5d8d6e]{flex:1}.alert-link[data-v-5c5d8d6e]{font-size:12px;font-weight:700;color:#d97706;text-decoration:none;white-space:nowrap}.att-page[data-v-6567cdce]{display:flex;flex-direction:column;gap:16px}.page-header[data-v-6567cdce]{display:flex;flex-direction:column;gap:12px}.header-title-row[data-v-6567cdce]{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:10px}.page-title[data-v-6567cdce]{font-size:22px;font-weight:800;color:#0f172a;margin:0}.period-subtitle[data-v-6567cdce]{font-size:13px;color:#6b35ff;font-weight:600;margin-top:4px}.info-btn[data-v-6567cdce]{background:#fef3c7;border:none;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:700;color:#92400e;cursor:pointer;white-space:nowrap;flex-shrink:0}.stats-row[data-v-6567cdce]{display:flex;gap:8px;flex-wrap:wrap}.stat-chip[data-v-6567cdce]{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;gap:2px;min-width:100px;flex:1}.chip-label[data-v-6567cdce]{font-size:11px;font-weight:600;color:#64748b}.chip-value[data-v-6567cdce]{font-size:22px;font-weight:800;color:#0f172a}.chip-value.c-green[data-v-6567cdce]{color:#16a34a}.chip-value.c-red[data-v-6567cdce]{color:#dc2626}.chip-value.c-orange[data-v-6567cdce]{color:#d97706}.chip-value.c-blue[data-v-6567cdce]{color:#2563eb}.chip-diff[data-v-6567cdce]{font-size:10px;font-weight:600}.up-good[data-v-6567cdce]{color:#16a34a}.down-bad[data-v-6567cdce]{color:#dc2626}.loading-box[data-v-6567cdce]{display:flex;justify-content:center;padding:60px 0}.spinner[data-v-6567cdce]{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-6567cdce .8s linear infinite}@keyframes spin-6567cdce{to{transform:rotate(360deg)}}.error-box[data-v-6567cdce]{background:#fef2f2;color:#dc2626;border-radius:12px;padding:20px;text-align:center}.content-area[data-v-6567cdce]{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.content-left[data-v-6567cdce]{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}.content-right[data-v-6567cdce]{width:300px;flex-shrink:0;display:flex;flex-direction:column;gap:16px}.section-card[data-v-6567cdce]{background:#fff;border-radius:14px;padding:16px;box-shadow:0 1px 4px #0000000f}.right-card[data-v-6567cdce]{display:flex;flex-direction:column;gap:14px}.section-title-row[data-v-6567cdce]{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}.section-title[data-v-6567cdce]{font-size:14px;font-weight:800;color:#0f172a}.section-sub[data-v-6567cdce]{font-size:12px;color:#64748b}.excel-btn[data-v-6567cdce]{margin-left:auto;background:#f0fdf4;border:1px solid #86efac;border-radius:8px;padding:5px 12px;font-size:12px;font-weight:700;color:#15803d;cursor:pointer}.table-wrap[data-v-6567cdce]{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table[data-v-6567cdce]{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.data-table th[data-v-6567cdce]{background:#f8fafc;border-bottom:2px solid #e2e8f0;padding:8px 10px;text-align:center;font-weight:700;color:#64748b;font-size:11px}.data-table td[data-v-6567cdce]{padding:8px 10px;text-align:center;border-bottom:1px solid #f1f5f9;color:#374151}.data-table tr:last-child td[data-v-6567cdce]{border-bottom:none}.data-table tr:hover td[data-v-6567cdce]{background:#f8fafc}.period-table tr[data-v-6567cdce]{cursor:pointer}.period-table tr.row-active[data-v-6567cdce]{background:#eff6ff}.period-table tr.row-future td[data-v-6567cdce]{color:#94a3b8}.period-table tr.row-selected td[data-v-6567cdce]{background:#ede9fe;font-weight:700;color:#4c1d95}.period-table tr.row-selected td[data-v-6567cdce]:first-child{box-shadow:inset 4px 0 #6b35ff}.row-total[data-v-6567cdce]{background:#fafafa}.row-total td[data-v-6567cdce]{font-weight:700;color:#0f172a;border-top:2px solid #e2e8f0}.td-total-label[data-v-6567cdce]{text-align:left!important;padding-left:16px!important;font-size:12px}.td-period[data-v-6567cdce]{font-weight:700;text-align:left!important;padding-left:16px!important}.td-period-name[data-v-6567cdce]{font-weight:600;color:#4b5563;font-size:11px}.td-date[data-v-6567cdce]{font-size:11.5px;color:#475569}.td-time[data-v-6567cdce]{font-family:SF Mono,Fira Code,monospace;font-size:11.5px;color:#475569}.td-reason[data-v-6567cdce]{max-width:120px;overflow:hidden;text-overflow:ellipsis;text-align:left!important;font-size:11px;color:#64748b}.empty-row[data-v-6567cdce]{padding:32px 0;color:#94a3b8;font-size:13px;text-align:center!important}.status-badge[data-v-6567cdce]{display:inline-block;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px}.status-done[data-v-6567cdce]{background:#f1f5f9;color:#64748b}.status-active[data-v-6567cdce]{background:#dbeafe;color:#1d4ed8}.status-future[data-v-6567cdce]{background:#f0fdf4;color:#15803d}.scholarship-badge[data-v-6567cdce]{display:inline-block;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px}.badge-grant[data-v-6567cdce]{background:#dcfce7;color:#15803d}.badge-no[data-v-6567cdce]{background:#fef2f2;color:#b91c1c}.att-badge[data-v-6567cdce]{display:inline-block;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px}.att-PRESENT[data-v-6567cdce]{background:#dcfce7;color:#15803d}.att-ABSENT[data-v-6567cdce]{background:#fee2e2;color:#b91c1c}.att-future[data-v-6567cdce]{background:#f1f5f9;color:#94a3b8}.att-none[data-v-6567cdce]{background:#fef9c3;color:#a16207}.att-nontraining[data-v-6567cdce]{background:#f1f5f9;color:#94a3b8}.att-LATE[data-v-6567cdce]{background:#fef9c3;color:#a16207}.att-EARLY_LEAVE[data-v-6567cdce]{background:#ffedd5;color:#c2410c}.att-EARLY_LEAVE_RETURN[data-v-6567cdce]{background:#dbeafe;color:#1d4ed8}.att-LATE_EARLY_LEAVE[data-v-6567cdce]{background:#fee2c7;color:#b45309}.excuse-badge[data-v-6567cdce]{display:inline-block;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px}.badge-approved[data-v-6567cdce]{background:#dcfce7;color:#15803d}.badge-pending[data-v-6567cdce]{background:#fef9c3;color:#a16207}.badge-rejected[data-v-6567cdce]{background:#fee2e2;color:#b91c1c}.excuse-link[data-v-6567cdce]{font-size:11px;color:#6b35ff;font-weight:600;text-decoration:none;white-space:nowrap}.excuse-link[data-v-6567cdce]:hover{text-decoration:underline}.excuse-reapply[data-v-6567cdce]{margin-left:6px}.note-types[data-v-6567cdce]{font-size:11px;font-weight:700;background:#f0f9ff;color:#0369a1;padding:2px 7px;border-radius:5px}.note-empty[data-v-6567cdce]{color:#d1d5db;font-size:11px}.note-form[data-v-6567cdce]{display:flex;flex-direction:column;gap:12px}.note-form-row[data-v-6567cdce]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.note-label[data-v-6567cdce]{font-size:12px;font-weight:700;color:#374151;white-space:nowrap;min-width:80px}.req[data-v-6567cdce]{color:#dc2626}.note-input[data-v-6567cdce]{flex:1;min-width:150px;border:1.5px solid #e2e8f0;border-radius:8px;padding:7px 10px;font-size:13px;color:#0f172a;background:#f8fafc;outline:none}.note-input[data-v-6567cdce]:focus{border-color:#6b35ff}.time-input[data-v-6567cdce]{max-width:110px;flex:none}.note-date-input[data-v-6567cdce]{max-width:180px;flex:none}.note-dow[data-v-6567cdce]{font-size:13px;font-weight:700;color:#6b35ff;white-space:nowrap}.check-group[data-v-6567cdce]{display:flex;gap:10px;flex-wrap:wrap}.check-item[data-v-6567cdce]{display:flex;align-items:center;gap:5px;font-size:13px;color:#374151;cursor:pointer}.check-item input[data-v-6567cdce]{width:15px;height:15px;cursor:pointer}.note-form-actions[data-v-6567cdce]{display:flex;align-items:center;gap:10px;justify-content:flex-end}.note-form-error[data-v-6567cdce]{font-size:12px;color:#dc2626}.note-form-ok[data-v-6567cdce]{font-size:12px;color:#16a34a;font-weight:700}.note-submit-btn[data-v-6567cdce]{background:#6b35ff;color:#fff;border:none;border-radius:8px;padding:8px 20px;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:6px}.note-submit-btn[data-v-6567cdce]:disabled{background:#a78bfa;cursor:not-allowed}.note-delete-btn[data-v-6567cdce]{background:#fff;color:#dc2626;border:1.5px solid #fecaca;border-radius:8px;padding:8px 18px;font-size:13px;font-weight:700;cursor:pointer}.note-delete-btn[data-v-6567cdce]:hover:not(:disabled){background:#fef2f2;border-color:#dc2626}.note-delete-btn[data-v-6567cdce]:disabled{opacity:.5;cursor:not-allowed}.note-input[data-v-6567cdce]:disabled{background:#eef2f7;color:#64748b;cursor:not-allowed}.note-edit-chip[data-v-6567cdce]{font-size:10.5px;font-weight:700;color:#b45309;background:#fef3c7;border-radius:5px;padding:2px 7px}.note-cancel-link[data-v-6567cdce]{margin-left:auto;background:none;border:none;padding:0;font-size:11.5px;font-weight:700;color:#6b35ff;cursor:pointer}.note-cancel-link[data-v-6567cdce]:hover{text-decoration:underline}.mini-spinner[data-v-6567cdce]{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-6567cdce .7s linear infinite}.note-history[data-v-6567cdce]{margin-top:16px;border-top:1px solid #f1f5f9;padding-top:12px}.note-history-title[data-v-6567cdce]{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#374151;margin-bottom:8px}.nh-count[data-v-6567cdce]{font-size:10.5px;font-weight:700;color:#6b35ff;background:#f6f2ff;border-radius:5px;padding:2px 7px}.note-history-list[data-v-6567cdce]{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow-y:auto}.note-history-empty[data-v-6567cdce]{padding:16px;text-align:center;color:#94a3b8;font-size:12px}.note-history-row[data-v-6567cdce]{display:flex;gap:8px;align-items:center;font-size:12px;background:#f8fafc;border-radius:8px;padding:8px 12px;border:1.5px solid transparent;cursor:pointer}.note-history-row[data-v-6567cdce]:hover{background:#f0f5ff}.note-history-row.nh-selected[data-v-6567cdce]{background:#f6f2ff;border-color:#6b35ff}.nh-date[data-v-6567cdce]{font-weight:700;color:#6b35ff;white-space:nowrap;min-width:110px}.nh-types[data-v-6567cdce]{font-weight:700;color:#0369a1;background:#f0f9ff;padding:2px 7px;border-radius:5px;white-space:nowrap}.nh-reason[data-v-6567cdce]{color:#4b5563;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leave-summary[data-v-6567cdce]{display:flex;gap:14px;align-items:flex-start;background:#f8fafc;border-radius:10px;padding:14px}.leave-total-box[data-v-6567cdce]{display:flex;flex-direction:column;align-items:center;min-width:52px}.leave-total-num[data-v-6567cdce]{font-size:34px;font-weight:900;color:#0f172a;line-height:1}.leave-total-label[data-v-6567cdce]{font-size:12px;font-weight:600;color:#64748b}.leave-breakdown[data-v-6567cdce]{display:flex;flex-direction:column;gap:5px;flex:1}.lb-row[data-v-6567cdce]{display:flex;align-items:center;gap:5px;font-size:11px}.lb-dot[data-v-6567cdce]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-illness[data-v-6567cdce]{background:#ef4444}.dot-vacation[data-v-6567cdce]{background:#3b82f6}.dot-general[data-v-6567cdce]{background:#f59e0b}.lb-type[data-v-6567cdce]{color:#475569;flex:1}.lb-days[data-v-6567cdce]{font-weight:700;color:#0f172a;white-space:nowrap}.lb-note[data-v-6567cdce]{margin:1px 0 4px 13px;font-size:10px;font-weight:600;color:#ef4444}.lb-unit[data-v-6567cdce]{font-size:10px;color:#94a3b8}.leave-list[data-v-6567cdce]{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.leave-list-header[data-v-6567cdce]{display:flex;gap:4px;padding:8px 10px;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:11px;font-weight:700;color:#64748b}.leave-list-body[data-v-6567cdce]{max-height:200px;overflow-y:auto}.leave-row[data-v-6567cdce]{display:flex;gap:4px;padding:8px 10px;border-bottom:1px solid #f1f5f9;font-size:11.5px;color:#374151;align-items:center}.leave-row[data-v-6567cdce]:last-child{border-bottom:none}.leave-col-date[data-v-6567cdce]{width:96px;flex-shrink:0;font-size:11px}.leave-col-type[data-v-6567cdce]{flex:1;color:#475569;font-size:11px}.leave-col-status[data-v-6567cdce]{display:flex;align-items:center;gap:4px;white-space:nowrap;font-size:11px;flex-shrink:0}.leave-status-dot[data-v-6567cdce]{width:7px;height:7px;border-radius:50%;flex-shrink:0}.dot-pending[data-v-6567cdce]{background:#f59e0b}.dot-approved[data-v-6567cdce]{background:#22c55e}.dot-rejected[data-v-6567cdce]{background:#ef4444}.leave-empty[data-v-6567cdce]{padding:20px;text-align:center;color:#94a3b8;font-size:12px}.max-days-badge[data-v-6567cdce]{margin-left:auto;font-size:11px;font-weight:700;border:1.5px solid #ef4444;color:#ef4444;border-radius:8px;padding:2px 8px;white-space:nowrap}.apply-status-btn[data-v-6567cdce]{margin-left:auto;font-size:11.5px;font-weight:700;background:#6b35ff;color:#fff;border:none;border-radius:8px;padding:5px 12px;cursor:pointer;white-space:nowrap}.apply-status-btn[data-v-6567cdce]:hover{background:#5a2de0}.leave-all-modal[data-v-6567cdce]{background:#fff;border-radius:16px;width:100%;max-width:560px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040;overflow:hidden}.lam-body[data-v-6567cdce]{padding:12px 16px 16px;overflow-y:auto}.lam-table[data-v-6567cdce]{width:100%;border-collapse:collapse;font-size:12.5px}.lam-table th[data-v-6567cdce]{background:#f8fafc;border-bottom:2px solid #e2e8f0;padding:8px 10px;text-align:left;font-weight:700;color:#64748b;font-size:11.5px;white-space:nowrap}.lam-table td[data-v-6567cdce]{padding:8px 10px;border-bottom:1px solid #f1f5f9;color:#374151}.lam-row[data-v-6567cdce]{cursor:pointer}.lam-row:hover td[data-v-6567cdce]{background:#f6f2ff}.lam-reject[data-v-6567cdce]{color:#dc2626;font-size:11.5px}.leave-row-click[data-v-6567cdce]{cursor:pointer}.leave-row-click[data-v-6567cdce]:hover{background:#f0f5ff}.c-pending-txt[data-v-6567cdce]{color:#d97706;font-weight:700}.c-approved-txt[data-v-6567cdce]{color:#16a34a;font-weight:700}.c-rejected-txt[data-v-6567cdce]{color:#dc2626;font-weight:700}.c-red[data-v-6567cdce]{color:#dc2626}.leave-detail-overlay[data-v-6567cdce]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.leave-detail-modal[data-v-6567cdce]{background:#fff;border-radius:16px;width:100%;max-width:400px;box-shadow:0 20px 60px #00000040;overflow:hidden}.ldm-header[data-v-6567cdce]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.ldm-title[data-v-6567cdce]{font-size:15px;font-weight:800;color:#0f172a}.ldm-close[data-v-6567cdce]{background:none;border:none;font-size:16px;cursor:pointer;color:#64748b;padding:4px 8px;border-radius:6px;line-height:1}.ldm-close[data-v-6567cdce]:hover{background:#f1f5f9;color:#0f172a}.ldm-body[data-v-6567cdce]{padding:20px;display:flex;flex-direction:column;gap:12px}.ldm-row[data-v-6567cdce]{display:flex;gap:12px;align-items:flex-start}.ldm-label[data-v-6567cdce]{font-size:12px;font-weight:700;color:#64748b;white-space:nowrap;min-width:70px}.ldm-value[data-v-6567cdce]{font-size:13px;color:#0f172a;flex:1;word-break:break-word}.ldm-status-val[data-v-6567cdce]{display:flex;align-items:center;gap:6px}.ldm-link[data-v-6567cdce]{font-size:13px;color:#6b35ff;text-decoration:underline;word-break:break-all;flex:1}.ldm-link[data-v-6567cdce]:hover{color:#5b21b6}.period-select-inline[data-v-6567cdce]{margin-top:4px;border:1.5px solid #d8ccff;border-radius:8px;padding:5px 10px;font-size:13px;font-weight:600;color:#6b35ff;background:#f6f2ff;cursor:pointer;outline:none;max-width:100%}.period-select-inline[data-v-6567cdce]:focus{border-color:#6b35ff}.period-filter-row[data-v-6567cdce]{display:flex;justify-content:flex-end}.period-filter-sel[data-v-6567cdce]{border:1px solid #e2e8f0;background:#f8fafc;border-radius:8px;padding:6px 10px;font-size:12px;color:#475569;cursor:pointer}.daily-cards[data-v-6567cdce]{display:none}.dc-empty[data-v-6567cdce]{padding:24px;text-align:center;color:#94a3b8;font-size:13px}.dc-item[data-v-6567cdce]{border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;margin-bottom:8px;background:#fff}.dc-top[data-v-6567cdce]{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.dc-date[data-v-6567cdce]{font-size:13.5px;font-weight:800;color:#0f172a}.dc-times[data-v-6567cdce]{display:flex;gap:14px;font-size:13px;color:#0f172a;font-variant-numeric:tabular-nums;margin-bottom:4px}.dc-t b[data-v-6567cdce]{font-size:11px;font-weight:700;color:#94a3b8;margin-right:4px}.dc-meta[data-v-6567cdce]{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px}.dc-period[data-v-6567cdce]{font-size:11px;color:#94a3b8;font-weight:600}.dc-note[data-v-6567cdce]{margin-top:6px;padding-top:6px;border-top:1px dashed #e2e8f0;font-size:12px}.dc-note-reason[data-v-6567cdce]{color:#64748b;margin-left:6px}@media (max-width: 767px){.daily-wrap[data-v-6567cdce]{display:none}.daily-cards[data-v-6567cdce]{display:block}}@media (max-width: 1023px){.content-right[data-v-6567cdce]{width:100%}.stat-chip[data-v-6567cdce]{min-width:80px}.chip-value[data-v-6567cdce]{font-size:18px}}@media (max-width: 600px){.stats-row[data-v-6567cdce]{gap:6px}.stat-chip[data-v-6567cdce]{padding:8px 10px}.chip-value[data-v-6567cdce]{font-size:16px}}.page[data-v-2274fff5]{display:flex;flex-direction:column;gap:16px}.page-title[data-v-2274fff5]{font-size:20px;font-weight:800;color:#0f172a}.page-sub[data-v-2274fff5]{font-size:13px;color:#64748b;margin-top:-8px}.form-card[data-v-2274fff5],.list-card[data-v-2274fff5]{background:#fff;border-radius:16px;padding:20px;box-shadow:0 1px 4px #0000000f}.form-title[data-v-2274fff5],.list-head[data-v-2274fff5]{font-size:14px;font-weight:700;color:#0f172a;margin-bottom:16px}.form-row[data-v-2274fff5]{margin-bottom:14px}.form-label[data-v-2274fff5]{display:block;font-size:12px;font-weight:700;color:#475569;margin-bottom:6px}.form-hint[data-v-2274fff5]{font-weight:400;color:#94a3b8}.form-input[data-v-2274fff5],.form-textarea[data-v-2274fff5]{width:100%;padding:10px 12px;border:1.5px solid #e2e8f0;border-radius:10px;font-size:14px;color:#0f172a;background:#f8fafc;outline:none;transition:border-color .15s;font-family:inherit}.form-input[data-v-2274fff5]:focus,.form-textarea[data-v-2274fff5]:focus{border-color:#6b35ff;background:#fff}.form-textarea[data-v-2274fff5]{resize:vertical;min-height:64px}.date-row[data-v-2274fff5]{display:flex;align-items:center;gap:6px}.date-input[data-v-2274fff5]{flex:0 0 auto;width:auto;min-width:150px}.date-today-btn[data-v-2274fff5]{flex-shrink:0;padding:8px 12px;border:1.5px solid #c7d2fe;border-radius:8px;background:#f0f4ff;color:#6b35ff;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;line-height:1}.date-today-btn[data-v-2274fff5]:hover{background:#e0e7ff}.file-privacy-notice[data-v-2274fff5]{margin:6px 0 0;font-size:12px;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:7px 10px;line-height:1.5}.file-drop[data-v-2274fff5]{border:1.5px dashed #c7d2fe;border-radius:10px;padding:16px;cursor:pointer;text-align:center;background:#f8fafc;transition:border-color .15s}.file-drop[data-v-2274fff5]:hover{border-color:#6b35ff}.file-hidden[data-v-2274fff5]{display:none}.file-placeholder[data-v-2274fff5]{font-size:13px;color:#94a3b8}.file-name[data-v-2274fff5]{font-size:13px;color:#6b35ff;font-weight:600}.file-list[data-v-2274fff5]{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.file-chip[data-v-2274fff5]{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#6b35ff;background:#f2ecff;border-radius:999px;padding:3px 8px 3px 10px}.file-remove[data-v-2274fff5]{border:none;background:transparent;color:#a78bda;cursor:pointer;font-size:12px;line-height:1;padding:0 2px}.file-remove[data-v-2274fff5]:hover{color:#6b35ff}.form-error[data-v-2274fff5]{background:#fef2f2;color:#dc2626;border:1px solid #fecaca;border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:12px}.err-enter-active[data-v-2274fff5],.err-leave-active[data-v-2274fff5]{transition:all .2s}.err-enter-from[data-v-2274fff5],.err-leave-to[data-v-2274fff5]{opacity:0}.submit-btn[data-v-2274fff5]{width:100%;height:52px;background:#6b35ff;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center}.submit-btn[data-v-2274fff5]:disabled{background:#a78bfa;cursor:not-allowed}.submit-btn[data-v-2274fff5]:not(:disabled):hover{background:#5a2de0}.btn-spinner[data-v-2274fff5]{width:20px;height:20px;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin-2274fff5 .7s linear infinite}@keyframes spin-2274fff5{to{transform:rotate(360deg)}}.loading-box[data-v-2274fff5]{display:flex;justify-content:center;padding:40px 0}.spinner[data-v-2274fff5]{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-2274fff5 .8s linear infinite}.empty-msg[data-v-2274fff5]{text-align:center;color:#94a3b8;font-size:14px;padding:32px 0}.list-item[data-v-2274fff5]{padding:12px 0;border-bottom:1px solid #f1f5f9}.list-item[data-v-2274fff5]:last-child{border-bottom:none}.list-item-top[data-v-2274fff5]{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.list-date[data-v-2274fff5]{font-size:14px;font-weight:700;color:#0f172a}.list-badge[data-v-2274fff5]{font-size:12px;font-weight:700;padding:3px 10px;border-radius:8px}.badge-pending[data-v-2274fff5]{background:#f1f5f9;color:#64748b}.badge-approved[data-v-2274fff5]{background:#dcfce7;color:#15803d}.badge-rejected[data-v-2274fff5]{background:#fee2e2;color:#b91c1c}.list-note[data-v-2274fff5]{font-size:13px;color:#475569;margin-bottom:2px}.list-reject[data-v-2274fff5]{font-size:12.5px;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:5px 10px;margin-bottom:4px}.list-file[data-v-2274fff5]{display:inline-block;font-size:12px;color:#6b35ff;margin-bottom:2px;text-decoration:none;cursor:pointer;word-break:break-all}.list-file[data-v-2274fff5]:hover{text-decoration:underline}.list-created[data-v-2274fff5]{font-size:11px;color:#94a3b8}.add-doc[data-v-2274fff5]{margin:6px 0 4px}.add-doc-btn[data-v-2274fff5]{font-size:12px;font-weight:600;color:#6b35ff;background:#f5f1ff;border:1px solid #ddd0ff;border-radius:8px;padding:5px 10px;cursor:pointer}.add-doc-btn[data-v-2274fff5]:hover{background:#ece4ff}.add-doc-panel[data-v-2274fff5]{background:#fafafa;border:1px solid #e5e7eb;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px}.add-doc-input[data-v-2274fff5]{font-size:12px}.add-doc-picked[data-v-2274fff5]{display:flex;flex-wrap:wrap;gap:5px}.add-doc-chip[data-v-2274fff5]{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;font-weight:600;background:#f5f1ff;color:#6b35ff;border-radius:12px;padding:3px 8px;word-break:break-all}.add-doc-x[data-v-2274fff5]{border:none;background:none;color:inherit;font-size:13px;line-height:1;cursor:pointer;padding:0 1px}.add-doc-hint[data-v-2274fff5]{font-size:11px;color:#94a3b8;line-height:1.5}.add-doc-error[data-v-2274fff5]{font-size:11.5px;color:#dc2626}.add-doc-actions[data-v-2274fff5]{display:flex;gap:6px}.add-doc-submit[data-v-2274fff5]{flex:1;font-size:12.5px;font-weight:600;color:#fff;background:#6b35ff;border:none;border-radius:8px;padding:7px 10px;cursor:pointer}.add-doc-submit[data-v-2274fff5]:disabled{opacity:.5;cursor:not-allowed}.add-doc-cancel[data-v-2274fff5]{font-size:12.5px;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:7px 12px;cursor:pointer}.toast[data-v-2274fff5]{position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:#0f172a;color:#fff;padding:12px 24px;border-radius:40px;font-size:14px;font-weight:600;z-index:9999;white-space:nowrap;box-shadow:0 8px 28px #00000059}.toast-enter-active[data-v-2274fff5],.toast-leave-active[data-v-2274fff5]{transition:all .25s}.toast-enter-from[data-v-2274fff5],.toast-leave-to[data-v-2274fff5]{opacity:0;transform:translate(-50%) translateY(8px)}.page[data-v-2f8cafe6]{display:flex;flex-direction:column;gap:16px}.page-title[data-v-2f8cafe6]{font-size:20px;font-weight:800;color:#0f172a}.page-sub[data-v-2f8cafe6]{font-size:13px;color:#64748b;margin-top:-8px}.tab-row[data-v-2f8cafe6]{display:flex;background:#f1f5f9;border-radius:12px;padding:4px;gap:4px}.tab-btn[data-v-2f8cafe6]{flex:1;padding:10px;border:none;background:none;border-radius:9px;font-size:13px;font-weight:700;color:#94a3b8;cursor:pointer;transition:all .15s}.tab-btn.active[data-v-2f8cafe6]{background:#fff;color:#6b35ff;box-shadow:0 1px 4px #00000014}.form-card[data-v-2f8cafe6],.list-card[data-v-2f8cafe6]{background:#fff;border-radius:16px;padding:20px;box-shadow:0 1px 4px #0000000f}.form-title[data-v-2f8cafe6],.list-head[data-v-2f8cafe6]{font-size:14px;font-weight:700;color:#0f172a;margin-bottom:16px}.notice-box[data-v-2f8cafe6]{background:#fefce8;border:1px solid #fde68a;border-radius:10px;padding:12px 14px;font-size:13px;color:#92400e;line-height:1.6;margin-bottom:16px}.form-row[data-v-2f8cafe6]{margin-bottom:14px}.form-label[data-v-2f8cafe6]{display:block;font-size:12px;font-weight:700;color:#475569;margin-bottom:6px}.req[data-v-2f8cafe6]{color:#dc2626}.form-input[data-v-2f8cafe6],.form-textarea[data-v-2f8cafe6]{width:100%;padding:10px 12px;border:1.5px solid #e2e8f0;border-radius:10px;font-size:14px;color:#0f172a;background:#f8fafc;outline:none;transition:border-color .15s;font-family:inherit;box-sizing:border-box}.form-input[data-v-2f8cafe6]:focus,.form-textarea[data-v-2f8cafe6]:focus{border-color:#6b35ff;background:#fff}.form-textarea[data-v-2f8cafe6]{resize:vertical;min-height:72px}.form-error[data-v-2f8cafe6]{background:#fef2f2;color:#dc2626;border:1px solid #fecaca;border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:12px}.form-ok[data-v-2f8cafe6]{background:#f0fdf4;color:#15803d;border:1px solid #86efac;border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:12px;font-weight:600}.err-enter-active[data-v-2f8cafe6],.err-leave-active[data-v-2f8cafe6]{transition:all .2s}.err-enter-from[data-v-2f8cafe6],.err-leave-to[data-v-2f8cafe6]{opacity:0}.submit-btn[data-v-2f8cafe6]{width:100%;height:50px;background:#6b35ff;color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center}.submit-btn[data-v-2f8cafe6]:disabled{background:#a78bfa;cursor:not-allowed}.submit-btn[data-v-2f8cafe6]:not(:disabled):hover{background:#5a2de0}.btn-spinner[data-v-2f8cafe6]{width:18px;height:18px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin-2f8cafe6 .7s linear infinite}@keyframes spin-2f8cafe6{to{transform:rotate(360deg)}}.loading-box[data-v-2f8cafe6]{display:flex;justify-content:center;padding:40px 0}.spinner[data-v-2f8cafe6]{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-2f8cafe6 .8s linear infinite}.empty-msg[data-v-2f8cafe6]{text-align:center;color:#94a3b8;font-size:14px;padding:32px 0}.list-body[data-v-2f8cafe6]{display:flex;flex-direction:column;gap:0}.list-item[data-v-2f8cafe6]{padding:14px 0;border-bottom:1px solid #f1f5f9}.list-item[data-v-2f8cafe6]:last-child{border-bottom:none}.list-item-top[data-v-2f8cafe6]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:6px}.list-item-left[data-v-2f8cafe6]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.list-type-badge[data-v-2f8cafe6]{font-size:11px;font-weight:700;padding:3px 9px;border-radius:6px}.type-PARTICIPATION[data-v-2f8cafe6]{background:#ede9fe;color:#6b35ff}.type-ATTENDANCE_RECORD[data-v-2f8cafe6]{background:#dbeafe;color:#1d4ed8}.list-date[data-v-2f8cafe6]{font-size:13px;font-weight:600;color:#374151}.status-badge[data-v-2f8cafe6]{font-size:12px;font-weight:700;padding:3px 10px;border-radius:8px;flex-shrink:0}.status-PENDING[data-v-2f8cafe6]{background:#f1f5f9;color:#64748b}.status-APPROVED[data-v-2f8cafe6]{background:#dcfce7;color:#15803d}.status-REJECTED[data-v-2f8cafe6]{background:#fee2e2;color:#b91c1c}.list-meta[data-v-2f8cafe6]{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:6px}.meta-item[data-v-2f8cafe6]{font-size:13px;color:#475569;display:flex;gap:4px}.meta-label[data-v-2f8cafe6]{font-weight:700;color:#94a3b8}.list-reject[data-v-2f8cafe6]{font-size:12px;color:#b91c1c;background:#fef2f2;border-radius:6px;padding:6px 10px;margin-bottom:6px}.list-actions[data-v-2f8cafe6]{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.list-created[data-v-2f8cafe6]{font-size:11px;color:#94a3b8}.download-btn[data-v-2f8cafe6]{background:#6b35ff;color:#fff;border:none;border-radius:8px;padding:7px 16px;font-size:13px;font-weight:700;cursor:pointer}.download-btn[data-v-2f8cafe6]:hover{background:#5a2de0}.pending-file-msg[data-v-2f8cafe6]{font-size:12px;color:#94a3b8;font-style:italic}.page[data-v-98bbd34e]{padding:20px 16px;max-width:560px;margin:0 auto}.page-title[data-v-98bbd34e]{font-size:20px;font-weight:800;color:#0f172a;margin-bottom:16px}.guide-card[data-v-98bbd34e]{background:#f8f6ff;border:1px solid #ddd3ff;border-radius:16px;padding:18px 20px;margin-bottom:16px}.guide-head[data-v-98bbd34e]{font-size:15px;font-weight:800;color:#4c1d95;margin-bottom:10px}.guide-intro[data-v-98bbd34e]{font-size:13.5px;color:#334155;line-height:1.7;margin:0 0 12px}.guide-intro b[data-v-98bbd34e]{color:#4c1d95}.guide-note-item[data-v-98bbd34e]{list-style:none;margin-left:-8px;color:#7c3aed;font-size:12.5px}.guide-list[data-v-98bbd34e]{margin:0;padding-left:18px;font-size:13.5px;color:#334155;line-height:1.9}.guide-list>li[data-v-98bbd34e]{margin-bottom:2px}.guide-list b[data-v-98bbd34e]{color:#1e293b}.guide-sublist[data-v-98bbd34e]{margin:4px 0 6px;padding-left:16px;font-size:13px;color:#475569;line-height:1.8;list-style:circle}.guide-notice[data-v-98bbd34e]{margin-top:14px;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:12px 14px;font-size:13px;color:#9a3412;line-height:1.6}.guide-notice b[data-v-98bbd34e]{color:#7c2d12}.cert-card[data-v-98bbd34e]{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:24px 20px;box-shadow:0 4px 16px #0000000a}.cert-desc[data-v-98bbd34e]{font-size:13.5px;color:#475569;line-height:1.6;margin:0 0 20px}.cert-field[data-v-98bbd34e]{margin-bottom:18px}.cert-label[data-v-98bbd34e]{display:block;font-size:13px;font-weight:700;color:#334155;margin-bottom:7px}.cert-label .req[data-v-98bbd34e]{color:#ef4444}.cert-input[data-v-98bbd34e]{width:100%;padding:12px 14px;border:1.5px solid #e2e8f0;border-radius:10px;font-size:15px;color:#0f172a;background:#f8fafc;outline:none}.cert-input[data-v-98bbd34e]:focus{border-color:#6b35ff;background:#fff}.date-range[data-v-98bbd34e]{display:flex;align-items:center;gap:8px}.date-range .cert-input[data-v-98bbd34e]{flex:1}.date-tilde[data-v-98bbd34e]{color:#94a3b8;font-weight:700}.cert-hint[data-v-98bbd34e]{font-size:12px;color:#94a3b8;margin:6px 0 0}.cert-error[data-v-98bbd34e]{background:#fef2f2;color:#dc2626;border:1px solid #fecaca;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:14px}.cert-btn[data-v-98bbd34e]{width:100%;height:50px;margin-top:6px;background:#6b35ff;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:background .15s}.cert-btn[data-v-98bbd34e]:hover:not(:disabled){background:#5a2de0}.cert-btn[data-v-98bbd34e]:disabled{background:#a78bfa;cursor:not-allowed}.cert-note[data-v-98bbd34e]{font-size:12px;color:#94a3b8;margin:14px 0 0;line-height:1.6}.page[data-v-2f1c0ea7]{display:flex;flex-direction:column;gap:16px}.page-title[data-v-2f1c0ea7]{font-size:20px;font-weight:800;color:#0f172a}.loading-box[data-v-2f1c0ea7]{display:flex;justify-content:center;padding:60px 0}.spinner[data-v-2f1c0ea7]{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-2f1c0ea7 .8s linear infinite}@keyframes spin-2f1c0ea7{to{transform:rotate(360deg)}}.error-box[data-v-2f1c0ea7]{background:#fef2f2;color:#dc2626;border-radius:12px;padding:20px;text-align:center}.summary-grid[data-v-2f1c0ea7]{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.summary-card[data-v-2f1c0ea7]{background:#fff;border-radius:14px;padding:20px 8px;text-align:center;box-shadow:0 1px 4px #0000000f;display:flex;flex-direction:column;align-items:center;gap:4px}.s-num[data-v-2f1c0ea7]{font-size:32px;font-weight:800}.s-label[data-v-2f1c0ea7]{font-size:12px;font-weight:600;color:#64748b}.s-pending .s-num[data-v-2f1c0ea7]{color:#d97706}.s-approved .s-num[data-v-2f1c0ea7]{color:#16a34a}.s-rejected .s-num[data-v-2f1c0ea7]{color:#dc2626}.list-card[data-v-2f1c0ea7]{background:#fff;border-radius:16px;padding:20px;box-shadow:0 1px 4px #0000000f}.list-head[data-v-2f1c0ea7]{font-size:14px;font-weight:700;color:#0f172a;margin-bottom:16px}.empty-msg[data-v-2f1c0ea7]{text-align:center;color:#94a3b8;font-size:14px;padding:32px 0}.item[data-v-2f1c0ea7]{padding:12px 0;border-bottom:1px solid #f1f5f9}.item[data-v-2f1c0ea7]:last-child{border-bottom:none}.item-top[data-v-2f1c0ea7]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.item-left[data-v-2f1c0ea7]{display:flex;align-items:center;gap:8px}.item-date[data-v-2f1c0ea7]{font-size:15px;font-weight:700;color:#0f172a}.item-type[data-v-2f1c0ea7]{font-size:11px;font-weight:700;color:#6b35ff;background:#ede9fe;padding:2px 8px;border-radius:6px}.item-badge[data-v-2f1c0ea7]{font-size:12px;font-weight:700;padding:3px 12px;border-radius:8px}.badge-pending[data-v-2f1c0ea7]{background:#f1f5f9;color:#64748b}.badge-approved[data-v-2f1c0ea7]{background:#dcfce7;color:#15803d}.badge-rejected[data-v-2f1c0ea7]{background:#fee2e2;color:#b91c1c}.item-note[data-v-2f1c0ea7]{font-size:13px;color:#475569;margin-bottom:4px}.item-meta[data-v-2f1c0ea7]{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;color:#94a3b8}.page[data-v-03528de4]{display:flex;flex-direction:column;gap:16px}.page-title-row[data-v-03528de4]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.page-title[data-v-03528de4]{font-size:20px;font-weight:800;color:#0f172a}.right-controls[data-v-03528de4]{display:flex;align-items:center;gap:8px}.search-input[data-v-03528de4]{padding:8px 12px;border:1.5px solid #e2e8f0;border-radius:10px;font-size:13px;outline:none;background:#fff;width:160px}.search-input[data-v-03528de4]:focus{border-color:#6b35ff}.view-toggle[data-v-03528de4]{display:flex;border:1.5px solid #e2e8f0;border-radius:10px;overflow:hidden}.toggle-btn[data-v-03528de4]{padding:7px 16px;border:none;background:#fff;font-size:13px;font-weight:600;color:#64748b;cursor:pointer;transition:all .15s}.toggle-btn.active[data-v-03528de4]{background:#6b35ff;color:#fff}.loading-box[data-v-03528de4]{display:flex;justify-content:center;padding:60px 0}.spinner[data-v-03528de4]{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-03528de4 .8s linear infinite}@keyframes spin-03528de4{to{transform:rotate(360deg)}}.error-box[data-v-03528de4]{background:#fef2f2;color:#dc2626;border-radius:12px;padding:20px;text-align:center}.today-card[data-v-03528de4]{background:linear-gradient(135deg,#6b35ff,#4f46e5);border-radius:18px;padding:20px 24px;box-shadow:0 6px 24px #6b35ff52}.today-card.today-empty[data-v-03528de4]{background:#f1f5f9;box-shadow:none}.today-top[data-v-03528de4]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.today-label[data-v-03528de4]{font-size:11px;font-weight:700;color:#ffffffa6;letter-spacing:.5px;text-transform:uppercase}.today-subject[data-v-03528de4]{font-size:20px;font-weight:800;color:#fff;margin-bottom:12px;line-height:1.3}.today-meta[data-v-03528de4]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.today-instructor[data-v-03528de4]{display:flex;align-items:center;gap:4px;font-size:12px;color:#ffffffbf}.today-classroom[data-v-03528de4]{font-size:12px;color:#ffffffb3}.today-class[data-v-03528de4]{font-size:12px;font-weight:700;color:#fff;background:#ffffff2e;padding:2px 8px;border-radius:6px}.today-actions[data-v-03528de4]{display:flex;gap:8px;flex-wrap:wrap}.today-btn[data-v-03528de4]{display:flex;align-items:center;gap:5px;padding:7px 14px;border:none;border-radius:20px;font-size:12px;font-weight:700;cursor:pointer;transition:opacity .15s}.today-btn[data-v-03528de4]:hover{opacity:.85}.mat-btn[data-v-03528de4]{background:#ffffff2e;color:#fff}.quiz-btn[data-v-03528de4]{background:#ffdc0038;color:#fff}.prac-btn[data-v-03528de4]{background:#00ffb42e;color:#fff}.tab-row[data-v-03528de4]{display:flex;gap:8px}.tab-btn[data-v-03528de4]{padding:8px 20px;border:1.5px solid #e2e8f0;background:#fff;border-radius:10px;font-size:13px;font-weight:600;color:#64748b;cursor:pointer;transition:all .15s}.tab-btn.active[data-v-03528de4]{background:#6b35ff;border-color:#6b35ff;color:#fff}.grid-card[data-v-03528de4]{background:#fff;border-radius:16px;box-shadow:0 1px 4px #0000000f;overflow:hidden}.empty-msg[data-v-03528de4]{text-align:center;color:#94a3b8;font-size:14px;padding:40px 0}.grid-table[data-v-03528de4]{display:flex;flex-direction:column}.grid-head[data-v-03528de4]{display:grid;grid-template-columns:72px 1fr 84px 100px 80px 52px 80px;background:#f8fafc;border-bottom:2px solid #e2e8f0;padding:0 16px}.gh-cell[data-v-03528de4]{padding:10px 8px;font-size:11px;font-weight:700;color:#64748b;text-align:center;white-space:nowrap}.gh-date[data-v-03528de4],.gh-subject[data-v-03528de4]{text-align:left}.gh-ltime[data-v-03528de4],.gh-instructor[data-v-03528de4]{text-align:center}.grid-row[data-v-03528de4]{display:grid;grid-template-columns:72px 1fr 84px 100px 80px 52px 80px;padding:0 16px;border-bottom:1px solid #f1f5f9;transition:background .12s;align-items:center}.grid-row[data-v-03528de4]:last-child{border-bottom:none}.grid-row[data-v-03528de4]:hover{background:#faf5ff}.grid-row.row-active[data-v-03528de4]{background:#f5f3ff}.grid-row.row-done[data-v-03528de4]{opacity:.6}.gd-cell[data-v-03528de4]{padding:11px 8px;font-size:13px;color:#374151;text-align:center}.gd-date[data-v-03528de4]{text-align:left;font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:5px}.gd-subject[data-v-03528de4]{text-align:left}.gd-ltime[data-v-03528de4]{text-align:center}.gd-btn[data-v-03528de4]{display:flex;align-items:center;justify-content:center}.gh-mode[data-v-03528de4],.gh-class[data-v-03528de4],.gd-mode[data-v-03528de4],.gd-class[data-v-03528de4]{text-align:center}.gd-class[data-v-03528de4]{font-size:12px;font-weight:700;color:#4c1d95}.gd-mode .mode-chip[data-v-03528de4]{display:inline-flex;align-items:center;padding:2px 7px;border-radius:6px;font-size:10.5px;font-weight:700;white-space:nowrap}.ltime-text[data-v-03528de4]{font-size:11px;font-weight:600;color:#334155;white-space:nowrap}.ltime-weekend[data-v-03528de4]{color:#94a3b8}.ltime-holiday[data-v-03528de4]{color:#dc2626;font-weight:700}.ltime-adjusted[data-v-03528de4]{color:#7c3aed}.date-val[data-v-03528de4]{font-size:13px;font-weight:600;color:#1e293b;white-space:nowrap}.dow-val[data-v-03528de4]{font-size:11px;color:#94a3b8;font-weight:600;white-space:nowrap}.dow-val.weekend[data-v-03528de4]{color:#ef4444}.dow-val.holiday[data-v-03528de4]{color:#dc2626}.row-weekend[data-v-03528de4]{background:#fafafa}.row-weekend .date-val[data-v-03528de4],.row-weekend .dow-val[data-v-03528de4],.row-weekend .ltime-text[data-v-03528de4]{color:#94a3b8}.row-holiday[data-v-03528de4]{background:#fff5f5}.row-holiday .date-val[data-v-03528de4],.row-holiday .dow-val[data-v-03528de4]{color:#dc2626}.subject-name[data-v-03528de4]{font-size:13px;font-weight:600;color:#0f172a}.gd-instructor[data-v-03528de4]{font-size:12px;color:#475569}.type-badge[data-v-03528de4]{flex-shrink:0;font-size:10px;font-weight:700;padding:2px 7px;border-radius:5px;white-space:nowrap}.type-lecture[data-v-03528de4]{background:#dbeafe;color:#1d4ed8}.type-special[data-v-03528de4]{background:#fef9c3;color:#a16207}.type-eval[data-v-03528de4]{background:#fce7f3;color:#9d174d}.type-project[data-v-03528de4]{background:#d1fae5;color:#065f46}.mode-chip[data-v-03528de4]{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:20px}.mode-dot[data-v-03528de4]{width:6px;height:6px;border-radius:50%;flex-shrink:0}.mode-online[data-v-03528de4]{background:#dbeafe;color:#1d4ed8}.mode-online .mode-dot[data-v-03528de4]{background:#3b82f6}.mode-offline[data-v-03528de4]{background:#f1f5f9;color:#475569}.mode-offline .mode-dot[data-v-03528de4]{background:#94a3b8}.mode-none[data-v-03528de4]{background:transparent;color:#94a3b8}.act-btn[data-v-03528de4]{font-size:11px;font-weight:700;padding:5px 10px;border:none;border-radius:7px;cursor:pointer;transition:all .15s;white-space:nowrap;width:100%}.act-btn[data-v-03528de4]:hover{filter:brightness(.93)}.btn-mat[data-v-03528de4]{background:#ede9fe;color:#6b35ff}.btn-quiz[data-v-03528de4]{background:#fef9c3;color:#92400e}.btn-prac[data-v-03528de4]{background:#d1fae5;color:#065f46}.no-data[data-v-03528de4]{font-size:12px;color:#d1d5db}@media (max-width: 700px){.grid-card[data-v-03528de4]{overflow-x:auto}.grid-head[data-v-03528de4],.grid-row[data-v-03528de4]{grid-template-columns:62px 120px 88px 64px 64px 60px 60px 60px;min-width:578px}}.cal-card[data-v-03528de4]{background:#fff;border-radius:16px;padding:16px;box-shadow:0 1px 4px #0000000f}.cal-nav[data-v-03528de4]{display:flex;align-items:center;gap:12px;margin-bottom:16px}.cal-nav-btn[data-v-03528de4]{width:32px;height:32px;border:1.5px solid #e2e8f0;background:#fff;border-radius:8px;font-size:18px;cursor:pointer;color:#475569;display:flex;align-items:center;justify-content:center}.cal-nav-btn[data-v-03528de4]:hover{background:#f1f5f9}.cal-title[data-v-03528de4]{font-size:16px;font-weight:800;color:#0f172a;flex:1}.cal-today-btn[data-v-03528de4]{padding:5px 12px;border:1.5px solid #6b35ff;background:#fff;border-radius:8px;font-size:12px;font-weight:700;color:#6b35ff;cursor:pointer}.cal-today-btn[data-v-03528de4]:hover{background:#ede9fe}.cal-grid[data-v-03528de4]{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#e2e8f0;border-radius:12px;overflow:hidden}.cal-dow[data-v-03528de4]{background:#f8fafc;padding:8px 4px;text-align:center;font-size:11px;font-weight:700;color:#64748b}.cal-dow.dow-sun[data-v-03528de4]{color:#ef4444}.cal-dow.dow-sat[data-v-03528de4]{color:#3b82f6}.cal-day[data-v-03528de4]{background:#fff;min-height:88px;padding:5px;display:flex;flex-direction:column;gap:2px;cursor:default;transition:background .12s}.cal-day--active[data-v-03528de4]{cursor:pointer}.cal-day--active[data-v-03528de4]:hover{background:#faf5ff}.cal-day--other[data-v-03528de4]{background:#fafafa}.cal-day--other .cal-day-num[data-v-03528de4]{color:#cbd5e1}.cal-day--today[data-v-03528de4]{background:#faf5ff}.cal-day--weekend[data-v-03528de4]{background:#f8f9fb}.cal-day--weekend.cal-day--other[data-v-03528de4]{background:#f4f5f8}.cal-day--holiday[data-v-03528de4]{background:#fff5f5!important}.cal-day--holiday[data-v-03528de4]:hover{background:#fee2e2!important}.cal-day-top[data-v-03528de4]{display:flex;align-items:center;gap:4px;margin-bottom:3px}.cal-day-num[data-v-03528de4]{font-size:12px;font-weight:700;color:#374151;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.cal-day-num.num-sun[data-v-03528de4]{color:#ef4444}.cal-day-num.num-sat[data-v-03528de4]{color:#3b82f6}.cal-day-num.num-today[data-v-03528de4]{background:#6b35ff;color:#fff!important}.cal-hol-badge[data-v-03528de4]{font-size:9px;font-weight:700;color:#dc2626;background:#fee2e2;padding:1px 4px;border-radius:3px;white-space:nowrap}.cal-event[data-v-03528de4]{font-size:10px;font-weight:600;padding:2px 5px;border-radius:4px;overflow:hidden;line-height:1.4}.cal-event.type-lecture[data-v-03528de4]{background:#dbeafe;color:#1d4ed8}.cal-event.type-special[data-v-03528de4]{background:#fef9c3;color:#a16207}.cal-event.type-eval[data-v-03528de4]{background:#fce7f3;color:#9d174d}.cal-event.type-project[data-v-03528de4]{background:#d1fae5;color:#065f46}.cal-ev-name[data-v-03528de4]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-ev-ltime[data-v-03528de4]{font-size:9px;font-weight:700;color:#7c3aed;margin-top:1px}.cal-ev-instr[data-v-03528de4]{font-size:9px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-more[data-v-03528de4]{font-size:10px;color:#94a3b8;font-weight:600;padding:0 4px}.day-detail-backdrop[data-v-03528de4]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.day-detail[data-v-03528de4]{background:#fff;border-radius:16px;padding:20px;width:100%;max-width:380px;box-shadow:0 8px 32px #0000002e;display:flex;flex-direction:column;gap:10px}.day-detail-header[data-v-03528de4]{display:flex;align-items:center;justify-content:space-between}.day-detail-date[data-v-03528de4]{font-size:15px;font-weight:800;color:#0f172a}.day-detail-close[data-v-03528de4]{width:28px;height:28px;border:none;background:#f1f5f9;border-radius:8px;font-size:13px;cursor:pointer;color:#64748b;display:flex;align-items:center;justify-content:center}.day-holiday-notice[data-v-03528de4]{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#dc2626;background:#fff5f5;padding:8px 12px;border-radius:8px}.day-no-sched[data-v-03528de4]{font-size:13px;color:#94a3b8;text-align:center;padding:12px 0}.day-detail-row[data-v-03528de4]{padding:10px 12px;background:#f8fafc;border-radius:10px}.day-detail-info[data-v-03528de4]{min-width:0}.day-detail-subject[data-v-03528de4]{font-size:14px;font-weight:700;color:#0f172a;margin-bottom:8px}.day-detail-meta[data-v-03528de4]{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px}.ltime-chip[data-v-03528de4]{display:flex;align-items:center;gap:3px;font-size:11px;font-weight:700;color:#334155;background:#f1f5f9;padding:3px 7px;border-radius:5px}.ltime-chip.ltime-adjusted[data-v-03528de4]{color:#7c3aed;background:#ede9fe}.ltime-chip.ltime-holiday[data-v-03528de4]{color:#dc2626;background:#fee2e2}.instructor-chip[data-v-03528de4]{display:flex;align-items:center;gap:3px;font-size:11px;color:#475569;background:#f1f5f9;padding:3px 7px;border-radius:5px}.prac-chip[data-v-03528de4]{color:#0369a1;background:#e0f2fe}.class-chip[data-v-03528de4]{color:#4c1d95;background:#ede9fe;font-weight:700}.link-wrap[data-v-53bb5a96]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#0f172a,#1e3a5f 60%,#0f172a);padding:20px 16px}.link-card[data-v-53bb5a96]{width:100%;max-width:440px;background:#fff;border-radius:24px;padding:44px 32px 36px;box-shadow:0 32px 80px #0006}.link-logo[data-v-53bb5a96]{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.logo-text[data-v-53bb5a96]{font-size:26px;font-weight:900;color:#6b35ff;letter-spacing:1.5px}.logo-badge[data-v-53bb5a96]{font-size:11px;font-weight:700;color:#6b35ff;background:#ede9fe;padding:4px 12px;border-radius:20px}.link-hero[data-v-53bb5a96]{text-align:center;margin-bottom:28px}.link-icon[data-v-53bb5a96]{font-size:48px;margin-bottom:12px}.link-title[data-v-53bb5a96]{font-size:20px;font-weight:800;color:#0f172a;margin-bottom:10px}.link-desc[data-v-53bb5a96]{font-size:13px;color:#475569;line-height:1.7}.link-form[data-v-53bb5a96]{display:flex;flex-direction:column;gap:16px}.field[data-v-53bb5a96]{display:flex;flex-direction:column;gap:6px}.field-label[data-v-53bb5a96]{font-size:13px;font-weight:700;color:#374151}.field-input[data-v-53bb5a96]{width:100%;height:48px;padding:0 14px;border:1.5px solid #e2e8f0;border-radius:12px;font-size:15px;color:#0f172a;background:#f8fafc;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.field-input[data-v-53bb5a96]:focus{outline:none;border-color:#6b35ff;box-shadow:0 0 0 3px #6b35ff1a;background:#fff}.field-input[data-v-53bb5a96]:disabled{opacity:.5;cursor:not-allowed}.error-box[data-v-53bb5a96]{background:#fef2f2;border:1px solid #fca5a5;border-radius:10px;padding:12px 14px;font-size:13px;font-weight:600;color:#dc2626}.submit-btn[data-v-53bb5a96]{width:100%;height:52px;background:#6b35ff;border:none;border-radius:14px;font-size:16px;font-weight:700;color:#fff;cursor:pointer;transition:background .15s,transform .1s;margin-top:4px}.submit-btn[data-v-53bb5a96]:hover:not(:disabled){background:#5b28e0}.submit-btn[data-v-53bb5a96]:active:not(:disabled){transform:scale(.98)}.submit-btn[data-v-53bb5a96]:disabled{opacity:.6;cursor:not-allowed}.link-notice[data-v-53bb5a96]{font-size:12px;color:#94a3b8;text-align:center;line-height:1.6;margin-top:20px}.page[data-v-8f172773]{display:flex;flex-direction:column;gap:16px}.page-title[data-v-8f172773]{font-size:20px;font-weight:800;color:#0f172a}.section-divider[data-v-8f172773]{font-size:12px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.menu-grid[data-v-8f172773]{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.menu-item[data-v-8f172773]{display:flex;flex-direction:column;align-items:center;gap:6px;background:#fff;border-radius:14px;padding:16px 8px;box-shadow:0 1px 4px #0000000f;text-decoration:none;transition:box-shadow .15s}.menu-item[data-v-8f172773]:hover{box-shadow:0 4px 12px #6b35ff1f}.menu-icon[data-v-8f172773]{font-size:26px}.menu-label[data-v-8f172773]{font-size:11px;font-weight:700;color:#374151;text-align:center;line-height:1.3}.action-list[data-v-8f172773]{background:#fff;border-radius:14px;box-shadow:0 1px 4px #0000000f;overflow:hidden}.action-row[data-v-8f172773]{display:flex;align-items:center;gap:12px;padding:15px 16px;border:none;background:none;width:100%;cursor:pointer;transition:background .1s}.action-row[data-v-8f172773]:hover{background:#f8fafc}.action-icon[data-v-8f172773]{font-size:20px}.action-label[data-v-8f172773]{flex:1;font-size:14px;font-weight:600;color:#0f172a;text-align:left}.action-arrow[data-v-8f172773]{font-size:16px;color:#94a3b8}.page[data-v-88e415e5]{display:flex;flex-direction:column;gap:16px}.page-title[data-v-88e415e5]{font-size:20px;font-weight:800;color:#0f172a}.loading-box[data-v-88e415e5]{display:flex;justify-content:center;padding:60px 0}.spinner[data-v-88e415e5]{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-88e415e5 .8s linear infinite}@keyframes spin-88e415e5{to{transform:rotate(360deg)}}.profile-card[data-v-88e415e5]{background:#fff;border-radius:20px;padding:32px 24px;box-shadow:0 1px 4px #0000000f;display:flex;flex-direction:column;align-items:center;gap:8px}.avatar[data-v-88e415e5]{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#6b35ff,#a78bfa);color:#fff;font-size:26px;font-weight:800;display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;overflow:hidden;flex-shrink:0}.avatar-img[data-v-88e415e5]{width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar-overlay[data-v-88e415e5]{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:0;transition:opacity .15s;font-size:20px}.avatar:hover .avatar-overlay[data-v-88e415e5]{opacity:1}.hidden-input[data-v-88e415e5]{display:none}.profile-name[data-v-88e415e5]{font-size:22px;font-weight:800;color:#0f172a}.profile-subtitle[data-v-88e415e5]{font-size:14px;color:#6b35ff;font-weight:700;letter-spacing:.01em}.email-val[data-v-88e415e5]{font-size:13px;word-break:break-all}.profile-fields[data-v-88e415e5]{width:100%;margin-top:16px;border-top:1px solid #f1f5f9;padding-top:16px;display:flex;flex-direction:column;gap:12px}.field-row[data-v-88e415e5]{display:flex;align-items:center;gap:12px}.field-label[data-v-88e415e5]{font-size:13px;color:#94a3b8;font-weight:600;min-width:60px}.field-value[data-v-88e415e5]{font-size:14px;color:#0f172a;font-weight:600}.asset-section[data-v-88e415e5]{width:100%;margin-top:16px;border-top:1px solid #f1f5f9;padding-top:16px;display:flex;flex-direction:column;gap:12px}.asset-title[data-v-88e415e5]{font-size:14px;font-weight:800;color:#0f172a}.asset-field[data-v-88e415e5]{display:flex;align-items:center;gap:12px}.asset-field .field-label[data-v-88e415e5]{flex-shrink:0}.asset-input[data-v-88e415e5]{flex:1;min-width:0;font-size:14px;font-weight:600;color:#0f172a;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:9px 12px;outline:none;transition:border-color .15s}.asset-input[data-v-88e415e5]:focus{border-color:#6b35ff}.asset-input[data-v-88e415e5]::placeholder{color:#cbd5e1;font-weight:500}.asset-check[data-v-88e415e5]{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#0f172a;cursor:pointer}.asset-check input[data-v-88e415e5]{width:18px;height:18px;accent-color:#6b35ff;cursor:pointer}.asset-save[data-v-88e415e5]{margin-top:4px;background:#6b35ff;color:#fff;border:none;border-radius:12px;padding:12px;font-size:14px;font-weight:800;cursor:pointer;transition:opacity .15s}.asset-save[data-v-88e415e5]:disabled{opacity:.6;cursor:default}.asset-save[data-v-88e415e5]:not(:disabled):active{opacity:.85}.asset-saved[data-v-88e415e5]{font-size:13px;font-weight:700;color:#16a34a;text-align:center}.page[data-v-6e24818d]{display:flex;flex-direction:column;gap:14px}.page-title[data-v-6e24818d]{font-size:20px;font-weight:800;color:#0f172a}.loading-box[data-v-6e24818d]{display:flex;justify-content:center;padding:60px 0}.spinner[data-v-6e24818d]{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-6e24818d .8s linear infinite}@keyframes spin-6e24818d{to{transform:rotate(360deg)}}.error-box[data-v-6e24818d]{background:#fef2f2;color:#dc2626;border-radius:12px;padding:20px;text-align:center}.empty-box[data-v-6e24818d]{text-align:center;color:#94a3b8;padding:40px}.avg-card[data-v-6e24818d]{background:linear-gradient(135deg,#6b35ff,#a78bfa);border-radius:16px;padding:24px;color:#fff;text-align:center}.avg-label[data-v-6e24818d]{font-size:13px;font-weight:600;opacity:.85}.avg-score[data-v-6e24818d]{font-size:52px;font-weight:900;line-height:1.1}.avg-unit[data-v-6e24818d]{font-size:22px;font-weight:700}.avg-count[data-v-6e24818d]{font-size:13px;opacity:.8;margin-top:4px}.items-card[data-v-6e24818d]{background:#fff;border-radius:16px;padding:16px;box-shadow:0 1px 4px #0000000f;display:flex;flex-direction:column;gap:16px}.item-row[data-v-6e24818d]{padding-bottom:16px;border-bottom:1px solid #f1f5f9}.item-row[data-v-6e24818d]:last-child{border-bottom:none;padding-bottom:0}.item-header[data-v-6e24818d]{display:flex;align-items:center;gap:8px;margin-bottom:4px}.item-name[data-v-6e24818d]{font-size:14px;font-weight:700;color:#0f172a;flex:1}.item-type-badge[data-v-6e24818d]{font-size:10px;padding:2px 7px;border-radius:6px;font-weight:700}.type-WRITTEN[data-v-6e24818d]{background:#dbeafe;color:#1d4ed8}.type-PRACTICAL[data-v-6e24818d]{background:#dcfce7;color:#15803d}.type-ORAL[data-v-6e24818d]{background:#fef9c3;color:#a16207}.type-ASSIGNMENT[data-v-6e24818d]{background:#ede9fe;color:#6b35ff}.type-PROJECT[data-v-6e24818d]{background:#fce7f3;color:#9d174d}.type-OTHER[data-v-6e24818d]{background:#f1f5f9;color:#64748b}.type-ATTENDANCE[data-v-6e24818d]{background:#e0f2fe;color:#0369a1}.item-detail[data-v-6e24818d]{display:flex;gap:10px;font-size:12px;color:#94a3b8;margin-bottom:8px}.score-row[data-v-6e24818d]{display:flex;align-items:center;gap:10px}.score-bar-wrap[data-v-6e24818d]{flex:1;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.score-bar-fill[data-v-6e24818d]{height:100%;background:linear-gradient(90deg,#6b35ff,#a78bfa);border-radius:3px;transition:width .5s}.score-value[data-v-6e24818d]{font-size:14px;font-weight:800;color:#6b35ff;min-width:55px;text-align:right}.score-max[data-v-6e24818d]{font-size:11px;color:#94a3b8;font-weight:600}.item-note[data-v-6e24818d]{font-size:12px;color:#64748b;margin-top:4px}.page[data-v-bffa12fc]{display:flex;flex-direction:column;gap:14px}.page-title[data-v-bffa12fc]{font-size:20px;font-weight:800;color:#0f172a}.form-card[data-v-bffa12fc]{background:#fff;border-radius:16px;padding:20px;box-shadow:0 1px 4px #0000000f}.form-title[data-v-bffa12fc]{font-size:15px;font-weight:800;color:#0f172a;margin-bottom:16px}.form-field[data-v-bffa12fc]{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.form-label[data-v-bffa12fc]{font-size:12px;font-weight:700;color:#64748b}.form-input[data-v-bffa12fc]{border:1.5px solid #e2e8f0;border-radius:10px;padding:10px 12px;font-size:14px;outline:none;transition:border-color .15s}.form-input[data-v-bffa12fc]:focus{border-color:#6b35ff}.form-textarea[data-v-bffa12fc]{border:1.5px solid #e2e8f0;border-radius:10px;padding:10px 12px;font-size:14px;resize:vertical;outline:none;font-family:inherit}.form-textarea[data-v-bffa12fc]:focus{border-color:#6b35ff}.star-row[data-v-bffa12fc]{display:flex;align-items:center;gap:6px}.star-btn[data-v-bffa12fc]{font-size:28px;color:#e2e8f0;background:none;border:none;cursor:pointer;padding:0;transition:color .1s;line-height:1}.star-btn.active[data-v-bffa12fc]{color:#f59e0b}.star-label[data-v-bffa12fc]{font-size:13px;color:#64748b;font-weight:600;margin-left:4px}.submit-btn[data-v-bffa12fc]{width:100%;padding:13px;background:#6b35ff;color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;transition:opacity .15s}.submit-btn[data-v-bffa12fc]:disabled{opacity:.5;cursor:not-allowed}.submit-msg[data-v-bffa12fc]{margin-top:10px;font-size:13px;color:#16a34a;text-align:center;font-weight:600}.submit-msg.error[data-v-bffa12fc]{color:#dc2626}.section-title[data-v-bffa12fc]{font-size:14px;font-weight:800;color:#0f172a}.history-list[data-v-bffa12fc]{display:flex;flex-direction:column;gap:10px}.history-card[data-v-bffa12fc]{background:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 1px 4px #0000000f}.hist-top[data-v-bffa12fc]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.hist-subject[data-v-bffa12fc]{font-size:14px;font-weight:700;color:#0f172a}.hist-date[data-v-bffa12fc]{font-size:12px;color:#94a3b8}.hist-stars[data-v-bffa12fc]{display:flex;gap:2px;margin-bottom:6px}.hist-star[data-v-bffa12fc]{font-size:18px;color:#e2e8f0}.hist-star.filled[data-v-bffa12fc]{color:#f59e0b}.hist-comment[data-v-bffa12fc]{font-size:13px;color:#374151;margin-bottom:4px}.hist-inst[data-v-bffa12fc]{font-size:12px;color:#94a3b8}.page[data-v-fbb7626a]{display:flex;flex-direction:column;gap:14px}.page-title[data-v-fbb7626a]{font-size:20px;font-weight:800;color:#0f172a}.loading-box[data-v-fbb7626a]{display:flex;justify-content:center;padding:40px 0}.spinner[data-v-fbb7626a]{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-fbb7626a .8s linear infinite}@keyframes spin-fbb7626a{to{transform:rotate(360deg)}}.empty-box[data-v-fbb7626a]{text-align:center;color:#94a3b8;padding:30px}.tab-row[data-v-fbb7626a]{display:flex;background:#f1f5f9;border-radius:12px;padding:4px;gap:4px}.tab-btn[data-v-fbb7626a]{flex:1;padding:9px;border:none;background:none;border-radius:9px;font-size:13px;font-weight:700;color:#94a3b8;cursor:pointer;transition:all .15s}.tab-btn.active[data-v-fbb7626a]{background:#fff;color:#6b35ff;box-shadow:0 1px 4px #00000014}.faq-list[data-v-fbb7626a]{display:flex;flex-direction:column;gap:8px}.faq-item[data-v-fbb7626a]{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.faq-q[data-v-fbb7626a]{width:100%;display:flex;align-items:center;gap:10px;padding:14px 16px;background:none;border:none;cursor:pointer;text-align:left}.faq-q-icon[data-v-fbb7626a]{font-size:12px;font-weight:900;color:#6b35ff;background:#ede9fe;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.faq-q-text[data-v-fbb7626a]{flex:1;font-size:14px;font-weight:700;color:#0f172a;text-align:left}.faq-toggle[data-v-fbb7626a]{font-size:11px;color:#94a3b8}.faq-a[data-v-fbb7626a]{display:flex;gap:10px;padding:12px 16px 14px;background:#f8fafc;border-top:1px solid #f1f5f9}.faq-a-icon[data-v-fbb7626a]{font-size:12px;font-weight:900;color:#f59e0b;background:#fef9c3;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.faq-a-text[data-v-fbb7626a]{font-size:13px;color:#374151;line-height:1.6;white-space:pre-wrap}.inquiry-form[data-v-fbb7626a]{background:#fff;border-radius:16px;padding:18px;box-shadow:0 1px 4px #0000000f}.form-title[data-v-fbb7626a]{font-size:14px;font-weight:800;color:#0f172a;margin-bottom:12px}.inquiry-textarea[data-v-fbb7626a]{width:100%;border:1.5px solid #e2e8f0;border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit;resize:vertical;outline:none;box-sizing:border-box}.inquiry-textarea[data-v-fbb7626a]:focus{border-color:#6b35ff}.submit-btn[data-v-fbb7626a]{margin-top:10px;width:100%;padding:12px;background:#6b35ff;color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:700;cursor:pointer}.submit-btn[data-v-fbb7626a]:disabled{opacity:.5;cursor:not-allowed}.submit-msg[data-v-fbb7626a]{font-size:12px;color:#16a34a;text-align:center;margin-top:8px;font-weight:600}.submit-msg.error[data-v-fbb7626a]{color:#dc2626}.inq-list[data-v-fbb7626a]{display:flex;flex-direction:column;gap:10px}.inq-card[data-v-fbb7626a]{background:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 1px 4px #0000000f}.inq-top[data-v-fbb7626a]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.inq-date[data-v-fbb7626a]{font-size:12px;color:#94a3b8}.inq-status[data-v-fbb7626a]{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px}.status-PENDING[data-v-fbb7626a]{background:#fef9c3;color:#a16207}.status-ANSWERED[data-v-fbb7626a]{background:#dcfce7;color:#15803d}.status-CLOSED[data-v-fbb7626a]{background:#f1f5f9;color:#64748b}.inq-q[data-v-fbb7626a]{font-size:14px;color:#0f172a;line-height:1.5;margin-bottom:8px}.inq-a[data-v-fbb7626a]{display:flex;gap:8px;background:#f8fafc;border-radius:8px;padding:10px 12px}.inq-a-label[data-v-fbb7626a]{font-size:11px;font-weight:800;color:#6b35ff;white-space:nowrap;margin-top:1px}.inq-a-text[data-v-fbb7626a]{font-size:13px;color:#374151;line-height:1.5}.page[data-v-f468c7d3]{display:flex;flex-direction:column;gap:14px}.page-title[data-v-f468c7d3]{font-size:20px;font-weight:800;color:#0f172a}.loading-box[data-v-f468c7d3]{display:flex;justify-content:center;padding:40px 0}.spinner[data-v-f468c7d3]{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-f468c7d3 .8s linear infinite}@keyframes spin-f468c7d3{to{transform:rotate(360deg)}}.empty-box[data-v-f468c7d3]{text-align:center;color:#94a3b8;padding:30px}.tab-row[data-v-f468c7d3]{display:flex;background:#f1f5f9;border-radius:12px;padding:4px;gap:4px}.tab-btn[data-v-f468c7d3]{flex:1;padding:9px;border:none;background:none;border-radius:9px;font-size:13px;font-weight:700;color:#94a3b8;cursor:pointer;transition:all .15s}.tab-btn.active[data-v-f468c7d3]{background:#fff;color:#6b35ff;box-shadow:0 1px 4px #00000014}.subject-filter-bar[data-v-f468c7d3]{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#f6f2ff;border:1px solid #d8ccff;border-radius:10px;padding:8px 12px}.subject-filter-label[data-v-f468c7d3]{font-size:13px;color:#6b35ff}.subject-filter-label strong[data-v-f468c7d3]{font-weight:800}.subject-filter-clear[data-v-f468c7d3]{border:none;background:#fff;color:#6b35ff;font-size:12px;font-weight:700;border-radius:8px;padding:5px 10px;cursor:pointer;border:1px solid #d8ccff}.mat-list[data-v-f468c7d3]{display:flex;flex-direction:column;gap:10px}.mat-card[data-v-f468c7d3]{background:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 1px 4px #0000000f}.mat-top[data-v-f468c7d3]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.mat-type-badge[data-v-f468c7d3]{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px}.mtype-SLIDE[data-v-f468c7d3]{background:#dbeafe;color:#1d4ed8}.mtype-PDF[data-v-f468c7d3]{background:#fee2e2;color:#b91c1c}.mtype-VIDEO[data-v-f468c7d3]{background:#fce7f3;color:#9d174d}.mtype-CODE[data-v-f468c7d3]{background:#dcfce7;color:#15803d}.mtype-LINK[data-v-f468c7d3]{background:#ede9fe;color:#6b35ff}.mtype-OTHER[data-v-f468c7d3]{background:#f1f5f9;color:#64748b}.mat-inst[data-v-f468c7d3]{font-size:12px;color:#94a3b8}.mat-title[data-v-f468c7d3]{font-size:15px;font-weight:700;color:#0f172a;margin-bottom:3px}.mat-subject[data-v-f468c7d3]{font-size:12px;color:#6b35ff;font-weight:600;margin-bottom:4px}.mat-desc[data-v-f468c7d3]{font-size:13px;color:#64748b;margin-bottom:8px}.mat-download[data-v-f468c7d3]{display:inline-block;font-size:13px;font-weight:700;color:#6b35ff;text-decoration:none;border:1.5px solid #6b35ff;border-radius:8px;padding:5px 12px;margin-top:4px}.live-list[data-v-f468c7d3]{display:flex;flex-direction:column;gap:10px}.live-card[data-v-f468c7d3]{background:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 1px 4px #0000000f}.live-top[data-v-f468c7d3]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.live-status-badge[data-v-f468c7d3]{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px}.lstatus-SCHEDULED[data-v-f468c7d3]{background:#dbeafe;color:#1d4ed8}.lstatus-ONGOING[data-v-f468c7d3]{background:#dcfce7;color:#15803d}.lstatus-ENDED[data-v-f468c7d3]{background:#f1f5f9;color:#64748b}.live-type[data-v-f468c7d3]{font-size:11px;color:#94a3b8}.live-title[data-v-f468c7d3]{font-size:15px;font-weight:700;color:#0f172a;margin-bottom:4px}.live-meta[data-v-f468c7d3]{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:#64748b;margin-bottom:4px}.live-note[data-v-f468c7d3]{font-size:12px;color:#94a3b8}.join-btn[data-v-f468c7d3]{display:inline-block;margin-top:10px;background:#16a34a;color:#fff;padding:9px 20px;border-radius:10px;font-size:14px;font-weight:700;text-decoration:none}.page[data-v-15550ba8]{display:flex;flex-direction:column;gap:14px}.page-title[data-v-15550ba8]{font-size:20px;font-weight:800;color:#0f172a}.info-card[data-v-15550ba8]{background:linear-gradient(135deg,#ede9fe,#dbeafe);border-radius:16px;padding:20px;display:flex;gap:14px;align-items:flex-start}.info-icon[data-v-15550ba8]{font-size:32px}.info-title[data-v-15550ba8]{font-size:15px;font-weight:800;color:#0f172a;margin-bottom:6px}.info-desc[data-v-15550ba8]{font-size:13px;color:#374151;line-height:1.6}.inner-link[data-v-15550ba8]{color:#6b35ff;font-weight:700;text-decoration:none}.section-card[data-v-15550ba8]{background:#fff;border-radius:16px;padding:16px;box-shadow:0 1px 4px #0000000f}.section-title[data-v-15550ba8]{font-size:14px;font-weight:800;color:#0f172a;margin-bottom:12px}.guide-list[data-v-15550ba8]{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px}.guide-list li[data-v-15550ba8]{font-size:13px;color:#374151;line-height:1.5}.loading-box[data-v-15550ba8]{display:flex;justify-content:center;padding:20px 0}.spinner[data-v-15550ba8]{width:28px;height:28px;border:3px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-15550ba8 .8s linear infinite}@keyframes spin-15550ba8{to{transform:rotate(360deg)}}.empty-box[data-v-15550ba8]{text-align:center;color:#94a3b8;padding:20px;font-size:13px}.score-list[data-v-15550ba8]{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.score-row[data-v-15550ba8]{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:#f8fafc;border-radius:8px}.score-name[data-v-15550ba8]{font-size:13px;color:#0f172a;font-weight:600}.score-val[data-v-15550ba8]{font-size:13px;font-weight:700;color:#6b35ff}.see-all-btn[data-v-15550ba8]{display:block;text-align:center;padding:10px;background:#ede9fe;color:#6b35ff;border-radius:10px;font-size:13px;font-weight:700;text-decoration:none}.page[data-v-ca29d19f]{display:flex;flex-direction:column;gap:14px}.page-title[data-v-ca29d19f]{font-size:20px;font-weight:800;color:#0f172a}.class-badge[data-v-ca29d19f]{font-size:13px;color:#6b35ff;font-weight:700;background:#ede9fe;display:inline-block;border-radius:8px;padding:4px 12px}.loading-box[data-v-ca29d19f]{display:flex;justify-content:center;padding:60px 0}.spinner[data-v-ca29d19f]{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-ca29d19f .8s linear infinite}@keyframes spin-ca29d19f{to{transform:rotate(360deg)}}.error-box[data-v-ca29d19f]{background:#fef2f2;color:#dc2626;border-radius:12px;padding:20px;text-align:center}.empty-box[data-v-ca29d19f]{text-align:center;color:#94a3b8;padding:40px}.project-list[data-v-ca29d19f]{display:flex;flex-direction:column;gap:12px}.project-card[data-v-ca29d19f]{background:#fff;border-radius:16px;padding:16px 18px;box-shadow:0 1px 4px #0000000f}.project-top[data-v-ca29d19f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.team-num[data-v-ca29d19f]{font-size:12px;font-weight:700;color:#94a3b8}.project-status[data-v-ca29d19f]{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px}.pstatus-PLANNING[data-v-ca29d19f]{background:#dbeafe;color:#1d4ed8}.pstatus-IN_PROGRESS[data-v-ca29d19f]{background:#fef9c3;color:#a16207}.pstatus-COMPLETED[data-v-ca29d19f]{background:#dcfce7;color:#15803d}.pstatus-SUBMITTED[data-v-ca29d19f]{background:#ede9fe;color:#6b35ff}.team-name[data-v-ca29d19f]{font-size:17px;font-weight:800;color:#0f172a;margin-bottom:8px}.project-topic[data-v-ca29d19f]{display:flex;gap:8px;align-items:flex-start}.topic-label[data-v-ca29d19f]{font-size:11px;font-weight:700;color:#6b35ff;background:#ede9fe;border-radius:5px;padding:2px 6px;white-space:nowrap;margin-top:1px}.topic-text[data-v-ca29d19f]{font-size:13px;color:#374151;line-height:1.5}.project-note[data-v-ca29d19f]{font-size:12px;color:#94a3b8;margin-top:6px}.rich-editor[data-v-5607ceeb]{border:1px solid #d0d5dd;border-radius:10px;overflow:hidden;background:#fff}.re-toolbar[data-v-5607ceeb]{display:flex;align-items:center;gap:2px;padding:6px 8px;background:#f8fafc;border-bottom:1px solid #e5e7eb;flex-wrap:wrap}.re-btn[data-v-5607ceeb]{min-width:28px;height:28px;padding:0 7px;border:1px solid transparent;border-radius:6px;background:transparent;font-size:13px;color:#334155;cursor:pointer;line-height:1}.re-btn[data-v-5607ceeb]:hover{background:#eef2ff;border-color:#c7d2fe;color:#6b35ff}.re-btn[data-v-5607ceeb]:active{background:#e0e7ff}.re-sep[data-v-5607ceeb]{width:1px;height:18px;background:#e5e7eb;margin:0 4px}.re-content[data-v-5607ceeb]{min-height:96px;max-height:260px;overflow-y:auto;padding:10px 12px;font-size:14px;line-height:1.6;color:#0f172a;outline:none}.re-content[data-v-5607ceeb]:empty:before{content:attr(data-placeholder);color:#94a3b8}.re-content[data-v-5607ceeb]:focus{background:#fff}.re-content[data-v-5607ceeb] ul{padding-left:20px;list-style:disc}.re-content[data-v-5607ceeb] ol{padding-left:20px;list-style:decimal}.re-content[data-v-5607ceeb] a{color:#6b35ff;text-decoration:underline}.page[data-v-719cf647]{display:flex;flex-direction:column;gap:14px;padding-bottom:24px}.page-title[data-v-719cf647]{font-size:20px;font-weight:800;color:#0f172a}.cat-tabs[data-v-719cf647]{display:flex;gap:6px;background:#f1f5f9;border-radius:12px;padding:4px;margin-bottom:12px}.cat-tab[data-v-719cf647]{flex:1;padding:9px 6px;border:none;background:none;border-radius:9px;font-size:13px;font-weight:700;color:#94a3b8;cursor:pointer;transition:all .15s}.cat-tab.active[data-v-719cf647]{background:#fff;color:#6b35ff;box-shadow:0 1px 4px #00000014}.cat-bar[data-v-719cf647]{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.cat-desc[data-v-719cf647]{font-size:13px;color:#64748b}.cat-desc strong[data-v-719cf647]{color:#6b35ff}.btn-add-cat[data-v-719cf647]{background:#6b35ff;color:#fff;border:none;border-radius:10px;padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.btn-add-cat[data-v-719cf647]:hover{background:#5a24e0}.cat-list[data-v-719cf647]{display:flex;flex-direction:column;gap:10px}.sub-file-link[data-v-719cf647]{display:inline-block;font-size:12px;font-weight:700;color:#6b35ff;text-decoration:none;border:1.5px solid #6b35ff;border-radius:8px;padding:4px 10px;margin-top:4px}.loading-box[data-v-719cf647]{display:flex;justify-content:center;padding:40px 0}.spinner[data-v-719cf647]{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#6b35ff;border-radius:50%;animation:spin-719cf647 .8s linear infinite}@keyframes spin-719cf647{to{transform:rotate(360deg)}}.empty-box[data-v-719cf647]{text-align:center;color:#94a3b8;padding:30px}.subject-list[data-v-719cf647]{display:flex;flex-direction:column;gap:10px}.subject-block[data-v-719cf647]{background:#fff;border-radius:14px;box-shadow:0 1px 4px #00000012;overflow:hidden}.subj-header[data-v-719cf647]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer;border-bottom:1.5px solid #f1f5f9;transition:background .12s}.subj-header[data-v-719cf647]:hover{background:#f8fafc}.subj-info[data-v-719cf647]{display:flex;align-items:center;gap:8px}.subj-name[data-v-719cf647]{font-size:15px;font-weight:700;color:#0f172a}.subj-count[data-v-719cf647]{font-size:12px;font-weight:700;background:#ede9fe;color:#6b35ff;border-radius:10px;padding:1px 8px}.subj-actions[data-v-719cf647]{display:flex;align-items:center;gap:10px}.btn-add[data-v-719cf647]{width:30px;height:30px;border-radius:8px;background:#6b35ff;color:#fff;border:none;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s}.btn-add[data-v-719cf647]:hover{background:#5a24e0}.toggle-icon[data-v-719cf647]{font-size:12px;color:#94a3b8}.submission-list[data-v-719cf647]{padding:10px 16px 14px;display:flex;flex-direction:column;gap:10px}.no-sub[data-v-719cf647]{font-size:13px;color:#94a3b8;text-align:center;padding:12px 0}.sub-item[data-v-719cf647]{background:#f8fafc;border-radius:10px;padding:12px 14px;border-left:3px solid #e2e8f0}.sub-item[data-v-719cf647]:has(.status-GRADED){border-left-color:#16a34a}.sub-item[data-v-719cf647]:has(.status-RETURNED){border-left-color:#ef4444}.sub-item[data-v-719cf647]:has(.status-SUBMITTED){border-left-color:#6b35ff}.sub-top[data-v-719cf647]{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.sub-status[data-v-719cf647]{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px}.status-SUBMITTED[data-v-719cf647]{background:#ede9fe;color:#6b35ff}.status-GRADED[data-v-719cf647]{background:#dcfce7;color:#15803d}.status-RETURNED[data-v-719cf647]{background:#fee2e2;color:#b91c1c}.sub-date[data-v-719cf647]{font-size:11px;color:#94a3b8}.sub-title[data-v-719cf647]{font-size:14px;font-weight:700;color:#0f172a;margin-bottom:4px}.sub-subject[data-v-719cf647]{font-size:12px;font-weight:600;color:#6b35ff;margin-bottom:4px}.sub-desc[data-v-719cf647]{font-size:13px;color:#64748b;margin-bottom:5px;line-height:1.5;word-break:break-word}.sub-desc[data-v-719cf647] ul{padding-left:18px;list-style:disc;margin:2px 0}.sub-desc[data-v-719cf647] ol{padding-left:18px;list-style:decimal;margin:2px 0}.sub-desc[data-v-719cf647] a{color:#6b35ff;text-decoration:underline}.sub-desc[data-v-719cf647] b,.sub-desc[data-v-719cf647] strong{color:#334155}.sub-file[data-v-719cf647]{font-size:12px;color:#6b35ff;margin-bottom:5px}.sub-score[data-v-719cf647]{font-size:13px;color:#0f172a;margin-top:4px}.sub-feedback[data-v-719cf647]{margin-top:8px;background:#fff;border-radius:8px;padding:8px 10px}.fb-label[data-v-719cf647]{font-size:11px;font-weight:700;color:#94a3b8;margin-bottom:3px}.fb-text[data-v-719cf647]{font-size:13px;color:#374151;line-height:1.5}.btn-delete[data-v-719cf647]{margin-top:10px;font-size:12px;font-weight:700;color:#ef4444;background:none;border:1.5px solid #ef4444;border-radius:7px;padding:4px 12px;cursor:pointer;transition:background .1s}.btn-delete[data-v-719cf647]:hover{background:#fee2e2}.modal-overlay[data-v-719cf647]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:1000}.modal[data-v-719cf647]{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:480px;padding:24px 20px 32px;display:flex;flex-direction:column;gap:14px;max-height:90vh;overflow-y:auto}.modal-title[data-v-719cf647]{font-size:17px;font-weight:800;color:#0f172a;padding-bottom:4px;border-bottom:1.5px solid #f1f5f9}.form-row[data-v-719cf647]{display:flex;flex-direction:column;gap:5px}.form-label[data-v-719cf647]{font-size:12px;font-weight:700;color:#374151}.req[data-v-719cf647]{color:#ef4444}.form-input[data-v-719cf647]{border:1.5px solid #e2e8f0;border-radius:10px;padding:10px 12px;font-size:14px;color:#0f172a;outline:none;transition:border-color .15s}.form-input[data-v-719cf647]:focus{border-color:#6b35ff}.form-textarea[data-v-719cf647]{border:1.5px solid #e2e8f0;border-radius:10px;padding:10px 12px;font-size:14px;color:#0f172a;resize:vertical;outline:none;transition:border-color .15s;font-family:inherit}.form-textarea[data-v-719cf647]:focus{border-color:#6b35ff}.file-label[data-v-719cf647]{display:flex;align-items:center;gap:10px;cursor:pointer}.file-input[data-v-719cf647]{display:none}.file-btn[data-v-719cf647]{background:#f1f5f9;border:1.5px solid #e2e8f0;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:700;color:#374151;white-space:nowrap}.file-name[data-v-719cf647]{font-size:12px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-hint[data-v-719cf647]{font-size:11px;color:#94a3b8}.modal-err[data-v-719cf647]{background:#fee2e2;color:#b91c1c;border-radius:8px;padding:8px 12px;font-size:13px}.modal-btns[data-v-719cf647]{display:flex;gap:10px;margin-top:4px}.btn-cancel[data-v-719cf647]{flex:1;padding:12px;border-radius:12px;border:1.5px solid #e2e8f0;background:#fff;font-size:14px;font-weight:700;color:#64748b;cursor:pointer}.btn-submit[data-v-719cf647]{flex:2;padding:12px;border-radius:12px;border:none;background:#6b35ff;color:#fff;font-size:14px;font-weight:800;cursor:pointer;transition:background .15s}.btn-submit[data-v-719cf647]:disabled{background:#a78bfa;cursor:not-allowed}.btn-submit[data-v-719cf647]:not(:disabled):hover{background:#5a24e0}
