:root{--primary-purple: #6D7CF5;--primary-purple-light: #EEF0FF;--secondary-purple: #93A0FF;--primary-mint: #17A99B;--primary-mint-light: #E4F6F3;--secondary-mint: #4CC7B8;--accent-color: #FF7EB3;--bg-color: #F4F6FC;--white: #FFFFFF;--surface: #FFFFFF;--text-color: #20263F;--text-light: #7C82A0;--gray-100: #F3F5FA;--gray-200: #ECEFF7;--gray-400: #D6DCEA;--border-color: #E6E9F4;--error-color: #F0564A;--success-color: #21A566;--radius-lg: 18px;--radius-md: 12px;--radius-sm: 9px;--shadow-sm: 0 1px 2px rgba(32, 38, 63, .04), 0 4px 14px rgba(32, 38, 63, .05);--shadow-md: 0 2px 6px rgba(32, 38, 63, .06), 0 10px 28px rgba(32, 38, 63, .09)}body{--primary-color: var(--primary-mint);--primary-light: var(--primary-mint-light);--secondary-color: var(--secondary-mint);--header-gradient: linear-gradient(135deg, var(--primary-mint) 0%, var(--secondary-mint) 100%)}body[data-theme=check],body[data-theme=macro],body[data-theme=settings]{--primary-color: var(--primary-purple);--primary-light: var(--primary-purple-light);--secondary-color: var(--secondary-purple);--header-gradient: linear-gradient(135deg, var(--primary-purple) 0%, var(--secondary-purple) 100%)}body[data-theme=point]{--primary-color: #5CA62D;--primary-light: #F0F8E7;--secondary-color: #8BC34A;--accent-color: #FFC928;--header-gradient: linear-gradient(135deg, #7CB93F 0%, #A2D149 100%)}*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Roboto,Helvetica Neue,Segoe UI,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;background-color:var(--bg-color);color:var(--text-color);height:100%;overflow:hidden;line-height:1.5}#app{display:flex;flex-direction:column;height:100vh}#app:before{content:"";display:block;height:4px;background:var(--header-gradient);flex-shrink:0;transition:background .4s ease}svg.ic{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}header{background:var(--surface);border-bottom:1px solid var(--border-color);padding:12px 16px 10px;z-index:10}.header-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}header h1{margin:0;font-size:1.02rem;font-weight:800;letter-spacing:-.4px;display:flex;align-items:center;gap:8px;white-space:nowrap;min-width:0}.logo-mark{width:30px;height:30px;border-radius:9px;background:transparent;color:inherit;display:flex;align-items:center;justify-content:center;font-size:.85rem;box-shadow:none;flex-shrink:0}.logo-mark img{width:100%;height:100%;display:block;object-fit:contain}.header-actions{display:flex;align-items:center;gap:6px;min-width:0}.header-target-select{max-width:132px;height:32px;padding:0 22px 0 10px;border:1.5px solid var(--border-color);border-radius:999px;background:var(--gray-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237C82A0' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 9px center;color:var(--text-color);font:inherit;font-size:.72rem;font-weight:800;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-overflow:ellipsis;cursor:pointer}.header-target-select:focus{border-color:var(--primary-color)}.header-target-select option{color:var(--text-color);background:var(--white)}.icon-btn-ghost{background:var(--gray-100);border:1.5px solid var(--border-color);border-radius:999px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-light);transition:all .18s ease;flex-shrink:0}.icon-btn-ghost:hover{color:var(--primary-color);border-color:var(--primary-color);background:var(--primary-light)}.icon-btn-ghost svg{width:16px;height:16px}.tabs{display:flex;gap:2px;background:var(--gray-100);border:1px solid var(--border-color);padding:3px;border-radius:14px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab-btn{flex:1 0 50px;min-width:50px;background:none;border:none;border-radius:11px;padding:6px 2px 5px;display:flex;flex-direction:column;align-items:center;gap:3px;font-family:inherit;font-size:.64rem;font-weight:800;letter-spacing:-.2px;color:var(--text-light);cursor:pointer;transition:all .18s ease;white-space:nowrap}.tab-btn svg{width:16px;height:16px}.tab-btn:hover{color:var(--text-color)}.tab-btn.active{background:var(--white);color:var(--primary-color);box-shadow:0 2px 8px #20263f1a}main{flex-grow:1;padding:16px 16px 24px;overflow-y:auto;scrollbar-width:thin}.tab-content{display:none}.tab-content.active{display:block;animation:fadeIn .35s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.input-group{background:var(--surface);border:1px solid var(--border-color);padding:16px;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:14px}.input-group label{display:flex;align-items:center;gap:6px;font-weight:800;font-size:.9rem;letter-spacing:-.3px;color:var(--text-color)}.tab-desc{font-size:.78rem;color:var(--text-light);margin-top:4px;margin-bottom:13px;line-height:1.55}.label-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;gap:10px}.label-row.reverse{flex-direction:row-reverse}.mini-group{display:flex;gap:6px}.button-row{display:flex;gap:8px}.button-row.center{justify-content:center}.pt-10{padding-top:10px}.primary-btn,.secondary-btn{flex:1;padding:11px 12px;border-radius:var(--radius-md);font-family:inherit;font-size:.85rem;font-weight:800;letter-spacing:-.2px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:none;display:flex;align-items:center;justify-content:center;gap:6px}.btn-icon,.label-icon,.inline-icon{width:1em;height:1em;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.btn-icon{width:15px;height:15px}.label-icon{width:16px;height:16px;color:var(--primary-color)}.inline-icon{width:13px;height:13px;vertical-align:-2px;color:var(--primary-color)}.primary-btn .btn-icon{stroke-width:2.25}.mini-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px}.primary-btn{background:var(--header-gradient);color:var(--white);box-shadow:0 4px 12px color-mix(in srgb,var(--primary-color) 30%,transparent)}.primary-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px color-mix(in srgb,var(--primary-color) 38%,transparent)}.primary-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.secondary-btn{background:var(--primary-light);color:var(--primary-color);border:1.5px solid transparent}.secondary-btn:hover{border-color:var(--primary-color)}.danger-btn{border:1.5px solid var(--error-color)!important;color:var(--error-color)!important;background:var(--white)!important;box-shadow:none!important}.mini-btn{background:var(--gray-100);border:1.5px solid var(--border-color);border-radius:var(--radius-sm);padding:5px 10px;font-family:inherit;font-size:.7rem;font-weight:800;color:var(--text-light);cursor:pointer;transition:all .18s;white-space:nowrap}.mini-btn:hover{color:var(--primary-color);border-color:var(--primary-color);background:var(--primary-light)}.mini-btn.active{background:var(--primary-color);border-color:var(--primary-color);color:var(--white)}#btn-delete-config:hover{background:#fdecea;border-color:var(--error-color);color:var(--error-color)}.mini-height{padding:8px 16px!important;font-size:.82rem!important;flex:initial}textarea{width:100%;height:130px;padding:12px;border:1.5px solid var(--border-color);border-radius:var(--radius-md);resize:none;font-size:.86rem;font-family:inherit;margin-bottom:12px;transition:all .2s;background-color:var(--gray-100);outline:none;color:var(--text-color)}textarea:focus,input[type=text]:focus,input[type=number]:focus,select:focus{border-color:var(--primary-color)!important;background-color:var(--white)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 14%,transparent)}#student-list{height:82px}.save-row{display:grid;grid-template-columns:32% 16% 36% 12%;gap:4px;align-items:center;margin-top:10px}.save-row select,.save-row input{width:100%;padding:7px 6px;border-radius:var(--radius-sm);border:1.5px solid var(--border-color);font-family:inherit;font-size:.7rem;font-weight:600;outline:none;background-color:var(--gray-100);height:32px;color:var(--text-color);transition:all .2s}.check-action-row{gap:8px}.check-action-row .primary-btn,.check-action-row .secondary-btn{min-width:0;padding:10px 6px;white-space:nowrap}.popover-wrapper{position:relative}.class-popover{position:absolute;top:calc(100% + 6px);right:0;background:var(--surface);border-radius:14px;box-shadow:var(--shadow-md);padding:6px;z-index:100;display:none;flex-direction:column;gap:2px;min-width:130px;border:1px solid var(--border-color)}.class-popover.open{display:flex;animation:slideIn .18s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.popover-btn{background:none;border:none;padding:8px 12px;text-align:left;font-family:inherit;font-size:.78rem;font-weight:700;border-radius:9px;cursor:pointer;color:var(--text-color);transition:background .15s}.popover-btn:hover{background:var(--primary-light);color:var(--primary-color)}.progress-container{background:var(--surface);border:1px solid var(--border-color);padding:14px 16px;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:14px}.progress-info{display:flex;justify-content:space-between;margin-bottom:9px;font-size:.78rem;font-weight:800}.progress-info span:last-child{color:var(--primary-color);font-variant-numeric:tabular-nums}.progress-bar{width:100%;height:10px;background-color:var(--gray-200);border-radius:999px;overflow:hidden}.progress-fill{width:0%;height:100%;border-radius:999px;background:var(--header-gradient);transition:width .3s ease}.result-container,.result-table-wrapper{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;margin-top:4px}.table-header{display:grid;grid-template-columns:1fr 1fr 1fr;padding:11px 16px;background-color:var(--gray-100);color:var(--text-light);font-weight:800;font-size:.72rem;letter-spacing:.2px;text-align:center;border-bottom:1px solid var(--border-color)}.table-body{max-height:400px;overflow-y:auto}.row{display:grid;grid-template-columns:1fr 1fr 1fr;padding:11px 16px;border-bottom:1px solid var(--gray-200);align-items:center;transition:background .15s}.row:last-child{border-bottom:none}.row:hover{background-color:var(--gray-100)}.col-name{font-weight:800;color:var(--text-color);text-align:center;font-size:.84rem;letter-spacing:-.3px}.col-post,.col-reply{text-align:center;font-size:.76rem;color:var(--text-light);font-weight:700;display:flex;justify-content:center;align-items:center}.status-icon{border-radius:999px;padding:2px 0;transition:all .15s}.status-icon svg{width:17px;height:17px;color:var(--primary-color)}.result-icon,.nav-icon{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.status-icon:hover{background:var(--primary-light);transform:scale(1.12)}.nav-container{display:flex;align-items:center;justify-content:center;gap:2px;background:var(--gray-100);border:1px solid var(--border-color);border-radius:999px;padding:2px 3px}.nav-arrow{background:none;border:none;color:var(--text-light);width:20px;height:20px;cursor:pointer;border-radius:999px;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0}.nav-arrow svg,.nav-arrow .nav-icon{width:13px;height:13px}.nav-arrow:hover{background:var(--primary-light);color:var(--primary-color)}.nav-content{display:inline-flex;align-items:center;gap:3px;font-size:.74rem;font-weight:800;color:var(--text-color);padding:0 3px;font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:6px;transition:background .2s}.nav-content svg,.nav-content .nav-icon{width:13px;height:13px;color:var(--primary-color)}.nav-content:hover{background-color:var(--primary-light)}.group-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.group-btn{background:var(--surface);border:1.5px solid var(--border-color);border-radius:16px;padding:14px 12px;display:flex;flex-direction:column;gap:4px;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .18s}.group-btn:hover{border-color:var(--primary-color);background:var(--primary-light);transform:translateY(-2px)}.group-btn .group-name{font-size:.98rem;font-weight:800;color:var(--primary-color);text-align:center}.group-btn .group-members{font-size:.68rem;color:var(--text-light);text-align:center;font-weight:600}.group-board{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:2px 0 20px}.group-card{background:var(--surface);border:1.5px solid var(--border-color);border-radius:16px;padding:11px 12px 12px;min-height:110px;display:flex;flex-direction:column;gap:9px;transition:all .2s;box-shadow:var(--shadow-sm)}.group-card.drag-over{border-color:var(--primary-color);background-color:var(--primary-light);transform:scale(1.02)}.group-card h3{margin:0;font-size:.82rem;font-weight:800;color:var(--primary-color);padding-bottom:7px;border-bottom:1px dashed var(--gray-400)}.student-list-container{display:flex;flex-wrap:wrap;gap:5px;flex-grow:1;align-content:flex-start}.student-chip{background-color:var(--gray-100);border:1px solid var(--border-color);color:var(--text-color);padding:5px 9px 5px 7px;border-radius:9px;font-size:.76rem;font-weight:700;cursor:grab;-webkit-user-select:none;user-select:none;transition:all .15s;display:inline-flex;align-items:center;gap:4px}.student-chip:before{content:"⠿";font-size:.6rem;color:var(--gray-400)}.student-chip:hover{border-color:var(--primary-color);background:var(--primary-light)}.student-chip.dragging{opacity:.4;transform:scale(.92)}.presentation-status{margin:8px 0 12px;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--primary-light);color:var(--primary-color);font-size:.76rem;font-weight:800;display:flex;align-items:center;gap:7px}.presentation-status:before{content:"";width:7px;height:7px;border-radius:999px;background:var(--primary-color);flex-shrink:0;animation:pulse 1.8s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.button-row.presentation-actions{display:grid;grid-template-columns:1fr 1fr .72fr;gap:8px}.button-row.presentation-actions .primary-btn,.button-row.presentation-actions .secondary-btn{min-width:0;height:42px;padding:0 8px;font-size:.8rem;line-height:1;white-space:nowrap;word-break:keep-all;flex:initial}.button-row.presentation-actions .primary-btn.is-active{background:var(--error-color);box-shadow:none}.presentation-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:18px}.presentation-target-btn{width:100%;min-height:62px;border:1.5px solid var(--border-color);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm);padding:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;color:var(--text-color);font:inherit;text-align:center;transition:all .18s}.presentation-target-btn:hover{border-color:var(--primary-color);background:var(--primary-light)}.presentation-target-btn:disabled{opacity:.55;cursor:not-allowed;border-color:var(--border-color);background:var(--gray-100)}.presentation-target-btn.is-active{border-color:var(--primary-color);background:var(--primary-color);color:var(--white);box-shadow:none}.presentation-target-btn.is-active .presentation-target-meta{color:#ffffffd9}.presentation-target-name{min-width:0;max-width:100%;font-size:.88rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.presentation-target-meta{flex-shrink:0;color:var(--text-light);font-size:.66rem;font-weight:800}.point-setup{background:var(--surface);border:2px solid var(--accent-color);border-radius:16px;padding:14px 16px;margin-top:12px;box-shadow:0 4px 16px color-mix(in srgb,var(--accent-color) 22%,transparent);animation:slideDown .3s ease-out}.point-setup>*+*{margin-top:12px}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.setup-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.setup-row p{margin:0;font-size:.82rem;font-weight:700;color:var(--text-color)}.counter{display:flex;align-items:center;gap:10px;background:var(--gray-100);border:1px solid var(--border-color);padding:4px 6px;border-radius:12px}.count-btn{background:var(--white);border:1px solid var(--gray-400);border-radius:8px;width:27px;height:27px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:800;cursor:pointer;transition:all .15s;color:var(--text-color);font-family:inherit}.count-btn:hover{background:var(--accent-color);border-color:var(--accent-color);color:var(--white)}#point-value{font-size:1.05rem;font-weight:800;width:42px;text-align:center;color:var(--primary-color);border:none;background:transparent;outline:none;padding:0;margin:0;font-family:inherit;-moz-appearance:textfield}#point-value::-webkit-outer-spin-button,#point-value::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}#praise-list-select{flex-grow:1;padding:8px 10px;border-radius:10px;border:1.5px solid var(--border-color);font-family:inherit;font-size:.8rem;font-weight:600;outline:none;background-color:var(--gray-100);color:var(--text-color);transition:all .2s}.table-header.point-table,.table-row.point-table{display:flex!important;align-items:center;padding:10px 18px;gap:0}.table-row.point-table{border-bottom:1px solid var(--gray-200);transition:background .15s}.table-row.point-table:last-child{border-bottom:none}.table-row.point-table:hover{background:var(--gray-100)}.col-check{width:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.col-check input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--primary-color)}.point-table .col-name{flex:1;font-weight:700;font-size:.88rem;padding-left:8px;text-align:left}.col-status{width:70px;text-align:right;font-weight:800;color:var(--primary-color);flex-shrink:0;font-variant-numeric:tabular-nums}.session-keepalive-panel{display:flex;flex-direction:column;gap:10px}.session-control-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:8px}.switch-row{display:flex;align-items:center;min-width:0;min-height:42px;padding:8px 10px;border:1.5px solid var(--border-color);border-radius:12px;background:var(--gray-100);cursor:pointer;transition:border-color .2s}.switch-row:hover{border-color:var(--primary-color)}.switch-copy{display:flex;flex-direction:column;width:100%;min-width:0}.switch-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.switch-row strong{font-size:.8rem;color:var(--text-color);white-space:nowrap}.switch-row small{font-size:.7rem;color:var(--text-light);line-height:1.45}.switch-row input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}.switch-control{position:relative;display:block;width:38px;height:22px;flex:0 0 38px;border-radius:999px;background:var(--gray-400);transition:background .2s ease}.switch-control:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--white);box-shadow:0 2px 6px #0000002e;transition:transform .2s ease}.switch-row input[type=checkbox]:checked~.switch-copy .switch-control{background:var(--primary-color)}.switch-row input[type=checkbox]:checked~.switch-copy .switch-control:after{transform:translate(16px)}.switch-row input[type=checkbox]:focus-visible~.switch-copy .switch-control{box-shadow:0 0 0 4px var(--primary-light)}.session-interval-row{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-height:42px;padding:8px 10px;border:1.5px solid var(--border-color);border-radius:12px;background:var(--gray-100);white-space:nowrap}.session-interval-row>span:first-child{font-size:.82rem;font-weight:800;color:var(--text-color)}.interval-input-wrap{display:flex;align-items:center;gap:6px;color:var(--text-light);font-size:.82rem;font-weight:700}.interval-input-wrap input{width:54px;height:28px;padding:4px 6px;border:1.5px solid var(--border-color);border-radius:8px;font:inherit;font-weight:800;text-align:right;outline:none;background:var(--gray-100);color:var(--text-color);transition:all .2s}.session-save-row{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.session-save-row .primary-btn{flex:0 0 auto;min-width:92px;align-self:center}.settings-status{margin:0;color:var(--text-light);font-size:.7rem;font-weight:700;line-height:1.4;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.input-header-row{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}.input-header-row label{font-size:.9rem;font-weight:800;color:var(--text-color);margin-bottom:2px}.mini-group-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.mini-btn.slim{padding:8px 4px;font-size:.72rem;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:4px;background:var(--white);border-radius:10px}.class-input-row{display:flex;gap:8px;margin-bottom:10px}.class-input-row input{flex:1;padding:8px 12px;border-radius:10px;border:1.5px solid var(--border-color);outline:none;font-family:inherit;font-size:.84rem;font-weight:600;background:var(--gray-100);color:var(--text-color);transition:all .2s}.class-pills-label{font-size:.72rem;font-weight:800;color:var(--text-light);margin:14px 0 8px}.pill-group{display:flex;flex-wrap:wrap;gap:7px}.pill-btn{background-color:var(--primary-light);color:var(--primary-color);border:none;padding:6px 8px 6px 12px;border-radius:999px;font-family:inherit;font-size:.78rem;font-weight:800;cursor:pointer;transition:all .18s;display:flex;align-items:center;gap:6px}.pill-btn:hover,.pill-btn.active{background-color:var(--primary-color);color:var(--white)}.btn-delete-class{background:none;border:none;color:inherit;font-size:.85rem;padding:0 4px;cursor:pointer;opacity:.6;transition:opacity .2s,color .2s;line-height:1}.btn-delete-class:hover{opacity:1;color:var(--error-color)}.info-box{background-color:var(--gray-100);border:1px solid var(--border-color);padding:11px 12px;border-radius:var(--radius-md);font-size:.74rem;line-height:1.55;color:var(--text-light)}#btn-link-SsamFlow{border:1.5px solid var(--primary-color);background:var(--white)}#btn-link-SsamFlow:hover{background-color:var(--primary-color);color:var(--white)}footer{padding:10px;text-align:center;font-size:.64rem;color:var(--text-light);border-top:1px solid var(--border-color);background:var(--surface)}footer p{margin:0}
