:root{--bg:#f3f4f6;--card:#fff;--ink:#111827;--muted:#6b7280;--line:#e5e7eb;--accent:#2563eb;--accent-soft:#eff4ff;--danger:#dc2626;--ok:#059669;--font:"Pretendard Variable", Pretendard, "Apple SD Gothic Neo", sans-serif;--radius:7px;--control-h:32px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit}.btn{appearance:none;border:1px solid var(--line);color:var(--ink);border-radius:var(--radius);height:var(--control-h);letter-spacing:-.01em;cursor:pointer;white-space:nowrap;background:#fff;justify-content:center;align-items:center;gap:.35rem;padding:0 .7rem;font-size:.8125rem;font-weight:550;line-height:1;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.btn:hover{background:#f9fafb;border-color:#d1d5db}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#1d4ed8;border-color:#1d4ed8}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover{color:var(--ink);background:#f3f4f6;border-color:#0000}.btn.soft{background:var(--accent-soft);color:#1d4ed8;border-color:#c7d7fe}.btn.soft:hover{background:#dbe6fe}.btn.danger{color:var(--danger);background:#fff;border-color:#fecaca}.btn.danger:hover{background:#fef2f2}.btn.sm{border-radius:6px;height:26px;padding:0 .5rem;font-size:.75rem}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.85rem 1rem}.muted{color:var(--muted)}.input,.select,.textarea{border:1px solid var(--line);border-radius:var(--radius);width:100%;height:var(--control-h);color:var(--ink);background:#fff;padding:0 .65rem;font-size:.8125rem;transition:border-color .12s,box-shadow .12s}.input:focus,.select:focus,.textarea:focus{border-color:#93c5fd;outline:none;box-shadow:0 0 0 3px #2563eb1f}.textarea{height:auto;min-height:420px;padding:.7rem .75rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;line-height:1.55}.shell{max-width:1100px;margin:0 auto;padding:1.25rem}.top{justify-content:space-between;align-items:flex-start;gap:.85rem;margin-bottom:1rem;display:flex}.top>.row{justify-content:flex-end}.brand{letter-spacing:-.02em;font-weight:700}.grid{gap:.65rem;display:grid}.row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.status{border:1px solid var(--line);height:22px;color:var(--muted);background:#fff;border-radius:999px;align-items:center;gap:.3rem;padding:0 .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.status.ok{color:var(--ok);background:#ecfdf5;border-color:#a7f3d0}.status.warn{color:#b45309;background:#fffbeb;border-color:#fde68a}.login-wrap{background:linear-gradient(160deg,#eef2ff,#f8fafc 50%,#ecfeff);place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{width:min(100%,380px)}.login-card h1{margin:0 0 .35rem;font-size:1.4rem}.login-card form{gap:.75rem;margin-top:1rem;display:grid}.error{color:var(--danger);font-size:.9rem}.editor-layout{grid-template-columns:1fr;gap:1rem;display:grid}@media (min-width:960px){.editor-layout{grid-template-columns:1.1fr .9fr}}.preview{border:1px solid var(--line);background:#fff;border-radius:12px;max-height:70vh;padding:1rem;overflow:auto}.preview img,.preview video{max-width:100%;height:auto}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:.55rem .4rem;font-size:.8125rem}.table th{color:var(--muted);text-transform:none;letter-spacing:0;padding-top:.45rem;padding-bottom:.45rem;font-size:.72rem;font-weight:650}.table a.title{color:inherit;font-weight:600}.table .row .btn{flex-shrink:0}.rte{border:1px solid var(--line);background:#fff;border-radius:10px;overflow:hidden}.rte-toolbar{border-bottom:1px solid var(--line);background:#fafafa;flex-wrap:wrap;align-items:center;gap:.35rem .55rem;padding:.45rem .6rem;display:flex}.rte-group{border-right:1px solid var(--line);align-items:center;gap:.25rem;padding-right:.45rem;display:flex}.rte-group:last-child{border-right:0;padding-right:0}.rte-label{color:var(--muted);font-size:.7rem;font-weight:600}.rte-btn{appearance:none;cursor:pointer;height:28px;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:6px;padding:0 .45rem;font-size:.78rem;font-weight:550;line-height:1}.rte-btn:hover{border-color:var(--line);background:#fff}.rte-select{border:1px solid var(--line);background:#fff;border-radius:6px;min-width:88px;height:28px;padding:0 .4rem;font-size:.78rem}.rte-swatches{align-items:center;gap:.25rem;display:flex}.rte-swatch{width:18px;height:18px;box-shadow:0 0 0 1px var(--line);cursor:pointer;appearance:none;border:2px solid #fff;border-radius:999px;padding:0}.rte-swatch.active{box-shadow:0 0 0 2px var(--accent)}.rte-picker{background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);position:relative;overflow:hidden}.rte-picker input{cursor:pointer;opacity:0;border:0;width:26px;height:26px;padding:0;position:absolute;inset:-4px}.rte-surface{outline:none;min-height:480px;max-height:75vh;padding:1.1rem 1.2rem;font-size:.95rem;line-height:1.7;overflow:auto}.rte-surface:focus{box-shadow:inset 0 0 0 2px #2563eb1a}.rte-surface img,.rte-surface video{max-width:100%;height:auto}.rte-surface .rte-h1,.rte-surface h1.rte-h1,.rte-surface h1{letter-spacing:-.03em;margin:1.1rem 0 .55rem;font-size:1.75rem;font-weight:700}.rte-surface .rte-h2,.rte-surface h2.rte-h2,.rte-surface h2{letter-spacing:-.02em;margin:1rem 0 .45rem;font-size:1.35rem;font-weight:700}.rte-surface .rte-h3,.rte-surface h3.rte-h3,.rte-surface h3{margin:.9rem 0 .4rem;font-size:1.1rem;font-weight:700}.rte-surface .rte-body-1{font-size:1.1rem}.rte-surface .rte-body-2{font-size:.95rem}.rte-surface .rte-body-3{color:#667085;font-size:.82rem}.rte-surface .h1{font-size:1.75rem;font-weight:700}.rte-surface .h2{font-size:1.35rem;font-weight:700}.rte-surface .h3{font-size:1.1rem;font-weight:700}.admin-app{grid-template-columns:196px 1fr;min-height:100vh;display:grid}.admin-nav{color:#e8eaed;background:#0f1419;flex-direction:column;gap:1rem;height:100vh;padding:.9rem .7rem;display:flex;position:sticky;top:0}.admin-brand{color:#fff;letter-spacing:-.02em;align-items:center;gap:.45rem;padding:.2rem .35rem;font-size:.9rem;font-weight:700;display:flex}.admin-brand-logo{width:auto;height:24px;display:block}.admin-nav-links{gap:.15rem;display:grid}.admin-nav-links a{color:#9aa3af;border-radius:7px;padding:.4rem .6rem;font-size:.8125rem;font-weight:550}.admin-nav-links a:hover{color:#fff;background:#ffffff0f}.admin-nav-links a.active{color:#fff;background:#2563eb47}.admin-nav-user{color:#8b949e;margin-top:auto;padding:.3rem .4rem;font-size:.75rem}.admin-main{width:100%;max-width:1240px;padding:1.1rem 1.35rem 1.75rem}.page-title{letter-spacing:-.03em;margin:0;font-size:1.2rem;font-weight:700;line-height:1.25}.top>div>.muted{margin:.25rem 0 0;font-size:.8rem}.filters{grid-template-columns:1.5fr .7fr .85fr .95fr auto;align-items:center;gap:.45rem;margin-bottom:.65rem;padding:.65rem .75rem;display:grid}.filter-count{white-space:nowrap;font-size:.78rem}.mode-tabs{border:1px solid var(--line);background:#f3f4f6;border-radius:8px;gap:0;padding:2px;display:inline-flex}.mode-tabs .btn{height:26px;box-shadow:none;color:var(--muted);background:0 0;border:0;padding:0 .65rem}.mode-tabs .btn:hover{background:#ffffffb3}.mode-tabs .btn.primary{color:var(--ink);background:#fff;box-shadow:0 1px 2px #0000000f}.mode-tabs .btn.primary:hover{background:#fff}.editor-page>.top{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f3f4f6eb;align-items:center;margin:-1.1rem -1.35rem .85rem;padding:.7rem 1.35rem;position:sticky;top:0}.editor-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem;display:flex}.editor-actions-sep{background:var(--line);width:1px;height:18px;margin:0 .15rem}.media-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.85rem;display:grid}.media-card{padding:0;overflow:hidden}.media-thumb{aspect-ratio:16/10;background:#f1f3f5;place-items:center;display:grid;overflow:hidden}.media-thumb img,.media-thumb video{object-fit:cover;width:100%;height:100%}.media-meta{padding:.75rem .85rem .9rem}.media-name{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.preview-full{min-height:420px}.login-brand-logo{width:auto;height:36px;margin-bottom:.75rem;display:block}.article-preview aside.callout{background:#f0f4ff;border:1px solid #c3d7ff;border-radius:10px;gap:.75rem;margin:1rem 0;padding:.9rem 1rem;display:flex}.article-preview figure.image{border:1px solid var(--line);background:#f8fafc;border-radius:10px;margin:1rem 0;overflow:hidden}.article-preview figure.image img,.article-preview figure.video video{width:100%;max-width:100%;display:block}.article-preview figure.video{margin:1rem 0}.article-preview .video-embed{border:1px solid var(--line);border-radius:10px;height:0;padding-bottom:56.25%;position:relative;overflow:hidden}.article-preview .video-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.article-preview figure.table,.article-preview table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.92rem}.article-preview th,.article-preview td{border:1px solid var(--line);text-align:left;padding:.55rem .7rem}.article-preview th{background:#f8fafc}.article-preview .copy-snippet,.article-body .copy-snippet{background:#f8fafc;border:1px solid #d8dee9;border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;margin:.85rem 0;padding:.75rem .9rem;display:flex}.article-preview .copy-snippet-text,.article-body .copy-snippet-text{flex-wrap:wrap;flex:1;align-items:baseline;gap:.35rem .65rem;min-width:0;display:flex}.article-preview .copy-snippet-label,.article-body .copy-snippet-label{color:#6b7280;font-size:.82rem;font-weight:600}.article-preview .copy-snippet-value,.article-body .copy-snippet-value{color:#111827;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95rem;font-weight:600}.article-preview .copy-snippet-btn,.article-body .copy-snippet-btn{color:#1a56db;cursor:pointer;background:#eff4ff;border:1px solid #c3d7ff;border-radius:8px;flex-shrink:0;padding:.35rem .75rem;font-size:.82rem;font-weight:600}.article-preview .copy-snippet-btn:hover,.article-body .copy-snippet-btn:hover{background:#dbeafe}.preview-overlay{z-index:80;background:#0b0f14;flex-direction:column;display:flex;position:fixed;inset:0}.preview-overlay-bar{color:#e8eaed;background:#151b23;border-bottom:1px solid #2a3340;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .85rem;display:flex}.preview-overlay-bar .btn{height:28px;padding:0 .65rem;font-size:.78rem}.preview-overlay-bar .btn.primary{background:#3b82f6;border-color:#3b82f6}.preview-overlay-bar .muted{color:#9aa3af}.preview-overlay-layout{flex:1;grid-template-columns:240px 1fr;min-height:0;display:grid}.preview-toc{color:#e8eaed;background:#11161d;border-right:1px solid #2a3340;padding:1rem;overflow:auto}.preview-toc-title{margin-bottom:.35rem;font-weight:700}.preview-toc-warn{color:#f0ad4e;background:#f0ad4e1f;border:1px solid #f0ad4e59;border-radius:6px;margin:0 0 .75rem;padding:.45rem .55rem;font-size:.78rem;line-height:1.4}.preview-toc-list{gap:.25rem;margin:0;padding:0;list-style:none;display:grid}.preview-toc-list button{appearance:none;text-align:left;color:#c5ccd6;cursor:pointer;width:100%;font:inherit;background:0 0;border:0;border-radius:6px;padding:.4rem .45rem;font-size:.85rem;line-height:1.35}.preview-toc-list button:hover{color:#fff;background:#ffffff0f}.preview-toc-list li[data-level=h2] button{padding-left:.85rem}.preview-toc-list li[data-level=h3] button{padding-left:1.25rem;font-size:.8rem}.preview-toc-list li[data-level=h4] button{padding-left:1.55rem;font-size:.78rem}.preview-user-frame{background:#f7f7f5;padding:1.5rem 1rem 3rem;overflow:auto}.preview-user-article{background:#fff;border:1px solid #e5e5e2;border-radius:12px;max-width:720px;margin:0 auto;padding:1.5rem 1.6rem 2rem}.preview-eyebrow{color:#6b6b66;margin:0 0 .35rem;font-size:.85rem;font-weight:600}.preview-title{letter-spacing:-.03em;margin:0 0 1.25rem;font-size:1.85rem;line-height:1.25}.preview-user-article .article-body h1,.preview-user-article .article-body h2,.preview-user-article .article-body h3,.preview-user-article .article-body h4{cursor:pointer;scroll-margin-top:1rem}.preview-user-article .article-body h1:hover,.preview-user-article .article-body h2:hover,.preview-user-article .article-body h3:hover,.preview-user-article .article-body h4:hover{outline-offset:3px;outline:1px dashed #93c5fd}.preview-toast,.app-toast{color:#fff;z-index:100;text-align:center;background:#111827;border-radius:999px;max-width:min(92vw,520px);padding:.7rem 1.15rem;font-size:.9rem;font-weight:600;animation:.18s ease-out toast-in;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000040}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.button.linkish,.linkish{appearance:none;cursor:pointer;font:inherit;color:var(--muted);text-align:left;background:0 0;border:0;padding:0}.linkish:hover{color:var(--accent)}.title-btn{color:var(--ink);text-align:left;font-weight:600}.title-btn:hover{color:var(--accent)}.title-btn:disabled{opacity:.6;cursor:wait}.leave-modal-backdrop{z-index:120;background:#0f141973;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.leave-modal{width:min(100%,400px);padding:1.05rem 1.1rem 1rem;box-shadow:0 16px 40px #0000002e}.leave-title{letter-spacing:-.02em;margin:0 0 .3rem;font-size:1.05rem}.leave-desc{margin:0 0 .85rem;font-size:.85rem;line-height:1.45}.leave-actions{flex-wrap:wrap;gap:.4rem;display:flex}.leave-actions .btn{flex:auto;min-width:96px}@media (max-width:900px){.preview-overlay-layout{grid-template-columns:1fr}.preview-toc{border-bottom:1px solid #2a3340;border-right:0;max-height:180px}.admin-app{grid-template-columns:1fr}.admin-nav{flex-flow:wrap;align-items:center;height:auto;position:static}.admin-nav-links{flex:1;gap:.15rem;display:flex}.admin-nav-user{width:100%;margin-top:0}.filters{grid-template-columns:1fr}.admin-main{padding:.85rem}.editor-page>.top{margin:-.85rem -.85rem .75rem;padding:.65rem .85rem}}
