:root{
  --bg:#ffffff; --panel:#f9f9f9; --text:#0f0f0f; --sub:#606060;
  --line:#e5e5e5; --accent:#065fd4; --accent-fg:#ffffff;
}
body.dark{
  --bg:#0f0f0f; --panel:#181818; --text:#f1f1f1; --sub:#aaaaaa;
  --line:#303030; --accent:#3ea6ff; --accent-fg:#0f0f0f;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--text);
  font:15px/1.5 Arial, Helvetica, sans-serif;
}
.topbar{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:10px 18px; border-bottom:1px solid var(--line);
}
.topbar h1{font-size:19px; margin:0; letter-spacing:-.2px}
button{
  font:inherit; cursor:pointer; border:1px solid var(--line);
  background:var(--panel); color:var(--text); border-radius:8px; padding:7px 12px;
}
button:hover{border-color:var(--accent)}
#themeBtn{font-size:13px}

main{max-width:1180px; margin:0 auto; padding:16px}
.tool{display:grid; grid-template-columns:340px 1fr; gap:16px; align-items:start}
.panel{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px}

.drop{
  display:flex; flex-direction:column; gap:6px; align-items:center; justify-content:center;
  text-align:center; min-height:132px; padding:14px;
  border:2px dashed var(--line); border-radius:10px; cursor:pointer;
}
.drop:hover, .drop:focus-visible{border-color:var(--accent); outline:none}
.drop .sub{color:var(--sub); font-size:12.5px}

.field{display:block; margin-top:12px}
.field span{display:block; font-size:12.5px; color:var(--sub); margin-bottom:4px}
.field input, .grid2 input{
  width:100%; padding:8px 10px; font:inherit; color:var(--text);
  background:var(--bg); border:1px solid var(--line); border-radius:8px;
}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px}
.grid2 .field{margin-top:0}
.msg{margin:10px 0 0; font-size:12.5px; color:var(--sub); min-height:1.2em}
.msg.err{color:#c00}

.tabs{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px}
.tabs button{font-size:13px; padding:6px 11px}
.tabs button.on{background:var(--accent); color:var(--accent-fg); border-color:var(--accent)}

.canvas-wrap{background:var(--bg); border:1px solid var(--line); border-radius:10px; padding:8px; overflow:auto}
#cv{display:block; max-width:100%; height:auto; margin:0 auto}
.row{display:flex; align-items:center; gap:12px; margin-top:12px; flex-wrap:wrap}
#dl{background:var(--accent); color:var(--accent-fg); border-color:var(--accent)}
.dim{font-size:12.5px; color:var(--sub)}

.copy{margin-top:26px; max-width:760px}
.copy h2{font-size:18px; margin:26px 0 8px}
.copy h3{font-size:15px; margin:16px 0 4px}
.copy p, .copy li{color:var(--text)}
.copy ul, .copy ol{padding-left:20px; margin:0}

@media (max-width:820px){
  .tool{grid-template-columns:1fr}
  .grid2{grid-template-columns:1fr 1fr}
}
@media (max-width:420px){
  main{padding:10px}
  .grid2{grid-template-columns:1fr}
  .tabs button{font-size:12px; padding:5px 9px}
}

/* Static site navigation and mobile presentation */
.panel{min-width:0}.site-footer{max-width:1180px;margin:28px auto 0;padding:24px 16px;border-top:1px solid var(--line);color:var(--sub)}
a{color:var(--accent);text-underline-offset:3px}.site-footer nav{display:flex;flex-wrap:wrap;gap:20px;margin-top:14px}.site-footer p{font-size:13px}
.document{max-width:780px;min-height:60vh;padding-top:28px;padding-bottom:28px}.document h1{font-size:30px}.document h2{font-size:21px;margin-top:28px}.document p,.document li{line-height:1.7}.preview-note{color:var(--sub)}
@media(max-width:600px){input{font-size:16px!important}button{min-height:44px}.topbar{padding:12px}.topbar h1{font-size:18px}.document h1{font-size:26px}}
