*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Noto Sans KR",sans-serif;background:#f5f7fa;color:#172033}header{position:sticky;top:0;z-index:20;background:#101828;color:#fff;padding:12px 22px;display:flex;gap:20px;align-items:center;justify-content:space-between}header>div{display:flex;gap:10px;align-items:center}header b{font-size:20px}header span{font-size:12px;opacity:.75}nav{display:flex;gap:8px;flex-wrap:wrap}nav button,nav a{border:0;background:#263247;color:#fff;padding:8px 11px;border-radius:8px;text-decoration:none;cursor:pointer}main{max-width:1320px;margin:20px auto;padding:0 14px}.tab{display:none}.tab.active{display:block}.hero{background:#fff;border:1px solid #e1e7ef;border-radius:16px;padding:22px;display:flex;justify-content:space-between;gap:16px}.pill{height:max-content;padding:7px 11px;border-radius:999px;background:#eef2f6}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}article{background:#fff;border:1px solid #e1e7ef;border-radius:14px;padding:18px;margin-bottom:14px}.head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.head h2,.head h3{margin:0}.head p{margin:6px 0;color:#667085}.form3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}label{display:grid;gap:6px;font-weight:700}input,select,button{font:inherit}input,select{padding:10px;border:1px solid #cfd7e3;border-radius:8px}button{padding:9px 12px;border:1px solid #c7d0dd;background:#fff;border-radius:8px;cursor:pointer}.primary{background:#175cd3;color:#fff;border-color:#175cd3}.note{padding:10px 12px;background:#f8fafc;border-radius:9px;margin:10px 0}.save-state{font-size:13px;font-weight:700;margin-left:8px}.dirty{color:#b54708}.saved{color:#027a48}.macro-row{display:grid;grid-template-columns:130px 190px 1fr 120px;gap:10px;padding:10px;border-bottom:1px solid #eef2f6}.macro-row small{display:block;color:#667085}.toolbar{display:flex;gap:12px;align-items:end;margin-bottom:12px}.mode-card{border:1px solid #e1e7ef;border-radius:10px;padding:10px;margin:8px 0}.mode-card h4{margin:0 0 8px}.ratio-buttons{display:flex;gap:6px;flex-wrap:wrap}.ratio-buttons button{padding:6px 8px}pre{white-space:pre-wrap;background:#101828;color:#d1e9ff;padding:12px;border-radius:9px;max-height:360px;overflow:auto}#toast{position:fixed;right:18px;bottom:18px;background:#101828;color:#fff;padding:10px 14px;border-radius:9px;display:none}.login{display:grid;place-items:center;min-height:100vh}.login-card{width:min(420px,92vw);background:#fff;padding:26px;border-radius:16px;box-shadow:0 10px 30px #0002;display:grid;gap:14px}.login-card button{background:#175cd3;color:#fff}.login-card h1{margin:0}@media(max-width:800px){header{position:static;align-items:flex-start;flex-direction:column}.grid,.form3{grid-template-columns:1fr}.macro-row{grid-template-columns:1fr}.head{flex-direction:column}.hero{flex-direction:column}}