@import"https://fonts.googleapis.com/css2?family=Libre+Franklin:wght@400;500;600;700&display=swap";#print-view{display:none}@media print{body>*{display:none!important}#print-view{display:block!important;font-family:Libre Franklin,Franklin Gothic Medium,Helvetica Neue,Arial,sans-serif;color:#000;background:#fff;padding:0;margin:0}.pv-header{text-align:center;margin-bottom:16pt}.pv-title{font-size:20pt;font-weight:700;margin:0 0 4pt;letter-spacing:-.2px}.pv-author{font-size:11pt;margin:0;color:#555}.pv-grid-wrap{display:flex;justify-content:center;margin-bottom:18pt;page-break-inside:avoid}.pv-grid{border-collapse:collapse;border:2pt solid #000;table-layout:fixed;--pv-cell: min(24pt, 432pt / var(--pv-cols, 15)) }.pv-grid td{width:var(--pv-cell);height:var(--pv-cell);border:.75pt solid #888;position:relative;padding:0;vertical-align:middle;text-align:center}.pv-grid td.pv-black{background:#000}.pv-grid td.pv-white{background:#fff}.pv-num{position:absolute;top:1pt;left:1.5pt;font-size:calc(var(--pv-cell) * .28);font-weight:500;line-height:1;color:#333}.pv-letter{font-size:calc(var(--pv-cell) * .48);font-weight:500;text-transform:uppercase;line-height:1;color:#000}.pv-clues{display:grid;grid-template-columns:1fr 1fr;gap:0 24pt;page-break-inside:auto}.pv-clue-col{break-inside:avoid-column}.pv-clue-head{font-size:10pt;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin:0 0 6pt;border-bottom:1pt solid #000;padding-bottom:3pt}.pv-clue-list{list-style:none;margin:0;padding:0}.pv-clue-item{display:flex;gap:4pt;font-size:9pt;line-height:1.4;margin-bottom:2pt;align-items:baseline}.pv-clue-num{font-weight:700;min-width:18pt;text-align:right;flex-shrink:0}.pv-clue-text{flex:1}@page{margin:.75in;size:letter portrait}}:root{--ink: #121212;--black: #000000;--gray-1: #333333;--gray-2: #5a5a5a;--gray-3: #959595;--gray-4: #cccccc;--hairline: #dcdcdc;--paper: #ffffff;--panel: #f7f7f7;--sel-cell: #7fc3ec;--sel-word: #cfe6f7;--sel-cross: #edf5fb;--theme: #f3c08a;--theme2: #f6e371;--radius: 3px;--font: "Libre Franklin", "Franklin Gothic Medium", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:15px;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100vh}.toolbar{display:flex;align-items:center;gap:4px;padding:0 18px;height:52px;border-bottom:1px solid var(--ink);flex:0 0 auto}.toolbar .brand{font-size:20px;font-weight:700;letter-spacing:-.2px;margin-right:20px}.toolbar .spacer{flex:1}.tbtn{font:inherit;font-size:14px;font-weight:500;padding:8px 12px;border:none;background:none;color:var(--gray-1);border-radius:var(--radius);cursor:pointer}.tbtn:hover{background:var(--panel);color:var(--ink)}.tbtn.primary{background:var(--ink);color:var(--paper);font-weight:600;padding:8px 16px}.tbtn.primary:hover{background:var(--gray-1)}.tbtn:disabled{opacity:.45;cursor:default}.toolbar .divider{width:1px;height:22px;background:var(--hairline);margin:0 6px}.main{flex:1 1 auto;display:grid;grid-template-columns:minmax(440px,1fr) minmax(300px,460px);min-height:0}.left{display:flex;flex-direction:column;padding:20px 24px;border-right:1px solid var(--hairline);min-height:0;overflow:hidden}.tools-row{flex:0 0 auto;margin-bottom:8px}.tools-side{position:absolute;top:0;left:0;z-index:5;display:flex;flex-direction:column;align-items:flex-start}.left-body{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}.grid-pane{flex:0 0 auto;display:flex;position:relative}.split-handle{flex:0 0 10px;cursor:row-resize;display:flex;align-items:center;justify-content:center}.split-handle:after{content:"";width:48px;height:3px;background:var(--hairline);border-radius:2px}.split-handle:hover:after{background:var(--gray-4)}.suggest-pane{flex:1 1 auto;overflow:auto;min-height:0}.right{display:grid;grid-template-columns:1fr 1fr;min-height:0}.banner{display:flex;align-items:baseline;gap:12px;padding:11px 14px;background:var(--sel-cross);border:1px solid var(--hairline);border-radius:var(--radius);margin-bottom:8px}.banner .slot{font-weight:700;font-size:14px}.banner .pattern{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:16px;letter-spacing:3px}.banner .count{color:var(--gray-2);font-size:13px;margin-left:auto}.gridwrap{display:flex;justify-content:center;align-items:center;flex:1;container-type:size}.grid{border-collapse:collapse;border:2px solid var(--ink);table-layout:fixed;--cell: min(36px, calc((100cqw - 4px) / var(--cols, 15)), calc((100cqh - 4px) / var(--rows, 15)))}.grid td{width:var(--cell);height:var(--cell);border:1px solid var(--gray-4);position:relative;text-align:center;vertical-align:middle;font-family:var(--font);font-size:calc(var(--cell) * .5);font-weight:500;text-transform:uppercase;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none}.grid td.black{background:var(--black);cursor:pointer}.grid td.crossing{background:var(--sel-cross)}.grid td.word{background:var(--sel-word)}.grid td.cell{background:var(--sel-cell)}.grid td.theme{background:var(--theme)}.grid td.theme2{background:var(--theme2)}.grid td.bad{background:#ffd6d6}.grid td .circle{position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1.5px solid var(--ink);border-radius:50%;pointer-events:none}.grid td .icon{position:absolute;top:1px;right:2px;font-size:calc(var(--cell) * .28);line-height:1;color:var(--gray-2);pointer-events:none}.grid .num{position:absolute;top:1px;left:2px;font-size:calc(var(--cell) * .26);font-weight:500;line-height:1;color:var(--gray-2)}.grid:focus{outline:none}.suggest{margin-top:8px}.suggest h3{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--gray-3);margin:0 0 10px}.suggest ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--suggest-cols, 4),1fr);gap:1px 8px}.suggest li{display:flex;align-items:baseline;padding:4px 8px;border-radius:var(--radius);cursor:pointer;min-width:0}.suggest li:hover{background:var(--sel-word)}.suggest .w{letter-spacing:1px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.suggest .empty{color:var(--gray-3);font-size:13px}.clues{display:flex;flex-direction:column;min-height:0}.clues+.clues{border-left:1px solid var(--hairline)}.clues h2{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin:0;padding:14px 16px 10px;position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--hairline)}.clues ol{list-style:none;margin:0;padding:4px 0 16px;overflow:auto;flex:1 1 auto;min-height:0}.clues li{display:flex;gap:10px;padding:6px 16px;font-size:14px;line-height:1.4;cursor:pointer;align-items:baseline}.clues li:hover{background:var(--panel)}.clues li.active{background:var(--sel-word)}.clues .n{font-weight:700;min-width:22px;text-align:right}.clues .ctext{color:var(--gray-1);flex:1;border:none;background:none;font:inherit;padding:0;resize:none;overflow:hidden;display:block;line-height:inherit;field-sizing:content}.clues .ctext::placeholder{color:var(--gray-3)}.clues .ctext:focus{outline:1px solid var(--sel-cell);border-radius:2px}.status{flex:0 0 auto;display:flex;align-items:center;gap:24px;padding:9px 18px;height:40px;border-top:1px solid var(--ink);font-size:12.5px;color:var(--gray-1);background:var(--panel)}.status b{font-weight:700;color:var(--ink)}.status .muted{color:var(--gray-3)}.status .spacer{flex:1}.status .warn{color:#b45309}.toolsmenu{position:relative;margin-bottom:0;flex:0 0 auto}.toolsbtn{border:1px solid var(--ink)}.toolsdrop{position:absolute;z-index:10;margin-top:4px;width:232px;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius);padding:6px 0}.toolsdrop .grp{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--gray-3);padding:6px 12px 2px}.toolsdrop .it{display:block;width:100%;text-align:left;border:none;background:none;font:inherit;font-size:13px;padding:7px 12px;cursor:pointer;color:var(--gray-1)}.toolsdrop .it:hover{background:var(--panel)}.toolsdrop .it.on{background:var(--sel-word);color:var(--ink);font-weight:600}.toolsdrop .it:disabled{opacity:.45;cursor:default}.toolsdrop .sub{padding:2px 12px 6px}.toolsdrop .chips{display:flex;flex-wrap:wrap;gap:5px}.toolsdrop .chip{border:1px solid var(--hairline);border-radius:3px;background:#fff;font:inherit;font-size:12px;padding:4px 8px;cursor:pointer}.toolsdrop .chip.on{background:var(--sel-cell);border-color:var(--ink);font-weight:600}.toolsub{position:absolute;top:calc(100% + 4px);left:0;z-index:20;display:flex;flex-wrap:wrap;gap:5px;align-items:center;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius);padding:8px 10px;min-width:260px}.theme-hint{font-size:11px;color:var(--gray-3);width:100%;margin-top:2px}.toolsub .chip{border:1px solid var(--hairline);border-radius:3px;background:#fff;font:inherit;font-size:12px;padding:4px 8px;cursor:pointer}.toolsub .chip.on{background:var(--sel-cell);border-color:var(--ink);font-weight:600}.specialsub .chip{font-size:14px;width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center}.chip-diamond-shape{display:block;width:13px;height:13px;border:1.5px solid currentColor;transform:rotate(45deg)}.grid td .icon-diamond{position:absolute;top:50%;left:50%;width:62%;height:62%;transform:translate(-50%,-50%) rotate(45deg);border:1.5px solid var(--ink);pointer-events:none}.themesub{flex-direction:column;flex-wrap:nowrap;align-items:stretch;width:250px;max-height:70vh;overflow:auto}.themesub-head{display:flex;align-items:center;justify-content:space-between;margin:-2px 0 8px}.themesub-title{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray-2)}.themesub-close{border:none;background:none;color:var(--gray-3);font-size:18px;line-height:1;padding:0 2px;cursor:pointer;border-radius:var(--radius)}.themesub-close:hover{color:var(--ink);background:var(--panel)}.themesub .theme-chips{display:flex;gap:5px}.theme-list{margin-top:10px}.theme-list-head{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--gray-3);margin-bottom:4px}.theme-list-head .cnt{color:var(--gray-4)}.theme-list-head .swatch{width:10px;height:10px;border-radius:2px;border:1px solid var(--gray-4)}.swatch.primary{background:var(--theme)}.swatch.secondary{background:var(--theme2)}.theme-empty{font-size:12px;color:var(--gray-4);padding:2px 0 0 16px}.theme-list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.theme-list li{display:flex;align-items:center;gap:4px;border-radius:var(--radius)}.theme-list li:hover{background:var(--panel)}.theme-jump{flex:1;display:flex;align-items:baseline;gap:8px;border:none;background:none;font:inherit;font-size:13px;text-align:left;padding:4px 6px;cursor:pointer;min-width:0}.theme-jump .ref{font-weight:700;font-size:11px;color:var(--gray-2);min-width:26px}.theme-jump .wtext{letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.theme-x{border:none;background:none;color:var(--gray-3);font-size:15px;line-height:1;padding:2px 6px;cursor:pointer;border-radius:var(--radius)}.theme-x:hover{color:var(--ink);background:var(--gray-4)}.library{display:flex;flex-direction:column;height:100vh;overflow:auto}.libhead{display:flex;align-items:center;gap:10px;padding:0 24px;height:56px;border-bottom:1px solid var(--ink);flex:0 0 auto}.libhead .brand{font-size:22px;font-weight:700}.libhead .spacer{flex:1}.liberror{margin:12px 24px 0;padding:8px 12px;border:1px solid #e0b4b4;background:#fbeaea;color:#8a1f1f;border-radius:var(--radius);font-size:13px}.cardgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;padding:24px}.pznew{border:1.5px dashed var(--gray-3);border-radius:6px;background:none;color:var(--gray-2);font:inherit;font-size:15px;font-weight:600;min-height:210px;cursor:pointer}.pznew:hover{border-color:var(--ink);color:var(--ink);background:var(--panel)}.pzcard{border:1px solid var(--hairline);border-radius:6px;background:var(--paper);display:flex;flex-direction:column}.pzopen{border:none;background:none;font:inherit;text-align:left;cursor:pointer;padding:12px 12px 8px;display:flex;flex-direction:column;gap:8px}.pzopen:hover{background:var(--panel)}.pztitle{font-weight:700;font-size:15px;color:var(--ink)}.pzmeta{font-size:11px;color:var(--gray-3)}.pzacts{display:flex;gap:6px;padding:0 12px 12px}.pzacts button{font:inherit;font-size:12px;border:1px solid var(--hairline);background:var(--paper);border-radius:var(--radius);padding:4px 10px;cursor:pointer}.pzacts button:hover{background:var(--panel)}.thumb{display:grid;gap:0;width:100%;border:1px solid var(--ink)}.thumb span{border:.5px solid #ededed}.thumb span.b{background:var(--ink)}.titleinput{font:inherit;font-size:16px;font-weight:700;border:none;background:none;padding:4px 6px;min-width:160px;color:var(--ink)}.titleinput:focus{outline:1px solid var(--sel-cell);border-radius:3px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#12121259;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--paper);border:1px solid var(--ink);border-radius:6px;padding:22px;width:360px;max-width:90vw;display:flex;flex-direction:column;gap:16px}.modal h2{margin:0;font-size:18px;font-weight:700}.modal .field{display:flex;flex-direction:column;gap:6px}.modal .field>span{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--gray-3)}.modal .field input{font:inherit;font-size:15px;padding:8px 10px;border:1px solid var(--hairline);border-radius:var(--radius)}.modal .field input:focus{outline:1px solid var(--sel-cell)}.sizeopts{display:flex;gap:10px}.sizeopt{flex:1;display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper);cursor:pointer;font:inherit}.sizeopt:hover{background:var(--panel)}.sizeopt.on{border-color:var(--ink);background:var(--sel-cross)}.sizeopt .sz{font-size:15px;font-weight:700;color:var(--ink)}.sizeopt .tag{font-size:11px;color:var(--gray-2)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.modal-actions .tbtn{border:1px solid var(--hairline)}.modal-actions .tbtn.primary{border-color:var(--ink)}.notes-side{position:absolute;top:0;right:0;z-index:5;display:flex;flex-direction:column;align-items:flex-end}.notesmenu{position:relative;flex:0 0 auto}.notesbtns{display:flex;gap:6px}.notesbtn{border:1px solid var(--ink)}.notesbtn.on{background:var(--ink);color:var(--paper)}.notespanel{position:absolute;top:calc(100% + 4px);right:0;z-index:10;width:280px;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius);display:flex;flex-direction:column}.notespanel-head{display:flex;align-items:center;justify-content:space-between;padding:7px 8px 7px 12px;border-bottom:1px solid var(--hairline)}.notespanel-head span{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--gray-3);font-weight:600}.notesx{font:inherit;font-size:18px;line-height:1;border:none;background:none;color:var(--gray-3);cursor:pointer;padding:0 4px;border-radius:var(--radius)}.notesx:hover{color:var(--ink);background:var(--panel)}.notesarea{font:inherit;font-size:13px;line-height:1.5;color:var(--gray-1);border:none;background:none;resize:vertical;min-height:180px;padding:10px 12px}.notesarea:focus{outline:none}.notesarea::placeholder{color:var(--gray-3)}.rules-modal{width:min(760px,92vw);max-height:88vh;padding:24px 28px;gap:0}.rules-head{display:flex;align-items:flex-start;justify-content:space-between}.rules-head .notesx{font-size:24px}.rules-sub{margin:4px 0 16px;font-size:13px;color:var(--gray-2)}.rules-body{overflow-y:auto;display:flex;flex-direction:column;gap:18px}.rules-sec h3{margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gray-3)}.rules-sec ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px}.rules-sec li{font-size:14px;line-height:1.5;color:var(--gray-1)}.rules-src{margin:18px 0 0;padding-top:14px;border-top:1px solid var(--hairline);font-size:11px;color:var(--gray-3)}.upgrade-modal{max-width:380px}.upgrade-body{margin:0;font-size:15px;color:var(--gray-1);line-height:1.6}.upgrade-modal .modal-actions{margin-top:8px}.upgrade-modal .modal-actions a{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.toolbar-export-group{display:flex;align-items:center;gap:4px}.acct-page{display:flex;flex-direction:column;min-height:100vh;background:var(--paper);font-family:var(--font)}.acct-head{display:flex;align-items:center;padding:0 24px;height:52px;border-bottom:1px solid var(--hairline);position:relative}.acct-head-back{flex:0 0 auto}.acct-title{position:absolute;left:50%;transform:translate(-50%);margin:0;font-size:18px;font-weight:700;color:var(--ink);pointer-events:none}.acct-body{max-width:760px;width:100%;margin:0 auto;padding:40px 24px;display:flex;flex-direction:column;gap:48px}.acct-section{display:flex;flex-direction:column;gap:16px}.acct-section-title{margin:0;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray-3)}.acct-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden}.acct-stat{display:flex;flex-direction:column;gap:6px;padding:20px 22px;background:var(--paper)}.acct-stat-value{font-size:26px;font-weight:700;color:var(--ink);letter-spacing:-.03em}.acct-stat-label{font-size:12px;color:var(--gray-2)}.acct-clerk-wrap{width:100%;overflow:hidden}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:var(--paper);font-family:var(--font)}.auth-header{text-align:center}.auth-title{margin:0 0 6px;font-size:28px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.auth-sub{margin:0;font-size:15px;color:var(--gray-2)}
