*{box-sizing:border-box}
:root{--bg:#f3f5f8;--panel:#fff;--text:#20252d;--muted:#707985;--line:#dce1e7;--blue:#2563eb;--soft:#eef4ff;--editor:#fff}
*{scrollbar-width:thin}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN",sans-serif;overflow:hidden}
button,input,select{font:inherit}button{cursor:pointer;color:inherit}
.topbar{height:58px;background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:7px;padding:7px 10px;z-index:20;position:relative}
.icon,.topbtn,.chapterBar button,.toolbar button,.panelHead button,.sideBottom button{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-height:38px;padding:6px 11px}
.icon{font-size:20px}.brand{font-weight:800;margin-right:auto}.brand small{color:var(--muted);font-size:11px}.save{font-size:12px;color:var(--muted)}.primary{background:var(--blue)!important;color:#fff;border-color:var(--blue)!important}
.layout{height:calc(100% - 58px);display:flex}.sidebar{width:290px;min-width:290px;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:12px;overflow:auto}
.workTitle{display:flex;gap:5px}.workTitle input{flex:1;min-width:0;font-weight:800;border:1px solid var(--line);border-radius:8px;padding:9px;background:var(--bg);color:var(--text)}
.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin:10px 0}.tab{border:0;background:transparent;padding:9px 2px;color:var(--muted);border-radius:7px;font-size:12px}.tab.active{background:var(--soft);color:var(--blue);font-weight:700}
.panel{display:none}.panel.active{display:block}.panelHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.panelHead button{min-height:32px;padding:4px 9px}
.chapterRow{display:flex;align-items:center;gap:3px;margin:3px 0}.chapterRow.dragging{opacity:.4}.chapterRow .chapterOpen{flex:1;text-align:left;border:0;background:transparent;padding:9px;border-radius:7px}.chapterRow.active .chapterOpen{background:var(--soft);color:var(--blue);font-weight:700}.drag{color:#aaa;padding:6px;cursor:grab}.delete{border:0;background:transparent;color:#999}
.card{border:1px solid var(--line);border-radius:9px;padding:9px;margin:6px 0;background:var(--panel)}.card b{display:block;margin-bottom:4px}.card small{color:var(--muted)}.panelHint{color:var(--muted);font-size:11px;margin-top:10px}.sideBottom{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:6px}.sideBottom button{font-size:12px}
.main{flex:1;min-width:0;display:flex;flex-direction:column}.chapterBar{display:flex;gap:7px;padding:9px 13px;background:var(--panel);border-bottom:1px solid var(--line)}#chapterTitle{flex:1;min-width:0;font-size:19px;font-weight:750;border:1px solid var(--line);border-radius:8px;padding:9px;background:var(--bg);color:var(--text)}
.toolbar{display:flex;gap:4px;padding:6px 13px;background:var(--panel);border-bottom:1px solid var(--line)}.toolbar button{min-width:39px}.divider{width:1px;background:var(--line);margin:4px 5px}
.stats{height:34px;background:var(--panel);border-bottom:1px solid var(--line);display:flex;gap:14px;align-items:center;padding:0 16px;font-size:12px;color:var(--muted)}.offline{margin-left:auto}
.editor{width:min(900px,calc(100% - 26px));margin:18px auto 55px;background:var(--editor);min-height:calc(100% - 110px);padding:42px 58px;outline:0;box-shadow:0 2px 18px #0000000b;font-family:ui-serif,"Hiragino Mincho ProN","Yu Mincho",serif;font-size:19px;line-height:1.9;white-space:pre-wrap;overflow:auto;word-break:break-word}
.editor:focus{box-shadow:0 2px 18px #2563eb18}.editor.vertical{writing-mode:vertical-rl;text-orientation:mixed;height:calc(100vh - 190px);width:min(100%,1100px);max-width:none}
.bottom{position:fixed;bottom:0;left:290px;right:0;height:28px;background:#fffffff0;border-top:1px solid var(--line);display:flex;justify-content:center;align-items:center;gap:20px;font-size:10px;color:var(--muted)}
dialog{border:0;border-radius:14px;padding:0;background:transparent}dialog::backdrop{background:#0006}.dialog{background:var(--panel);padding:20px;border-radius:14px;min-width:min(430px,90vw);display:grid;gap:12px;color:var(--text)}.dialog.wide{min-width:min(800px,94vw)}.dialog input,.dialog select{border:1px solid var(--line);border-radius:8px;padding:9px;background:var(--bg);color:var(--text)}.row{display:flex;gap:7px}.row button{flex:1;border:1px solid var(--line);border-radius:8px;padding:9px;background:var(--panel)}
.paper{background:white;color:#222;padding:20px;border:1px solid #aaa;display:grid;grid-template-columns:repeat(20,1fr);width:min(720px,82vw);aspect-ratio:1.414;overflow:hidden}.cell{border:1px solid #bbb;display:flex;align-items:center;justify-content:center;font-family:serif;font-size:14px;min-height:18px}
#toast{position:fixed;z-index:50;bottom:45px;left:50%;transform:translate(-50%,20px);background:#111827;color:#fff;border-radius:999px;padding:8px 14px;font-size:12px;opacity:0;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}
.rubyMark{border-bottom:1px dotted var(--blue)}.footMark{vertical-align:super;font-size:.65em;color:var(--blue)}
.focus .sidebar,.focus .topbar,.focus .chapterBar,.focus .toolbar,.focus .stats,.focus .bottom{display:none}.focus .main{height:100vh}.focus .editor{width:min(900px,100%);height:100vh;margin:0 auto;box-shadow:none;padding:60px 9vw}
@media(max-width:800px){.sidebar{position:fixed;left:0;top:58px;bottom:0;transform:translateX(-102%);transition:.2s;z-index:30;box-shadow:8px 0 25px #0002}.sidebar.open{transform:none}.bottom{left:0}.editor{width:calc(100% - 10px);padding:28px 22px;margin:5px auto 45px}.stats{gap:8px;padding:0 9px}.stats span:nth-child(2){display:none}.chapterBar{padding:7px}.toolbar{padding:5px 7px;overflow:auto}.topbtn{padding:5px 8px}.brand{font-size:14px}.save{display:none}}
@media print{body{overflow:visible;background:#fff}.topbar,.sidebar,.chapterBar,.toolbar,.stats,.bottom{display:none!important}.layout,.main{display:block;height:auto}.editor{width:auto;min-height:0;margin:0;padding:0;box-shadow:none;font-size:10.5pt;line-height:1.9;overflow:visible;white-space:pre-wrap}.rubyMark{border:0}@page{size:A5;margin:16mm 15mm}}
@media print and (min-width:1px){body.print-bunko .editor{font-size:10pt}body.print-bunko .editor{padding:0}}

/* v3: iPad IME / long-document comfort */
.projectSwitcher{margin:6px 0 2px}
.projectSwitcher select{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--bg);color:var(--text)}
.chapterActions{display:flex;gap:5px;margin:0 0 7px}
.chapterActions button{flex:1;border:1px solid var(--line);background:var(--bg);border-radius:7px;padding:7px 4px;font-size:11px;color:var(--text)}
.editor{padding-bottom:clamp(180px,42vh,520px)}
.ime-active{caret-color:var(--blue)}
#imeStatus{font-size:10px}
@media(max-width:800px){.editor{padding-bottom:50vh}.chapterActions button{min-height:34px}}
