*{box-sizing:border-box}
body{margin:0;font-family:Arial,sans-serif;background:#e9ecef;color:#222}
.topbar{display:flex;gap:8px;align-items:center;padding:8px 12px;background:#2b579a;color:#fff;flex-wrap:wrap}
.topbar input{flex:1;min-width:140px;font-size:16px;padding:6px;border:0;border-radius:4px}
button{padding:6px 10px;border:1px solid #bbb;background:#fff;border-radius:4px;cursor:pointer}
button:hover{background:#f0f0f0}
button.on{background:#d7e6ff}
.toolbar{display:flex;gap:6px;flex-wrap:wrap;padding:8px 12px;background:#f8f9fa;border-bottom:1px solid #ccc}
.toolbar select,.toolbar input[type=color]{padding:5px}
#findbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:8px 12px;background:#fff8d6;border-bottom:1px solid #ccc}
#findbar[hidden]{display:none}
main{display:flex;min-height:calc(100vh - 140px)}
aside{width:210px;background:#fff;border-right:1px solid #ccc;padding:10px;flex-shrink:0}
aside h3{margin:0 0 8px}
#docs{list-style:none;margin:0;padding:0}
#docs li{display:flex;justify-content:space-between;padding:6px;border-radius:4px;cursor:pointer}
#docs li:hover,#docs li.active{background:#e3edff}
#docs li button{padding:0 6px;border:0;background:none;color:#b00}
.desk{flex:1;padding:20px;overflow:auto}
.page{max-width:816px;min-height:1056px;margin:0 auto;background:#fff;padding:72px;box-shadow:0 2px 8px rgba(0,0,0,.25);outline:none;font-size:16px;line-height:1.5}
#count{max-width:816px;margin:8px auto;text-align:right;font-size:13px;color:#555}
#status{margin-left:auto;font-size:13px}
@media(max-width:700px){main{flex-direction:column}aside{width:100%}.page{padding:20px;min-height:600px}}
@media print{
  .topbar,.toolbar,#findbar,aside,#count{display:none!important}
  body,.desk{background:#fff;padding:0}
  .page{box-shadow:none;max-width:none;padding:0;min-height:0}
}
#hfbar{display:flex;gap:6px;padding:6px 12px;background:#f1f3f5;border-bottom:1px solid #ccc}
#hfbar input{flex:1;padding:5px;min-width:0}
.page table{border-collapse:collapse;margin:8px 0;width:100%}
.page td,.page th{border:1px solid #666;padding:6px;min-width:40px}
.page img{max-width:100%;height:auto}
.page a{color:#0645ad}
.pb{border-top:2px dashed #999;margin:24px 0;break-after:page;page-break-after:always}
.toc{border:1px solid #ccc;padding:8px 14px;margin:8px 0}.toc ul{list-style:none;padding:0;margin:4px 0}.toc .l2{margin-left:16px}.toc .l3{margin-left:32px}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:9}
.overlay[hidden]{display:none}
.box{background:#fff;padding:20px;border-radius:8px;min-width:260px;max-width:90vw;max-height:80vh;overflow:auto}
.box input{display:block;width:100%;margin:6px 0;padding:8px}
.err{color:#b00;min-height:18px;font-size:13px}
#whoami{font-size:13px}
#printHdr,#printFtr{display:none}
@page{margin:22mm 18mm;@bottom-right{content:"Page " counter(page)}}
@media print{
  #hfbar,.overlay{display:none!important}
  #printHdr{display:block;position:fixed;top:-15mm;left:0;right:0;text-align:center;font-size:11px;color:#444}
  #printFtr{display:block;position:fixed;bottom:-15mm;left:0;right:0;text-align:center;font-size:11px;color:#444}
  .pb{border:0;margin:0}
}
ins.tc-ins{color:#0a58ca;text-decoration:underline;background:#e8f1ff}
del.tc-del{color:#c00;text-decoration:line-through;background:#ffecec}
.cmt{background:#fff3a3;border-bottom:2px solid #e0c200}
.cmt.flash{background:#ffd23f}
#cpanel{width:230px;border-right:0;border-left:1px solid #ccc}
.cm{border:1px solid #e0c200;background:#fffbe0;padding:6px;margin:6px 0;border-radius:4px;cursor:pointer;font-size:13px}
.cm p{margin:4px 0}
sup.fn{color:#0645ad}
.footnotes{margin-top:30px;font-size:13px}
@media screen{.page{max-width:var(--pw,816px);padding:var(--pad,72px)}}
@media print{ins.tc-ins,del.tc-del,.cmt{background:none}}
@media screen{.page{padding-left:var(--padl,var(--pad,72px));padding-right:var(--padr,var(--pad,72px))}}
#ruler{position:relative;height:22px;margin:0 auto 6px;background:#fff;border:1px solid #ccc;background-image:repeating-linear-gradient(90deg,#666 0 1px,transparent 1px 96px),repeating-linear-gradient(90deg,#999 0 1px,transparent 1px 24px);background-size:100% 14px,100% 7px;background-position:0 100%,0 100%;background-repeat:no-repeat}
.rh{position:absolute;top:0;font-size:12px;line-height:12px;color:#2b579a;cursor:ew-resize;touch-action:none;user-select:none}
#rl{transform:translateX(-50%)}#rr{transform:translateX(50%)}
#gpanel{position:fixed;right:12px;bottom:12px;width:310px;max-height:45vh;overflow:auto;background:#fff;border:1px solid #888;border-radius:8px;padding:10px;z-index:8;box-shadow:0 2px 10px rgba(0,0,0,.3);font-size:13px}
#gpanel[hidden]{display:none}
.gi{border-top:1px solid #eee;padding:6px 0}.gi button{margin:4px 4px 0 0;padding:3px 8px}
.eq{padding:0 3px}
@media print{#ruler,#gpanel{display:none!important}}
.page{position:relative}
.page[data-wm]::before{content:attr(data-wm);position:absolute;top:35%;left:0;right:0;text-align:center;font-size:90px;font-weight:bold;color:rgba(0,0,0,.07);transform:rotate(-30deg);pointer-events:none;white-space:nowrap}
.reply{border-left:3px solid #e0c200;margin:4px 0 4px 6px;padding-left:6px;font-size:12px}
@media print{.page[data-wm]::before{position:fixed;top:40%}}
.shp{border:2px solid #2b579a;padding:10px;margin:6px;min-width:80px;min-height:40px;background:#f5f9ff;box-sizing:border-box}
.shp.tbox{border:1px solid #333;background:#fffbe6}.shp.round{border-radius:16px}
.shp.oval{border-radius:50%;text-align:center;padding:24px}
.shp.line{height:0;min-height:0;padding:0;border-width:2px 0 0 0;background:none}
.fl-left{float:left;width:35%;margin-right:12px}.fl-right{float:right;width:35%;margin-left:12px}.fl-center{width:50%;margin:8px auto}
.cite{color:#0645ad}.bib ol{padding-left:22px}
aside input,aside select{width:100%;margin:0 0 6px;padding:6px}
#docs li small{color:#666;display:block}
#docs .acts button{border:1px solid #bbb;background:#fff;color:#333;padding:2px 6px;font-size:11px;margin:2px 3px 0 0}
.desk>.page:only-child{margin:0 auto}
@media(max-width:700px){.toolbar{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap}.toolbar>*{flex:0 0 auto}.topbar{gap:4px}}
.st-title{font-size:2.2em;font-weight:bold;text-align:center;margin:.4em 0}
.st-subtitle{font-size:1.3em;color:#555;text-align:center;margin:.2em 0 .8em}
.st-quote{border-left:4px solid #bbb;margin:1em 2em;padding-left:14px;font-style:italic;color:#444}
.st-code{font-family:Consolas,Menlo,monospace;background:#f3f3f3;padding:8px;font-size:.9em;white-space:pre-wrap}
.st-caption{font-size:.85em;color:#555;font-style:italic;text-align:center}
.dropcap::first-letter{float:left;font-size:3.4em;line-height:.85;padding:4px 8px 0 0;font-weight:bold}
.pborder{border:1px solid #555;padding:8px}
.fld{border-bottom:1px dashed #2b579a;background:#eef4ff;padding:0 4px;min-width:60px;display:inline-block}
.chk{cursor:pointer;font-size:1.1em;user-select:none}
.bm{color:#2b579a;font-size:.8em;text-decoration:none}
.idx{border-bottom:1px dotted #999}
.indexlist p{margin:2px 0}
@media print{.page{zoom:1!important}.bm{display:none}}
#sheet{position:relative}
#pgguides{position:absolute;pointer-events:none;z-index:3}
.pgline{position:absolute;left:0;right:0;border-top:2px dashed #7aa7e8;height:0}
.pgline::after{content:attr(data-p);position:absolute;right:-66px;top:-9px;font-size:11px;color:#2b579a}
#pgcount{max-width:816px;margin:0 auto;font-size:12px;color:#555}
::highlight(misspelled){text-decoration:underline wavy #d33;text-decoration-skip-ink:none}
::highlight(gram){text-decoration:underline wavy #2b79ff;text-decoration-skip-ink:none}
::highlight(cmt){background:#fff3a3}
#ctxmenu{position:fixed;z-index:20;background:#fff;border:1px solid #888;border-radius:6px;box-shadow:0 2px 10px rgba(0,0,0,.3);min-width:170px;padding:4px 0;font-size:14px}
#ctxmenu[hidden]{display:none}#ctxmenu div{padding:6px 14px;cursor:pointer}#ctxmenu div:hover{background:#e3edff}#ctxmenu hr{margin:4px 0}
.tab{display:inline-block;height:1em;vertical-align:baseline}
.tabstop{position:absolute;bottom:-2px;color:#2b579a;font-size:13px;transform:translateX(-50%);cursor:pointer}
.secbrk{border-top:3px double #2b579a;color:#2b579a;font-size:12px;text-align:center;margin:18px 0;padding-top:4px;cursor:pointer}
#presence{position:absolute;top:0;left:0;right:0;pointer-events:none;z-index:4}
.pres{position:absolute;font-size:11px;color:#fff;padding:1px 6px;border-radius:8px;white-space:nowrap;transform:translateX(100%)}
@media print{#pgguides,#presence,#pgcount{display:none!important}#sheet{zoom:1!important}}
