:root{--bg:#f6f1e7;--paper:#fffdf8;--ink:#1f2a37;--muted:#6b7280;--line:#e5dccb;--accent:#c2562b;--accent-soft:#c2562b1a;--bad:#b42318;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 var(--font);word-break:keep-all;overflow-wrap:anywhere}
button,input{font:inherit;color:inherit}
[hidden]{display:none!important}
.top{max-width:960px;margin:0 auto;padding:18px 16px;display:flex;align-items:center;justify-content:space-between}
.brand{font-size:22px;color:var(--ink);text-decoration:none}
main{max-width:960px;margin:0 auto;padding:0 16px 48px}
h1{font-size:22px;margin:8px 0 12px}h2{font-size:16px;margin:0 0 8px}h3{font-size:14px;margin:14px 0 6px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px;margin:12px 0}
.muted{color:var(--muted)}.small{font-size:13px}
.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}
button,.button{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:10px;padding:10px 16px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block}
button:disabled{opacity:.5;cursor:wait}
.ghost{background:transparent;color:var(--accent)}
button.small{padding:6px 10px;font-size:13px}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
label{display:block;margin:8px 0}
input[type=email],input[type=password],input[type=text]{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-top:4px}
.msg{color:var(--bad);min-height:1.5em}#status{color:var(--muted)}
.tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.tool{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:18px;text-align:left;display:flex;flex-direction:column;gap:4px}
.tool:hover{border-color:var(--accent)}.tool span{font-size:28px}.tool small{color:var(--muted);font-weight:400}
.files,.history{list-style:none;margin:0;padding:0}
.files li,.history li{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.files li:first-child,.history li:first-child{border-top:0}
.files .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pick li label{display:flex;align-items:center;gap:10px;margin:0;width:100%;cursor:pointer;padding:0 6px}
.pick li.on{background:var(--accent-soft);border-radius:8px}
.order{background:var(--accent);color:#fff;border-radius:999px;min-width:22px;text-align:center;font-size:12px}
.drop{border:2px dashed var(--line);border-radius:12px;padding:28px;text-align:center;cursor:pointer;margin:0}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);opacity:0;white-space:nowrap}
.drop:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.drop.over{border-color:var(--accent);background:var(--accent-soft)}
.seg{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.seg label{margin:0;position:relative}.seg input{position:absolute;opacity:0}
.seg span{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:7px 12px;cursor:pointer;background:#fff}
.seg input:checked+span{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}
.seg input:focus-visible+span{outline:2px solid var(--accent)}
.check{display:flex;align-items:center;gap:6px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.thumb{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px;cursor:grab}
.thumb.dragging{opacity:.4}
.thumbbox{aspect-ratio:1/1.3;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .15s}
.icon{background:none;border:0;color:var(--ink);padding:4px 6px;font-size:15px}
.preview{max-width:240px;border:1px solid var(--line);border-radius:8px;display:block;margin:10px 0}
.result-item{padding:8px 0;border-top:1px solid var(--line)}.result-item:first-child{border-top:0}
.note{background:#fff7e6;border:1px solid #f3d9a4;border-radius:10px;padding:8px 12px}
.redact{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:start}
.rpage{position:relative;background:#fff;border:1px solid var(--line);touch-action:pan-y;cursor:crosshair;user-select:none}
.rpage img{width:100%;height:100%;display:block;pointer-events:none}
.box{position:absolute;border:2px solid #e11d48;background:#e11d4833}
.box.off{border-style:dashed;background:transparent;opacity:.6}
.box.manual{border-color:#7c3aed;background:#7c3aed33}
.box .x{position:absolute;top:-12px;right:-12px;width:24px;height:24px;border-radius:999px;padding:0;font-size:12px;background:#7c3aed;border-color:#7c3aed}
.rlist{position:sticky;top:12px}
.pagelabel{margin:12px 0 4px}
@media (max-width:720px){.redact{grid-template-columns:1fr}.rlist{position:static}}
#home-msg:empty{display:none}
.thumb .icon{padding:4px 3px}.thumb .row{flex-wrap:nowrap}
.rpage.broken{cursor:default;aspect-ratio:auto!important;min-height:60px}
.redact.draw .rpage{touch-action:none}.drawtoggle[aria-pressed=true]{background:#7c3aed;color:#fff;border-color:#7c3aed}
