.cois-footer[data-v-1658d874]{color:#fff;position:relative;overflow:hidden}.cois-footer[data-v-1658d874]:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.3),transparent)}.cois-footer--simple[data-v-1658d874]{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.3);backdrop-filter:blur(10px);border-top:1px solid hsla(0,0%,100%,.1);padding:16px 0}.cois-footer--simple .footer-content[data-v-1658d874]{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:150px minmax(0,1fr) 150px;align-items:center;gap:20px;padding:0 20px}.cois-footer--simple .footer-logo[data-v-1658d874]{display:flex;justify-content:center;grid-column:1}.cois-footer--simple .footer-text[data-v-1658d874]{grid-column:2;text-align:center;min-width:0}.cois-footer--simple .footer-description[data-v-1658d874]{font-size:14px;margin:0 0 5px 0;opacity:.9;line-height:1.4;white-space:nowrap}.cois-footer--simple .footer-copyright[data-v-1658d874]{font-size:12px;margin:0;opacity:.7}.footer-members[data-v-1658d874]{font-size:13px;margin:0;color:hsla(0,0%,100%,.9);font-weight:600}.cois-footer--full[data-v-1658d874]{background:rgba(0,0,0,.3);backdrop-filter:blur(10px);border-top:1px solid hsla(0,0%,100%,.1)}.cois-footer--full .footer-container[data-v-1658d874]{max-width:1200px;margin:0 auto;padding:40px 20px 20px}.cois-footer--full .footer-content[data-v-1658d874]{display:flex;flex-direction:column;gap:30px}.cois-footer--full .footer-info[data-v-1658d874]{display:flex;gap:30px;align-items:center}.cois-footer--full .footer-title[data-v-1658d874]{font-size:24px;font-weight:700;margin:0 0 10px 0;color:#fff}.cois-footer--full .footer-description[data-v-1658d874]{font-size:16px;line-height:1.6;margin:0 0 20px 0;opacity:.9;color:#ecf0f1}.cois-footer--full .footer-contact[data-v-1658d874]{display:flex;gap:25px;flex-wrap:wrap}.cois-footer--full .contact-item[data-v-1658d874]{display:flex;align-items:center;gap:8px}.cois-footer--full .contact-label[data-v-1658d874]{font-weight:600;color:hsla(0,0%,100%,.72);min-width:50px}.cois-footer--full .contact-value[data-v-1658d874]{color:#fff;font-weight:500}.cois-footer--full .footer-bottom[data-v-1658d874]{text-align:center;padding-top:20px;border-top:1px solid hsla(0,0%,100%,.1)}.cois-footer--full .footer-copyright[data-v-1658d874]{font-size:14px;color:hsla(0,0%,100%,.72);margin:0 0 8px 0}.cois-footer--full .footer-thanks[data-v-1658d874]{font-size:16px;color:#ecf0f1;margin:0;font-weight:500}.footer-logo[data-v-1658d874]{flex-shrink:0}.logo-image[data-v-1658d874]{display:block;height:64px;width:auto;opacity:.9;transition:all .3s ease}.cois-footer--full .logo-image[data-v-1658d874]{height:92px;filter:brightness(1) contrast(1)}.logo-image[data-v-1658d874]:hover{opacity:1;transform:scale(1.05)}.cois-footer--full .logo-image[data-v-1658d874]:hover{filter:brightness(1.1) contrast(1.1)}.footer-text[data-v-1658d874]{flex:1;color:#fff}.footer-description strong[data-v-1658d874]{font-weight:600;color:#fff}@media (max-width:768px){.cois-footer--simple .footer-content[data-v-1658d874]{display:flex;flex-direction:column;gap:8px;text-align:center}.cois-footer--simple .logo-image[data-v-1658d874]{height:54px}.cois-footer--simple .footer-description[data-v-1658d874]{font-size:13px;white-space:normal}.cois-footer--simple .footer-copyright[data-v-1658d874]{font-size:11px}.cois-footer--full .footer-info[data-v-1658d874]{flex-direction:column;gap:20px;text-align:center}.cois-footer--full .footer-logo[data-v-1658d874]{align-self:center}.cois-footer--full .logo-image[data-v-1658d874]{height:50px}.cois-footer--full .footer-title[data-v-1658d874]{font-size:20px}.cois-footer--full .footer-description[data-v-1658d874]{font-size:14px}.cois-footer--full .footer-contact[data-v-1658d874]{justify-content:center;gap:20px}.cois-footer--full .contact-item[data-v-1658d874]{flex-direction:column;gap:4px;text-align:center}.cois-footer--full .contact-label[data-v-1658d874]{min-width:auto;font-size:12px}.cois-footer--full .contact-value[data-v-1658d874],.cois-footer--full .footer-thanks[data-v-1658d874]{font-size:14px}}@media (max-width:480px){.cois-footer--simple[data-v-1658d874]{padding:14px 0}.cois-footer--simple .footer-content[data-v-1658d874]{gap:6px}.cois-footer--simple .logo-image[data-v-1658d874]{height:48px}.cois-footer--simple .footer-members[data-v-1658d874]{font-size:11px}.cois-footer--full .footer-container[data-v-1658d874]{padding:30px 15px 15px}.cois-footer--full .logo-image[data-v-1658d874]{height:55px}.cois-footer--full .footer-title[data-v-1658d874]{font-size:18px}.cois-footer--full .footer-description[data-v-1658d874]{font-size:13px}.cois-footer--full .footer-copyright[data-v-1658d874]{font-size:12px}.cois-footer--full .footer-thanks[data-v-1658d874]{font-size:13px}}.start-container[data-v-164db84b]{width:100%;min-height:100vh}.page-container[data-v-164db84b]{flex-direction:column;gap:18px}.start-card[data-v-164db84b]{max-width:var(--card-max-width);width:min(100%,460px)}.start-card .card-content[data-v-164db84b]{padding:34px 30px}.start-button[data-v-164db84b]{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 auto}@media (max-width:576px){.page-container[data-v-164db84b]{justify-content:center;padding:18px 10px clamp(150px,28vh,210px)}.start-card[data-v-164db84b]{width:100%;border-radius:12px}.start-card .card-content[data-v-164db84b]{padding:24px 18px}}.grade-select-card-desktop[data-v-24961003]{max-width:600px;width:100%}.back-button[data-v-24961003]{background:transparent;color:var(--gray-color);font-size:14px;font-weight:600;padding:6px 0;margin-bottom:var(--spacing-1)}.back-button[data-v-24961003]:hover{color:var(--primary-color)}.grade-button-group[data-v-24961003]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--spacing-2);justify-content:center}.grade-option-btn[data-v-24961003]{max-width:none;min-width:0;min-height:var(--touch-target-min,44px)}.credits-control[data-v-24961003]{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-2)}.credits-display[data-v-24961003]{font-size:28px;font-weight:var(--heading-font-weight);color:var(--primary-color);text-align:center}.preference-grid[data-v-24961003]{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,160px));justify-content:center;gap:10px}.preference-grid.two-options[data-v-24961003]{grid-template-columns:repeat(2,minmax(132px,160px))}.preference-grid.three-options[data-v-24961003]{grid-template-columns:repeat(3,minmax(132px,160px))}.preference-option[data-v-24961003]{min-height:44px;border:1px solid var(--border-color);border-radius:var(--border-radius-small);background:#fff;color:var(--dark-color);font-size:14px;font-weight:600;transition:var(--transition-fast)}.preference-option[data-v-24961003]:hover{border-color:var(--primary-color);background:#f2fbf9}.preference-option.selected[data-v-24961003]{border-color:var(--primary-color);background:var(--primary-soft);color:var(--primary-deep)}.desktop-button-container[data-v-24961003]{display:flex;justify-content:center;margin-top:var(--spacing-4)}@media (max-width:480px){.grade-select-card-desktop[data-v-24961003]{width:100%;border-radius:12px}.grade-button-group[data-v-24961003]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.grade-option-btn[data-v-24961003]{max-width:none;padding:10px 8px}.preference-grid.three-options[data-v-24961003],.preference-grid[data-v-24961003]{grid-template-columns:1fr}}@media (max-width:360px){.grade-button-group[data-v-24961003]{grid-template-columns:repeat(2,1fr);display:grid}}@media (prefers-reduced-motion:reduce){.grade-option-btn[data-v-24961003],.preference-option[data-v-24961003]{animation:none!important;transition:none!important;transform:none!important}}@media (prefers-contrast:high){.grade-select-card-desktop[data-v-24961003]{border:2px solid var(--border-color)}}.question-container[data-v-d1b2ba0e]{width:100%;min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));padding:20px;box-sizing:border-box}.question-card[data-v-d1b2ba0e]{background-color:#fff;border-radius:16px;overflow:hidden;width:100%;max-width:720px;box-shadow:0 10px 30px rgba(0,0,0,.15);position:relative}.back-button[data-v-d1b2ba0e]{position:absolute;top:14px;left:18px;z-index:2;background:transparent;color:var(--gray-color);font-size:14px;font-weight:700;padding:4px 0}.back-button[data-v-d1b2ba0e]:hover{color:var(--primary-color)}.progress-bar[data-v-d1b2ba0e]{height:8px;background-color:#e9ecef;width:100%;overflow:hidden}.progress[data-v-d1b2ba0e]{height:100%;background-color:var(--accent-color);transition:width .3s ease}.question-content[data-v-d1b2ba0e]{padding:40px 44px}.question-number[data-v-d1b2ba0e]{color:var(--gray-color);font-size:18px;margin-bottom:24px;font-weight:500}.question-block[data-v-d1b2ba0e]{color:var(--dark-color);font-size:24px;font-weight:500;line-height:1.5;margin-bottom:16px;text-align:center;white-space:nowrap}.button-group[data-v-d1b2ba0e]{display:flex;flex-direction:column;gap:16px;padding:0 30px 40px}.answer-button[data-v-d1b2ba0e]{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-radius:8px;font-size:18px;font-weight:500;border:none;transition:all .2s ease}.yes-button[data-v-d1b2ba0e]{background-color:#e8f3eb;color:#2a9d46}.no-button[data-v-d1b2ba0e]{background-color:#f9e9e9;color:#e05252}.yes-button[data-v-d1b2ba0e]:hover{background-color:#d0e9d6;transform:translateY(-2px)}.no-button[data-v-d1b2ba0e]:hover{background-color:#f5d6d6;transform:translateY(-2px)}.button-text[data-v-d1b2ba0e]{font-weight:600}.button-icon[data-v-d1b2ba0e]{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}.yes-button .button-icon[data-v-d1b2ba0e]{background-color:#2a9d46;color:#fff}.no-button .button-icon[data-v-d1b2ba0e]{background-color:#e05252;color:#fff}@media (max-width:768px){.question-card[data-v-d1b2ba0e]{max-width:100%}.question-content[data-v-d1b2ba0e]{padding:40px 28px}.question-block[data-v-d1b2ba0e]{font-size:22px;white-space:normal}}@media (max-width:480px){.question-content[data-v-d1b2ba0e]{padding:36px 22px}.question-block[data-v-d1b2ba0e]{font-size:20px}}.optimization-container[data-v-2a9ed243]{width:100%;min-height:100vh;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));--schedule-text-color:#22313a;--schedule-muted-text-color:rgba(34,49,58,.72);--schedule-time-font-size:0.86rem;--schedule-title-font-size:0.92rem;--schedule-location-font-size:0.76rem;--schedule-time-column-width:60px}.desktop-layout[data-v-2a9ed243]{width:100%;min-height:100vh;display:flex;justify-content:center;align-items:center;padding:18px 12px;box-sizing:border-box}.optimization-card[data-v-2a9ed243]{width:95%;max-width:1000px;margin:0 auto;background-color:var(--card-bg);border-radius:var(--border-radius);padding:16px;box-shadow:var(--box-shadow);box-sizing:border-box;display:flex;flex-direction:column}.status-message[data-v-2a9ed243]{font-size:1.2rem;font-weight:700;margin-bottom:12px;padding:10px 18px;background-color:var(--primary-color);color:#fff;text-align:center;border-radius:var(--border-radius-small);height:78px;min-height:78px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center}.status-main[data-v-2a9ed243]{display:block;font-size:1.2rem;line-height:1.25;font-weight:800;word-break:keep-all}.status-message.completed[data-v-2a9ed243]{background-color:var(--success-color)}.status-message.error[data-v-2a9ed243]{background-color:var(--error-color)}.taken-course-hint[data-v-2a9ed243]{font-size:.95rem;margin-top:5px;opacity:.9;line-height:1.25}.error-hint[data-v-2a9ed243]{margin-top:var(--spacing-2);font-size:.9rem}.error-hint ul[data-v-2a9ed243]{text-align:left;margin:var(--spacing-1) 0;padding-left:var(--spacing-3)}.retry-button[data-v-2a9ed243]{margin-top:var(--spacing-2);padding:var(--spacing-1) var(--spacing-2);background-color:#fff;color:var(--error-color);border:none;border-radius:var(--border-radius-small);font-weight:500;cursor:pointer;transition:var(--transition-fast)}.retry-button[data-v-2a9ed243]:hover{background-color:var(--light-color)}.timetable-container[data-v-2a9ed243]{width:100%;padding:0;margin-bottom:var(--spacing-2);overflow-x:hidden;overflow-y:visible;flex:0 0 auto;min-height:0}.timetable[data-v-2a9ed243]{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse;background-color:#fff;box-shadow:var(--box-shadow);border-radius:var(--border-radius-small);overflow:hidden;position:relative}.timetable-row[data-v-2a9ed243]{display:flex;border-bottom:1px solid var(--border-color);box-sizing:border-box}.header-row[data-v-2a9ed243]{height:34px;min-height:34px}.timetable-cell[data-v-2a9ed243]{flex:1;padding:0;border-right:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;transition:var(--transition-base);box-sizing:border-box;min-width:0;position:relative}.time-header-cell[data-v-2a9ed243]{flex:0 0 var(--schedule-time-column-width);min-width:var(--schedule-time-column-width);background-color:var(--light-color)}.header-cell[data-v-2a9ed243]{background-color:var(--light-color);font-weight:var(--heading-font-weight);height:34px;font-size:1rem}.time-cell[data-v-2a9ed243]{flex:0 0 var(--schedule-time-column-width);min-width:var(--schedule-time-column-width);background-color:var(--light-color);font-weight:700;color:var(--gray-color);font-size:var(--schedule-time-font-size)}.day-cell[data-v-2a9ed243]{flex:1;min-width:0;cursor:pointer}.day-cell[data-v-2a9ed243]:hover{opacity:.8}.cell-content[data-v-2a9ed243]{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:var(--spacing-1);text-align:center}.optimization-card .cell-content[data-v-2a9ed243]{padding:2px}.cell-title[data-v-2a9ed243]{font-weight:700;font-size:var(--schedule-title-font-size);line-height:1.16;white-space:normal;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;overflow-wrap:break-word;text-wrap:balance;color:var(--schedule-text-color);width:100%}.cell-location[data-v-2a9ed243]{font-size:var(--schedule-location-font-size);opacity:1;color:var(--schedule-muted-text-color);font-weight:700;line-height:1.05;margin-top:1px}.preview-timetable[data-v-2a9ed243]{width:100%;min-width:0;overflow:hidden}.preview-day-header[data-v-2a9ed243]{display:grid;grid-template-columns:var(--schedule-time-column-width) repeat(5,minmax(0,1fr));height:34px;min-height:34px;text-align:center;font-weight:700;border-bottom:1px solid var(--border-color);background-color:var(--light-color);box-sizing:border-box}.preview-day[data-v-2a9ed243],.preview-time-slot[data-v-2a9ed243]{min-height:0;height:100%;padding:8px;box-sizing:border-box;color:var(--gray-color);display:flex;align-items:center;justify-content:center}.preview-grid-container[data-v-2a9ed243]{display:flex;width:100%;position:relative}.preview-time-column[data-v-2a9ed243]{width:var(--schedule-time-column-width);flex-shrink:0;z-index:2;background-color:var(--light-color);border-right:1px solid var(--border-color)}.preview-time[data-v-2a9ed243]{display:flex;align-items:center;justify-content:center;color:var(--gray-color);font-size:var(--schedule-time-font-size);font-weight:700;border-bottom:1px solid var(--border-color);box-sizing:border-box}.preview-schedule-grid[data-v-2a9ed243]{flex:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));min-width:0;position:relative;isolation:isolate;border:1px solid var(--border-color);border-left:none;border-top:none;border-bottom:1px solid var(--border-color);box-sizing:border-box;background-color:#fff}.preview-grid-row-divider[data-v-2a9ed243]{position:absolute;left:0;right:0;height:1px;background-color:var(--border-color);z-index:0;pointer-events:none}.preview-schedule-item[data-v-2a9ed243]{border:0;border-radius:6px;margin:2px;padding:4px 6px;box-shadow:0 2px 4px rgba(27,45,53,.14);color:var(--schedule-text-color);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;font:inherit;font-weight:700;line-height:1.22;overflow:hidden;position:relative;text-align:center;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease;width:auto;z-index:10}.preview-schedule-item[data-v-2a9ed243]:hover{box-shadow:0 4px 8px rgba(27,45,53,.18);transform:translateY(-2px);z-index:20}.preview-schedule-item.selected-for-removal[data-v-2a9ed243]{transform:none}.preview-item-location[data-v-2a9ed243],.preview-item-title[data-v-2a9ed243]{display:block;width:100%;overflow:visible;text-align:center;word-break:keep-all}.preview-item-title[data-v-2a9ed243]{overflow-wrap:break-word;text-wrap:balance;font-size:var(--schedule-title-font-size);font-weight:800;margin-bottom:2px}.preview-item-location[data-v-2a9ed243]{overflow-wrap:anywhere;color:var(--schedule-muted-text-color);font-size:var(--schedule-location-font-size);font-weight:700;line-height:1.1}.selected-for-removal[data-v-2a9ed243]{opacity:.5!important;background-image:repeating-linear-gradient(45deg,rgba(0,0,0,.1),rgba(0,0,0,.1) 10px,rgba(0,0,0,.2) 0,rgba(0,0,0,.2) 20px)!important;position:relative}.selected-for-removal[data-v-2a9ed243]:before{content:"제외됨";position:absolute;top:0;right:0;background-color:rgba(0,0,0,.7);color:#fff;padding:2px 6px;font-size:.7rem;border-radius:0 6px 0 6px;z-index:2}.optimization-actions[data-v-2a9ed243]{display:flex;align-items:center;justify-content:center;min-height:116px;margin-top:8px;flex-shrink:0;box-sizing:border-box;overflow:visible}.optimization-actions.has-exclusions[data-v-2a9ed243]{min-height:116px}.optimization-actions.is-loading[data-v-2a9ed243]{min-height:116px;margin-top:8px}.loading-pill-container[data-v-2a9ed243]{display:flex;justify-content:center;align-items:center;width:100%;min-height:52px}.schedule-loading-pill[data-v-2a9ed243]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;align-items:center;width:min(268px,72vw);min-height:52px;padding:10px 12px;border-radius:999px;background:hsla(0,0%,100%,.86);border:1px solid rgba(34,49,58,.08);box-shadow:0 14px 28px rgba(63,92,88,.14),inset 0 1px 0 hsla(0,0%,100%,.92)}.loading-pill-cell[data-v-2a9ed243]{display:block;height:30px;border-radius:999px;opacity:.58;transform:scaleX(.72);transform-origin:center;animation:loadingPillBeat-2a9ed243 1.45s ease-in-out infinite}.loading-pill-cell[data-v-2a9ed243]:first-child{background:#9ad3c7;animation-delay:0s}.loading-pill-cell[data-v-2a9ed243]:nth-child(2){background:#f4b8a8;animation-delay:.12s}.loading-pill-cell[data-v-2a9ed243]:nth-child(3){background:#f6d878;animation-delay:.24s}.loading-pill-cell[data-v-2a9ed243]:nth-child(4){background:#a8c7e8;animation-delay:.36s}.loading-pill-cell[data-v-2a9ed243]:nth-child(5){background:#c8b8e8;animation-delay:.48s}.button-container[data-v-2a9ed243]{display:flex;justify-content:center;align-items:center;margin-top:0;flex-shrink:0;min-height:44px}.action-button[data-v-2a9ed243],.reoptimize-button[data-v-2a9ed243]{min-height:44px;padding:var(--spacing-1) var(--spacing-3);background-color:var(--primary-color);color:#fff;border:none;border-radius:var(--border-radius-small);font-size:16px;font-weight:500;cursor:pointer;transition:var(--transition-base);display:flex;align-items:center;justify-content:center;gap:var(--spacing-1)}.primary-button[data-v-2a9ed243]{min-width:220px;min-height:52px;padding:14px 30px;font-size:17px;font-weight:800}@keyframes loadingPillBeat-2a9ed243{0%,to{opacity:.52;transform:translateY(0) scaleX(.72)}38%{opacity:1;transform:translateY(-2px) scaleX(1)}66%{opacity:.74;transform:translateY(0) scaleX(.86)}}.action-button[data-v-2a9ed243]:hover,.reoptimize-button[data-v-2a9ed243]:hover{background-color:var(--secondary-color);transform:translateY(-2px);box-shadow:var(--box-shadow-hover)}.action-button[data-v-2a9ed243]:disabled,.reoptimize-button[data-v-2a9ed243]:disabled{background-color:var(--light-gray);color:var(--gray-color);cursor:not-allowed;transform:none;box-shadow:none}.selected-courses-info[data-v-2a9ed243]{width:100%;margin:0;padding:10px 16px;background-color:var(--light-color);border-radius:var(--border-radius-small);border:1px solid var(--border-color);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;box-sizing:border-box}.selected-courses-info p[data-v-2a9ed243]{margin:0;color:var(--gray-color);font-weight:700;text-align:center;white-space:normal}.button-stack[data-v-2a9ed243]{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--spacing-1);margin-top:0;width:100%}.button-stack button[data-v-2a9ed243]{width:100%;max-width:320px}@media (max-width:992px){.desktop-layout .optimization-card[data-v-2a9ed243]{width:95%;padding:var(--spacing-2)}}@media (max-width:768px){.optimization-container[data-v-2a9ed243]{--schedule-time-column-width:48px;--schedule-time-font-size:0.78rem;--schedule-title-font-size:0.8rem;--schedule-location-font-size:0.64rem}.desktop-layout[data-v-2a9ed243]{align-items:flex-start;justify-content:flex-start;padding:10px 8px 16px}.desktop-layout .optimization-card[data-v-2a9ed243]{width:100%;padding:var(--spacing-1);border-radius:12px}.desktop-layout .status-message[data-v-2a9ed243]{height:auto;min-height:72px;padding:10px 12px}.desktop-layout .status-main[data-v-2a9ed243]{font-size:1.05rem}.desktop-layout .taken-course-hint[data-v-2a9ed243]{font-size:.82rem}.desktop-layout .time-cell[data-v-2a9ed243],.desktop-layout .time-header-cell[data-v-2a9ed243]{font-size:var(--schedule-time-font-size)}.desktop-layout .day-cell[data-v-2a9ed243]{min-width:0}.desktop-layout .cell-title[data-v-2a9ed243]{font-size:var(--schedule-title-font-size);white-space:normal;overflow-wrap:break-word}}@media (max-width:480px){.optimization-container[data-v-2a9ed243]{--schedule-time-column-width:38px;--schedule-time-font-size:0.66rem;--schedule-title-font-size:0.66rem;--schedule-location-font-size:0.54rem}.desktop-layout[data-v-2a9ed243]{padding:8px 6px 14px}.desktop-layout .optimization-card[data-v-2a9ed243]{padding:8px}.header-cell[data-v-2a9ed243],.preview-day[data-v-2a9ed243],.preview-time-slot[data-v-2a9ed243]{padding:4px 2px;font-size:.78rem}.preview-schedule-item[data-v-2a9ed243]{border-radius:4px;margin:1px;padding:2px 3px;line-height:1.18}.optimization-card .cell-content[data-v-2a9ed243]{padding:1px}.cell-title[data-v-2a9ed243]{line-height:1.16}.cell-location[data-v-2a9ed243],.preview-item-location[data-v-2a9ed243]{line-height:1.12}.optimization-actions.has-exclusions[data-v-2a9ed243],.optimization-actions[data-v-2a9ed243]{height:auto;min-height:0;max-height:none;overflow:visible}.selected-courses-info[data-v-2a9ed243]{height:auto;min-height:0;padding:10px}.button-stack[data-v-2a9ed243]{flex-direction:column}.button-stack button[data-v-2a9ed243]{max-width:none}.primary-button[data-v-2a9ed243]{width:100%;min-width:0;min-height:50px;font-size:16px}.optimization-actions.is-loading[data-v-2a9ed243]{min-height:116px}.schedule-loading-pill[data-v-2a9ed243]{width:min(236px,76vw);min-height:48px;padding:9px 10px;gap:6px}.loading-pill-cell[data-v-2a9ed243]{height:28px}}@media (prefers-reduced-motion:reduce){.action-button[data-v-2a9ed243],.day-cell[data-v-2a9ed243],.loading-pill-cell[data-v-2a9ed243],.preview-schedule-item[data-v-2a9ed243],.reoptimize-button[data-v-2a9ed243],.retry-button[data-v-2a9ed243]{animation:none!important;transition:none!important}.loading-pill-cell[data-v-2a9ed243]{opacity:.82;transform:none}}@media (prefers-contrast:high){.optimization-card[data-v-2a9ed243],.preview-schedule-grid[data-v-2a9ed243],.timetable[data-v-2a9ed243]{border:2px solid var(--border-color)}}.schedule-page[data-v-73ceacec]{width:100%;min-height:100vh;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));display:flex;flex-direction:column;--schedule-text-color:#22313a;--schedule-muted-text-color:rgba(34,49,58,.72);--schedule-time-font-size:0.86rem;--schedule-title-font-size:0.92rem;--schedule-location-font-size:0.76rem;--schedule-time-column-width:60px}.schedule-container[data-v-73ceacec]{flex:1;width:100%;min-height:100vh;display:flex;justify-content:center;align-items:center;padding:24px 14px;box-sizing:border-box}.schedule-card[data-v-73ceacec]{background-color:#fff;border-radius:16px;overflow:hidden;width:100%;max-width:1000px;box-shadow:0 10px 30px rgba(0,0,0,.15)}.schedule-header[data-v-73ceacec]{padding:28px;text-align:center;border-bottom:1px solid #e9ecef}.title[data-v-73ceacec]{color:var(--dark-color);font-size:28px;margin-bottom:8px;font-weight:var(--heading-font-weight)}.subtitle[data-v-73ceacec]{color:var(--gray-color);font-size:16px;margin:0}.schedule-content[data-v-73ceacec]{padding:28px 30px 34px}.timetable[data-v-73ceacec]{width:100%;overflow-x:hidden}.day-header[data-v-73ceacec]{display:grid;grid-template-columns:var(--schedule-time-column-width) repeat(5,minmax(0,1fr));text-align:center;font-weight:600;border-bottom:1px solid #e9ecef;padding-bottom:10px}.day[data-v-73ceacec]{padding:10px}.grid-container[data-v-73ceacec]{display:flex;width:100%;position:relative}.time-column[data-v-73ceacec]{width:var(--schedule-time-column-width);flex-shrink:0;z-index:2;background-color:#f8f9fa;border-right:1px solid #e9ecef}.time[data-v-73ceacec]{display:flex;align-items:center;justify-content:center;color:var(--gray-color);font-size:var(--schedule-time-font-size);font-weight:700;border-bottom:1px solid #e9ecef;box-sizing:border-box}.schedule-grid[data-v-73ceacec]{flex-grow:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));min-width:0;position:relative;isolation:isolate;border:1px solid #e9ecef;border-left:none;border-top:none;border-bottom:1px solid #e9ecef;box-sizing:border-box}.grid-row-divider[data-v-73ceacec]{position:absolute;left:0;right:0;height:1px;background-color:#e9ecef;z-index:0;pointer-events:none}.schedule-item[data-v-73ceacec]{background-color:#e2e8f0;border-radius:6px;padding:4px 6px;margin:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:var(--schedule-title-font-size);font-weight:700;text-align:center;color:var(--schedule-text-color);overflow:hidden;box-shadow:0 2px 4px rgba(0,0,0,.1);position:relative;z-index:10;transition:transform .2s,box-shadow .2s;line-height:1.18}.schedule-item[data-v-73ceacec]:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.15);z-index:20}.empty-schedule-message[data-v-73ceacec]{margin-top:16px;padding:14px 16px;border-radius:8px;background:var(--light-color);color:var(--gray-color);font-size:14px;font-weight:600;text-align:center}.item-title[data-v-73ceacec]{overflow:visible;overflow-wrap:break-word;text-wrap:balance;font-size:var(--schedule-title-font-size);font-weight:800;margin-bottom:2px;line-height:1.18;color:var(--schedule-text-color)}.item-location[data-v-73ceacec],.item-title[data-v-73ceacec]{display:block;width:100%;text-align:center;word-break:keep-all}.item-location[data-v-73ceacec]{overflow:visible;overflow-wrap:anywhere;font-size:var(--schedule-location-font-size);font-weight:700;opacity:1;color:var(--schedule-muted-text-color);line-height:1.1}.course-info[data-v-73ceacec]{padding:30px;border-top:1px solid #e9ecef}.info-title[data-v-73ceacec]{color:var(--dark-color);font-size:22px;margin-bottom:20px;text-align:center}.tab-menu[data-v-73ceacec]{display:flex;justify-content:center;margin-bottom:30px;border-bottom:2px solid #e9ecef}.tab-button[data-v-73ceacec]{padding:12px 24px;border:none;background:none;font-size:16px;font-weight:500;color:var(--gray-color);cursor:pointer;border-bottom:3px solid transparent;transition:all .3s ease;margin:0 8px}.tab-button[data-v-73ceacec]:hover{color:var(--primary-color)}.tab-button.active[data-v-73ceacec]{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.tab-content[data-v-73ceacec]{min-height:200px}.tab-panel[data-v-73ceacec]{animation:fadeIn-73ceacec .3s ease}@keyframes fadeIn-73ceacec{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.summary-header[data-v-73ceacec]{margin-bottom:30px}.summary-main-card[data-v-73ceacec]{background:#fbfaf6;border:1px solid var(--border-color);border-radius:20px;padding:30px;color:var(--dark-color);text-align:center;box-shadow:0 8px 24px rgba(63,92,88,.12);position:relative;overflow:hidden}.summary-main-card[data-v-73ceacec]:before{content:none}.summary-icon[data-v-73ceacec]{font-size:48px;margin-bottom:15px;display:block}.summary-title[data-v-73ceacec]{font-size:36px;font-weight:700;margin:0 0 8px 0;color:var(--dark-color)}.summary-subtitle[data-v-73ceacec]{font-size:16px;color:var(--gray-color);margin:0 0 20px 0}.credits-progress[data-v-73ceacec]{background:#fff;border:1px solid var(--border-color);border-radius:20px;padding:15px;margin-top:20px}.progress-bar[data-v-73ceacec]{width:100%;height:8px;background:var(--light-gray);border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill[data-v-73ceacec]{height:100%;background:var(--primary-color);border-radius:4px;transition:width 1.5s ease;box-shadow:none}.progress-text[data-v-73ceacec]{font-size:14px;color:var(--gray-color);font-weight:700}.analysis-grid[data-v-73ceacec]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:25px}.analysis-card[data-v-73ceacec]{background:#fff;border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,.08);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}.analysis-card[data-v-73ceacec]:hover{transform:translateY(-5px);box-shadow:0 8px 30px rgba(0,0,0,.15)}.card-header[data-v-73ceacec]{padding:20px 20px 0 20px}.card-title[data-v-73ceacec]{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600;color:var(--dark-color);margin:0 0 20px 0}.card-icon[data-v-73ceacec]{font-size:20px}.category-breakdown[data-v-73ceacec]{padding:20px 20px 20px 20px}.category-item[data-v-73ceacec]{margin-bottom:15px}.category-info[data-v-73ceacec]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.category-name[data-v-73ceacec]{font-weight:500;color:var(--dark-color)}.category-credits[data-v-73ceacec]{font-weight:600;color:var(--primary-color)}.category-bar[data-v-73ceacec]{height:6px;background:#f1f3f4;border-radius:3px;overflow:hidden}.category-bar .bar-fill[data-v-73ceacec]{height:100%;border-radius:3px;transition:width 1s ease}.major-required .bar-fill[data-v-73ceacec]{background:linear-gradient(90deg,#f4a6a6,#df7f7f)}.major-elective .bar-fill[data-v-73ceacec]{background:linear-gradient(90deg,#9ad3c7,#7bc4b8)}.engineering-basic .bar-fill[data-v-73ceacec]{background:linear-gradient(90deg,#a8c7e8,#82b7df)}.others .bar-fill[data-v-73ceacec]{background:linear-gradient(90deg,#f6d878,#e8b86d)}.day-distribution[data-v-73ceacec]{padding:20px 20px 20px 20px}.day-item[data-v-73ceacec]{margin-bottom:12px}.day-info[data-v-73ceacec]{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.day-name[data-v-73ceacec]{font-weight:500;color:var(--dark-color)}.day-count[data-v-73ceacec]{font-size:14px;color:var(--gray-color)}.day-bar[data-v-73ceacec]{height:4px;background:#f1f3f4;border-radius:2px;overflow:hidden}.day-bar .bar-fill[data-v-73ceacec]{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));border-radius:2px;transition:width 1s ease}.time-stats[data-v-73ceacec]{padding:20px 20px 20px 20px;display:flex;flex-direction:column;gap:15px}.time-stat-item[data-v-73ceacec]{display:flex;align-items:center;gap:15px;padding:12px;background:#f8f9fa;border-radius:10px;transition:background .3s ease}.time-stat-item[data-v-73ceacec]:hover{background:#e9ecef}.stat-icon[data-v-73ceacec]{font-size:24px;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center}.stat-icon.morning[data-v-73ceacec]{background:linear-gradient(135deg,#ffeaa7,#fdcb6e)}.stat-icon.afternoon[data-v-73ceacec]{background:linear-gradient(135deg,#fd79a8,#e84393)}.stat-icon.evening[data-v-73ceacec]{background:linear-gradient(135deg,#74b9ff,#0984e3)}.stat-info[data-v-73ceacec]{display:flex;flex-direction:column}.stat-label[data-v-73ceacec]{font-size:14px;color:var(--gray-color);margin-bottom:2px}.stat-value[data-v-73ceacec]{font-size:18px;font-weight:600;color:var(--dark-color)}.insights-content[data-v-73ceacec]{padding:20px 20px 20px 20px}.insight-item[data-v-73ceacec]{display:flex;align-items:flex-start;gap:12px;padding:15px;margin-bottom:12px;background:#f8f9fa;border-radius:12px;border-left:4px solid transparent;transition:all .3s ease}.insight-item[data-v-73ceacec]:hover{background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.1)}.insight-item.warning[data-v-73ceacec]{border-left-color:#f39c12;background:#fff8e1}.insight-item.positive[data-v-73ceacec]{border-left-color:#27ae60;background:#e8f5e8}.insight-item.success[data-v-73ceacec]{border-left-color:#3498db;background:#e3f2fd}.insight-item.info[data-v-73ceacec]{border-left-color:#82b7df;background:#edf7fb}.insight-icon[data-v-73ceacec]{font-size:20px;margin-top:2px}.insight-text[data-v-73ceacec]{font-size:14px;line-height:1.5;color:var(--dark-color)}.recommendations-content[data-v-73ceacec]{padding:20px 20px 20px 20px}.recommendation-item[data-v-73ceacec]{display:flex;align-items:center;gap:12px;padding:12px;margin-bottom:10px;background:#f8f9fa;border-radius:10px;transition:all .3s ease}.recommendation-item[data-v-73ceacec]:hover{background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.1)}.rec-badge[data-v-73ceacec]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.rec-badge.success[data-v-73ceacec]{background:linear-gradient(135deg,#00b894,#00a085)}.rec-badge.info[data-v-73ceacec]{background:linear-gradient(135deg,#0984e3,#74b9ff)}.rec-badge.tip[data-v-73ceacec]{background:linear-gradient(135deg,#fdcb6e,#e17055)}.rec-badge.default[data-v-73ceacec]{background:linear-gradient(135deg,#c8b8e8,#9ad3c7)}.rec-text[data-v-73ceacec]{font-size:14px;line-height:1.4;color:var(--dark-color)}.category-list[data-v-73ceacec],.grade-list[data-v-73ceacec]{display:flex;flex-direction:column;gap:25px}.category-section[data-v-73ceacec],.grade-section[data-v-73ceacec]{border:1px solid #e9ecef;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.05)}.category-title[data-v-73ceacec],.grade-title[data-v-73ceacec]{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;padding:15px 20px;margin:0;font-size:18px;font-weight:600;display:flex;justify-content:space-between;align-items:center}.category-credits[data-v-73ceacec],.grade-count[data-v-73ceacec]{font-size:14px;opacity:.9;background:hsla(0,0%,100%,.9);color:var(--primary-color);padding:4px 12px;border-radius:20px;font-weight:600}.course-items[data-v-73ceacec]{padding:20px;display:flex;flex-direction:column;gap:15px}.course-item[data-v-73ceacec]{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:15px;transition:all .2s ease}.course-item[data-v-73ceacec]:hover{background-color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.1);transform:translateY(-2px)}.course-header[data-v-73ceacec]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.course-name[data-v-73ceacec]{font-size:16px;font-weight:600;color:var(--dark-color)}.course-credits[data-v-73ceacec]{background-color:var(--primary-color);color:#fff;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500}.course-details[data-v-73ceacec]{display:flex;gap:12px;margin-bottom:8px;flex-wrap:wrap}.course-category[data-v-73ceacec],.course-grade[data-v-73ceacec],.course-professor[data-v-73ceacec]{font-size:13px;color:var(--gray-color);background-color:#e9ecef;padding:3px 8px;border-radius:6px}.course-schedule[data-v-73ceacec]{display:flex;flex-wrap:wrap;gap:8px}.schedule-time[data-v-73ceacec]{font-size:13px;color:var(--primary-color);background-color:#e6f3ff;padding:4px 8px;border-radius:6px;font-weight:500}.schedule-location[data-v-73ceacec]{color:var(--gray-color);font-weight:400}.feedback-section[data-v-73ceacec]{padding:30px;border-top:1px solid #e9ecef}.feedback-title[data-v-73ceacec]{color:var(--dark-color);font-size:22px;margin-bottom:10px;text-align:center}.feedback-description[data-v-73ceacec]{color:var(--gray-color);margin-bottom:20px;text-align:center}.feedback-form[data-v-73ceacec]{display:flex;flex-direction:column;align-items:center;gap:15px;margin-top:15px}.feedback-input[data-v-73ceacec]{width:100%;padding:12px;border:2px solid #d1d5db;border-radius:8px;resize:vertical;font-family:inherit;margin-bottom:15px;transition:border-color .3s ease}.feedback-input[data-v-73ceacec]:focus{outline:none;border-color:var(--primary-color)}.feedback-input.error[data-v-73ceacec]{border-color:#e53e3e;background-color:#fff5f5}.feedback-error[data-v-73ceacec]{color:#e53e3e;background-color:#fff5f5;border-left:3px solid #e53e3e;padding:10px;margin-bottom:15px;border-radius:4px;font-size:14px;width:100%;box-sizing:border-box}.submit-button[data-v-73ceacec]{padding:12px 24px;background-color:var(--primary-color);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .3s;width:auto;min-width:200px;text-align:center}.submit-button[data-v-73ceacec]:hover:not(:disabled){background-color:var(--secondary-color);transform:translateY(-2px);box-shadow:0 5px 15px rgba(123,196,184,.28)}.submit-button.disabled[data-v-73ceacec],.submit-button[data-v-73ceacec]:disabled{background-color:#cbd5e0;color:#a0aec0;cursor:not-allowed;transform:none;box-shadow:none}.feedback-success[data-v-73ceacec]{padding:30px;text-align:center;border-top:1px solid #e9ecef}.success-icon[data-v-73ceacec]{background-color:#10b981;color:#fff;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;margin:0 auto 20px}.success-title[data-v-73ceacec]{color:var(--dark-color);font-size:22px;margin-bottom:10px}.success-message[data-v-73ceacec]{color:var(--gray-color)}.action-buttons[data-v-73ceacec]{display:flex;justify-content:center;gap:16px;padding:30px;border-top:1px solid #e9ecef}.action-buttons.with-margin[data-v-73ceacec]{margin-top:20px}.action-button[data-v-73ceacec]{padding:12px 24px;border-radius:8px;font-size:16px;font-weight:500;border:none;cursor:pointer;transition:all .2s ease}.restart-button[data-v-73ceacec]{background-color:#e9ecef;color:var(--gray-color)}.restart-button[data-v-73ceacec]:hover{background-color:#dee2e6;transform:translateY(-1px)}.save-button[data-v-73ceacec]{background-color:var(--primary-color);color:#fff}.save-button[data-v-73ceacec]:hover:not(:disabled){background-color:var(--secondary-color);transform:translateY(-1px)}.save-button[data-v-73ceacec]:disabled{background-color:#cbd5e0;color:#9ca3af;cursor:not-allowed;transform:none}.loading-spinner[data-v-73ceacec]{display:inline-block;width:12px;height:12px;border:2px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;animation:spin-73ceacec 1s ease-in-out infinite;margin-right:8px}@keyframes spin-73ceacec{to{transform:rotate(1turn)}}.save-notification[data-v-73ceacec]{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:8px;font-weight:500;display:flex;align-items:center;gap:10px;box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:1000}.save-notification.success[data-v-73ceacec]{background-color:#10b981;color:#fff}.save-notification.error[data-v-73ceacec]{background-color:#ef4444;color:#fff}.notification-icon[data-v-73ceacec]{font-size:18px}.notification-enter-active[data-v-73ceacec],.notification-leave-active[data-v-73ceacec]{transition:all .3s ease}.notification-enter-from[data-v-73ceacec]{transform:translate(-50%,20px);opacity:0}.notification-leave-to[data-v-73ceacec]{opacity:0}@media (max-width:768px){.schedule-page[data-v-73ceacec]{--schedule-time-column-width:48px;--schedule-time-font-size:0.78rem;--schedule-title-font-size:0.8rem;--schedule-location-font-size:0.64rem}.schedule-container[data-v-73ceacec]{align-items:flex-start;padding:10px 8px 16px}.schedule-card[data-v-73ceacec]{max-width:100%;margin:0;border-radius:12px}.title[data-v-73ceacec]{font-size:24px}.schedule-item[data-v-73ceacec]{padding:2px 3px;margin:1px;line-height:1.18}.item-title[data-v-73ceacec]{line-height:1.18;margin-bottom:1px}.tab-menu[data-v-73ceacec]{flex-direction:column;gap:8px}.tab-button[data-v-73ceacec]{margin:0;padding:10px 16px}.analysis-grid[data-v-73ceacec]{grid-template-columns:1fr}.course-header[data-v-73ceacec]{flex-direction:column;align-items:flex-start;gap:8px}.course-details[data-v-73ceacec]{gap:8px}.schedule-time[data-v-73ceacec]{font-size:12px}.category-title[data-v-73ceacec],.grade-title[data-v-73ceacec]{flex-direction:column;align-items:flex-start;gap:8px}.action-buttons[data-v-73ceacec]{flex-direction:column;gap:12px;padding:20px}.action-button[data-v-73ceacec]{width:100%}.schedule-content[data-v-73ceacec]{padding:16px 10px 20px}.course-info[data-v-73ceacec],.feedback-section[data-v-73ceacec],.schedule-header[data-v-73ceacec]{padding:20px}.day[data-v-73ceacec]{padding:8px 2px;font-size:.85rem}}@media (max-width:480px){.schedule-page[data-v-73ceacec]{--schedule-time-column-width:38px;--schedule-time-font-size:0.66rem;--schedule-title-font-size:0.66rem;--schedule-location-font-size:0.54rem}.schedule-container[data-v-73ceacec]{padding:8px 6px 14px}.schedule-content[data-v-73ceacec]{padding:14px 8px 18px}.summary-title[data-v-73ceacec]{font-size:28px}.summary-icon[data-v-73ceacec]{font-size:36px}.day[data-v-73ceacec]{padding:6px 1px;font-size:.78rem}.schedule-item[data-v-73ceacec]{border-radius:4px;padding:2px;line-height:1.2}.analysis-card[data-v-73ceacec]{margin:0}.submit-button[data-v-73ceacec]{min-width:150px}}@media (prefers-reduced-motion:reduce){.action-button[data-v-73ceacec],.analysis-card[data-v-73ceacec],.bar-fill[data-v-73ceacec],.course-item[data-v-73ceacec],.progress-fill[data-v-73ceacec],.submit-button[data-v-73ceacec],.tab-panel[data-v-73ceacec]{animation:none!important;transition:none!important}}@media (prefers-contrast:high){.analysis-card[data-v-73ceacec]{border:2px solid var(--border-color)}.course-item[data-v-73ceacec]{border:2px solid #dee2e6}}.action-button[data-v-73ceacec]:focus,.submit-button[data-v-73ceacec]:focus,.tab-button[data-v-73ceacec]:focus{outline:2px solid var(--primary-color);outline-offset:2px}.feedback-input[data-v-73ceacec]:focus{box-shadow:0 0 0 3px rgba(123,196,184,.16)}.app-container{width:100%;min-height:100vh}:root{--primary-color:#7bc4b8;--primary-deep:#2f766d;--primary-soft:#dff4ef;--secondary-color:#f3b6a9;--secondary-deep:#b96a5f;--accent-color:#f7d774;--light-color:#fbfaf6;--dark-color:#273238;--gray-color:#6f7f83;--light-gray:#edf2ef;--border-color:#dce6e1;--bg-color:#f6f8f4;--card-bg:#fff;--success-color:#7bbf8e;--warning-color:#e8b86d;--error-color:#df7f7f;--info-color:#82b7df;--font-family:"Noto Sans KR",sans-serif;--heading-font-weight:700;--body-font-weight:400;--container-max-width:1200px;--card-max-width:500px;--border-radius:16px;--border-radius-small:8px;--box-shadow:0 10px 30px rgba(63,92,88,.14);--box-shadow-hover:0 5px 15px rgba(123,196,184,.28);--transition-base:all 0.3s ease;--transition-fast:all 0.2s ease}*{box-sizing:border-box}body{margin:0;padding:0;font-family:var(--font-family);background-color:var(--bg-color);color:var(--dark-color);font-weight:var(--body-font-weight);line-height:1.6}button{cursor:pointer;border:none}button,input,textarea{font-family:var(--font-family);outline:none}.container{width:100%;max-width:var(--container-max-width);margin:0 auto;padding:0 15px}.page-container{width:100%;min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));padding:20px;box-sizing:border-box}.card{background-color:var(--card-bg);border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--box-shadow);transition:var(--transition-base)}.card-content{padding:30px}.card-header{padding:30px 30px 0;text-align:center;border-bottom:1px solid var(--light-gray)}.title{color:var(--dark-color);font-size:28px;margin-bottom:16px;font-weight:var(--heading-font-weight);text-align:center}.title-large{font-size:32px}.subtitle{color:var(--gray-color);font-size:16px;margin:0 0 24px 0;text-align:center;line-height:1.5}.section-title{font-size:18px;color:var(--gray-color);margin-bottom:15px;font-weight:500}.btn{padding:12px 24px;border-radius:var(--border-radius-small);font-size:16px;font-weight:500;border:none;cursor:pointer;transition:var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;min-width:120px}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{cursor:not-allowed;opacity:.6;transform:none!important}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--secondary-color);box-shadow:var(--box-shadow-hover)}.btn-secondary{background-color:var(--light-gray);color:var(--gray-color)}.btn-secondary:hover:not(:disabled){background-color:var(--border-color)}.btn-success{background-color:var(--success-color);color:#fff}.btn-warning{background-color:var(--warning-color);color:#fff}.btn-error{background-color:var(--error-color);color:#fff}.btn-large{padding:16px 32px;font-size:18px}.btn-small{padding:8px 16px;font-size:14px}.btn-full{width:100%}.btn-answer{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;font-size:18px;font-weight:500;width:100%;margin-bottom:16px}.btn-answer-yes{background-color:#e8f3eb;color:#2a9d46}.btn-answer-yes:hover{background-color:#d0e9d6}.btn-answer-no{background-color:#f9e9e9;color:#e05252}.btn-answer-no:hover{background-color:#f5d6d6}.btn-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff}.btn-answer-yes .btn-icon{background-color:#2a9d46}.btn-answer-no .btn-icon{background-color:#e05252}.form-group{margin-bottom:24px}.form-input{width:100%;padding:12px;border:2px solid var(--border-color);border-radius:var(--border-radius-small);font-size:16px;transition:var(--transition-fast)}.form-input:focus{border-color:var(--primary-color)}.form-input.error{border-color:var(--error-color);background-color:#fff5f5}.form-textarea{resize:vertical;min-height:100px}.form-error{color:var(--error-color);background-color:#fff5f5;border-left:3px solid var(--error-color);padding:10px;margin-top:8px;border-radius:4px;font-size:14px}.slider{width:100%;height:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--light-gray);outline:none;border-radius:4px;margin-bottom:15px}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;background:var(--primary-color);border-radius:50%;cursor:pointer}.slider::-moz-range-thumb{width:20px;height:20px;background:var(--primary-color);border-radius:50%;cursor:pointer;border:none}.status-message{padding:15px 20px;border-radius:var(--border-radius-small);text-align:center;font-weight:500;margin-bottom:20px;transition:var(--transition-base)}.status-info{background-color:var(--primary-color);color:#fff}.status-success{background-color:var(--success-color);color:#fff}.status-warning{background-color:var(--warning-color);color:#fff}.status-error{background-color:var(--error-color);color:#fff}.progress-bar{width:100%;height:8px;background-color:var(--light-gray);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background-color:var(--accent-color);transition:width .3s ease;border-radius:4px}.flex{display:flex}.flex-center{justify-content:center}.flex-between,.flex-center{display:flex;align-items:center}.flex-between{justify-content:space-between}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.grid{display:grid}.grid-2{grid-template-columns:repeat(2,1fr);gap:20px}.grid-3{grid-template-columns:repeat(3,1fr);gap:20px}.grid-auto{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.mb-0{margin-bottom:0}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mb-4{margin-bottom:32px}.mt-0{margin-top:0}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}.p-0{padding:0}.p-1{padding:8px}.p-2{padding:16px}.p-3{padding:24px}.p-4{padding:32px}.fade-enter-active,.fade-leave-active{transition:opacity .5s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-up{animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.bounce{animation:bounce .6s ease}@keyframes bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-8px,0)}70%{transform:translate3d(0,-4px,0)}90%{transform:translate3d(0,-2px,0)}}.loading-spinner{display:inline-block;width:16px;height:16px;border:2px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:currentColor;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.notification{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:var(--border-radius-small);font-weight:500;display:flex;align-items:center;gap:10px;box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:1000;animation:slideUp .3s ease,fadeOut .3s ease 2.7s forwards}.notification-success{background-color:var(--success-color);color:#fff}.notification-error{background-color:var(--error-color);color:#fff}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@media (max-width:1200px){:root{--container-max-width:960px}}@media (max-width:992px){.card-content{padding:20px}.card-header{padding:20px 20px 0}.title{font-size:24px}.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.card-content,.page-container{padding:15px}.card-header{padding:15px 15px 0}.title{font-size:22px}.btn{padding:10px 20px;font-size:14px}.btn-large{padding:14px 28px;font-size:16px}.grid-2,.grid-3{grid-template-columns:1fr}.flex-between{flex-direction:column;gap:12px}}@media (max-width:576px){.page-container{padding:10px}.card-content{padding:12px}.title{font-size:20px}.subtitle{font-size:14px}.btn{padding:8px 16px;font-size:13px}}:root{--spacing-1:8px;--spacing-2:16px;--spacing-3:24px;--spacing-4:32px;--spacing-5:40px;--spacing-6:48px;--mobile-header-height:60px;--mobile-bottom-bar-height:80px;--mobile-button-height:56px;--mobile-card-padding:16px;--mobile-border-radius:12px;--mobile-font-size-small:12px;--mobile-font-size-base:14px;--mobile-font-size-large:18px;--mobile-font-size-xl:24px;--touch-target-min:44px;--mobile-gap-small:8px;--mobile-gap-medium:16px;--mobile-gap-large:24px;--mobile-shadow-light:0 2px 8px rgba(0,0,0,.1);--mobile-shadow-medium:0 4px 16px rgba(0,0,0,.15);--mobile-shadow-heavy:0 8px 32px rgba(0,0,0,.2);--mobile-transition-fast:all 0.2s ease;--mobile-transition-normal:all 0.3s ease;--mobile-transition-slow:all 0.5s ease;--z-index-mobile-header:100;--z-index-mobile-bottom-bar:90;--z-index-modal:1000;--z-index-toast:1100}.mobile-container{width:100%;max-width:100vw;padding:0 var(--spacing-2);margin:0 auto}.mobile-full-width{width:100%;margin-left:calc(var(--spacing-2)*-1);margin-right:calc(var(--spacing-2)*-1)}.mobile-card{background:var(--card-bg);border-radius:var(--mobile-border-radius);padding:var(--mobile-card-padding);box-shadow:var(--mobile-shadow-light);margin-bottom:var(--spacing-2)}.mobile-card-elevated{box-shadow:var(--mobile-shadow-medium)}.mobile-grid{display:grid;gap:var(--mobile-gap-medium)}.mobile-grid-2{grid-template-columns:repeat(2,1fr)}.mobile-grid-auto{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.mobile-flex-col{display:flex;flex-direction:column}.mobile-flex-row{display:flex;flex-direction:row;align-items:center}.mobile-flex-center{display:flex;justify-content:center;align-items:center}.mobile-flex-between{display:flex;justify-content:space-between;align-items:center}.btn-mobile{min-height:var(--mobile-button-height);padding:var(--spacing-2) var(--spacing-3);font-size:var(--mobile-font-size-base);border-radius:var(--mobile-border-radius);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn-mobile-large{min-height:64px;padding:var(--spacing-3) var(--spacing-4);font-size:var(--mobile-font-size-large)}.btn-mobile-full{width:100%;justify-content:space-between}.btn-fab{width:56px;height:56px;border-radius:50%;bottom:var(--spacing-3);right:var(--spacing-3);box-shadow:var(--mobile-shadow-heavy);display:flex;align-items:center;justify-content:center}.btn-fab,.mobile-bottom-button{position:fixed;z-index:var(--z-index-mobile-bottom-bar)}.mobile-bottom-button{bottom:0;left:0;right:0;background:var(--card-bg);border-top:1px solid var(--border-color);padding:var(--spacing-2) var(--spacing-3);box-shadow:0 -4px 16px rgba(0,0,0,.1)}.mobile-title{font-size:var(--mobile-font-size-xl);font-weight:var(--heading-font-weight);line-height:1.2;margin-bottom:var(--spacing-2)}.mobile-subtitle{font-size:var(--mobile-font-size-large);font-weight:500;color:var(--gray-color);line-height:1.4;margin-bottom:var(--spacing-3)}.mobile-body{font-size:var(--mobile-font-size-base);line-height:1.5;color:var(--dark-color)}.mobile-caption{font-size:var(--mobile-font-size-small);color:var(--gray-color);line-height:1.3}.mobile-form-group{margin-bottom:var(--spacing-3)}.mobile-input{width:100%;min-height:var(--touch-target-min);padding:var(--spacing-2);font-size:var(--mobile-font-size-base);border:2px solid var(--border-color);border-radius:var(--mobile-border-radius);transition:var(--mobile-transition-fast)}.mobile-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(123,196,184,.16)}.mobile-textarea{min-height:120px;resize:vertical}.mobile-slider{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--light-gray);border-radius:3px;outline:none}.mobile-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;background:var(--primary-color);border-radius:50%;cursor:pointer;box-shadow:var(--mobile-shadow-light)}.mobile-slider::-moz-range-thumb{width:24px;height:24px;background:var(--primary-color);border-radius:50%;cursor:pointer;border:none;box-shadow:var(--mobile-shadow-light)}.mobile-m-0{margin:0}.mobile-m-1{margin:var(--spacing-1)}.mobile-m-2{margin:var(--spacing-2)}.mobile-m-3{margin:var(--spacing-3)}.mobile-m-4{margin:var(--spacing-4)}.mobile-mt-0{margin-top:0}.mobile-mt-1{margin-top:var(--spacing-1)}.mobile-mt-2{margin-top:var(--spacing-2)}.mobile-mt-3{margin-top:var(--spacing-3)}.mobile-mt-4{margin-top:var(--spacing-4)}.mobile-mb-0{margin-bottom:0}.mobile-mb-1{margin-bottom:var(--spacing-1)}.mobile-mb-2{margin-bottom:var(--spacing-2)}.mobile-mb-3{margin-bottom:var(--spacing-3)}.mobile-mb-4{margin-bottom:var(--spacing-4)}.mobile-p-0{padding:0}.mobile-p-1{padding:var(--spacing-1)}.mobile-p-2{padding:var(--spacing-2)}.mobile-p-3{padding:var(--spacing-3)}.mobile-p-4{padding:var(--spacing-4)}.mobile-px-2{padding-left:var(--spacing-2);padding-right:var(--spacing-2)}.mobile-px-3{padding-left:var(--spacing-3);padding-right:var(--spacing-3)}.mobile-py-2{padding-top:var(--spacing-2);padding-bottom:var(--spacing-2)}.mobile-py-3{padding-top:var(--spacing-3);padding-bottom:var(--spacing-3)}.mobile-fade-in{animation:mobileFadeIn .3s ease-out}@keyframes mobileFadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.mobile-slide-up{animation:mobileSlideUp .3s ease-out}@keyframes mobileSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-scale-in{animation:mobileScaleIn .2s ease-out}@keyframes mobileScaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.mobile-toast{position:fixed;bottom:var(--spacing-4);left:var(--spacing-2);right:var(--spacing-2);background:var(--dark-color);color:#fff;padding:var(--spacing-2) var(--spacing-3);border-radius:var(--mobile-border-radius);box-shadow:var(--mobile-shadow-heavy);z-index:var(--z-index-toast);animation:mobileSlideUp .3s ease-out}.mobile-loading{display:flex;justify-content:center;align-items:center;padding:var(--spacing-4)}.mobile-loading-spinner{width:24px;height:24px;border:3px solid var(--light-gray);border-top:3px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}.touch-target{min-width:var(--touch-target-min);min-height:var(--touch-target-min)}.mobile-scroll-area{-webkit-overflow-scrolling:touch;overflow-y:auto}.no-touch-highlight{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.mobile-only{display:none}.desktop-only{display:block}@media (max-width:768px){.mobile-only{display:block}.desktop-only{display:none}.mobile-flex-col-on-mobile{flex-direction:column}.mobile-full-width-on-mobile{width:100%}.mobile-gap-small-on-mobile{gap:var(--mobile-gap-small)}.mobile-gap-medium-on-mobile{gap:var(--mobile-gap-medium)}}@supports (padding-top:env(safe-area-inset-top)){.mobile-safe-area-top{padding-top:env(safe-area-inset-top)}.mobile-safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}}.mobile-hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.mobile-hide-scrollbar::-webkit-scrollbar{display:none}.mobile-hardware-accelerated{transform:translateZ(0);will-change:transform}@media (prefers-reduced-motion:reduce){.mobile-fade-in,.mobile-loading-spinner,.mobile-scale-in,.mobile-slide-up{animation:none!important}*{transition-duration:.01ms!important}}