*{box-sizing:border-box}body{margin:0;font-family:"Malgun Gothic",Arial,sans-serif;background:#eef3f9;color:#17233b}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.card{width:390px;background:#fff;border:1px solid #c5d2e5;border-radius:10px;padding:34px;box-shadow:0 10px 30px rgba(30,55,90,.12)}.wide{width:560px}h1{margin:0 0 6px;text-align:center;color:#244d82}.sub{text-align:center;color:#718096;margin:0 0 26px}label{display:block;font-size:14px;margin:14px 0 6px}input{display:block;width:100%;height:42px;margin-top:6px;border:1px solid #b8c7da;border-radius:5px;padding:0 12px;font-size:15px}button{width:100%;height:44px;margin-top:22px;border:0;border-radius:5px;background:#315f98;color:#fff;font-weight:700;font-size:15px;cursor:pointer}.error,.ok{padding:10px 12px;margin:12px 0;border-radius:5px;font-size:13px}.error{background:#fff0f0;color:#a42828}.ok{background:#edf8ef;color:#276a35}a{color:#315f98}

/* Desktop main page conversion: based on classic.py */
html,body{height:100%}.app-body{height:100%;overflow:hidden;background:#fff;color:#202020;display:flex;flex-direction:column}.top-menu{height:44px;min-height:44px;background:#1f3654;display:flex;align-items:stretch;justify-content:space-between}.menu-nav{display:flex;height:44px;padding-left:16px}.menu-group{position:relative;height:44px}.menu-button{width:auto;height:44px;margin:0;padding:0 16px;border:0;border-radius:0;background:#1f3654;color:#fff;font-family:"Malgun Gothic",Arial,sans-serif;font-size:16px;font-weight:400;cursor:pointer}.menu-button:hover,.menu-group.open>.menu-button{background:#3e5b7e}.dropdown{display:none;position:absolute;left:0;top:44px;min-width:230px;background:#fff;border:1px solid #aab3c0;box-shadow:0 5px 14px rgba(0,0,0,.18);z-index:20;padding:4px 0}.menu-group.open>.dropdown{display:block}.menu-item{display:block;padding:9px 16px;color:#202020;text-decoration:none;white-space:nowrap;font-size:15px}.menu-item:hover{background:#3e5b7e;color:#fff}.menu-item.disabled{color:#202020}.menu-separator{height:1px;background:#d3d7dc;margin:4px 6px}.account-area{height:44px;display:flex;align-items:center;gap:14px;padding:0 16px;color:#dfe8f5;font-size:13px;white-space:nowrap}.account-area a{color:#fff;text-decoration:none}.account-area a:hover{text-decoration:underline}.workspace{flex:1;min-height:0;background:#fff;overflow:auto}.home-page{position:relative;min-width:1180px;min-height:675px;height:100%;background:#fff;padding-top:1px}.home-page>h1{position:absolute;left:42px;top:28px;margin:0;text-align:left;color:#1f3654;font-size:32px;line-height:42px;font-weight:700}.home-guide{position:absolute;left:45px;top:88px;margin:0;color:#5a6473;font-size:15px}.business-panel{position:absolute;left:0;right:0;top:145px;bottom:0;border:1px solid #a0a0a0;background:#fff}.business-panel h2{position:absolute;left:25px;top:24px;margin:0;color:#1f3654;font-size:19px}.business-panel p{position:absolute;left:28px;top:70px;margin:0;color:#505a69;font-size:14px}.status-bar{height:22px;min-height:22px;background:#f0f0f0;color:#202020;padding:2px 6px;font-size:12px;border-top:1px solid #ddd;display:flex;align-items:center;justify-content:space-between;gap:16px;white-space:nowrap}.status-message{min-width:0;overflow:hidden;text-overflow:ellipsis}.status-public{margin-left:auto;flex:none;text-align:right;color:#404040}

.login-actions{text-align:center;margin:18px 0 0;font-size:14px}.login-actions a{text-decoration:none}.login-actions a:hover{text-decoration:underline}

.work-frame{display:block;width:100%;height:100%;border:0;background:#fff}.work-frame[hidden]{display:none}
/* 프로그램 탭: 실행 인스턴스를 유지하고 메뉴 재선택 시 기존 탭만 활성화 */
.workspace{display:flex;flex-direction:column;min-height:0}
.work-tabs{flex:0 0 34px;display:flex;align-items:flex-end;gap:2px;padding:3px 6px 0;border-bottom:1px solid #9fb1ca;background:#eaf0f8;overflow-x:auto;overflow-y:hidden}
.work-tabs[hidden]{display:none}
.work-tab{height:30px;min-width:120px;max-width:240px;padding:0 7px 0 12px;border:1px solid #aab9cd;border-bottom:0;border-radius:5px 5px 0 0;background:#dce6f3;color:#20354f;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;white-space:nowrap}
.work-tab.active{background:#fff;font-weight:600;position:relative;top:1px}
.work-tab-title{overflow:hidden;text-overflow:ellipsis}
.work-tab-close{font-size:17px;line-height:1;padding:1px 3px;border-radius:3px}
.work-tab-close:hover{background:#d3dbe6}
.work-frames{flex:1 1 auto;min-height:0;position:relative;background:#fff}
.work-frame{position:absolute;inset:0;display:block;width:100%;height:100%;border:0;background:#fff}
.work-frame[hidden]{display:none}
