.main-banner{position:relative;height:420px}.swiper{position:absolute;top:0;left:0;width:100%;height:100%}.cta-section{background-color:#f0fdf4;border-radius:.75rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;border:1px solid #dcfce7}.cta-content{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;color:#166534}.cta-button{background-color:#5cb85c;color:#fff;font-weight:700;padding:.75rem 1.5rem;border-radius:.5rem;transition:all .2s;white-space:nowrap;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.cta-button:hover{background-color:#4cae4c;transform:translateY(-2px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.home-grid-layout{display:grid;grid-template-columns:2fr 1fr;gap:2rem;margin-bottom:2rem;align-items:start}.home-grid-left,.home-grid-right{display:flex;flex-direction:column;gap:2rem}.home-grid-left{height:100%;justify-content:space-between}body{font-family:Noto Sans KR,sans-serif;font-size:14px}#sidebar{top:0;z-index:10}#app-shell #top-header,#app-shell #top-header h1,#app-shell #top-header a,#app-shell #top-header button,#app-shell #top-header span,#app-shell #top-header label,#app-shell #sidebar,#app-shell #sidebar nav,#app-shell #sidebar .sidebar-item span,#app-shell #app-footer,#app-shell #app-footer h3,#app-shell #app-footer p,#app-shell #app-footer a,#app-shell #app-footer span{font-family:Noto Sans KR,sans-serif!important}#app-shell #sidebar .sidebar-item,#app-shell #sidebar .sidebar-item span{font-weight:600!important;color:#4b5563!important}#app-shell #sidebar .sidebar-item:hover,#app-shell #sidebar .sidebar-item:hover span{color:#111827!important}#app-shell #sidebar .sidebar-item.active,#app-shell #sidebar .sidebar-item.active span{color:#fff!important}body.page-zoom-room #sidebar{display:none!important}body.page-zoom-room #main-content{margin-left:0!important;max-width:none!important}body.page-zoom-room #app{padding:0!important;max-width:none!important;min-height:100vh}body.page-zoom-room #app-footer{display:none!important}body.page-zoom-room #app-shell,body.page-zoom-room #app-shell #top-header,body.page-zoom-room #app-shell #top-header h1,body.page-zoom-room #app-shell #top-header a,body.page-zoom-room #app-shell #top-header button,body.page-zoom-room #app-shell #top-header span,body.page-zoom-room #app-shell #sidebar,body.page-zoom-room #app-shell #sidebar nav,body.page-zoom-room #app-shell #sidebar .sidebar-item span,body.page-zoom-room #app-shell #app-footer,body.page-zoom-room #app-shell #app-footer h3,body.page-zoom-room #app-shell #app-footer p,body.page-zoom-room #app-shell #app-footer a,body.page-zoom-room #app-shell #app-footer span{font-family:Noto Sans KR,sans-serif!important;font-size:inherit!important;line-height:inherit!important;letter-spacing:normal!important}body.page-zoom-room #app-shell #sidebar .sidebar-item,body.page-zoom-room #app-shell #sidebar .sidebar-item span{font-weight:600!important;color:#4b5563!important;font-size:.875rem!important}#main-content{transition:margin-left .5s}.sidebar-item{display:flex;align-items:center;padding:.75rem 1rem;border-radius:.5rem;font-weight:600;color:#4b5563;transition:all .2s}.sidebar-item:hover{background-color:#f3f4f6;color:#111827}.sidebar-item.active{background-color:#5cb85c;color:#fff;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.stat-card{background-color:#fff;border-radius:.75rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;padding:1.5rem;text-align:center}.stat-card .icon{font-size:2rem;color:#5cb85c;margin-bottom:.75rem}.stat-card .value{font-size:1.875rem;font-weight:700;color:#1f2937}.stat-card .label{font-size:.875rem;color:#6b7280;margin-top:.25rem}.section-title{font-size:1.5rem;font-weight:700;color:#111827;margin-bottom:1rem;border-bottom:2px solid #f1f5f9;padding-bottom:.5rem}.dashboard-section{background-color:#fff;border-radius:.75rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;padding:1.5rem}.weakness-item{display:flex;align-items:center;justify-content:space-between;font-size:1rem;padding:.5rem 0}.weakness-item .char{font-family:monospace;font-weight:700}.weakness-item .expected{color:#6b7280}.weakness-item .typed{color:#ef4444}.weakness-item .count{color:#3b82f6}.main-tab-btn.active,.admin-tab-btn.active,.tab-btn.active{color:#5cb85c;font-weight:700;border-color:#5cb85c}.sub-tab-btn.active{background-color:#5cb85c;color:#fff}#sub-tabs-wrapper::-webkit-scrollbar{height:4px}#sub-tabs-wrapper::-webkit-scrollbar-thumb{background-color:#5cb85c;border-radius:2px}#sub-tabs-wrapper::-webkit-scrollbar-track{background-color:#f1f5f9}.popup-content textarea{width:100%;box-sizing:border-box;font-size:1em;font-family:Noto Sans KR,sans-serif;padding:12px;border:1px solid #dee2e6;border-radius:6px;resize:vertical}.popup-content .button-group{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.popup-content .button-group button{flex-grow:1;font-size:1.1em;font-weight:700;padding:14px 20px;cursor:pointer;border:none;border-radius:6px;transition:background-color .2s;display:flex;justify-content:center;align-items:center}#popup-download-button{background-color:#1d3557;color:#fff}#popup-result-stats{padding:12px;background-color:#f8f9fa;border-radius:6px;text-align:center;font-size:.95em;margin-top:25px;min-height:40px}#popup-result-display{border:1px solid #e9ecef;padding:15px;margin-top:15px;line-height:1.8;font-size:1.1em;border-radius:6px;max-height:200px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}#popup-result-display .correct{color:#000}#popup-result-display .error{color:#fff;background-color:#6f42c1}#popup-result-display .omission{color:#fff;background-color:#e63946;text-decoration:line-through}#popup-result-display .addition{color:#fff;background-color:#28a745}#popup-result-display .error .original-char{font-size:.8em;vertical-align:super;color:#e9d5ff;margin-left:1px}.spinner-border{display:none;width:1.2em;height:1.2em;border:3px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}@keyframes spinner-border{to{transform:rotate(360deg)}}:root{--sight-font-size: 1.25rem;--sight-line-height: 2;--sight-padding: 16px;--sight-one-line: calc(var(--sight-font-size) * var(--sight-line-height));--sight-box-height: calc(2 * var(--sight-one-line) + 2 * var(--sight-padding))}.sight-typing-display{font-family:Noto Sans KR,Malgun Gothic,sans-serif;font-size:var(--sight-font-size);line-height:var(--sight-line-height);letter-spacing:.02em;border:2px solid #a1a1aa;padding:var(--sight-padding);border-radius:.5rem;background-color:#fefce8;margin-bottom:.5rem;white-space:pre-wrap;-webkit-user-select:none;user-select:none;height:var(--sight-box-height);min-height:var(--sight-box-height);overflow-y:auto;box-sizing:border-box}#practice-area .sight-typing-input{font-family:Noto Sans KR,Malgun Gothic,sans-serif;border:2px solid #a1a1aa;padding:var(--sight-padding);border-radius:.5rem;height:16rem;resize:none;width:100%;box-sizing:border-box}#sight-typing-content .sight-typing-input,.sight-typing-input{font-family:Noto Sans KR,Malgun Gothic,sans-serif;font-size:var(--sight-font-size);line-height:var(--sight-line-height);letter-spacing:.02em;border:2px solid #374151;padding:var(--sight-padding);border-radius:.5rem;height:var(--sight-box-height);min-height:var(--sight-box-height);resize:none;width:100%;box-sizing:border-box;background-color:#fff;margin-bottom:.15rem}.sight-typing-input.sight-typing-input-single,.sight-typing-input-single{min-height:0!important;padding:.35rem .5rem;line-height:var(--sight-line-height);height:calc(1em * var(--sight-line-height) + .7rem)!important;box-sizing:border-box}.sight-typing-input-single.text-size-sm{height:calc(1.8em + .7rem)!important}.sight-typing-input-single.text-size-md{height:calc(2em + .7rem)!important}.sight-typing-input-single.text-size-lg{height:calc(2.2em + .7rem)!important}.sight-typing-display.text-size-sm,.sight-typing-input.text-size-sm,.sight-typing-inline-wrap.text-size-sm,.sight-typing-line-rows-wrap.text-size-sm{font-size:1rem;line-height:1.8}.sight-typing-display.text-size-sm,.sight-typing-input.text-size-sm{height:calc(2 * 1rem * 1.8 + 2 * var(--sight-padding));min-height:calc(2 * 1rem * 1.8 + 2 * var(--sight-padding))}.sight-typing-display.text-size-md,.sight-typing-input.text-size-md,.sight-typing-inline-wrap.text-size-md,.sight-typing-line-rows-wrap.text-size-md{font-size:1.25rem;line-height:2}.sight-typing-display.text-size-md,.sight-typing-input.text-size-md{height:calc(2 * 1.25rem * 2 + 2 * var(--sight-padding));min-height:calc(2 * 1.25rem * 2 + 2 * var(--sight-padding))}.sight-typing-display.text-size-lg,.sight-typing-input.text-size-lg,.sight-typing-inline-wrap.text-size-lg,.sight-typing-line-rows-wrap.text-size-lg{font-size:1.5rem;line-height:2.2}.sight-typing-display.text-size-lg,.sight-typing-input.text-size-lg{height:calc(2 * 1.5rem * 2.2 + 2 * var(--sight-padding));min-height:calc(2 * 1.5rem * 2.2 + 2 * var(--sight-padding))}.sight-typing-display .line,.sight-typing-display-above .line,.sight-typing-display-below{transition:all .3s ease;font-size:inherit;line-height:inherit;min-height:1em}.sight-typing-display-above{font-family:Noto Sans KR,Malgun Gothic,sans-serif;font-size:var(--sight-font-size);line-height:var(--sight-line-height);letter-spacing:.02em;border:2px solid #a1a1aa;padding:var(--sight-padding);border-radius:.5rem;background-color:#fffbe6;margin-bottom:.15rem;white-space:pre-wrap;-webkit-user-select:none;user-select:none;min-height:calc(1 * var(--sight-one-line) + 2 * var(--sight-padding));box-sizing:border-box}.sight-typing-display-above .char.correct{color:#1d4ed8;text-decoration:underline}.sight-typing-display-above .char.incorrect{color:#dc2626;text-decoration:underline}.sight-typing-display-below.sight-typing-upcoming{font-family:Noto Sans KR,Malgun Gothic,sans-serif;font-size:var(--sight-font-size);line-height:var(--sight-line-height);letter-spacing:.02em;border:2px solid #e5e7eb;padding:var(--sight-padding);border-radius:.5rem;background-color:#f8f8f8;margin-top:0;white-space:pre-wrap;-webkit-user-select:none;user-select:none;max-height:12rem;overflow-y:auto;color:#4b5563;box-sizing:border-box}.sight-typing-display-above.text-size-sm,.sight-typing-display-below.sight-typing-upcoming.text-size-sm{font-size:1rem;line-height:1.8}.sight-typing-display-above.text-size-sm{min-height:calc(1rem * 1.8 + 2 * var(--sight-padding))}.sight-typing-display-above.text-size-md,.sight-typing-display-below.sight-typing-upcoming.text-size-md{font-size:1.25rem;line-height:2}.sight-typing-display-above.text-size-md{min-height:calc(1.25rem * 2 + 2 * var(--sight-padding))}.sight-typing-display-above.text-size-lg,.sight-typing-display-below.sight-typing-upcoming.text-size-lg{font-size:1.5rem;line-height:2.2}.sight-typing-display-above.text-size-lg{min-height:calc(1.5rem * 2.2 + 2 * var(--sight-padding))}#sight-typing-content .sight-typing-input.sight-typing-input-single.text-size-sm{font-size:1rem;line-height:1.8}#sight-typing-content .sight-typing-input.sight-typing-input-single.text-size-md{font-size:1.25rem;line-height:2}#sight-typing-content .sight-typing-input.sight-typing-input-single.text-size-lg{font-size:1.5rem;line-height:2.2}.sight-typing-display-below .sight-typing-next-line{margin-bottom:0}.sight-typing-display-below .sight-typing-upcoming-rest{margin-top:.75rem;white-space:pre-wrap}.sight-typing-line-rows-wrap{font-family:Noto Sans KR,Malgun Gothic,sans-serif;font-size:var(--sight-font-size);line-height:var(--sight-line-height);letter-spacing:.02em;max-height:28rem;overflow-y:auto;padding:.25rem 0;box-sizing:border-box}.sight-typing-line-rows{display:flex;flex-direction:column;gap:.15rem}.sight-typing-row{display:flex;flex-direction:column;gap:.1rem}.sight-typing-source-line{padding:.35rem .5rem;border-radius:.35rem;background-color:#f8f8f8;color:#374151;white-space:pre-wrap;word-break:break-all;-webkit-user-select:none;user-select:none;min-height:1.5em}.sight-typing-row.active .sight-typing-source-line{background-color:#fffbe6}.sight-typing-source-line .char.correct{color:#1d4ed8;text-decoration:underline}.sight-typing-source-line .char.incorrect{color:#dc2626;text-decoration:underline}.sight-typing-line-input{font-family:inherit;font-size:inherit;line-height:inherit;padding:.4rem .5rem;border:2px solid #d1d5db;border-radius:.35rem;background-color:#fff;width:100%;box-sizing:border-box}.sight-typing-line-input:disabled,.sight-typing-line-input[readonly]{background-color:#f3f4f6;color:#6b7280;border-color:#e5e7eb}.sight-typing-line-input::placeholder{color:#9ca3af}.sight-typing-inline-wrap{font-family:Noto Sans KR,Malgun Gothic,sans-serif;font-size:var(--sight-font-size);line-height:var(--sight-line-height);letter-spacing:.02em;border:2px solid #a1a1aa;padding:var(--sight-padding);border-radius:.5rem;background-color:#fefce8;margin-bottom:.5rem;box-sizing:border-box}.sight-typing-inline-content{display:block;white-space:pre-wrap;word-break:break-all}.sight-typing-completed{color:#6b7280}.sight-typing-input-inline{font-family:inherit;font-size:inherit;line-height:inherit;letter-spacing:inherit;background:transparent;border:none;border-bottom:2px solid #1d4ed8;padding:0 2px;min-width:12ch;max-width:100%;outline:none;color:#111827;vertical-align:baseline}.sight-typing-input-inline::placeholder{color:#d1d5db}.sight-typing-upcoming{color:#9ca3af}.sight-typing-inline-wrap .hidden{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.sight-typing-display .line.upcoming{color:#a1a1aa}.sight-typing-display .line.completed .correct{color:#6b7280}.sight-typing-display .line.completed .incorrect{color:#ef4444;background-color:transparent}.sight-typing-display .line.active{font-weight:700}.sight-typing-display .char{position:relative}.sight-typing-display .char.correct{color:#1d4ed8}.sight-typing-display .char.incorrect{color:#dc2626;background-color:#fecaca}.sight-typing-display .char.current{background-color:#5cb85c;color:#fff;border-radius:2px}.sight-menu-item{display:block;padding:.75rem 1rem;font-size:1.1rem;font-weight:600;color:#4b5563;border-radius:.5rem;transition:all .2s}.sight-menu-item:hover{background-color:#f3f4f6;color:#111827}.sight-menu-item.active{background-color:#5cb85c;color:#fff;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.rank-table{width:100%;border-collapse:collapse}.rank-table th,.rank-table td{padding:12px 15px;text-align:center;border-bottom:1px solid #e5e7eb}.rank-table th{background-color:#f9fafb;font-weight:600}.rank-table tr.my-rank{background-color:#fee2e2;font-weight:700}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:50}.popup-container{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0006;display:flex;justify-content:center;align-items:center;padding:20px;box-sizing:border-box;z-index:100}.typing-popup{width:100%;max-width:700px;background-color:#fff;border-radius:12px;box-shadow:0 5px 20px #0000001a;display:flex;flex-direction:column;max-height:90vh}.popup-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid #e9ecef}.popup-header h2{font-size:20px;font-weight:700;margin:0}.popup-header .close-button{font-size:24px;color:#adb5bd;cursor:pointer;background:none;border:none}.popup-header .close-button:hover{color:#495057}.popup-content{padding:25px;overflow-y:auto}#admin-edit-panel .edit-major-tab-btn.active{color:#5cb85c;border-color:#5cb85c}#admin-edit-panel .edit-mid-tab-btn.active{color:#5cb85c;border-bottom:2px solid #5cb85c}#admin-edit-panel .edit-minor-tab-btn.active{background-color:#5cb85c;color:#fff;border-color:#5cb85c}#announcement-content p{margin-bottom:1rem}#edit-review-modal,#edit-announcement-modal,#edit-content-modal,#edit-banner-modal{z-index:60}#cropper-modal{z-index:70}.messenger-widget-panel{transition:opacity .2s,transform .2s}#messenger-widget-content{display:flex;flex-direction:column;min-height:0}#messenger-widget-content>div{flex:1;min-height:0;display:flex;flex-direction:column}#messenger-widget-content .flex.flex-1.min-h-0.border{flex:1;min-height:0}.messenger-picker-modal.z-\[9999\]{z-index:9999}.messenger-empty-state{background:linear-gradient(180deg,#f9fafb,#f3f4f6)}.messenger-empty-inner{min-width:8rem;word-break:keep-all;overflow-wrap:normal}.messenger-empty-inner p{white-space:normal;line-height:1.6}.messenger-sidebar{width:11rem;min-width:11rem}.messenger-main{min-width:0;flex:1 1 0%}#messenger-widget-content .flex.flex-1.min-h-0.border .flex-row{align-items:stretch}.messenger-in-widget .messenger-sidebar{width:10rem;min-width:10rem}.messenger-in-widget .messenger-main{flex:1 1 0%;min-width:14rem}
