/* Chemistry Crosswords: component-scoped styles. Theme-independent and dependency-free. */
.ccw-app,.ccw-library,.ccw-library-back{--ccw-blue:#234765;--ccw-green:#3F7152;--ccw-yellow:#FDE783;--ccw-orange:#FF751F;--ccw-muted:#546273;--ccw-border:#d8e0e5;box-sizing:border-box;color:#213443;font-family:inherit;line-height:1.5}
.ccw-app{position:relative}
.ccw-app *,.ccw-library *{box-sizing:border-box}
.ccw-shell{width:100%;max-width:none;margin:1.5rem auto;padding:clamp(12px,2vw,24px);border:1px solid var(--ccw-border);border-radius:14px;background:#fff;box-shadow:0 6px 20px rgba(35,71,101,.07)}
.ccw-header{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:4px}
.ccw-title{color:var(--ccw-blue);font-size:clamp(1.3rem,2.2vw,1.8rem);line-height:1.25;margin:0!important}
.ccw-tag{background:#edf4f8;color:var(--ccw-blue);font-size:.76rem;font-weight:700;border-radius:999px;padding:4px 12px;white-space:nowrap}
.ccw-inline-note{margin:0 0 0 clamp(0px,1.1vw,12px)!important;color:var(--ccw-muted);font-size:.92rem;line-height:1.35;font-weight:400;flex:1 1 400px;min-width:230px}
.ccw-intro{margin:8px 0 18px!important;color:var(--ccw-muted);font-size:.95rem}
/* The left track follows the actual grid width instead of reserving a large empty column.
   For unusually wide grids it is capped, and the grid viewport scrolls internally. */
.ccw-workspace{--ccw-cell:clamp(29px,2.75vw,43px);display:grid;grid-template-columns:minmax(0,min(65%,calc(var(--ccw-cols,18) * var(--ccw-cell) + 8px))) minmax(0,1fr);gap:clamp(12px,1.1vw,18px);align-items:start}
.ccw-left,.ccw-right{min-width:0}
.ccw-current-clue{font-size:calc(1rem + 1.333px);border-left:4px solid var(--ccw-orange);background:#fff8ee;padding:10px 12px;min-height:55px;border-radius:0 7px 7px 0;margin-bottom:14px;font-weight:650;color:var(--ccw-blue)}
.ccw-grid-viewport{overflow:auto;max-width:100%;scrollbar-color:#afc0ca transparent;padding:3px 4px 10px 3px;overscroll-behavior-x:contain}
.ccw-grid{display:grid;grid-template-columns:repeat(var(--ccw-columns),var(--ccw-cell));grid-auto-rows:var(--ccw-cell);width:max-content;outline:2px solid var(--ccw-blue);background:var(--ccw-blue)}
.ccw-cell{position:relative;display:flex;align-items:center;justify-content:center;border:1px solid #8296a7;border-radius:0!important;padding:0!important;margin:0!important;min-width:0;min-height:0;font-family:inherit;line-height:1!important;box-shadow:none!important}
.ccw-block{background:var(--ccw-blue);border-color:#31526c}
.ccw-letter{background:#fff;color:#203c55;cursor:pointer;font-size:clamp(15px,1.5vw,23px);font-weight:750;text-transform:uppercase;-webkit-tap-highlight-color:transparent}
.ccw-letter:hover{background:#fff7dd}
.ccw-letter.ccw-selected{background:var(--ccw-yellow)}
.ccw-letter.ccw-active{background:#ffe8a0;outline:2px solid var(--ccw-green);outline-offset:-3px;z-index:2}
.ccw-letter.ccw-correct:not(.ccw-selected){color:var(--ccw-green)}
.ccw-letter.ccw-incorrect,.ccw-letter.ccw-incorrect.ccw-selected{color:#b12020;background:#ffe2dd}
.ccw-letter.ccw-final-cell{border:3px solid var(--ccw-orange);z-index:1}
.ccw-letter.ccw-final-cell.ccw-active{outline:2px solid var(--ccw-green);outline-offset:-5px;z-index:3}
.ccw-cell-number{position:absolute;top:2px;left:2px;font-size:8px;font-weight:650;color:#4c5c66;line-height:1}
.ccw-cell-final-number{position:absolute;bottom:1px;right:2px;font-size:8px;font-weight:900;line-height:1;color:#b7440b;background:#fff4e9;border-radius:2px;padding:0 1px}
.ccw-cell-letter{line-height:1;pointer-events:none}
.ccw-right{max-height:710px;overflow:auto;padding:0 5px 8px 0;scrollbar-color:#afc0ca transparent}
.ccw-clue-section+.ccw-clue-section{margin-top:20px}
.ccw-clue-heading{color:var(--ccw-blue)!important;font-size:1.03rem!important;margin:0 0 9px!important;padding:0 0 7px;border-bottom:2px solid #e6eef2}
.ccw-clue-list{display:flex;flex-direction:column;gap:5px}
.ccw-clue{display:flex;width:100%;align-items:flex-start;text-align:left;gap:9px;border:1px solid transparent!important;background:transparent;color:#253947!important;padding:9px 10px!important;font-family:inherit;font-size:calc(.9rem + 1.333px)!important;line-height:1.45!important;border-radius:7px!important;cursor:pointer;box-shadow:none!important;transition:background .12s ease}
.ccw-clue:hover{background:#f0f5f8!important}
.ccw-clue.ccw-clue-active{border-color:var(--ccw-orange)!important;background:#fff5dc!important;color:#223f58!important}
.ccw-clue-number{min-width:26px;color:var(--ccw-blue);font-weight:750}
.ccw-clue-text{flex:1}
.ccw-tools{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}
.ccw-tool{border:1px solid #b4c3cc!important;background:#fff!important;border-radius:6px!important;color:var(--ccw-blue)!important;cursor:pointer;font:inherit!important;font-size:.82rem!important;font-weight:650!important;padding:8px 10px!important;line-height:1.2!important;text-transform:none!important}
.ccw-tool:hover:not(:disabled){background:#eaf3ee!important;border-color:var(--ccw-green)!important}
.ccw-tool:disabled{opacity:.42;cursor:not-allowed}
.ccw-hint-indicator{color:var(--ccw-muted);font-size:.8rem;margin:10px 0 0!important}
.ccw-mystery{margin:24px 0 0;padding:18px;background:#f6f8f8;border:1px solid var(--ccw-border);border-radius:11px}
.ccw-mystery h3{margin:0!important;color:var(--ccw-blue);font-size:1.2rem!important}
.ccw-mystery-help{margin:5px 0 13px!important;color:var(--ccw-muted);font-size:.88rem}
.ccw-mystery-letters{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:17px}
.ccw-mystery-letter{width:clamp(31px,5vw,46px);height:clamp(39px,6vw,51px);border:2px solid var(--ccw-orange);background:#fff;position:relative;border-radius:5px;display:flex;align-items:center;justify-content:center;color:var(--ccw-blue);font-weight:800;font-size:1.25rem}
.ccw-mystery-num{font-size:9px;font-weight:600;position:absolute;top:2px;left:4px;color:#97420e}
.ccw-final-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.ccw-final-label{display:flex;flex-direction:column;gap:4px;color:var(--ccw-blue);font-size:.83rem;font-weight:650;flex:1;min-width:180px}
.ccw-final-input{display:block;width:100%;max-width:360px;min-height:40px;padding:8px 12px!important;border:1px solid #a8bdca!important;border-radius:6px!important;background:#fff!important;color:#223f58!important;text-transform:uppercase;font-family:inherit;font-size:1rem!important}
.ccw-button-primary{background:var(--ccw-green)!important;border:1px solid var(--ccw-green)!important;border-radius:6px!important;color:#fff!important;padding:10px 14px!important;min-height:40px;cursor:pointer;font-size:.85rem!important;font-weight:700!important;line-height:1.2!important;text-transform:none!important}
.ccw-button-primary:hover:not(:disabled){background:var(--ccw-blue)!important}
.ccw-button-primary:disabled{opacity:.68;cursor:default}
.ccw-mystery.ccw-complete{border-color:var(--ccw-green);background:#f0f7f0}
.ccw-status{margin:14px 0 0;padding:9px 12px;border-left:3px solid var(--ccw-blue);color:var(--ccw-blue);background:#eff4f6;border-radius:0 5px 5px 0;font-size:.9rem}
.ccw-status-success{border-left-color:var(--ccw-green);background:#eef8ed;color:#245434}
.ccw-status-error{border-left-color:#c13c36;background:#fff0ee;color:#952a23}
.ccw-mobile-input{position:absolute!important;left:0!important;top:0!important;width:2px!important;height:2px!important;opacity:.01!important;border:0!important;padding:0!important}
.ccw-letter:focus-visible,.ccw-clue:focus-visible,.ccw-tool:focus-visible,.ccw-button-primary:focus-visible,.ccw-final-input:focus-visible,.ccw-library-title:focus-visible{outline:3px solid var(--ccw-orange)!important;outline-offset:2px!important}
.ccw-library{margin:22px auto}
.ccw-library h2{color:var(--ccw-blue)!important}
/* Two rows of two cards on desktop; additional puzzles wrap into new rows. */
.ccw-library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
/* Compact crossword library cards: only the black title/arrow is a link. */
.ccw-library-card{display:block;color:#111!important;border:1px solid var(--ccw-border);border-radius:12px;padding:14px 16px;background:#fff;box-shadow:0 4px 16px rgba(35,71,101,.04);min-height:0;height:auto}
.ccw-library-card:hover{border-color:#bdcbd3;box-shadow:0 5px 18px rgba(35,71,101,.09)}
.ccw-library-card-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.ccw-library-title,.ccw-library-title:visited{color:#111!important;text-decoration:none!important;font-size:1.08rem!important;font-weight:700!important;line-height:1.3!important;flex:0 1 auto}
.ccw-library-title:hover{color:#111!important;text-decoration:underline!important;text-underline-offset:3px}
.ccw-library-title span{display:inline;color:inherit!important;white-space:nowrap}
.ccw-library-description{color:var(--ccw-muted)!important;font-size:.87rem!important;line-height:1.4!important;margin:7px 0 0!important}
.ccw-difficulty{display:inline-block;border-radius:50px;color:#fff;padding:3px 10px;font-size:.74rem;font-weight:700;background:var(--ccw-blue)}
.ccw-difficulty-easy{background:var(--ccw-green)}.ccw-difficulty-medium,.ccw-difficulty-intermediate{background:var(--ccw-blue)}.ccw-difficulty-advanced,.ccw-difficulty-hard{background:var(--ccw-orange);color:#352014}
.ccw-library-back{max-width:1220px;margin:1rem auto 0}.ccw-library-back a{color:var(--ccw-blue);font-weight:700}
@media(min-width:701px){
/* Only the full crossword player uses viewport break-out. The chooser should
   remain in normal document flow, otherwise it drifts to the right in themes
   with offset/nested content wrappers. */
.ccw-app{position:relative;left:50%;width:min(1520px, calc(100vw - 48px))!important;max-width:none!important;transform:translateX(-50%);}
}
/* v1.7.7: Explicitly fix the widths of the actual grid tracks and cards.
   The outer shortcode may be the theme's full-width element; the grid is not.
   The earlier guessed .chem-crossword-library-* selectors never matched. */
.ccw-library.ccw-library--compact{box-sizing:border-box!important;display:block!important;position:static!important;left:auto!important;right:auto!important;transform:none!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:22px auto!important;padding:0!important}
.ccw-library.ccw-library--compact > .ccw-library-grid.ccw-library-grid--fixed{
  --ccw-library-tracks:repeat(2,minmax(0,462px));
  display:grid!important;grid-template-columns:var(--ccw-library-tracks)!important;
  justify-content:center!important;gap:20px 16px!important;
  width:min(100%,940px)!important;max-width:940px!important;
  margin:0 auto!important;box-sizing:border-box!important;
}
.ccw-library.ccw-library--compact .ccw-library-card{
  box-sizing:border-box!important;width:100%!important;max-width:462px!important;
  min-width:0!important;justify-self:center!important;
}
@media(max-width:620px){
  .ccw-library.ccw-library--compact > .ccw-library-grid.ccw-library-grid--fixed{
    --ccw-library-tracks:minmax(0,1fr);
    max-width:462px!important;
  }
}
@media(max-width:1050px){.ccw-workspace{grid-template-columns:minmax(0,1fr)}.ccw-workspace{--ccw-cell:32px}.ccw-right{max-height:none;overflow:visible;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.ccw-clue-section+.ccw-clue-section{margin-top:0}}
@media(max-width:700px){.ccw-app,.ccw-library{width:100%;max-width:100%;}.ccw-shell{margin:1rem auto;}}
@media(max-width:550px){.ccw-shell{padding:12px}.ccw-workspace{--ccw-cell:31px}.ccw-right{display:block}.ccw-clue-section+.ccw-clue-section{margin-top:20px}.ccw-current-clue{font-size:calc(.9rem + 1.333px)}.ccw-tool{flex:1 1 auto}.ccw-mystery{padding:13px}.ccw-mystery-letter{width:33px;height:39px;font-size:1rem}.ccw-mystery-letters{gap:5px}}
@media(prefers-reduced-motion:reduce){.ccw-clue{transition:none}}

/* v1.7: final key word is auto-filled directly from the numbered grid cells. */
.ccw-final-controls{margin-top:2px}
