:root{--bg: #f4f1ec;--bg-2: #ebe7df;--panel: #ffffff;--ink: #1a1815;--ink-2: #3b3833;--muted: #75706a;--line: #d9d3c8;--line-2: #ecead4cb;--accent: oklch(58% .12 35);--accent-2: oklch(55% .12 250);--hl: oklch(95% .04 80);--danger: oklch(55% .16 25);--radius: 6px;--shadow: 0 1px 0 rgba(0,0,0,.04), 0 8px 24px -16px rgba(0,0,0,.18);--ui-font: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono-font: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--doc-font: "Source Serif 4", "Charter", "Iowan Old Style", Georgia, serif}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--ui-font);background:var(--bg);color:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased;overflow:hidden}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;color:inherit}textarea{resize:vertical}.app{--left-w: 320px;--right-w: 360px;--ease: cubic-bezier(.4, 0, .2, 1);--panel-anim: .28s var(--ease);position:relative;height:100vh;overflow:hidden}.app.left-collapsed{--left-w: 0px}.app.right-hidden{--right-w: 0px}.panel-toggle{position:fixed;top:64px;width:22px;height:44px;background:var(--panel);border:1px solid var(--line);border-radius:4px;display:grid;place-items:center;color:var(--muted);z-index:6;padding:0;transition:left var(--panel-anim),right var(--panel-anim),color .12s}.panel-toggle:hover{color:var(--ink);background:var(--bg)}.panel-toggle svg{transition:transform .18s var(--ease)}.panel-toggle.left-toggle{left:calc(var(--left-w) + 8px)}.panel-toggle.left-toggle svg{transform:rotate(90deg)}.app.left-collapsed .panel-toggle.left-toggle{left:8px}.app.left-collapsed .panel-toggle.left-toggle svg{transform:rotate(-90deg)}.topbar{position:fixed;top:0;left:0;right:0;height:52px;display:flex;align-items:center;gap:14px;padding:0 16px;background:var(--panel);border-bottom:1px solid var(--line);z-index:5}.topbar .brand{display:flex;align-items:center;gap:8px;font-weight:600;letter-spacing:-.01em}.topbar .brand .mark{width:22px;height:22px;background:var(--ink);border-radius:4px;display:grid;place-items:center;color:var(--bg);font-family:var(--mono-font);font-size:12px;font-weight:700}.topbar .pkg-title-wrap{flex:1;display:flex;align-items:baseline;gap:8px;min-width:0}.topbar input.pkg-title{border:none;background:transparent;font-size:14px;font-weight:500;color:var(--ink);padding:4px 6px;border-radius:4px;outline:none;min-width:0;flex:1;max-width:480px}.topbar input.pkg-title:hover{background:var(--bg)}.topbar input.pkg-title:focus{background:var(--bg);box-shadow:inset 0 0 0 1px var(--line)}.topbar .meta{font-family:var(--mono-font);font-size:11px;color:var(--muted)}.topbar .actions{display:flex;gap:6px;align-items:center}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:6px 10px;border-radius:var(--radius);font-size:13px;font-weight:500;transition:background .12s,border-color .12s}.btn:not(:disabled):hover{background:var(--bg-2)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.primary:not(:disabled):hover{background:var(--ink-2)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.btn.ghost:not(:disabled):hover{background:var(--bg-2);color:var(--ink)}.btn.tiny{padding:4px 7px;font-size:12px}.btn.icon{padding:6px;width:30px;height:30px;justify-content:center}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:220px;padding:6px;box-shadow:var(--shadow);z-index:50}.menu .item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:4px;font-size:13px;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none}.menu .item:hover{background:var(--bg)}.menu .item .kbd{margin-left:auto;font-family:var(--mono-font);font-size:11px;color:var(--muted)}.menu .sep{height:1px;background:var(--line);margin:6px 4px}.left{position:fixed;top:52px;bottom:0;left:0;width:320px;background:var(--panel);border-right:1px solid var(--line);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;z-index:4;transform:translate(0);transition:transform var(--panel-anim);will-change:transform}.app.left-collapsed .left{transform:translate(-100%)}.left .section-header{padding:14px 14px 8px;font-family:var(--mono-font);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:flex;justify-content:space-between;align-items:center}.left .block-list{padding:4px 8px 8px;display:flex;flex-direction:column;gap:2px}.block-row{display:grid;grid-template-columns:18px 22px 1fr auto;gap:8px;align-items:center;padding:8px;border-radius:6px;cursor:pointer;border:1px solid transparent;-webkit-user-select:none;user-select:none;font-size:13px;color:var(--ink-2)}.block-row:hover{background:var(--bg)}.block-row.selected{background:var(--hl);border-color:#dccbb1;color:var(--ink)}.block-row .drag{color:var(--muted);font-family:var(--mono-font);font-size:11px;text-align:center;cursor:grab}.block-row .num{font-family:var(--mono-font);font-size:11px;color:var(--muted);text-align:right}.block-row .label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-row .label .type{font-family:var(--mono-font);font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.06em;margin-right:6px}.block-row .actions{display:none;gap:2px}.block-row:hover .actions,.block-row.selected .actions{display:flex}.block-row .actions button{background:transparent;border:none;padding:4px;border-radius:4px;color:var(--muted);display:grid;place-items:center}.block-row .actions button:hover{color:var(--ink);background:#0000000f}.add-block{margin:4px 8px 12px;border:1px dashed var(--line);border-radius:6px;padding:0;background:transparent}.add-block-header{padding:8px 10px;display:flex;align-items:center;gap:6px;color:var(--muted);font-family:var(--mono-font);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.add-block-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:0 6px 6px}.add-block-grid button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;border:1px solid var(--line);background:var(--panel);border-radius:4px;font-size:12px;color:var(--ink);text-align:left}.add-block-grid button:hover{background:var(--bg);border-color:var(--ink-2)}.add-block-grid button .h{font-weight:600;font-size:12px}.add-block-grid button .d{font-size:10px;color:var(--muted);font-family:var(--mono-font)}.center{position:fixed;top:52px;bottom:0;left:var(--left-w);right:var(--right-w);background:var(--bg);overflow:auto;padding:32px 24px 96px;transition:left var(--panel-anim),right var(--panel-anim)}.center .paper-stack{display:flex;flex-direction:column;align-items:center;gap:calc(24px * var(--zoom, 1));zoom:var(--zoom, 1)}.paper{background:#fff;width:8.5in;min-height:11in;padding:.85in .85in 1in;box-shadow:0 0 0 1px var(--line),0 12px 30px -16px #0000002e;font-family:var(--doc-font);color:#1a1815;font-size:12.5pt;line-height:1.45;position:relative}.paper .pg-number{position:absolute;bottom:.55in;left:0;right:0;text-align:center;font-size:10pt;color:#777;font-family:var(--doc-font)}.right{position:fixed;top:52px;bottom:0;right:0;width:360px;background:var(--panel);border-left:1px solid var(--line);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;z-index:4;transform:translate(0);transition:transform var(--panel-anim);will-change:transform}.app.right-hidden .right{transform:translate(100%)}.right .panel-header{padding:14px 16px 8px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line-2)}.right .panel-header .title{font-weight:600;font-size:13px;letter-spacing:-.01em}.right .panel-header .type-pill{display:inline-block;font-family:var(--mono-font);font-size:10px;text-transform:uppercase;letter-spacing:.06em;background:var(--bg-2);color:var(--ink-2);padding:3px 7px;border-radius:100px}.right .panel-body{padding:12px 16px 32px;display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:11px;font-family:var(--mono-font);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.field input[type=text],.field input[type=number],.field textarea,.field select{border:1px solid var(--line);background:#fff;border-radius:5px;padding:7px 9px;font-size:13px;outline:none;transition:border-color .12s,box-shadow .12s;width:100%}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--ink-2);box-shadow:0 0 0 3px #0000000d}.field textarea{font-family:var(--mono-font);font-size:12px;line-height:1.5;min-height:120px}.field .hint{font-size:11px;color:var(--muted)}.row-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stanza-list{display:flex;flex-direction:column;gap:8px}.stanza-card{border:1px solid var(--line);border-radius:6px;background:#fff;overflow:hidden}.stanza-card.chorus{background:#fff7eb;background:oklch(98% .02 80);border-color:#e6d5bb}.stanza-card-head{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--bg);border-bottom:1px solid var(--line);font-size:11px;font-family:var(--mono-font);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.stanza-card.chorus .stanza-card-head{background:#f9edd9}.seg{display:flex;border:1px solid var(--line);border-radius:4px;overflow:hidden}.seg button{background:transparent;border:none;padding:3px 7px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-family:var(--mono-font)}.seg button.on{background:var(--ink);color:var(--bg)}.stanza-card-head .actions{margin-left:auto;display:flex;gap:2px}.stanza-card-head .actions button{background:transparent;border:none;padding:3px;color:var(--muted);border-radius:3px;display:grid;place-items:center}.stanza-card-head .actions button:hover{color:var(--ink);background:#0000000f}.stanza-card textarea{border:none;border-radius:0;background:transparent;font-family:var(--mono-font);font-size:12px;line-height:1.55;width:100%;padding:8px 10px;min-height:70px;resize:vertical;outline:none}.add-stanza-row{display:flex;gap:6px}.add-stanza-row button{flex:1;padding:7px;border:1px dashed var(--line);background:transparent;border-radius:5px;font-size:12px;color:var(--muted)}.add-stanza-row button:hover{background:var(--bg);color:var(--ink);border-color:var(--ink-2)}.verse-card{border:1px solid var(--line);border-radius:6px;background:#fff;overflow:hidden;display:grid;grid-template-columns:110px 1fr 30px}.verse-card input.ref{border:none;background:var(--bg);padding:8px 10px;font-family:var(--mono-font);font-size:12px;border-right:1px solid var(--line);outline:none}.verse-card textarea{border:none;background:transparent;padding:8px 10px;font-family:var(--mono-font);font-size:12px;line-height:1.5;min-height:50px;outline:none;resize:vertical}.verse-card .x{background:transparent;border:none;border-left:1px solid var(--line);color:var(--muted);display:grid;place-items:center}.verse-card .x:hover{color:var(--danger);background:#ffedeb}.sched-row{display:grid;grid-template-columns:36px 1fr 1fr 28px;gap:6px;align-items:start}.sched-row input{padding:6px 8px;font-size:12px}.sched-row .x{border:1px solid var(--line);background:transparent;border-radius:5px;color:var(--muted)}.empty-state{padding:48px 20px;text-align:center;color:var(--muted);font-size:12px}.doc-h1{font-size:22pt;font-weight:600;letter-spacing:-.01em;margin:0 0 6pt;text-align:center;line-height:1.2}.doc-h2{font-size:15pt;font-weight:600;margin:18pt 0 6pt;letter-spacing:-.005em}.doc-h3{font-size:12pt;font-weight:600;margin:14pt 0 4pt;text-transform:uppercase;letter-spacing:.06em;color:#555}.doc-p{margin:0 0 9pt}.doc-center{text-align:center}.doc-rule{border:none;border-top:.75pt solid #c8c2b6;margin:16pt auto;width:80%}.doc-cover{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:9in;text-align:center;gap:14pt}.doc-cover .eyebrow{font-family:var(--mono-font);font-size:10pt;text-transform:uppercase;letter-spacing:.16em;color:#777}.doc-cover .title{font-size:32pt;font-weight:600;letter-spacing:-.02em;line-height:1.05;max-width:6in}.doc-cover .subtitle{font-size:14pt;color:#555;font-style:italic;max-width:5.5in}.doc-cover .dateline{margin-top:28pt;font-family:var(--mono-font);font-size:10pt;letter-spacing:.06em;color:#555}.doc-cover .ornament{width:.6in;border-top:.75pt solid #999;margin:6pt 0}.doc-schedule{width:100%;border-collapse:collapse;margin:8pt 0 12pt;font-size:11pt}.doc-schedule th,.doc-schedule td{text-align:left;padding:7pt 8pt;vertical-align:top;border-bottom:.5pt solid #d6d0c4}.doc-schedule th{font-weight:600;font-size:10pt;text-transform:uppercase;letter-spacing:.06em;color:#555;border-bottom-width:1pt;border-bottom-color:#1a1815}.doc-schedule td.num{font-family:var(--mono-font);font-size:10pt;color:#777;width:.4in;padding-top:9pt}.doc-schedule td.when{text-align:right;white-space:nowrap;font-family:var(--mono-font);font-size:10pt;color:#444}.doc-verse-group{margin:10pt 0 14pt}.doc-verse-ref{font-weight:600;font-size:11.5pt;margin:8pt 0 2pt}.doc-verse{display:grid;grid-template-columns:16pt 1fr;gap:4pt;margin:1pt 0}.doc-verse .vnum{text-align:right;font-size:9pt;color:#777;padding-top:3pt;font-variant-numeric:lining-nums}.doc-notes-title{font-weight:600;font-size:12pt;margin:14pt 0 8pt}.doc-notes-line{border-bottom:.5pt solid #c8c2b6;height:20pt}.doc-song-title{font-weight:600;font-size:13pt;margin:14pt 0 8pt}.doc-song{margin:4pt 0 14pt}.doc-song-stanza{display:grid;grid-template-columns:18pt 1fr;column-gap:4pt;margin:0 0 10pt;page-break-inside:avoid;break-inside:avoid}.doc-song-stanza .vnum{font-size:11pt;color:#1a1815;padding-top:0}.doc-song-stanza .lines{white-space:pre-wrap;font-size:11.5pt;line-height:1.42}.doc-song-stanza.chorus{grid-template-columns:44pt 1fr}.doc-song-stanza.chorus .lines{font-style:italic}.page-break-marker{width:8.5in;text-align:center;font-family:var(--mono-font);font-size:10px;color:var(--muted);padding:4px 0;letter-spacing:.1em;text-transform:uppercase}@media print{html,body{background:#fff;height:auto;overflow:visible}body{font-size:12pt}.topbar,.left,.right,.panel-toggle,.zoom-bar,.page-break-marker,.center>.paper-stack>.add-block-floating{display:none!important}.app{display:block!important;height:auto!important;overflow:visible!important}.center{position:static!important;background:#fff!important;padding:0!important;overflow:visible!important;display:block!important}.center .paper-stack{gap:0!important;display:block!important;zoom:1!important}.paper{box-shadow:none!important;margin:0!important;width:100%!important;min-height:auto!important;height:11in!important;padding:.85in .85in 1in!important;page-break-after:always;overflow:hidden}.paper:last-child{page-break-after:auto}.paper .pg-number{position:absolute;bottom:.4in}}@page{size:letter;margin:0}.zoom-bar{position:fixed;bottom:18px;left:calc(var(--left-w) + (100vw - var(--left-w) - var(--right-w)) / 2);transform:translate(-50%);display:inline-flex;align-items:center;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:100px;padding:4px;box-shadow:var(--shadow);z-index:7;font-family:var(--mono-font);font-size:11px;color:var(--ink-2);transition:left var(--panel-anim)}.zoom-bar button{background:transparent;border:none;color:var(--ink-2);width:26px;height:26px;border-radius:100px;display:grid;place-items:center}.zoom-bar button:hover:not(:disabled){background:var(--bg);color:var(--ink)}.zoom-bar button:disabled{opacity:.35;cursor:not-allowed}.zoom-bar .level{min-width:44px;width:auto;text-align:center;-webkit-user-select:none;user-select:none;letter-spacing:.02em;cursor:pointer;padding:0 8px;border-radius:100px;height:26px;line-height:26px;font-size:inherit;color:var(--ink-2)}.zoom-bar .level:hover{background:var(--bg);color:var(--ink)}.zoom-bar .sep{width:1px;height:16px;background:var(--line);margin:0 4px}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--bg);padding:9px 14px;border-radius:6px;font-size:13px;box-shadow:0 12px 30px -10px #0006;z-index:200;animation:toast-in .2s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.left::-webkit-scrollbar,.right::-webkit-scrollbar,.center::-webkit-scrollbar{width:10px}.left::-webkit-scrollbar-thumb,.right::-webkit-scrollbar-thumb,.center::-webkit-scrollbar-thumb{background:#0000001f;border-radius:100px;border:2px solid transparent;background-clip:padding-box}.left::-webkit-scrollbar-thumb:hover,.right::-webkit-scrollbar-thumb:hover,.center::-webkit-scrollbar-thumb:hover{background:#00000038;background-clip:padding-box;border:2px solid transparent}.presence{display:inline-flex;align-items:center;gap:6px;padding:2px 8px 2px 6px;border:1px solid var(--line);border-radius:999px;background:var(--bg);font-size:11px;color:var(--muted);margin:0 4px}.presence-dot{width:8px;height:8px;border-radius:50%;background:#999;box-shadow:0 0 0 2px #0000000a}.presence-dot-connected{background:#2ecc71}.presence-dot-alone{background:#f1c40f}.presence-dot-disconnected{background:#e74c3c}.presence-count{font-family:var(--mono-font);font-size:11px;color:var(--ink);font-weight:600;min-width:8px;text-align:center}.presence-pills{display:inline-flex;align-items:center}.presence-pill{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;color:#fff;font-size:9px;font-weight:700;letter-spacing:.02em;border:1.5px solid var(--panel);margin-left:-6px;cursor:default;font-family:var(--mono-font)}.presence-pill:first-child{margin-left:0}.presence-pill-overflow{background:var(--muted)!important;color:var(--panel);font-size:9px}.block-row.peer-editing{box-shadow:inset 3px 0 0 var(--peer-color, var(--accent))}.peer-editing-badge{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;color:#fff;font-size:9px;font-weight:600;letter-spacing:.02em;vertical-align:middle;white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;display:flex;align-items:center;justify-content:center;z-index:300;animation:modal-fade .15s ease-out}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg);border:1px solid var(--line);border-radius:10px;box-shadow:0 20px 60px -10px #00000059;width:min(480px,calc(100vw - 32px));padding:18px 18px 14px;animation:modal-pop .15s ease-out}@keyframes modal-pop{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.modal-head h2{font-size:15px;font-weight:600;margin:0}.modal-help{font-size:12.5px;color:var(--muted);margin:0 0 12px;line-height:1.45}.modal-warning{font-size:11.5px;background:var(--bg-2);border-left:3px solid var(--accent);color:var(--ink-2);padding:8px 10px;border-radius:4px;margin:0 0 14px;line-height:1.45}.modal-url-row{display:flex;gap:6px;margin-bottom:14px}.modal-url{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:var(--bg-2);color:var(--ink)}.modal-url:focus{outline:none;box-shadow:0 0 0 2px #00000014}.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.modal-peers{font-size:12px;color:var(--muted)}.share-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#2f8a4e;color:#fff;font-size:12px;font-weight:500;border:none;cursor:pointer}.share-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px #ffffff59;animation:share-pulse 1.6s ease-in-out infinite}.share-pill:hover{background:#266e3f}@keyframes share-pulse{0%,to{opacity:1}50%{opacity:.5}}
