.dcb-puzzle{--dcb-cell:32px;--dcb-ink:#153733;--dcb-accent:#17695d;box-sizing:border-box;background:#f6f2e9;color:var(--dcb-ink);border:1px solid #b6c7bb;border-radius:12px;font:16px/1.4 system-ui,sans-serif;width:100%;height:min(850px,90dvh);min-height:400px;overflow:hidden;padding:16px}
.dcb-puzzle *{box-sizing:border-box}.dcb-puzzle.is-ready{display:flex;flex-direction:column;gap:12px;padding:0}
.dcb-top{padding:14px 20px 0;flex-shrink:0}.dcb-top small{font-size:11px;font-weight:700;letter-spacing:.08em}.dcb-title{font-size:22px;line-height:1.1;margin:4px 0 10px}.dcb-current-clue{background:#fff;border-left:4px solid var(--dcb-accent);padding:10px 14px;max-height:110px;overflow:auto}.dcb-current-clue strong{display:block;font-size:12px;margin-bottom:3px}.dcb-current-clue span{display:block;font-size:18px;line-height:1.3;overflow-wrap:anywhere}
.dcb-writing{position:relative;margin-top:10px}.dcb-word-boxes{display:flex;gap:3px;overflow:auto;padding:2px 0;pointer-events:none;min-height:38px}.dcb-word-boxes span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:34px;border:1px solid #78938a;background:#fff;font:bold 23px/1 monospace;border-radius:3px}.dcb-word-boxes .is-current{background:#ffdc7e;border:2px solid #153733}
.dcb-word-input{display:block!important;width:100%;height:34px;font:18px/1.2 monospace!important;padding:4px 8px!important;border:1px solid #78938a!important;border-radius:4px!important;margin:4px 0!important;color:#153733!important;background:white!important;letter-spacing:.18em;min-width:0}
.dcb-controls{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.dcb-puzzle button,.dcb-reader-bar button{font:600 12px/1.2 system-ui,sans-serif;border:1px solid #78938a;border-radius:4px;padding:8px 10px;min-height:36px;cursor:pointer;background:#fff;color:#153733}.dcb-puzzle :focus-visible,.dcb-reader-dialog :focus-visible{outline:3px solid #e49a15;outline-offset:2px}
.dcb-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,30%);gap:18px;flex:1;min-height:0;padding:0 20px}.dcb-grid-viewport{overflow:auto;min-width:0;min-height:0;overscroll-behavior:contain;touch-action:pan-x pan-y;scrollbar-gutter:stable;background:#e5e9df;padding:8px;border-radius:6px}.dcb-grid{display:grid;width:max-content;gap:1px;background:#8a9b91;border:1px solid #8a9b91}.dcb-grid-row{display:contents}.dcb-grid .dcb-cell,.dcb-grid .dcb-block,.dcb-grid .dcb-clue-cell{width:var(--dcb-cell);height:var(--dcb-cell);min-height:0;border:0;border-radius:0;position:relative;margin:0;padding:0;overflow:hidden}
.dcb-grid .dcb-cell{background:white;color:#153733;font:bold calc(var(--dcb-cell)*.62)/1 monospace}.dcb-cell-number{position:absolute;top:1px;left:2px;font:700 max(8px,calc(var(--dcb-cell)*.23))/1 system-ui,sans-serif}.dcb-letter{display:block;padding-top:3px}.dcb-grid .dcb-block{background:#18362f}.dcb-grid .dcb-clue-cell{background:#e1dbca;display:flex;flex-direction:column}.dcb-clue-cell button{font-size:max(7px,calc(var(--dcb-cell)*.22));line-height:1.05;min-height:0;flex:1;padding:1px;border-radius:0;overflow:hidden;background:#e1dbca;text-align:left;border:0;border-bottom:1px solid #a29c8f}.dcb-clue-cell button:last-child{border:0}
.dcb-grid .dcb-cell.is-word{background:#e0f0e5}.dcb-grid .dcb-cell.is-current{background:#ffdc7e;box-shadow:inset 0 0 0 2px #153733}.dcb-grid .dcb-cell.is-wrong{color:#a22222;background:#ffe0da}
.dcb-clues{overflow:auto;min-height:0}.dcb-clues h3{font-size:15px;margin:0 0 8px}.dcb-clues h3:not(:first-child){margin-top:18px}.dcb-clue-button{display:block;width:100%;text-align:left;margin-bottom:6px;overflow-wrap:anywhere}.dcb-clue-button.is-active{background:#17695d;color:white;border-color:#17695d}.dcb-footer{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 20px;border-top:1px solid #b6c7bb;flex-shrink:0}.dcb-footer>span:first-child{font-size:12px;font-weight:700;margin-right:auto}.dcb-status{font-size:12px}.dcb-preview-label{margin-left:12px}
.dcb-reader-dialog{position:fixed;inset:0;z-index:210;background:#e5e0d4;display:flex;flex-direction:column;overflow:hidden;height:100dvh}.dcb-reader-dialog[hidden]{display:none!important}.dcb-reader-bar{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:5px 12px;background:#151515;color:white;min-height:44px;flex-shrink:0}.dcb-reader-bar strong{font:700 11px/1.2 system-ui,sans-serif;letter-spacing:.06em}.dcb-reader-bar button{background:#242424;color:white;border-color:#777;border-radius:20px;padding:7px 12px;min-height:30px}.dcb-reader-stage{flex:1;min-height:0;padding:16px;display:flex;justify-content:center}.dcb-reader-stage>.dcb-puzzle{height:100%;min-height:0;max-width:1250px}.dcb-reader-open{overflow:hidden}.dcb-reader-open .ds-reader-font-tools{display:none!important}
@media(max-width:700px){.dcb-puzzle{height:min(800px,92dvh);min-height:380px}.dcb-top{padding:10px 12px 0}.dcb-title{font-size:17px;margin:3px 0 8px}.dcb-current-clue{padding:8px 10px;max-height:85px}.dcb-current-clue span{font-size:16px}.dcb-writing{margin-top:6px}.dcb-word-boxes span{width:26px;flex-basis:26px;height:30px;font-size:21px}.dcb-layout{grid-template-columns:minmax(0,1fr);padding:0 12px}.dcb-clues{display:none}.dcb-controls{gap:4px;margin-top:5px}.dcb-controls button{font-size:11px;min-height:32px;padding:6px 8px}.dcb-footer{padding:8px 12px;gap:6px}.dcb-reader-stage{padding:6px}.dcb-reader-bar strong{display:none}.dcb-puzzle.is-ready{gap:8px}}
@media(orientation:landscape) and (max-height:500px){.dcb-title,.dcb-top>small{display:none}.dcb-top{padding:6px 12px 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,35%);gap:6px}.dcb-current-clue{max-height:66px}.dcb-writing{margin:0}.dcb-word-boxes{display:none}.dcb-controls{grid-column:1/-1;margin:0}.dcb-word-input{height:36px;margin:0!important}.dcb-layout{padding:0 12px;grid-template-columns:minmax(0,1fr)}.dcb-clues{display:none}.dcb-footer{padding:5px 12px}.dcb-reader-stage{padding:5px}.dcb-puzzle.is-ready{gap:5px}}
