:root{color-scheme:dark;--bg:#0c1420;--panel:#152233;--line:#304157;--text:#f1f5fc;--muted:#a4b4cb;--blue:#5b98ff;--mint:#55d7b3;--red:#ff777a;font-family:Inter,"Noto Sans KR","Malgun Gothic",system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 0%,#1b3450 0,transparent 35%),var(--bg);color:var(--text);min-height:100vh}.shell{max-width:1600px;margin:auto;padding:0 34px}.mast{min-height:84px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand,.headerRight{display:flex;align-items:center;gap:12px}.brand strong{display:block;font-size:21px;letter-spacing:.07em}.brand small{font-size:10px;color:var(--muted);letter-spacing:.15em}.mark{display:grid;place-items:center;border:1px solid #5798fa;border-radius:11px;background:#234678;color:#fff;width:43px;height:43px;font-size:25px;font-weight:800}.headerRight{font-size:12px;color:var(--muted)}.statusDot{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 10px var(--mint);flex:none}button{font:inherit;cursor:pointer;border:0}#logout{background:transparent;color:var(--muted);padding:8px 10px;margin-left:12px;border:1px solid var(--line);border-radius:6px}.eyebrow{font-size:11px;font-weight:800;color:var(--mint);letter-spacing:.16em}.loginGrid{min-height:calc(100vh - 165px);display:grid;grid-template-columns:1.25fr 430px;gap:7%;align-items:center}.intro h1{font-size:clamp(38px,5vw,74px);line-height:1.24;letter-spacing:-.06em;margin:24px 0}.intro h1 em{font-style:normal;color:#8cb6ff}.intro p{font-size:17px;color:var(--muted);max-width:470px;line-height:1.7}.introRule{margin-top:55px;color:#d8e3f3;font-size:13px}.introRule b{color:var(--mint);margin:0 12px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:26px;box-shadow:0 20px 48px #0002}.loginPanel{padding:36px}.panel h2{margin:9px 0 25px;font-size:25px;letter-spacing:-.04em}.panel label{display:block;color:#d6e4f5;font-size:13px;font-weight:650;margin-bottom:18px}.panel input:not([type=checkbox]),textarea{display:block;width:100%;border:1px solid #425673;background:#0f1b2a;color:var(--text);padding:13px 14px;border-radius:7px;margin-top:8px;font:inherit;font-size:14px;outline:none}.panel input:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #5b98ff27}textarea{resize:vertical;min-height:150px;line-height:1.55}.primary{background:#4385fa;color:#fff;width:100%;padding:15px 17px;border-radius:7px;font-weight:800;display:flex;justify-content:space-between;align-items:center}.primary:hover{background:#61a0ff}.primary:disabled{opacity:.55;cursor:wait}.feedback{color:#ff9b9e;font-size:12px;min-height:14px;margin:13px 0 0}.dashboardHeading{display:flex;justify-content:space-between;align-items:end;margin:38px 0 27px}.dashboardHeading h1{font-size:36px;letter-spacing:-.04em;margin:10px 0}.dashboardHeading p{color:var(--muted);margin:0;font-size:14px}.liveBadge{border:1px solid #265849;border-radius:999px;color:var(--mint);padding:9px 13px;font-size:12px;display:flex;align-items:center;gap:8px}.columns{display:grid;grid-template-columns:minmax(320px,400px) minmax(0,1fr);gap:18px;align-items:stretch}.leftCol{display:grid;gap:18px;align-content:start}.sectionHead h2,.logTop h2{font-size:21px;margin:9px 0 21px}.context{font-size:12px;color:var(--muted);padding:12px 0;border-top:1px solid var(--line);display:flex;gap:10px;flex-wrap:wrap}.context code{color:#c0d8ff;word-break:break-all}.check{display:flex!important;align-items:flex-start;gap:10px;line-height:1.4;margin:9px 0!important}.check input{accent-color:var(--blue);width:16px;height:16px;margin:0}.note{font-size:12px;color:var(--muted);line-height:1.6;margin:6px 0 20px}.history h2{margin-bottom:15px}.jobList{max-height:400px;overflow:auto}.jobItem{width:100%;background:#101d2d;border:1px solid #334761;color:var(--text);padding:13px;text-align:left;border-radius:7px;margin:0 0 9px}.jobItem:hover,.jobItem.active{border-color:var(--blue);background:#1b324b}.jobItem strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.jobItem span{color:var(--muted);display:block;margin-top:7px;font-size:11px}.muted{color:var(--muted);font-size:13px}.logPanel{display:flex;flex-direction:column;min-height:690px;padding:0;overflow:hidden}.logTop{display:flex;justify-content:space-between;align-items:center;padding:25px 27px 0}.logTop h2{margin-bottom:14px}.pill{color:#adbed3;background:#23354a;border-radius:999px;font-size:12px;padding:7px 12px}.pill.completed{color:var(--mint);background:#1d403c}.pill.attention{color:#ffc09f;background:#503e36}.jobMeta{color:var(--muted);font-size:12px;padding:0 27px 16px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.log{background:#0b1724;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 10px;flex:1;overflow:auto;max-height:650px;min-height:420px;padding:17px;font:12px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.log p{color:var(--muted)}.entry{padding:6px 2px;border-bottom:1px solid #ffffff10}.entry time{color:#718dac;margin-right:12px}.entry.message{color:#d5eaff}.entry.error{color:#ffaaaa}.logFooter{display:flex;align-items:center;justify-content:space-between;padding:15px 24px;color:var(--muted);font-size:12px;gap:10px}.danger{color:#ffadb1;background:#593038;border:1px solid #804752;padding:9px 13px;border-radius:6px}footer{color:#6f86a2;font-size:10px;letter-spacing:.1em;padding:30px 0}footer span{padding:0 8px;color:var(--mint)}[hidden]{display:none!important}@media(max-width:900px){.shell{padding:0 18px}.loginGrid{grid-template-columns:1fr;gap:28px;padding:46px 0;min-height:auto}.intro h1{font-size:43px}.introRule{margin-top:25px}.loginPanel{max-width:510px;width:100%}.columns{grid-template-columns:1fr}.leftCol{grid-template-columns:1fr 1fr}.logPanel{min-height:560px}.dashboardHeading{margin-top:30px}}@media(max-width:630px){.shell{padding:0 13px}.mast{min-height:69px}.brand strong{font-size:18px}.brand small{font-size:8px}.mark{width:37px;height:37px}.headerRight>span:not(.statusDot){display:none}#logout{margin-left:0}.loginGrid{padding:36px 0}.intro h1{font-size:37px}.intro p{font-size:14px}.introRule{font-size:11px;line-height:1.8}.introRule b{margin:0 4px}.panel,.loginPanel{padding:20px}.dashboardHeading{align-items:start;gap:10px}.dashboardHeading h1{font-size:29px}.dashboardHeading p{font-size:12px}.liveBadge{font-size:0;padding:10px}.leftCol{grid-template-columns:1fr}.logPanel{padding:0;min-height:490px}.logTop{padding:18px 16px 0}.jobMeta{padding:0 16px 14px}.log{min-height:320px;max-height:50vh;margin:0 6px;padding:11px;font-size:11px}.logFooter{padding:12px;font-size:11px}.logFooter span{max-width:56%}footer{font-size:9px}}

@media(max-width:630px){.panel input:not([type=checkbox]),.panel textarea{font-size:16px}}
