/* Book Builder admin: ink on paper, one blue used only for the main action. */
:root{--ink:#16181d;--mute:#5c6470;--rule:#d5d9de;--mist:#eef0f2;--paper:#fff;--proof:#1f4fd8;--flag:#a3261f}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--mist);color:var(--ink);font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--proof)}
.top{display:flex;justify-content:space-between;align-items:center;background:var(--ink);color:#fff;padding:.7rem 1.25rem}
.brand{font:700 1.15rem Georgia,"Iowan Old Style",serif;color:#fff;text-decoration:none;letter-spacing:.01em}
.top .link{color:#fff}
main{max-width:980px;margin:0 auto;padding:1.5rem 1.25rem 4rem}
h1,h2,h3{font-family:Georgia,"Iowan Old Style",serif;font-weight:700;line-height:1.2;margin:0 0 .75rem}
h1{font-size:1.9rem}h2{font-size:1.35rem;margin-top:1.5rem}h3{font-size:1.1rem}
.muted,.hint{color:var(--mute);font-size:.9rem;font-weight:400}
.hint{display:block;margin:.1rem 0 .25rem}
.flash{background:#fff;border-left:4px solid var(--ink);padding:.7rem 1rem;margin:0 0 1rem}
.flash.err{border-color:var(--flag)}
.empty{background:#fff;border:1px dashed var(--rule);padding:1.25rem;color:var(--mute)}.empty.small{padding:.7rem 1rem;margin:0}

button,.btn{font:inherit;cursor:pointer;display:inline-block;padding:.45rem .95rem;border:1px solid var(--ink);background:#fff;color:var(--ink);text-decoration:none;border-radius:4px}
.btn:hover,button:hover{background:var(--mist)}
.btn.primary{background:var(--proof);border-color:var(--proof);color:#fff}.btn.primary:hover{background:#173ea8}
.btn.danger{border-color:var(--flag);color:var(--flag)}
button.link{border:0;background:none;padding:0 .35rem;color:var(--proof);text-decoration:underline}
button.link.danger,.danger{color:var(--flag)}
:focus-visible{outline:3px solid var(--proof);outline-offset:2px}

input,select,textarea{font:inherit;width:100%;padding:.45rem .6rem;border:1px solid #aab1ba;border-radius:4px;background:#fff;color:var(--ink)}
textarea{resize:vertical}
label{display:block;font-weight:600;margin:0 0 .85rem}
label input,label select,label textarea{margin-top:.25rem;font-weight:400}
label.inl{display:flex;gap:.5rem;align-items:center;font-weight:400}label.inl input{width:auto;margin:0}
fieldset{border:1px solid var(--rule);background:#fff;padding:.9rem 1rem .4rem;margin:0 0 1rem}
legend{font:700 1rem Georgia,serif;padding:0 .4rem}
.card{background:#fff;border:1px solid var(--rule);padding:1rem 1.25rem;margin:1rem 0}
.stack>*{max-width:640px}
.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
.inline{display:inline-flex;gap:.35rem;align-items:center;margin:0}
.inline input{width:auto;margin:0}

.gate{max-width:420px;margin:3rem auto}.gate .stack>*{max-width:none}
.books{list-style:none;margin:0 0 1.5rem;padding:0}
.books li{display:flex;justify-content:space-between;gap:1rem;align-items:center;background:#fff;border:1px solid var(--rule);padding:.9rem 1.1rem;margin-bottom:.5rem}
.books .bt{display:block;font:700 1.2rem Georgia,serif;color:var(--ink);text-decoration:none}
.books .acts{display:flex;gap:.9rem;align-items:center}
.newbook{max-width:520px}

.phead{display:flex;align-items:baseline;gap:.8rem}
.tabs{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--ink);margin:0 0 1.25rem;padding-bottom:.5rem}
.tabs a{text-decoration:none;color:var(--ink);padding:.2rem 0;border-bottom:3px solid transparent}
.tabs a.on{border-color:var(--ink);font-weight:700}
.tabs a.btn{border:1px solid var(--ink);padding:.3rem .8rem}
.tabs .sp{flex:1}
.addch{margin-bottom:1rem}.addch input{min-width:260px}

.chap{background:#fff;border:1px solid var(--rule);margin-bottom:1rem}
.chap-h{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding:.6rem .9rem;border-bottom:1px solid var(--ink);background:var(--mist)}
.chap-h .grow{flex:1;min-width:240px}.chap-h .grow input{flex:1;font-weight:700}
.cn{font-weight:700;white-space:nowrap}
.qs{list-style:none;margin:0;padding:0}
.qs li{display:flex;gap:.7rem;align-items:baseline;padding:.5rem .9rem;border-bottom:1px solid var(--rule)}
.qs li:last-child{border-bottom:0}.qs li:target{background:#fff8d6}
.qn{font-weight:700;min-width:2.8rem}.qx{flex:1;min-width:0}
.meta{color:var(--mute);font-size:.9rem;white-space:nowrap}
.warn{border:1px solid var(--flag);color:var(--flag);font-size:.8rem;padding:0 .35rem;cursor:help}
.ra{display:flex;gap:.2rem;align-items:center;white-space:nowrap}

.qform{max-width:760px}
.g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}
.pv{min-height:1.5rem;white-space:pre-wrap;background:#fff;border:1px dashed var(--rule);padding:.5rem .7rem;margin:-.4rem 0 1rem;font-family:Georgia,serif}
.pv:empty{display:none}
.opts label.inl input{flex:1}
pre{background:var(--mist);padding:.8rem;overflow:auto;font-size:.85rem}
.settings{max-width:760px}.settings.stack>*{max-width:none}
.danger-zone{border:1px solid var(--flag);background:#fff;padding:1rem 1.25rem;margin-top:2rem;max-width:760px}
@media(max-width:700px){.g3{grid-template-columns:1fr}.books li{flex-direction:column;align-items:flex-start}.qs li{flex-wrap:wrap}}

/* Solve queue and notes */
.note{background:#fff;border-left:4px solid var(--proof);padding:.6rem 1rem;margin:0 0 1rem}
.todo{border:1px solid var(--ink);font-size:.8rem;padding:0 .4rem;color:var(--ink);text-decoration:none;white-space:nowrap}
.solveq{max-width:760px}.solveq .meta{margin-bottom:.5rem}
.qtext{font:1.05rem/1.6 Arial,Helvetica,sans-serif;font-weight:700;white-space:normal}
.sopts{list-style:none;margin:.6rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.2rem 1.5rem}
.simg{display:block;max-width:60%;margin:.6rem 0}

/* Sub chapters */
.subchap{margin:0 0 .6rem 1.4rem;border-left:3px solid var(--ink);background:#fff}
.subchap .chap-h{background:#f6f7f8}
.syl{padding:.4rem .9rem;border-bottom:1px solid var(--rule)}.syl summary{cursor:pointer;color:var(--mute)}
.addsub{padding:.6rem .9rem;display:flex}.addsub input{min-width:300px}

/* Rich text editor areas */
.pv{white-space:normal;font-family:Arial,Helvetica,sans-serif}
.pv img,.qtext img,.sopts img{max-width:100%;height:auto}
.pv table,.qtext table,.sopts table{border-collapse:collapse}
.pv td,.pv th,.qtext td,.qtext th{border:1px solid #999;padding:2px 6px}
.optrow{display:flex;gap:.5rem;align-items:flex-start;margin-bottom:.6rem}.optrow b{padding-top:.35rem;min-width:1.4rem}
.optrow textarea{flex:1;min-width:0}.optrow .tox-tinymce{flex:1;min-width:0}
.boxl{background:var(--ink);color:#fff;font-size:.8rem;padding:0 .4rem;text-align:center;min-width:2.8rem}
