:root{
  --canvas:#faf9f5; --card:#efe9de; --soft:#f5f0e8; --hair:#e6dfd8; --ink:#141413; --body:#3d3d3a; --muted:#6c6a64;
  --primary:#cc785c; --primary-active:#a9583e; --on-primary:#fff; --error:#c64545; --ok:#5db872;
  --serif:"Cormorant Garamond","EB Garamond",Georgia,serif; --sans:Inter,-apple-system,system-ui,sans-serif; --mono:"JetBrains Mono",ui-monospace,monospace;
}
@media (prefers-color-scheme:dark){:root{--canvas:#181715; --card:#252320; --soft:#1f1e1b; --hair:#34322e; --ink:#faf9f5; --body:#d6d3cb; --muted:#a09d96}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--canvas);color:var(--body);font:400 16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
.wrap{max-width:760px;margin:0 auto;padding:56px 20px 80px}
h1,h2{font-family:var(--serif);font-weight:500;color:var(--ink);margin:0;letter-spacing:-.5px;line-height:1.1}
h1{font-size:clamp(40px,8vw,56px)} h2{font-size:30px;margin-bottom:6px}
.lede{color:var(--muted);margin:12px 0 0;max-width:46ch}
.eyebrow{font:500 12px/1.4 var(--sans);letter-spacing:1.5px;text-transform:uppercase;color:var(--primary);margin-bottom:12px}
section{margin-top:56px}
.sub{color:var(--muted);font-size:14px;margin:0 0 16px}
.list{display:grid;gap:12px}
.card{display:flex;gap:14px;align-items:center;background:var(--soft);border:1px solid var(--hair);border-radius:16px;padding:14px 16px}
.icon{flex:none;width:56px;height:56px;border-radius:13px;background:var(--card);border:1px solid var(--hair);display:grid;place-items:center;font:500 26px var(--serif);color:var(--primary);overflow:hidden}
.icon img{width:100%;height:100%;object-fit:cover}
.meta{flex:1;min-width:0}
.name{color:var(--ink);font-weight:500;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.small{font-size:13px;color:var(--muted)}
.notes{font-size:14px;margin-top:2px}
.btn{appearance:none;border:0;cursor:pointer;font:500 14px/1 var(--sans);padding:11px 18px;border-radius:9999px;background:var(--primary);color:var(--on-primary);text-decoration:none;display:inline-block;white-space:nowrap}
.btn:hover{background:var(--primary-active)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--hair)}
.btn.ghost:hover{background:var(--card)}
.btn.danger{background:transparent;color:var(--error);border:1px solid var(--hair)}
.btn[disabled]{opacity:.5;cursor:default}
.actions{display:flex;gap:8px;flex:none;flex-wrap:wrap;justify-content:flex-end}
details.older{margin-top:8px}
details.older summary{cursor:pointer;color:var(--muted);font-size:13px}
.older .card{margin-top:8px;padding:10px 14px}
.empty{padding:28px;border:1px dashed var(--hair);border-radius:16px;color:var(--muted);text-align:center}
.note{background:var(--soft);border:1px solid var(--hair);border-radius:12px;padding:12px 14px;font-size:14px;color:var(--muted)}
.err{color:var(--error);font-size:14px}
footer{margin-top:64px;padding-top:20px;border-top:1px solid var(--hair);display:flex;gap:16px;flex-wrap:wrap;font-size:14px}
a{color:var(--primary-active)}
input,select,textarea{font:400 15px var(--sans);color:var(--ink);background:var(--canvas);border:1px solid var(--hair);border-radius:8px;padding:10px 12px;width:100%}
input:focus,select:focus{outline:2px solid var(--primary);outline-offset:1px}
label{display:block;font:500 13px var(--sans);color:var(--ink);margin:0 0 6px}
.grid{display:grid;gap:12px;grid-template-columns:1fr 1fr}
.grid .full{grid-column:1/-1}
.panel{background:var(--soft);border:1px solid var(--hair);border-radius:16px;padding:20px}
.bar{height:8px;border-radius:9999px;background:var(--card);overflow:hidden;margin-top:12px}
.bar>i{display:block;height:100%;width:0;background:var(--primary);transition:width .2s}
.drop{border:1.5px dashed var(--hair);border-radius:16px;padding:28px;text-align:center;color:var(--muted);cursor:pointer}
.drop.over{border-color:var(--primary);background:var(--card)}
.udid{font:500 18px var(--mono);word-break:break-all;color:var(--ink);background:var(--card);border-radius:12px;padding:16px;margin:16px 0}
ol.steps{padding-left:20px;margin:12px 0}
ol.steps li{margin:8px 0}
@media (max-width:560px){.card{flex-wrap:wrap}.actions{width:100%;justify-content:stretch}.actions .btn{flex:1;text-align:center}.grid{grid-template-columns:1fr}}
