@font-face{font-family:KoPub World Dotum;src:url(/fonts/KoPubWorldDotum-Light.woff2) format("woff2");font-weight:100 300;font-style:normal;font-display:swap}@font-face{font-family:KoPub World Dotum;src:url(/fonts/KoPubWorldDotum-Medium.woff2) format("woff2");font-weight:400 500;font-style:normal;font-display:swap}@font-face{font-family:KoPub World Dotum;src:url(/fonts/KoPubWorldDotum-Bold.woff2) format("woff2");font-weight:600 900;font-style:normal;font-display:swap}:root{--bg: #ffffff;--surface: #ffffff;--surface-2: #f6f7f8;--border: #e4e8ee;--border-strong: #d3d9e2;--text: #1a1d21;--text-2: #565e6b;--text-3: #676d7a;--accent: #2f5fe8;--accent-soft: #eef3ff;--safe: #1a9d63;--safe-soft: #e7f6ee;--tag-skill: #2f5fe8;--tag-skill-soft: #eef3ff;--tag-mcp: #7c3aed;--tag-mcp-soft: #f3edff;--tag-bot: #1a9d63;--tag-bot-soft: #e7f6ee;--tag-web: #b7791f;--tag-web-soft: #fbf1dd;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sans: "KoPub World Dotum", "Pretendard Variable", "Pretendard", "Apple SD Gothic Neo", system-ui, -apple-system, sans-serif;--radius: 14px;--shadow: 0 1px 2px rgba(20, 26, 36, .04), 0 4px 16px rgba(20, 26, 36, .05)}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased;letter-spacing:-.005em}a{color:inherit;text-decoration:none}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:10}.brand{display:flex;flex-direction:column;line-height:1.1}.brand-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.brand-name{font-size:18px;font-weight:800;letter-spacing:-.02em}.bi-safe{font-size:11.5px;font-weight:700;color:var(--safe);background:var(--safe-soft);padding:4px 10px;border-radius:999px}.bi-safe.sm{font-size:10.5px;padding:3px 8px}.topbar-right{display:flex;align-items:center;gap:14px}.user{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--text-3)}.user-email{color:var(--text-2);font-weight:600}.logout{color:var(--text-3)}.logout:hover{color:var(--accent)}@media (max-width: 560px){.user-email{display:none}}.main{max-width:960px;margin:0 auto;padding:40px 22px 96px}.hero{margin-bottom:28px}.eyebrow{font-size:11.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}.hero h1{font-size:clamp(26px,4.5vw,38px);font-weight:800;letter-spacing:-.02em;margin:.35rem 0 .4rem;text-wrap:balance}.lede{font-size:16px;color:var(--text-2);max-width:56ch;margin:0}.controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:24px 0 20px}.search{flex:1;min-width:200px;font-size:14px;font-family:var(--sans);padding:10px 14px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);color:var(--text)}.search:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.filters{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:12.5px;font-weight:600;font-family:var(--sans);padding:7px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-2);cursor:pointer}.chip:hover{border-color:var(--border-strong)}.chip.on{background:var(--text);color:#fff;border-color:var(--text)}.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.card{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);transition:border-color .12s,transform .12s}.card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.card-head{display:flex;align-items:center;justify-content:space-between}.installs{font-size:11.5px;color:var(--text-3);font-variant-numeric:tabular-nums}.card-name{font-size:15.5px;font-weight:700;letter-spacing:-.01em}.card-sum{font-size:13px;color:var(--text-2);flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-foot{display:flex;gap:10px;font-size:11.5px;color:var(--text-3);margin-top:2px}.badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:-.01em;padding:3px 9px;border-radius:999px}.badge.skill{background:var(--tag-skill-soft);color:var(--tag-skill)}.badge.mcp{background:var(--tag-mcp-soft);color:var(--tag-mcp)}.badge.bot{background:var(--tag-bot-soft);color:var(--tag-bot)}.badge.web{background:var(--tag-web-soft);color:var(--tag-web)}.state{padding:48px 22px;text-align:center;color:var(--text-3);font-size:14px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface)}.state.error{color:var(--tag-web);border-color:var(--tag-web)}.state.empty{color:var(--text-2)}.state a{color:var(--accent);font-weight:600}.detail{max-width:680px}.back{display:inline-block;font-size:13px;color:var(--text-3);margin-bottom:18px}.back:hover{color:var(--accent)}.detail-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.detail h1{font-size:30px;font-weight:800;letter-spacing:-.02em;margin:0 0 6px}.meta-row{display:flex;flex-wrap:wrap;gap:8px;font-size:12.5px;color:var(--text-3);margin:14px 0 20px}.panel{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;background:var(--surface);padding:16px 18px;margin-bottom:24px}.panel-title{font-size:13px;font-weight:700;margin-bottom:10px}.hint-row{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap}.hint{flex:1;min-width:200px;font-family:var(--mono);font-size:12.5px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);padding:9px 12px;border-radius:8px;overflow-x:auto;white-space:nowrap}.hint.muted{color:var(--text-3)}.btn{font-size:13px;font-weight:600;font-family:var(--sans);cursor:pointer;padding:9px 16px;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:#fff;white-space:nowrap}.btn:hover{filter:brightness(1.05)}.readme{font-size:14px;color:var(--text-2);white-space:pre-wrap;line-height:1.7;border-top:1px solid var(--border);padding-top:20px}.new-btn{white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center}.filters-row{margin-bottom:20px}.new{max-width:620px}.new h1{font-size:28px;font-weight:800;letter-spacing:-.02em;margin:8px 0 6px}.new .lede{margin-bottom:24px}.field{margin-bottom:18px;display:flex;flex-direction:column;gap:6px}.field>label{font-size:12.5px;font-weight:700;color:var(--text-2)}.field input,.field textarea{font-family:var(--sans);font-size:14px;color:var(--text);padding:10px 12px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface);width:100%;resize:vertical}.field input:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.field input[readonly]{background:var(--surface-2);color:var(--text-2)}.hint-note{font-size:11.5px;color:var(--text-3)}.hint-note code{font-family:var(--mono);background:var(--surface-2);padding:1px 5px;border-radius:4px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.type-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.type-card{display:flex;flex-direction:column;gap:6px;align-items:flex-start;text-align:left;padding:12px 13px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;font-family:var(--sans)}.type-card:hover{border-color:var(--border-strong)}.type-card.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--accent-soft)}.type-desc{font-size:11.5px;color:var(--text-3);line-height:1.4}.form-err{font-size:13px;color:var(--tag-web);background:var(--tag-web-soft);border:1px solid var(--tag-web);border-radius:9px;padding:10px 13px;margin-bottom:16px}.form-actions{display:flex;align-items:center;gap:12px;margin-top:6px}.btn:disabled{opacity:.6;cursor:default}.btn-ghost{font-size:14px;font-weight:600;color:var(--text-2);padding:9px 14px}.btn-ghost:hover{color:var(--accent)}@media (max-width: 560px){.row2{grid-template-columns:1fr}}.nav-link{font-size:13px;font-weight:600;color:var(--text-2)}.nav-link:hover,.nav-link.active{color:var(--accent)}.topbar.slim{padding:10px 22px}.embed-nav{display:flex;gap:18px;align-items:center}.app.embedded .main{padding-top:28px}.embed-login{max-width:380px;margin:80px auto;text-align:center}.embed-login h2{font-size:20px;font-weight:750;margin:0 0 8px}.embed-login p{font-size:14px;color:var(--text-2);margin:0 0 20px}.embed-login-msg{font-size:12.5px;color:var(--tag-web);margin-top:14px}.mine{max-width:720px}.mine-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:22px}.mine-head h1{font-size:28px;font-weight:800;letter-spacing:-.02em;margin:4px 0 0}.import-panel{margin-bottom:26px}.import-desc{font-size:13px;color:var(--text-2);margin:0 0 12px}.soon{font-size:10px;font-weight:700;color:var(--tag-web);background:var(--tag-web-soft);padding:2px 7px;border-radius:999px;margin-left:6px;vertical-align:middle}.mine-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.mine-row{display:flex;align-items:center;gap:14px;padding:13px 16px;border-bottom:1px solid var(--border)}.mine-row:last-child{border-bottom:0}.mine-main{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.mine-name{font-size:14.5px;font-weight:650;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mine-name:hover{color:var(--accent)}.status{font-size:10.5px;font-weight:700;color:var(--text-3);background:var(--surface-2);padding:2px 7px;border-radius:999px}.mine-meta{display:flex;gap:12px;font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.mine-actions{display:flex;gap:6px}.row-btn{font-size:12.5px;font-weight:600;font-family:var(--sans);cursor:pointer;padding:6px 11px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-2)}.row-btn:hover{border-color:var(--border-strong)}.row-btn.danger{color:var(--tag-web);border-color:transparent}.row-btn.danger:hover{border-color:var(--tag-web);background:var(--tag-web-soft)}@media (max-width: 560px){.mine-row{flex-wrap:wrap}.mine-meta{order:3;width:100%}}.ws{max-width:100%;display:flex;flex-direction:column;min-height:calc(100vh - 200px)}.ws-split{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:stretch}.ws-pane{display:flex;flex-direction:column;min-width:0;min-height:calc(100vh - 230px)}.ws-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:16px}.ws-head h1{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:4px 0 0}.ws-mode{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--text-3);font-weight:600}.ws-mode .dot{width:8px;height:8px;border-radius:50%}.ws-mode .dot.on{background:var(--safe)}.ws-mode .dot.off{background:var(--text-3)}.ws-chat{flex:1;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:18px;display:flex;flex-direction:column;gap:14px;min-height:320px}.ws-empty{margin:auto 0;color:var(--text-2);font-size:14px;text-align:center;padding:20px}.ws-suggest{display:flex;flex-direction:column;gap:8px;max-width:460px;margin:16px auto}.ws-suggest .chip{text-align:left;padding:10px 14px;border-radius:10px;font-weight:500}.ws-suggest .chip:hover{border-color:var(--accent);color:var(--accent)}.ws-note{font-size:12px;color:var(--text-3);max-width:500px;margin:18px auto 0;line-height:1.6}.ws-note code{font-family:var(--mono);background:var(--surface-2);padding:1px 5px;border-radius:4px}.bubble{max-width:82%;padding:11px 14px;border-radius:12px;font-size:14px;line-height:1.6;white-space:pre-wrap}.bubble.user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}.bubble.assistant{align-self:flex-start;background:var(--surface-2);color:var(--text);border-bottom-left-radius:4px}.bubble-status{font-size:11px;color:var(--text-3);font-family:var(--mono);margin-bottom:6px}.bubble-meta{font-size:10.5px;color:var(--text-3);font-family:var(--mono);margin-bottom:6px}.steps{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}.step{font-size:11px;font-family:var(--mono);color:var(--text-2);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:3px 9px;white-space:nowrap}.ws-side{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);display:flex;flex-direction:column;overflow:hidden;max-height:calc(100vh - 230px);box-shadow:var(--shadow)}.ws-side-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.ws-side-title{font-size:12.5px;font-weight:700;color:var(--text-2);letter-spacing:-.01em}.icon-btn{border:0;background:none;cursor:pointer;color:var(--text-3);font-size:15px;line-height:1;padding:3px 7px;border-radius:7px;font-family:var(--sans)}.icon-btn:hover{color:var(--accent);background:var(--surface-2)}.ws-side-empty{padding:28px 16px;font-size:12.5px;color:var(--text-3);text-align:center;line-height:1.6}.file-list{overflow-y:auto;display:flex;flex-direction:column}.file-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 14px;border:0;border-bottom:1px solid var(--border);background:none;cursor:pointer;font-family:var(--sans);text-align:left;width:100%}.file-row:last-child{border-bottom:0}.file-row:hover{background:var(--surface-2)}.file-name{font-family:var(--mono);font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.file-row:hover .file-name{color:var(--accent)}.file-size{font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums;flex-shrink:0}.file-view{display:flex;flex-direction:column;overflow:hidden;min-height:0}.file-view-name{font-family:var(--mono);font-size:11.5px;color:var(--text-2);padding:2px 14px 10px;border-bottom:1px solid var(--border);overflow-x:auto;white-space:nowrap}.file-code{margin:0;padding:12px 14px;font-family:var(--mono);font-size:11.5px;line-height:1.65;color:var(--text-2);overflow:auto;white-space:pre-wrap;word-break:break-word}.back.sm{margin:12px 14px 8px}.ws-tabs{display:flex;gap:2px}.ws-tab{font-size:12px;font-weight:700;font-family:var(--sans);color:var(--text-3);background:none;border:0;cursor:pointer;padding:4px 9px;border-radius:7px;letter-spacing:-.01em}.ws-tab:hover{color:var(--text-2);background:var(--surface-2)}.ws-tab.on{color:var(--accent);background:var(--accent-soft)}.ws-preview{flex:1;width:100%;border:0;background:#fff;min-height:300px}.ws-side-foot{flex-shrink:0;border-top:1px solid var(--border);padding:10px 12px}.pub-btn{width:100%;font-size:13px;font-weight:700;font-family:var(--sans);cursor:pointer;padding:9px 14px;border-radius:9px;border:1px solid var(--accent);background:var(--accent);color:#fff}.pub-btn:hover{filter:brightness(1.05)}.pub-btn:disabled{opacity:.6;cursor:default}.pub-url{display:block;text-align:center;font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--safe);background:var(--safe-soft);padding:9px 10px;border-radius:9px;word-break:break-all}.pub-url:hover{filter:brightness(.97)}@media (max-width: 900px){.ws-split{grid-template-columns:1fr}.ws-pane{min-height:52vh}.ws-side{max-height:420px}.ws-preview{min-height:240px}}.ws-input{display:flex;gap:10px;align-items:flex-end;margin-top:14px}.ws-input textarea{flex:1;font-family:var(--sans);font-size:14px;color:var(--text);resize:none;padding:12px 14px;border:1px solid var(--border-strong);border-radius:11px;background:var(--surface);max-height:160px;line-height:1.5}.ws-input textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.ws-foot{margin-top:14px;font-size:12.5px;color:var(--text-3)}.ws-foot a{color:var(--accent);font-weight:600}.ws .back{display:inline-block;font-size:13px;color:var(--text-3);margin-bottom:4px;background:none;border:0;cursor:pointer;padding:0;font-family:var(--sans)}.ws .back:hover{color:var(--accent)}.proj-list{display:flex;flex-direction:column;gap:10px;margin-top:8px}.proj-card{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:4px 12px 4px 4px;box-shadow:var(--shadow)}.proj-card:hover{border-color:var(--border-strong)}.proj-open{flex:1;text-align:left;background:none;border:0;padding:13px 14px;cursor:pointer;font-family:var(--sans)}.proj-open:hover .proj-name{color:var(--accent)}.proj-name{font-size:15px;font-weight:700;color:var(--text)}.proj-meta{font-size:12px;color:var(--text-3);margin-top:3px}.apps{max-width:720px}.apps h1{font-size:28px;font-weight:800;letter-spacing:-.02em;margin:4px 0 6px}.mine-head-actions{display:flex;align-items:center;gap:14px}.app-list{display:flex;flex-direction:column;gap:12px;margin-top:20px}.app-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:14px 16px;box-shadow:var(--shadow)}.app-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.app-main{display:flex;align-items:center;gap:9px;min-width:0}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.up{background:var(--safe)}.status-dot.down{background:var(--tag-web)}.app-name{font-size:15px;font-weight:700;color:var(--text)}.app-name:hover{color:var(--accent)}.app-status{font-size:11.5px;color:var(--text-3)}.app-actions{display:flex;gap:6px}.app-url{display:block;font-family:var(--mono);font-size:12px;color:var(--text-3);margin-top:6px}.app-url:hover{color:var(--accent)}.secrets{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.secrets-title{font-size:12.5px;font-weight:700;margin-bottom:10px}.secret-row{display:flex;align-items:center;gap:10px;padding:6px 0}.secret-key{font-family:var(--mono);font-size:12.5px;color:var(--text-2);flex:1}.secret-mask{font-size:12px;color:var(--text-3);letter-spacing:1px}.secret-add{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.secret-add input{flex:1;min-width:140px;font-family:var(--sans);font-size:13px;padding:8px 11px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface)}.secret-add input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.muted-sm{font-size:11.5px;color:var(--text-3);margin-top:8px}.app-logs{margin-top:14px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:12px;font-family:var(--mono);font-size:11.5px;color:var(--text-2);max-height:300px;overflow:auto;white-space:pre-wrap}@media (max-width: 640px){.main{padding:28px 16px 72px}.controls{flex-direction:column;align-items:stretch}}
