:root{
  --bg:#F6F2F0;--surface:#FFFFFF;--surface-sunken:#EFE8E5;--line:#E2D4CF;--line-strong:#C9B7B1;
  --ink:#211715;--ink-2:#4F4340;--ink-3:#6A5D59;
  --accent:#A8321F;--accent-hover:#8F2A1A;--accent-soft:#F5E0DA;--accent-weak:#D9A397;--on-accent:#FFFFFF;
  --danger:#A8321F;
  --pop:0 8px 24px rgb(0 0 0 / .08);
  --font:"Inter","Noto Sans JP",system-ui,-apple-system,"Hiragino Sans","Yu Gothic UI","Meiryo",sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#171211;--surface:#201918;--surface-sunken:#1B1514;--line:#382D2A;--line-strong:#4A3D39;
    --ink:#EEE4E1;--ink-2:#C4B6B2;--ink-3:#9C8D89;
    --accent:#F2937F;--accent-hover:#F6AC9C;--accent-soft:#3A221D;--accent-weak:#7A4337;--on-accent:#1A0F0D;
    --danger:#F2937F;--pop:0 8px 24px rgb(0 0 0 / .35);color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#171211;--surface:#201918;--surface-sunken:#1B1514;--line:#382D2A;--line-strong:#4A3D39;
  --ink:#EEE4E1;--ink-2:#C4B6B2;--ink-3:#9C8D89;
  --accent:#F2937F;--accent-hover:#F6AC9C;--accent-soft:#3A221D;--accent-weak:#7A4337;--on-accent:#1A0F0D;
  --danger:#F2937F;--pop:0 8px 24px rgb(0 0 0 / .35);color-scheme:dark;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font:400 14px/1.6 var(--font);-webkit-font-smoothing:antialiased;display:flex;flex-direction:column}
button,input{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
[hidden]{display:none!important}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

/* header */
.hdr,.privacy,main{width:100%;max-width:2000px;margin-left:auto;margin-right:auto}
.hdr{display:flex;align-items:center;gap:12px;padding:14px 24px 4px}
.logo{display:inline-flex;align-items:center;gap:.42em;font:500 19px/1 Inter,var(--font);letter-spacing:.06em;color:var(--ink);text-decoration:none;flex-shrink:0}
.logo svg{width:1.2em;height:1.2em;flex-shrink:0}
.docname{min-width:0;width:min(320px,40vw);height:32px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);font-weight:600}
.docname:hover{border-color:var(--line-strong)}
.saved{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp{flex:1}
.icon-btn{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:var(--surface);cursor:pointer;display:inline-grid;place-items:center;color:var(--ink-2);flex-shrink:0;transition:border-color .15s var(--ease),color .15s var(--ease)}
.icon-btn:hover{border-color:var(--line-strong);color:var(--ink)}
.privacy{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--ink-3);padding:0 24px 8px;margin:0}
.privacy .ic{width:14px;height:14px}
.privacy .short{display:none}
main{padding:0 24px;flex:1;display:flex;flex-direction:column;min-width:0}

/* toolbar */
.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:5px 6px;background:var(--surface);border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0}
.tgroup{display:flex;gap:2px;flex-shrink:0}
.vr{width:1px;height:20px;background:var(--line);margin:0 4px;flex-shrink:0}
.tb{min-width:32px;height:31px;padding:0 9px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13px;line-height:1;white-space:nowrap;flex-shrink:0;transition:background .12s var(--ease),color .12s var(--ease)}
.tb:hover:not(:disabled){background:var(--accent-soft);color:var(--ink)}
.tb:disabled{opacity:.45;cursor:default}
.tb .ic{width:17px;height:17px}
.tb.pri{background:var(--accent);color:var(--on-accent);font-weight:600;margin-right:4px}
.tb.pri:hover:not(:disabled){background:var(--accent-hover);color:var(--on-accent)}
.hint{margin-left:auto;padding:0 6px;font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}

/* editor */
.stage{position:relative;flex:1;min-height:520px;border:1px solid var(--line);border-radius:0 0 10px 10px;overflow:hidden;background:var(--surface)}
.stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.loading{position:absolute;inset:0;display:grid;place-items:center;background:var(--surface);color:var(--ink-3);font-size:13px}

/* dialogs */
.dlg{border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:0;width:min(560px,calc(100vw - 32px));box-shadow:var(--pop)}
.dlg::backdrop{background:rgb(0 0 0 / .28)}
.dlg-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 6px 20px}
.dlg-head h2{font-size:16px;margin:0}
.dlg-note{margin:0 20px 10px;font-size:12px;color:var(--ink-3)}
.doc-list{list-style:none;margin:0;padding:0 12px 14px;max-height:60vh;overflow:auto}
.doc-list li{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:8px}
.doc-list li:hover{background:var(--surface-sunken)}
.doc-list li.cur{background:var(--accent-soft)}
.doc-open{flex:1;min-width:0;text-align:left;border:0;background:none;cursor:pointer;padding:4px 2px;display:flex;flex-direction:column}
.doc-open b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-open small{font-size:11px;color:var(--ink-3)}
.doc-list .icon-btn{width:30px;height:30px}
.about{padding:0 20px 18px;font-size:13px;line-height:1.75}
.about ul{padding-left:18px;margin:8px 0}
.about .lic{font-size:12px;color:var(--ink-3)}
.about a{color:var(--accent)}

/* toast */
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:9px 16px;border-radius:8px;font-size:13px;box-shadow:var(--pop);z-index:20;max-width:calc(100vw - 32px)}

/* Tsuzura: shared footer */
.tz-foot{display:flex;justify-content:center;padding:22px 16px calc(28px + env(safe-area-inset-bottom))}
.tz-link{display:inline-flex;align-items:center;gap:10px;padding:8px 18px 8px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2);text-decoration:none;font-size:12px;line-height:1.4;--tz-gap:var(--surface);transition:border-color .15s,color .15s}
.tz-link:hover{border-color:var(--line-strong);color:var(--ink)}
.tz-mark{width:24px;height:24px;color:#8E5532;flex-shrink:0}
.tz-name{font-size:14px;font-weight:500;letter-spacing:.12em;color:var(--ink)}
.tz-sub{color:var(--ink-3)}
:root[data-theme="dark"] .tz-mark{color:#C9A063}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .tz-mark{color:#C9A063}}

/* phones: viewing and small fixes */
@media (max-width:720px){
  .hdr{padding:12px 16px 4px;gap:8px}
  .privacy{padding:0 16px 8px}
  .privacy .long{display:none}
  .privacy .short{display:inline}
  main{padding:0 8px}
  .hint{display:none}
  .tb span{font-size:12px}
  .stage{min-height:70vh}
}
