:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--coda-canvas:#f6f6f4;--coda-surface:#fff;--coda-surface-subtle:#eceee9;--coda-text:#242623;--coda-muted:#62655f;--coda-text-disabled:#7a7d76;--coda-border:#dddfd9;--coda-border-strong:#80837c;--coda-accent:#315d4d;--coda-accent-strong:#264a3d;--coda-on-accent:#fff;--coda-info:#2b5687;--coda-info-surface:#eef3fa;--coda-info-border:#b8cbe4;--coda-success:#2c6a43;--coda-success-surface:#edf6f0;--coda-success-border:#b5d6c0;--coda-warning:#7a5100;--coda-warning-surface:#fdf5e3;--coda-warning-border:#ead29a;--coda-danger:#a12f27;--coda-danger-strong:#83251e;--coda-danger-surface:#fcefed;--coda-danger-border:#e8b8b2;--coda-font:-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", sans-serif;--coda-font-size-sm:13px;--coda-font-size:15px;--coda-line-height:1.6;--coda-space-1:4px;--coda-space-2:8px;--coda-space-3:12px;--coda-space-4:16px;--coda-space-5:24px;--coda-space-6:32px;--coda-space-7:48px;--coda-radius-sm:8px;--coda-radius:12px;--coda-radius-pill:999px;--coda-control-min-height:44px;--coda-focus-ring:2px solid var(--coda-accent);--coda-duration:.16s;font-family:var(--coda-font);color:var(--coda-text);background:var(--coda-canvas)}*{box-sizing:border-box}body{margin:0}a{color:var(--coda-accent)}:focus-visible{outline:2px solid var(--coda-accent);outline-offset:4px}.coda-setup{flex-direction:column;max-width:1120px;min-height:100svh;margin:auto;padding:0 40px;display:flex}.coda-setup-header{border-bottom:1px solid var(--coda-border);align-items:center;gap:20px;padding:28px 0;display:flex}.coda-wordmark{letter-spacing:.08em;font-size:19px;font-weight:700}.coda-label{color:var(--coda-muted);border-left:1px solid var(--coda-border);padding-left:20px;font-size:13px}.coda-setup-content{flex-direction:column;flex:1;justify-content:center;align-items:flex-start;padding:72px 0;display:flex}.coda-eyebrow{color:var(--coda-accent);margin:0 0 20px;font-size:14px}.coda-setup h1{letter-spacing:-.04em;margin:0;font-size:clamp(28px,4vw,44px);font-weight:600;line-height:1.3}.coda-description{max-width:38rem;color:var(--coda-muted);word-break:keep-all;margin:22px 0 0;font-size:16px;line-height:1.8}.coda-setup-footer{color:var(--coda-muted);border-top:1px solid var(--coda-border);padding:24px 0;font-size:12px;line-height:1.7}@media (max-width:600px){.coda-setup{padding:0 24px}.coda-setup-content{padding:48px 0}}.coda-visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.coda-button{justify-content:center;align-items:center;gap:var(--coda-space-2);min-height:var(--coda-control-min-height);border-radius:var(--coda-radius-sm);max-width:100%;font:inherit;font-size:var(--coda-font-size);text-align:center;word-break:keep-all;overflow-wrap:anywhere;cursor:pointer;transition:background-color var(--coda-duration), border-color var(--coda-duration), color var(--coda-duration);border:1px solid #0000;padding:10px 18px;font-weight:600;line-height:1.4;display:inline-flex}.coda-button:focus-visible{outline:var(--coda-focus-ring);outline-offset:2px}.coda-button--primary{background:var(--coda-accent);color:var(--coda-on-accent)}.coda-button--primary:hover:not(:disabled,[aria-disabled=true]){background:var(--coda-accent-strong)}.coda-button--secondary{background:var(--coda-surface);color:var(--coda-text);border-color:var(--coda-border-strong)}.coda-button--secondary:hover:not(:disabled,[aria-disabled=true]){background:var(--coda-surface-subtle)}.coda-button--danger{background:var(--coda-danger);color:var(--coda-on-accent)}.coda-button--danger:hover:not(:disabled,[aria-disabled=true]){background:var(--coda-danger-strong)}.coda-button:disabled{background:var(--coda-surface-subtle);border-color:var(--coda-border);color:var(--coda-text-disabled);cursor:not-allowed}.coda-button[aria-busy=true]{cursor:progress}.coda-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:1em;height:1em;animation:.8s linear infinite coda-spin}@keyframes coda-spin{to{transform:rotate(360deg)}}.coda-field{gap:var(--coda-space-2);flex-direction:column;min-width:0;display:flex}.coda-field-label{font-size:var(--coda-font-size);word-break:keep-all;overflow-wrap:anywhere;font-weight:600;line-height:1.4}.coda-field-required{margin-left:var(--coda-space-2);color:var(--coda-muted);font-size:var(--coda-font-size-sm);font-weight:400}.coda-field-hint,.coda-field-error{font-size:var(--coda-font-size-sm);line-height:var(--coda-line-height);word-break:keep-all;overflow-wrap:anywhere;margin:0}.coda-field-hint{color:var(--coda-muted)}.coda-field-error{color:var(--coda-danger);align-items:flex-start;gap:6px;display:flex}.coda-field-error-icon{flex:none;width:16px;height:16px;margin-top:3px}.coda-input{width:100%;min-height:var(--coda-control-min-height);border:1px solid var(--coda-border-strong);border-radius:var(--coda-radius-sm);background:var(--coda-surface);color:var(--coda-text);font:inherit;font-size:var(--coda-font-size);padding:10px 12px;line-height:1.4}.coda-input::placeholder{color:var(--coda-muted)}.coda-input:focus-visible{border-color:var(--coda-accent);outline:var(--coda-focus-ring);outline-offset:1px}.coda-input[aria-invalid=true]{border-color:var(--coda-danger);box-shadow:inset 0 0 0 1px var(--coda-danger)}.coda-input:disabled,.coda-input:read-only{background:var(--coda-surface-subtle);color:var(--coda-muted)}.coda-notice{align-items:flex-start;gap:var(--coda-space-3);padding:var(--coda-space-3) var(--coda-space-4);border:1px solid var(--coda-info-border);border-radius:var(--coda-radius-sm);background:var(--coda-info-surface);color:var(--coda-text);font-size:var(--coda-font-size);line-height:var(--coda-line-height);display:flex}.coda-notice-icon{color:var(--coda-info);flex:none;margin-top:2px}.coda-notice--success{border-color:var(--coda-success-border);background:var(--coda-success-surface)}.coda-notice--success .coda-notice-icon{color:var(--coda-success)}.coda-notice--warning{border-color:var(--coda-warning-border);background:var(--coda-warning-surface)}.coda-notice--warning .coda-notice-icon{color:var(--coda-warning)}.coda-notice--error{border-color:var(--coda-danger-border);background:var(--coda-danger-surface)}.coda-notice--error .coda-notice-icon{color:var(--coda-danger)}.coda-notice-content{word-break:keep-all;overflow-wrap:anywhere;flex:1;min-width:0}.coda-notice-title{margin:0;font-weight:600}.coda-notice-text>:first-child{margin-top:0}.coda-notice-text>:last-child{margin-bottom:0}.coda-notice-action{flex:none}.coda-badge{border:1px solid var(--coda-border);border-radius:var(--coda-radius-pill);background:var(--coda-surface-subtle);max-width:100%;color:var(--coda-muted);font-size:var(--coda-font-size-sm);font-weight:600;line-height:var(--coda-line-height);word-break:keep-all;overflow-wrap:anywhere;align-items:center;gap:6px;padding:2px 10px;display:inline-flex}.coda-badge-mark{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.coda-badge--info{border-color:var(--coda-info-border);background:var(--coda-info-surface);color:var(--coda-info)}.coda-badge--success{border-color:var(--coda-success-border);background:var(--coda-success-surface);color:var(--coda-success)}.coda-badge--warning{border-color:var(--coda-warning-border);background:var(--coda-warning-surface);color:var(--coda-warning)}.coda-badge--danger{border-color:var(--coda-danger-border);background:var(--coda-danger-surface);color:var(--coda-danger)}.coda-skeleton,.coda-skeleton-lines{gap:var(--coda-space-2);flex-direction:column;display:flex}.coda-skeleton-line{background:var(--coda-surface-subtle);border-radius:4px;height:.9em;animation:1.6s ease-in-out infinite coda-pulse;display:block}.coda-skeleton-line:last-child:not(:first-child){width:64%}@keyframes coda-pulse{50%{opacity:.55}}@media (max-width:600px){.coda-notice{flex-wrap:wrap}.coda-notice-action{flex-basis:100%}}@media (forced-colors:active){.coda-badge-mark,.coda-skeleton-line{border:1px solid canvastext}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto}.coda-button{transition:none}.coda-spinner{opacity:.6;border-right-color:currentColor;animation:none}.coda-skeleton-line{animation:none}}
body{background:var(--coda-canvas);font-size:var(--coda-font-size);line-height:var(--coda-line-height);word-break:keep-all;overflow-wrap:anywhere}h1{letter-spacing:-.03em;margin:0;font-size:clamp(24px,3vw,32px);font-weight:650;line-height:1.3}h2{margin:0 0 var(--coda-space-3);font-size:19px;font-weight:650;line-height:1.4}p{margin:0}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}.admin-skip-link{left:var(--coda-space-4);padding:var(--coda-space-2) var(--coda-space-3);background:var(--coda-surface);border:1px solid var(--coda-border-strong);border-radius:var(--coda-radius-sm);position:absolute;top:-100px}.admin-skip-link:focus{top:var(--coda-space-2)}.admin-header{align-items:center;gap:var(--coda-space-5);padding:var(--coda-space-3) 40px;border-bottom:1px solid var(--coda-border);background:var(--coda-surface);display:flex}.admin-wordmark{color:var(--coda-text);text-decoration:none}.admin-nav{gap:var(--coda-space-4);flex:1;display:flex}.admin-nav a{color:var(--coda-text);font-weight:600}.admin-logout{align-items:center;gap:var(--coda-space-3);display:flex}.admin-inline-error{color:var(--coda-danger);font-size:var(--coda-font-size-sm)}.admin-main{max-width:1120px;padding:var(--coda-space-6) 40px var(--coda-space-7);margin:0 auto}.admin-main:focus{outline:none}.admin-lead{margin-top:var(--coda-space-2);color:var(--coda-muted)}.admin-muted{color:var(--coda-muted);font-size:var(--coda-font-size-sm)}.admin-empty{padding:var(--coda-space-4) 0;color:var(--coda-muted)}.admin-page-heading,.admin-section-header{justify-content:space-between;align-items:center;gap:var(--coda-space-3) var(--coda-space-5);flex-wrap:wrap;display:flex}.admin-page-heading{margin-top:var(--coda-space-3)}.admin-section-header h2{margin:0}.admin-refresh,.admin-toolbar,.admin-status-line{align-items:center;gap:var(--coda-space-2) var(--coda-space-3);flex-wrap:wrap;display:flex}.admin-status-line+.admin-status-line,.admin-status-line+.admin-muted{margin-top:var(--coda-space-2)}.admin-page-heading+.coda-notice,.admin-lead+.coda-notice{margin-top:var(--coda-space-4)}.admin-section{margin-top:var(--coda-space-7);gap:var(--coda-space-3);flex-direction:column;display:flex}.admin-section>h2{padding-bottom:var(--coda-space-2);border-bottom:1px solid var(--coda-border);margin:0}.admin-form{gap:var(--coda-space-4);flex-direction:column;max-width:32rem;display:flex}.admin-form--inline{max-width:40rem}.admin-form-actions{gap:var(--coda-space-3);display:flex}.admin-list{border-top:1px solid var(--coda-border);margin:0;padding:0;list-style:none}.admin-list-item{gap:var(--coda-space-3) var(--coda-space-5);padding:var(--coda-space-4) 0;border-bottom:1px solid var(--coda-border);grid-template-columns:minmax(0,1fr) minmax(0,auto);display:grid}.admin-list-main{gap:var(--coda-space-1);flex-direction:column;min-width:0;display:flex}.admin-list-actions{align-items:flex-end;gap:var(--coda-space-2);flex-direction:column;max-width:26rem;display:flex}.admin-item-heading{align-items:center;gap:var(--coda-space-2) var(--coda-space-3);flex-wrap:wrap;display:flex}.admin-item-title{margin:0;font-size:16px;font-weight:650;line-height:1.5}a.admin-item-title{color:var(--coda-text)}.admin-meta{gap:var(--coda-space-1) var(--coda-space-5);margin:var(--coda-space-1) 0 0;font-size:var(--coda-font-size-sm);flex-wrap:wrap;display:flex}.admin-meta div{gap:var(--coda-space-2);display:flex}.admin-meta dt{color:var(--coda-muted)}.admin-meta dd{margin:0}.admin-job-failure{color:var(--coda-danger)}.admin-job-action{align-items:flex-end;gap:var(--coda-space-2);flex-direction:column;display:flex}.admin-issue-code{gap:var(--coda-space-3);flex-direction:column;display:flex}.admin-issued-code{gap:var(--coda-space-2);max-width:40rem;padding:var(--coda-space-4) var(--coda-space-5);border:1px solid var(--coda-accent);border-radius:var(--coda-radius);background:var(--coda-surface);flex-direction:column;display:flex}.admin-issued-code--expired{border-color:var(--coda-danger-border)}.admin-issued-code-label{color:var(--coda-muted);font-size:var(--coda-font-size-sm);font-weight:600}.admin-code{letter-spacing:.08em;-webkit-user-select:all;user-select:all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:clamp(24px,4vw,32px);font-weight:600}.admin-issued-code--expired .admin-code{color:var(--coda-text-disabled);text-decoration:line-through}.admin-confirm{gap:var(--coda-space-3);padding:var(--coda-space-3) var(--coda-space-4);border:1px solid var(--coda-danger-border);border-radius:var(--coda-radius-sm);background:var(--coda-danger-surface);flex-direction:column;margin:0;display:flex}.admin-confirm-title{padding:0;font-weight:650}.admin-login{max-width:30rem;padding:var(--coda-space-7) var(--coda-space-5);gap:var(--coda-space-4);flex-direction:column;margin:0 auto;display:flex}.admin-login .coda-wordmark{margin-bottom:var(--coda-space-3)}.admin-login-primary{gap:var(--coda-space-3);flex-direction:column;display:flex}.admin-login-fallback{gap:var(--coda-space-3);margin-top:var(--coda-space-5);padding-top:var(--coda-space-5);border-top:1px solid var(--coda-border);flex-direction:column;display:flex}.admin-login-fallback h2{margin:0;font-size:16px}@media (max-width:720px){.admin-header{padding:var(--coda-space-3) var(--coda-space-4);gap:var(--coda-space-3)}.admin-main{padding:var(--coda-space-5) var(--coda-space-4) var(--coda-space-7)}.admin-list-item{grid-template-columns:minmax(0,1fr)}.admin-list-actions,.admin-job-action{align-items:flex-start;max-width:none}.admin-section{margin-top:var(--coda-space-6)}}.chat-widget{z-index:30;position:fixed;bottom:1rem;right:1rem}.chat-panel{background:var(--coda-surface,white);border:1px solid var(--coda-border,#ddd);border-radius:12px;width:min(720px,100vw - 2rem);height:min(680px,100dvh - 6rem);margin-bottom:.5rem;overflow:hidden}.chat-frame{height:100%}.knowledge-editor textarea{box-sizing:border-box;width:100%;font:inherit;border:1px solid var(--coda-border,#ddd);resize:vertical;border-radius:8px;margin-block:.5rem;padding:1rem;display:block}.knowledge-editor pre{white-space:pre-wrap;overflow-wrap:anywhere}
