:root{--bg:#f3f6fb;--surface:rgba(255,255,255,.94);--text:#172033;--muted:#778195;--line:#e4e9f1;--nav:#101827;--nav2:#182337;--accent:#5865f2;--green:#10a779;--red:#e04f5f;--shadow:0 10px 30px rgba(31,42,68,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 80% 0,#eef0ff 0,transparent 28%),var(--bg);color:var(--text);font-family:Inter,Pretendard,"Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(120deg,rgba(88,101,242,.025),transparent 38%);z-index:-1}
aside{position:fixed;inset:0 auto 0 0;width:252px;background:linear-gradient(180deg,var(--nav),#0d1421);padding:28px 16px;color:#fff;border-right:1px solid #243047;box-shadow:8px 0 28px rgba(13,20,33,.09);z-index:10}
aside h2{font-size:18px;letter-spacing:-.4px;margin:2px 10px 30px;display:flex;align-items:center;gap:10px}aside h2:before{content:"";width:10px;height:10px;border-radius:50%;background:#7c86ff;box-shadow:0 0 0 5px rgba(124,134,255,.12),0 0 18px #6571ff;animation:pulse 2.2s infinite}
aside a{position:relative;display:flex;align-items:center;color:#9ca9bc;text-decoration:none;padding:12px 14px;border-radius:10px;margin:4px 0;font-weight:650;transition:all .2s ease;overflow:hidden}
aside a:before{content:"";position:absolute;left:0;width:3px;height:0;border-radius:4px;background:#7c86ff;transition:.2s}aside a:hover{background:var(--nav2);color:#fff;transform:translateX(4px)}aside a:hover:before{height:20px}
main{margin-left:252px;padding:38px 46px 70px;max-width:1580px;animation:pageIn .35s ease both}h1{font-size:27px;letter-spacing:-1px;margin:0 0 26px;font-weight:800}h1:after{content:"";display:block;width:34px;height:3px;background:var(--accent);border-radius:3px;margin-top:10px}h2{font-size:17px;margin:30px 0 14px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:30px}.card,.panel,.list{background:var(--surface);border:1px solid rgba(225,230,239,.95);border-radius:16px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}
.card{position:relative;padding:22px 24px;overflow:hidden;transition:transform .22s ease,box-shadow .22s ease}.card:after{content:"";position:absolute;right:-30px;top:-40px;width:110px;height:110px;border-radius:50%;background:rgba(88,101,242,.055)}.card:hover{transform:translateY(-4px);box-shadow:0 15px 35px rgba(31,42,68,.11)}.card b{display:block;color:var(--muted);font-size:12px}.card strong{display:block;font-size:25px;margin-top:10px;letter-spacing:-.7px}
.panel{padding:27px;max-width:none;animation:rise .35s ease both}.list{overflow:hidden;padding:0}label{display:block;font-size:13px;font-weight:700;margin:18px 0 8px;color:#465166}
input,textarea,select{width:100%;padding:12px 13px;border:1px solid #d9e0ea;border-radius:10px;background:#fbfcfe;color:#1e293b;font:inherit;outline:none;transition:border .18s,box-shadow .18s,background .18s}input:hover,textarea:hover,select:hover{background:#fff;border-color:#c9d1df}input:focus,textarea:focus,select:focus{background:#fff;border-color:#8993ff;box-shadow:0 0 0 4px rgba(88,101,242,.09)}textarea{resize:vertical;line-height:1.65}
button{border:0;border-radius:10px;padding:11px 17px;background:linear-gradient(135deg,#626df4,#4f59dd);color:#fff;font:inherit;font-weight:750;cursor:pointer;margin:12px 0;box-shadow:0 6px 14px rgba(88,101,242,.18);transition:transform .16s,box-shadow .16s,filter .16s}button:hover{transform:translateY(-2px);box-shadow:0 9px 20px rgba(88,101,242,.25);filter:brightness(1.03)}button:active{transform:translateY(0) scale(.98)}
.buttons{display:flex;gap:9px;margin-top:12px}.buttons form{margin:0}.go{background:linear-gradient(135deg,#13ae80,#07966c);box-shadow:0 6px 14px rgba(16,167,121,.18)}.stop{background:#fff;color:var(--red);border:1px solid #f1cbd0;box-shadow:none}.stop:hover{background:#fff6f7;box-shadow:0 5px 14px rgba(224,79,95,.09)}
.item{display:flex;align-items:center;gap:13px;padding:15px 19px;border-bottom:1px solid #edf0f5;margin:0;transition:.16s}.item:last-child{border:0}.item:hover{background:#f8f9ff;padding-left:23px}.item input{width:17px;height:17px;accent-color:var(--accent)}.item span{display:flex;flex-direction:column}.item b{color:#273248}.item small{color:#929bab;margin-top:4px}
table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;font-size:13px;box-shadow:0 5px 20px rgba(31,42,68,.035)}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid #edf0f5;vertical-align:middle;transition:background .15s}th{background:#f8f9fc;color:#697386;font-size:11px;text-transform:none;font-weight:750;white-space:nowrap;letter-spacing:.1px}tr:last-child td{border-bottom:0}tbody tr:hover td{background:#f8f9ff}td input{min-width:70px;padding:9px}
input[type=checkbox]{accent-color:var(--accent)}input[type=file]{padding:9px;background:#f8fafc}input[type=file]::file-selector-button{border:0;background:#e9ecff;color:#4d57ce;padding:8px 12px;border-radius:7px;font-weight:700;margin-right:12px;cursor:pointer}
.warn,.ok{padding:13px 15px;border-radius:10px;border:1px solid}.warn{background:#fff9ed;border-color:#f8e1ae;color:#946200}.ok{background:#effbf6;border-color:#ccefe0;color:#087553}hr{border:0;border-top:1px solid var(--line);margin:27px 0}p{color:#687386;line-height:1.65}
@keyframes pageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(124,134,255,.1),0 0 12px #6571ff}50%{box-shadow:0 0 0 7px rgba(124,134,255,.04),0 0 20px #6571ff}}
.navlabel{font-size:9px;letter-spacing:1.6px;color:#536078;margin:0 14px 10px;font-weight:800}.sidefoot{position:absolute;left:26px;bottom:25px;color:#64748b;font-size:11px;font-weight:700;letter-spacing:.2px}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#19c38d;margin-right:7px;box-shadow:0 0 10px rgba(25,195,141,.75);animation:pulseGreen 2s infinite}tbody td:nth-child(3){font-weight:750}tbody tr{transition:transform .15s ease}tbody tr:hover{transform:translateX(2px)}@keyframes pulseGreen{50%{opacity:.55;box-shadow:0 0 3px rgba(25,195,141,.4)}}
.runbadge{display:inline-flex;align-items:center;padding:8px 12px;border-radius:30px;font-size:11px;font-weight:800;border:1px solid}.runbadge.on{background:#effbf6;color:#087553;border-color:#ccefe0}.runbadge.off{background:#f6f7f9;color:#7b8494;border-color:#e1e5eb}.log-pill{display:inline-flex;padding:5px 9px;border-radius:20px;font-size:11px;font-weight:800;background:#f2f4f7;color:#687386}.log-pill.성공{background:#effbf6;color:#087553}.log-pill.대체발송{background:#eef2ff;color:#515bd4}.log-pill.실패,.log-pill.권한없음{background:#fff1f2;color:#c83d4d}.log-pill.대기{background:#fff8e8;color:#986500}.card small{display:block;color:#929bab;margin-top:8px;font-size:11px}.pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.pagehead h1{margin-bottom:4px}.pagehead p{margin-top:0}.flow{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:#f8f9ff;border:1px solid #e8eaff;border-radius:13px;padding:14px 16px;margin:14px 0 22px}.flow span{background:#fff;border:1px solid #dfe3ee;border-radius:9px;padding:9px 12px;font-size:12px;font-weight:750;color:#48536a;box-shadow:0 3px 9px rgba(31,42,68,.04)}.flow i{font-style:normal;color:#8993ff}.smallstrong{font-size:17px!important;margin-top:13px!important}.status-pill{display:inline-flex;padding:5px 9px;border-radius:20px;background:#effbf6;color:#087553;font-size:11px;font-weight:800}.empty{text-align:center!important;color:#929bab!important;padding:34px!important}
@media(max-width:900px){aside{position:static;width:100%;height:auto;padding:15px}aside h2{margin:4px 8px 14px}aside a{display:inline-flex;padding:9px 11px}main{margin:0;padding:25px 16px}.cards{grid-template-columns:1fr}.panel{overflow-x:auto}table{min-width:760px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}