:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}body{margin:0;background:#f6f7fb}#app{max-width:880px;margin:24px auto;padding:0 16px}.card{background:#fff;border-radius:16px;padding:16px 18px;box-shadow:0 8px 24px #00000014}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.muted{color:#666;margin-top:6px}.pre{background:#0b1020;color:#e8ecff;padding:12px;border-radius:12px;overflow:auto}input{padding:10px 12px;border-radius:12px;border:1px solid #ddd;min-width:220px}.sa-form-grid{display:grid;gap:10px;align-items:end}.sa-field{display:flex;flex-direction:column;gap:6px;min-width:0}.sa-field>input,.sa-field>select{width:100%;min-width:0;box-sizing:border-box}button{padding:10px 14px;border-radius:12px;border:1px solid #ddd;background:#fff;cursor:pointer;font-size:16px}button:hover{filter:brightness(.98)}button.ghost{background:#f1f3f9}.login-card{position:relative;overflow:hidden;border:1px solid #dde4f2;padding:22px 24px;background:radial-gradient(140% 120% at 0% 0%,#2d73ff1f,#2d73ff00 46%),radial-gradient(120% 120% at 100% 0%,#10b9811a,#10b98100 42%),#fff;box-shadow:0 14px 34px #0f172a1f;font-family:Pretendard Variable,SUIT Variable,Noto Sans KR,Apple SD Gothic Neo,sans-serif}.login-card:after{content:"";position:absolute;top:-80px;right:-80px;width:220px;height:220px;border-radius:999px;background:radial-gradient(circle at center,#3b82f63d,#3b82f600 72%);pointer-events:none}.login-hero{position:relative;z-index:1;display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}.login-hero-side{display:grid;gap:8px;justify-items:end}.login-kicker{display:inline-flex;align-items:center;border-radius:999px;background:#e8f0ff;border:1px solid #c9d9ff;color:#1f4fd8;padding:3px 10px;font-size:11px;font-weight:800;letter-spacing:.06em;margin-bottom:8px}.login-sub{margin-top:6px;margin-bottom:0}.login-hero-badge{position:relative;z-index:1;min-width:170px;border-radius:14px;border:1px solid #d6e2f5;background:#ffffffc7;padding:10px 12px;display:grid;gap:2px;color:#1f2a3a;box-shadow:0 8px 20px #1d4ed817}.login-hero-badge b{font-size:13px}.login-hero-badge span{font-size:12px;color:#5f6d83}.login-style-switch{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;padding:3px;border:1px solid #d5deef;border-radius:14px;background:#ffffffd1;max-width:240px}.login-style-btn{min-width:54px;padding:6px 8px;border-radius:999px;border:1px solid transparent;background:transparent;box-shadow:none;font-size:12px;font-weight:700;color:#556074}.login-style-btn.active{border-color:#b5cdfd;background:#eaf1ff;color:#1f4fd8}.login-tabs-wrap{margin:10px 0 16px}.login-tabs{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:14px;background:#eef2ff;border:1px solid #dbe4ff}.login-tab-btn{border-radius:10px;border:1px solid transparent;min-width:116px;padding:9px 14px;font-size:15px;font-weight:700;background:#fff;color:#172033;box-shadow:0 5px 14px #1d4ed817}.login-card .login-tab-btn.ghost{background:transparent;border-color:transparent;color:#5b6576;box-shadow:none}.login-pane{position:relative;z-index:1;border:1px solid #dce4f2;border-radius:14px;padding:14px 14px 12px;background:#ffffffe6}.login-pane+.login-pane{margin-top:10px}.login-pane-title{margin:0 0 4px;font-size:30px}.login-pane-help{margin:0 0 10px}.login-field{display:block;margin-bottom:10px;color:#2f3a4c;font-weight:600}.login-field input{margin-top:6px}.login-card input{width:100%;min-width:0;box-sizing:border-box;border-color:#d2dae9;background:#fff;transition:border-color .14s ease,box-shadow .14s ease}.login-card input:focus{border-color:#6ea3ff;box-shadow:0 0 0 3px #2d73ff24;outline:none}.login-field-flex{flex:1;min-width:220px;margin-bottom:0}.login-pin-field{max-width:300px}.login-lookup-row{align-items:flex-end;gap:8px}.login-trainee-list-box{margin-top:10px;border:1px dashed #c9d5ea;border-radius:12px;padding:10px;min-height:64px;background:#f9fbff}.login-selected-text,.login-actions{margin-top:10px}.login-primary-btn{min-width:120px;border-color:#1d4ed8;color:#fff;background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:0 10px 20px #1d4ed838}.login-primary-btn:hover{filter:brightness(1.03);transform:translateY(-1px)}.login-secondary-btn{min-width:150px;font-weight:700}.login-msg{min-height:20px;margin-top:8px}.login-trainee-pick{margin:4px;display:inline-flex;align-items:center;gap:6px;border-radius:999px;border-color:#d2dbe9;background:#fff;font-size:14px}.login-trainee-sub{font-size:12px}.login-card.login-theme-2{border-color:#eadfcf;background:radial-gradient(130% 120% at 0% 0%,#ed833924,#ed833900 46%),radial-gradient(130% 120% at 100% 0%,#16a34a24,#16a34a00 42%),linear-gradient(180deg,#fffdf8,#fff 72%)}.login-card.login-theme-2 .login-kicker{background:#fff2e0;border-color:#f8d4a8;color:#b45309}.login-card.login-theme-2 .login-tabs{background:#fff3e8;border-color:#f5d7ba}.login-card.login-theme-2 .login-tab-btn{color:#4a2a1b;box-shadow:0 5px 14px #b453091f}.login-card.login-theme-2 .login-tab-btn.ghost{color:#87624f}.login-card.login-theme-2 .login-primary-btn{border-color:#b45309;background:linear-gradient(135deg,#f59e0b,#b45309);box-shadow:0 10px 20px #b4530938}.login-card.login-theme-2 .login-primary-btn:focus-visible{outline:3px solid rgba(245,158,11,.34);outline-offset:2px}.login-card.login-theme-2 .login-style-btn.active{border-color:#f2cc9f;background:#ffedd5;color:#9a3412}.login-card.login-theme-3{border-color:#d2e8e6;background:radial-gradient(130% 120% at 0% 0%,#14b8a624,#14b8a600 46%),radial-gradient(130% 120% at 100% 0%,#38bdf824,#38bdf800 44%),linear-gradient(180deg,#f8fffe,#fff 72%)}.login-card.login-theme-3 .login-kicker{background:#e8fffb;border-color:#b9efe5;color:#0f766e}.login-card.login-theme-3 .login-tabs{background:#ebfffd;border-color:#c4efea}.login-card.login-theme-3 .login-tab-btn{color:#0f3e56;box-shadow:0 5px 14px #14b8a629}.login-card.login-theme-3 .login-tab-btn.ghost{color:#4a7886}.login-card.login-theme-3 .login-pane{border-color:#d0eaec;background:#fffffff0}.login-card.login-theme-3 .login-primary-btn{border-color:#0f766e;background:linear-gradient(135deg,#14b8a6,#0f766e);box-shadow:0 10px 20px #0f766e3d}.login-card.login-theme-3 .login-primary-btn:focus-visible{outline:3px solid rgba(20,184,166,.33);outline-offset:2px}.login-card.login-theme-3 .login-style-btn.active{border-color:#9adfd5;background:#d9f8f3;color:#0f766e}.login-card.login-theme-4{border-color:#25324a;background:radial-gradient(120% 120% at 0% 0%,#22d3ee33,#22d3ee00 42%),radial-gradient(120% 120% at 100% 100%,#3b82f633,#3b82f600 48%),#0b1220;box-shadow:0 20px 46px #02081770;color:#e6edf8}.login-card.login-theme-4 .muted{color:#a9b8d0}.login-card.login-theme-4 .login-kicker{background:#083344b8;border-color:#1ea6c7;color:#8de9ff}.login-card.login-theme-4 .login-hero-badge,.login-card.login-theme-4 .login-pane{border-color:#2a3f63;background:#0e1829d1;color:#deebff}.login-card.login-theme-4 .login-tabs{background:#10213ae6;border-color:#2f4772}.login-card.login-theme-4 .login-tab-btn{background:#122642f2;color:#dbe9ff;border-color:#355483;box-shadow:none}.login-card.login-theme-4 .login-tab-btn.ghost{background:transparent;color:#8da2c3}.login-card.login-theme-4 input{background:#0d1b30;color:#eaf2ff;border-color:#34517b}.login-card.login-theme-4 input::placeholder{color:#7f98b9}.login-card.login-theme-4 .login-primary-btn{border-color:#22d3ee;background:linear-gradient(135deg,#22d3ee,#2563eb);color:#091527;box-shadow:0 12px 24px #2563eb42}.login-card.login-theme-4 .login-primary-btn:disabled{color:#7f8da3;background:#1a2740;border-color:#2d4469;box-shadow:none}.login-card.login-theme-4 .login-secondary-btn,.login-card.login-theme-4 .login-trainee-pick{background:#122541;border-color:#355483;color:#dbe9ff}.login-card.login-theme-4 .login-style-switch{border-color:#325684;background:#09162ac7}.login-card.login-theme-4 .login-style-btn{color:#a9c2e8}.login-card.login-theme-4 .login-style-btn.active{border-color:#22d3ee;background:#22d3ee33;color:#8de9ff}.login-card.login-theme-5{border:2px solid #e2cda5;border-radius:22px;background:repeating-linear-gradient(180deg,#f6e9d140 0px 2px,#fffaef99 2px 36px),#fffaf0;box-shadow:0 14px 30px #805f2b2e}.login-card.login-theme-5 .login-kicker{background:#fff0d4;border-color:#e9c88b;color:#8a5a18}.login-card.login-theme-5 .login-hero-badge{border-color:#dfc48f;background:#fff7e5e0;box-shadow:none}.login-card.login-theme-5 .login-tabs{border-color:#dfc48f;background:#fff1d6}.login-card.login-theme-5 .login-tab-btn{border-radius:8px;border-color:#d8bf8a;color:#5f411a;background:#fffbf1;box-shadow:none;font-weight:800}.login-card.login-theme-5 .login-tab-btn.ghost{color:#8b6a3b;background:transparent}.login-card.login-theme-5 .login-pane{border-color:#ddc79b;border-radius:10px;background:#fffcf3eb}.login-card.login-theme-5 .login-pane-title{font-family:"Noto Serif KR",Nanum Myeongjo,serif;font-size:28px;letter-spacing:-.01em}.login-card.login-theme-5 .login-field{color:#5d4524}.login-card.login-theme-5 input{border-color:#d8c5a1;background:#fffdfa}.login-card.login-theme-5 .login-primary-btn{border-color:#8a5a18;background:#8a5a18;color:#fff8ec;box-shadow:0 8px 18px #8a5a1847}.login-card.login-theme-5 .login-secondary-btn,.login-card.login-theme-5 .login-trainee-pick{border-color:#d9c39b;background:#fff9ec;color:#5b4020}.login-card.login-theme-5 .login-style-switch{border-color:#d9c39b;background:#fff8e6}.login-card.login-theme-5 .login-style-btn.active{border-color:#cda768;background:#ffe9bf;color:#7a4c12}.login-card.login-theme-6{border:3px solid #111827;border-radius:4px;background:linear-gradient(110deg,#fff8d4 0 57%,#d7f6ff 57% 100%);box-shadow:10px 10px #111827}.login-card.login-theme-6 .login-kicker{border:2px solid #111827;border-radius:4px;background:#ffe35e;color:#111827;font-size:12px}.login-card.login-theme-6 .login-hero-badge{border:2px solid #111827;border-radius:6px;background:#fff;box-shadow:4px 4px #111827}.login-card.login-theme-6 .login-tabs{border:2px solid #111827;border-radius:6px;background:#fff}.login-card.login-theme-6 .login-tab-btn{border:2px solid #111827;border-radius:4px;background:#d0ecff;color:#111827;box-shadow:3px 3px #111827}.login-card.login-theme-6 .login-tab-btn.ghost{background:#fff;color:#4b5563;box-shadow:none}.login-card.login-theme-6 .login-pane{border:2px solid #111827;border-radius:6px;background:#fff;box-shadow:5px 5px #111827}.login-card.login-theme-6 .login-pane-title{font-size:27px;letter-spacing:-.02em}.login-card.login-theme-6 input{border:2px solid #111827;border-radius:6px}.login-card.login-theme-6 .login-primary-btn{border:2px solid #111827;border-radius:6px;color:#111827;background:#59e68c;box-shadow:4px 4px #111827}.login-card.login-theme-6 .login-primary-btn:hover{transform:translate(-1px,-1px)}.login-card.login-theme-6 .login-secondary-btn,.login-card.login-theme-6 .login-trainee-pick,.login-card.login-theme-6 .login-style-switch{border:2px solid #111827;border-radius:6px;background:#fff}.login-card.login-theme-6 .login-style-btn{border-radius:4px;color:#111827}.login-card.login-theme-6 .login-style-btn.active{border:2px solid #111827;background:#ffb3df;color:#111827}@media(max-width:760px){.login-card{padding:16px}.login-hero{flex-direction:column;align-items:stretch}.login-hero-side{justify-items:stretch}.login-hero-badge{min-width:0;width:100%}.login-style-switch{width:100%;max-width:none;justify-content:center}.login-secondary-btn,.login-primary-btn{width:100%}.login-lookup-row{align-items:stretch}}.ui-theme-shell{--ui-control-height: 42px;--ui-control-radius: 12px;--ui-control-font: 15px;--ui-gap-row: 8px;--ui-gap-col: 10px;position:relative;overflow:hidden;border:1px solid #dde4f2;background:radial-gradient(140% 120% at 0% 0%,#2d73ff1a,#2d73ff00 46%),radial-gradient(120% 120% at 100% 0%,#10b98114,#10b98100 42%),#fff;box-shadow:0 14px 34px #0f172a1f;font-family:Pretendard Variable,SUIT Variable,Noto Sans KR,Apple SD Gothic Neo,sans-serif}.ui-theme-shell:before{content:"";position:absolute;top:-90px;right:-90px;width:240px;height:240px;border-radius:999px;background:radial-gradient(circle at center,#3b82f62e,#3b82f600 72%);pointer-events:none}.ui-theme-shell>*{position:relative;z-index:1}.ui-theme-shell .row{row-gap:var(--ui-gap-row);column-gap:var(--ui-gap-col)}.ui-theme-shell :is(h2,h3){color:#111827;letter-spacing:-.01em;line-height:1.2}.ui-theme-shell h2{font-size:clamp(28px,3vw,34px);margin-top:0;margin-bottom:10px}.ui-theme-shell h3{font-size:clamp(20px,2.2vw,24px);margin-top:0;margin-bottom:8px}.ui-theme-shell hr{border:0;border-top:1px solid #d9e1ee}.ui-theme-shell .pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;border:1px solid #d8e2f3;background:#ffffffeb;color:#2d3a4c;padding:6px 10px}.ui-theme-shell :is(input,select,textarea){border-color:#d2dae9}.ui-theme-shell :is(input[type=text],input[type=password],input[type=number],input[type=tel],input[type=search],input[type=email],input:not([type]),select){height:var(--ui-control-height);min-height:var(--ui-control-height);border-radius:var(--ui-control-radius);font-size:var(--ui-control-font);box-sizing:border-box}.ui-theme-shell :is(input[type=checkbox],input[type=radio]){width:auto;min-width:0;height:auto;min-height:0;padding:0}.ui-theme-shell :is(input,select,textarea):focus{border-color:#6ea3ff;box-shadow:0 0 0 3px #2d73ff24;outline:none}.ui-theme-shell button{min-height:var(--ui-control-height);border-radius:var(--ui-control-radius);padding:0 14px;font-size:var(--ui-control-font);line-height:1;display:inline-flex;align-items:center;justify-content:center;border-color:#d6deed}.ui-theme-shell button:not(.ghost){border-color:#1d4ed8;color:#fff;background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:0 8px 16px #1d4ed833}.ui-theme-shell button.ghost{background:#eef3fb;color:#2a3a50;border-color:#d2ddee}.ui-theme-shell button:hover{filter:brightness(1.02)}.ui-theme-shell .dashboard-table-wrap button{min-height:36px;border-radius:10px;padding:0 12px;font-size:14px}.ui-theme-shell .dashboard-panel{margin-top:12px;border:1px solid #d6e0f0;border-radius:16px;padding:12px;background:linear-gradient(180deg,#f8fbfff2,#f2f7fdeb)}.ui-theme-shell .dashboard-panel-title{margin:0 0 6px;font-size:clamp(19px,1.9vw,22px);font-weight:800;color:#121827;line-height:1.22}.ui-theme-shell .dashboard-panel-sub{margin:0 0 8px}.ui-theme-shell .dashboard-panel-msg{margin-top:8px;min-height:20px}.ui-theme-shell .training-group-panel{border-width:2px;border-color:#cfdcf0;border-radius:20px}.ui-theme-shell .training-group-title{font-size:18px;font-weight:800;color:#122032}.ui-theme-shell .training-group-sub{margin-top:4px}.ui-theme-shell .training-group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-top:10px}.ui-theme-shell .training-tile{border:1px solid #d7e0ef;border-radius:12px;padding:10px;background:#fff;box-shadow:0 6px 14px #1d4ed80f}.ui-theme-shell .training-tile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.ui-theme-shell .training-tile-label{font-weight:700;line-height:1.25;flex:1}.ui-theme-shell .training-tile-code{font-size:12px}.ui-theme-shell .training-tile-start-btn{margin-top:10px;width:100%}.center-dashboard-shell .center-tab-panel,.super-admin-dashboard-shell .super-tab-panel{border-width:2px;border-color:#cfdcf0;border-radius:18px}.ui-theme-shell .dashboard-table-wrap{border-color:#d6e0f0!important;background:#fff;box-shadow:inset 0 1px #ffffffe6}.ui-theme-shell .dashboard-table-wrap table{font-size:13px}.ui-theme-shell .dashboard-table-wrap th{background:#f1f6ff!important;color:#34445e;font-weight:700}.ui-theme-shell .dashboard-table-wrap td{color:#1f2a3a}.ui-theme-shell .dashboard-table-wrap tr:hover td{background:#f8fbff}.super-admin-dashboard-shell .sa-stat-card{border-color:#d6e0f0!important;background:linear-gradient(180deg,#f9fbff,#f3f7fd)!important;box-shadow:0 6px 12px #1d4ed80f}.center-dashboard-shell #centerSettingsPanel.center-settings-panel{border:1px solid #d6e0f0;border-radius:14px;padding:12px;background:#ffffffeb}.card :is(button#start,button#back,button#practiceBtn){min-width:156px;min-height:52px;padding:13px 20px;border-radius:14px;font-size:18px;font-weight:700;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}.card button#start{color:#fff;border-color:#1d4ed8;background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:0 10px 22px #1d4ed852;animation:start-btn-pulse 1.8s ease-in-out 3}.card button#start:hover{transform:translateY(-1px) scale(1.02);filter:brightness(1.04);box-shadow:0 14px 30px #1d4ed86b}.card button#back{color:#1f2937;border-color:#c7d2fe;background:#eef2ff;box-shadow:0 6px 14px #4f46e524}.card button#back:hover{transform:translateY(-1px);background:#e0e7ff}.card button#practiceBtn{color:#1f2937;border-color:#cbd5e1;background:#f8fafc;box-shadow:0 6px 14px #0f172a1a}.card button#practiceBtn:hover{transform:translateY(-1px);background:#f1f5f9}.card :is(button#start,button#back,button#practiceBtn):focus-visible{outline:3px solid #93c5fd;outline-offset:2px}@keyframes start-btn-pulse{0%{box-shadow:0 10px 22px #1d4ed852}50%{box-shadow:0 0 0 8px #3b82f629,0 12px 26px #1d4ed861}to{box-shadow:0 10px 22px #1d4ed852}}.stim{font-size:84px;text-align:center;padding:40px 0;-webkit-user-select:none;user-select:none}.pad{display:grid;gap:10px;justify-items:center;margin-top:10px}.pad button{min-width:72px;min-height:60px;font-size:24px}:fullscreen #app,:-webkit-full-screen #app{max-width:none;width:100vw;margin:0;padding:0}:fullscreen .card.training-card,:-webkit-full-screen .card.training-card{width:100vw;height:100vh;height:100dvh;margin:0;border-radius:0;box-shadow:none;padding:0;background:#000;color:#fff}:fullscreen .card.training-card .muted,:-webkit-full-screen .card.training-card .muted{color:#ffffffd1}:fullscreen .card.training-card button,:-webkit-full-screen .card.training-card button{background:transparent;color:#fff;border-color:#ffffffa6}:fullscreen .card.training-card button.ghost,:-webkit-full-screen .card.training-card button.ghost{background:transparent}:fullscreen :is(#endBtn,#btnEnd,#stop),:-webkit-full-screen :is(#endBtn,#btnEnd,#stop),.card.training-card :is(#endBtn,#btnEnd,#stop){position:fixed!important;right:16px!important;top:56px!important;bottom:auto!important;z-index:60!important;min-width:110px}.low-credit-overlay{position:fixed;inset:0;z-index:1100;background:#0f172a59;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}.low-credit-modal{width:min(460px,100%);background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 14px 36px #0f172a40;padding:16px;display:grid;gap:12px}.low-credit-modal h3{margin:0}.low-credit-checkbox{display:inline-flex;align-items:center;gap:8px;-webkit-user-select:none;user-select:none}.low-credit-checkbox input[type=checkbox]{width:auto;min-width:0;margin:0}
