/*
 * Clip art browser: the redesigned clip art panel (#clip-art-browser in partials/_controls.php,
 * widgets/panels/clipArtBrowserPanel.coffee). Plain CSS like tuck.css, linked from views/lab.php.
 */

#clip-art-browser {display: none}
#clip-art-browser.panel {max-height: none}
#clip-art-browser [hidden] {display: none !important}

#clip-art-browser .cab {
	display: flex;
	height: calc(100vh - 175px);
	min-height: 453px;
	max-height: 640px;
	font-family: 'museosans', Arial, sans-serif;
	font-size: 14px;
	line-height: 1.4;
	color: #24323A;
	text-align: left;
}
#clip-art-browser h2, #clip-art-browser h3, #clip-art-browser p {margin: 0; padding: 0}
#clip-art-browser button {font: inherit; margin: 0; cursor: pointer; -webkit-appearance: none; appearance: none}
#clip-art-browser button:disabled {cursor: default; opacity: .7}
#clip-art-browser button:focus-visible,
#clip-art-browser .cab-tile:focus-visible,
#clip-art-browser textarea:focus-visible {outline: 2px solid #00A2EA; outline-offset: 2px}
#clip-art-browser .cab-sr {position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap}

#clip-art-browser .cab-main {flex: 1; min-width: 0; display: flex; flex-direction: column}

/* Header: title row, search, subcategory chips */
#clip-art-browser .cab-head {flex: none; padding: 8px 16px 12px; display: flex; flex-direction: column; gap: 8px; border-bottom: 1px solid #E6EBEE}
#clip-art-browser .cab-titlebar {display: flex; align-items: center; gap: 4px; min-height: 40px}
#clip-art-browser .cab-title {flex: 1; min-width: 0; font-size: 18px; font-weight: 700; color: #24323A; white-space: nowrap; overflow: hidden; text-overflow: ellipsis}
#clip-art-browser .cab-icon-btn {flex: none; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #5B6F79; display: flex; align-items: center; justify-content: center}
#clip-art-browser .cab-icon-btn:hover {background: #F2F5F7; color: #24323A}
#clip-art-browser .cab-back {margin-left: -10px}
#clip-art-browser .cab-expand {margin-right: -10px}
#clip-art-browser .cab-icon-shrink {display: none}
#clip-art-browser.cab-is-expanded .cab-icon-shrink {display: block}
#clip-art-browser.cab-is-expanded .cab-icon-grow {display: none}

#clip-art-browser .cab-search {margin: 0; display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 4px 0 14px; box-sizing: border-box; border: 1.5px solid #CED5D9; border-radius: 10px; background: #FFFFFF; color: #5B6F79}
#clip-art-browser .cab-search:focus-within {border-color: #00A2EA; box-shadow: 0 0 0 3px #D9F1FC}
#clip-art-browser .cab-search svg {flex: none}
#clip-art-browser .cab-search input {flex: 1; min-width: 0; width: auto; height: 100%; margin: 0; padding: 0; border: 0; outline: none; box-shadow: none; background: transparent; font: inherit; font-size: 15px; color: #24323A}
#clip-art-browser .cab-search input::placeholder {color: #7A8F99}
#clip-art-browser .cab-search input::-webkit-search-cancel-button {-webkit-appearance: none}
#clip-art-browser .cab-clear {flex: none; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #5B6F79; display: flex; align-items: center; justify-content: center}
#clip-art-browser .cab-clear:hover {background: #F2F5F7}

#clip-art-browser .cab-scope {display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: 0 16px}
#clip-art-browser .cab-scope::-webkit-scrollbar {display: none}
#clip-art-browser .cab-scope .cab-chip {flex: none; height: 32px; font-size: 13px}

/* Chips: popular searches, related searches, subcategories */
#clip-art-browser .cab-chip-wrap {display: flex; flex-wrap: wrap; gap: 6px}
#clip-art-browser .cab-chip {height: 34px; padding: 0 12px; border: 1px solid #DCE2E5; border-radius: 17px; background: #FFFFFF; font-size: 14px; color: #24323A; white-space: nowrap}
#clip-art-browser .cab-chip:hover {border-color: #00A2EA; color: #00659B}
#clip-art-browser .cab-chip.is-active {border-color: #0077B6; background: #0077B6; color: #FFFFFF; font-weight: 700; cursor: default}

/* Ink swatches */
#clip-art-browser .cab-inks {flex: none; padding: 8px 16px 9px; display: flex; flex-direction: column; gap: 4px; border-bottom: 1px solid #E6EBEE; background: #FAFBFC}
#clip-art-browser .cab-inks-row {display: flex; align-items: flex-start; gap: 8px}
#clip-art-browser .cab-inks-label {flex: none; width: 24px; line-height: 26px; font-size: 12px; font-weight: 700; color: #5B6F79}
#clip-art-browser .cab-swatches {flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 3px}
#clip-art-browser .cab-swatch {width: 26px; height: 26px; padding: 0; border: 2px solid transparent; border-radius: 13px; background: transparent; display: flex; align-items: center; justify-content: center}
#clip-art-browser .cab-swatch span {display: block; width: 18px; height: 18px; border-radius: 9px; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .2)}
#clip-art-browser .cab-swatch:hover {border-color: #B9DDF0}
#clip-art-browser .cab-swatch.is-active {border-color: #00A2EA}
#clip-art-browser .cab-more-inks {height: 26px; padding: 0 8px; border: 1px solid #DCE2E5; border-radius: 13px; background: #FFFFFF; font-size: 12px; font-weight: 700; color: #5B6F79}
#clip-art-browser .cab-more-inks:hover {border-color: #00A2EA; color: #00659B}
#clip-art-browser .cab-ink-note {padding-left: 32px; font-size: 12px; color: #5B6F79; display: flex; align-items: center; gap: 5px}
#clip-art-browser .cab-ink-note.is-warning {color: #8A4B00}
#clip-art-browser .cab-ink-note svg {flex: none}

/* Scrolling content */
#clip-art-browser .cab-body {flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 14px}
#clip-art-browser .cab-body > * {flex-shrink: 0}
#clip-art-browser .cab-section {display: flex; flex-direction: column; gap: 8px}
#clip-art-browser .cab-label {font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #5B6F79}
#clip-art-browser .cab-loading {padding: 48px 0; text-align: center; color: #5B6F79}
#clip-art-browser .cab-error {padding: 32px 0; display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; color: #5B6F79}
#clip-art-browser .cab-count {font-size: 13px; color: #5B6F79; margin-bottom: -6px}
#clip-art-browser .cab-count strong {color: #24323A}

/* Category cards */
#clip-art-browser .cab-cats {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px}
#clip-art-browser .cab-cat {height: 64px; padding: 6px 10px 6px 6px; border: 0; border-radius: 12px; background: #F2F5F7; display: flex; align-items: center; gap: 10px; text-align: left; color: #24323A}
#clip-art-browser .cab-cat:hover {background: #E6F4FB}
#clip-art-browser .cab-cat img {flex: none; width: 52px; height: 52px; object-fit: contain; mix-blend-mode: multiply}
#clip-art-browser .cab-cat-text {min-width: 0; display: flex; flex-direction: column}
#clip-art-browser .cab-cat-name {font-size: 15px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis}
#clip-art-browser .cab-cat-count {font-size: 12px; color: #5B6F79}

/* Clipart and subcategory tiles. The GIF thumbnails have a white background (multiply drops it onto the
   grey tile); light inks use the transparent PNGs on a dark tile instead (.cab-grid--png/--dark) */
#clip-art-browser .cab-grid {list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px}
#clip-art-browser .cab-grid > li {margin: 0; padding: 0; float: none; width: auto; list-style: none}
#clip-art-browser .cab-tile,
#clip-art-browser .cab-thumb {position: relative; aspect-ratio: 1 / 1; box-sizing: border-box; padding: 8px; border-radius: 12px; background: #F2F5F7; display: flex; align-items: center; justify-content: center; overflow: hidden}
#clip-art-browser .cab-tile {cursor: pointer}
#clip-art-browser .cab-tile.ui-draggable {cursor: grab}
#clip-art-browser .cab-tile:hover,
#clip-art-browser .cab-sub:hover .cab-thumb {box-shadow: inset 0 0 0 2px #00A2EA}
#clip-art-browser .cab-tile img,
#clip-art-browser .cab-thumb img {display: block; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply}
#clip-art-browser .cab-grid--png .cab-tile img,
#clip-art-browser .cab-grid--png .cab-thumb img {mix-blend-mode: normal}
#clip-art-browser .cab-grid--dark .cab-tile,
#clip-art-browser .cab-grid--dark .cab-thumb {background: #2B3A42}
#clip-art-browser .cab-new {position: absolute; top: 5px; left: 5px; padding: 2px 6px; border-radius: 6px; background: #FFC24A; font-size: 10px; font-weight: 700; line-height: 1.3; letter-spacing: .04em; text-transform: uppercase; color: #3D2A00; pointer-events: none}
#clip-art-browser .cab-sub {width: 100%; padding: 0; border: 0; background: transparent; display: flex; flex-direction: column; gap: 5px; color: #24323A}
#clip-art-browser .cab-sub-name {font-size: 13px; line-height: 1.25; text-align: center; overflow-wrap: anywhere}
#clip-art-browser .cab-sentinel {height: 1px; margin-top: -14px}

/* Notices: results for a related search, trademarks */
#clip-art-browser .cab-notice {display: flex; flex-direction: column; gap: 10px; padding: 12px 14px; border-radius: 12px; background: #EEF7FC; font-size: 14px; line-height: 1.4}
#clip-art-browser .cab-notice-row {display: flex; gap: 10px; align-items: flex-start}
#clip-art-browser .cab-notice-row > svg {flex: none; margin-top: 1px; color: #00659B}
#clip-art-browser .cab-notice-chips {display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding-left: 28px}
#clip-art-browser .cab-notice-chips .cab-chip {height: 30px; padding: 0 11px; border-color: #B9DDF0; font-size: 13px; color: #00659B}
#clip-art-browser .cab-also {font-size: 12px; color: #5B6F79}
#clip-art-browser .cab-notice--tm {padding: 14px; background: #FFF6E5; border: 1px solid #F3D28C}
#clip-art-browser .cab-notice--tm .cab-notice-row > svg {color: #8A4B00}
#clip-art-browser .cab-notice-title {font-size: 15px; font-weight: 700}
#clip-art-browser .cab-notice-text {margin-top: 2px; font-size: 13px; line-height: 1.45; color: #5C4A2A}
#clip-art-browser .cab-notice--tm .cab-notice-chips {padding-left: 30px}
#clip-art-browser .cab-notice--tm .cab-chip {height: 34px; padding: 0 12px; border-color: #E8C578; font-size: 14px; font-weight: 700; color: #6B3D00}

/* AI image card */
#clip-art-browser .cab-ai {display: flex; flex-direction: column; gap: 10px; padding: 14px; border: 1px solid #DCE2E5; border-radius: 12px; background: #FFFFFF}
#clip-art-browser .cab-ai--hero {gap: 12px; padding: 16px; border-color: #B9DDF0; border-radius: 14px; background: #F2FAFE}
#clip-art-browser .cab-ai-over {font-size: 13px; color: #5B6F79}
#clip-art-browser .cab-ai-over strong {color: #24323A}
#clip-art-browser .cab-ai-title {display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700}
#clip-art-browser .cab-ai-title--big {font-size: 18px; letter-spacing: -.01em}
#clip-art-browser .cab-ai-title svg {flex: none; color: #00659B}
#clip-art-browser .cab-ai-text {font-size: 13px; line-height: 1.45; color: #5B6F79}
#clip-art-browser .cab-ai-label {display: flex; flex-direction: column; gap: 6px; font-size: 12px; font-weight: 700; color: #5B6F79}
#clip-art-browser .cab-ai-prompt {width: 100%; box-sizing: border-box; margin: 0; padding: 10px 12px; resize: none; border: 1.5px solid #CED5D9; border-radius: 10px; background: #FFFFFF; font: inherit; font-size: 14px; font-weight: 400; line-height: 1.4; color: #24323A}
#clip-art-browser .cab-ai-prompt:focus {border-color: #00A2EA; outline: none; box-shadow: 0 0 0 3px #D9F1FC}
#clip-art-browser .cab-ai--hero .cab-ai-prompt {border-color: #00A2EA; font-size: 15px}
#clip-art-browser .cab-ai-tip {font-size: 12px; line-height: 1.45; color: #5B6F79}
#clip-art-browser .cab-ai-error {font-size: 13px; color: #B3261E}
#clip-art-browser .cab-ai-create {height: 44px; border: 0; border-radius: 10px; background: #0077B6; font-size: 15px; font-weight: 700; color: #FFFFFF}
#clip-art-browser .cab-ai-create:hover {background: #00659B}
#clip-art-browser .cab-ai--compact {flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 14px; border: 1.5px dashed #9FD8F3; background: #F2FAFE}
#clip-art-browser .cab-ai--compact p {min-width: 0; font-size: 14px}
#clip-art-browser .cab-ai-open-inline {flex: none; height: 38px; padding: 0 12px; border: 0; border-radius: 10px; background: #0077B6; display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: #FFFFFF}
#clip-art-browser .cab-ai-open-inline:hover {background: #00659B}

/* Footer */
#clip-art-browser .cab-foot {flex: none; padding: 10px 16px 14px; border-top: 1px solid #E6EBEE; background: #FFFFFF}
#clip-art-browser .cab-ai-open {width: 100%; height: 44px; border: 1.5px dashed #9FD8F3; border-radius: 10px; background: #F2FAFE; display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 14px; font-weight: 700; color: #00659B}
#clip-art-browser .cab-ai-open:hover {border-color: #00A2EA; background: #E6F4FB}

/* Wide view: categories down the side, bigger tiles */
#clip-art-browser.cab-is-expanded {width: 758px; z-index: 50}
#clip-art-browser .cab-side {flex: none; width: 190px; box-sizing: border-box; padding: 14px 10px; border-right: 1px solid #E6EBEE; background: #FAFBFC; display: flex; flex-direction: column; gap: 2px; overflow-y: auto}
#clip-art-browser .cab-side-title {padding: 2px 10px 8px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #5B6F79}
#clip-art-browser .cab-side-item {flex: none; height: 34px; padding: 0 10px; border: 0; border-radius: 8px; background: transparent; text-align: left; font-size: 14px; color: #24323A}
#clip-art-browser .cab-side-item:hover, #clip-art-browser .cab-side-sub:hover {background: #EEF2F4}
#clip-art-browser .cab-side-item.is-open {font-weight: 700}
#clip-art-browser .cab-side-item.is-active, #clip-art-browser .cab-side-sub.is-active {background: #E0F2FB; font-weight: 700; color: #00659B}
#clip-art-browser .cab-side-subs {flex: none; display: flex; flex-direction: column; gap: 1px; margin: 0 0 4px 10px; padding-left: 8px; border-left: 1.5px solid #E1E7EA}
#clip-art-browser .cab-side-sub {flex: none; min-height: 28px; padding: 4px 10px; border: 0; border-radius: 6px; background: transparent; text-align: left; font-size: 13px; line-height: 1.3; color: #3F525B}
#clip-art-browser.cab-is-expanded .cab-grid {grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px}
#clip-art-browser.cab-is-expanded .cab-cats {grid-template-columns: repeat(3, minmax(0, 1fr))}
#clip-art-browser.cab-is-expanded .cab-tile {padding: 10px}

/* While dragging a tile onto the shirt (appended to #app-wrap, outside the panel) */
.cab-drag-helper {width: 90px; height: 90px; box-sizing: border-box; padding: 8px; border-radius: 12px; background: #F2F5F7; box-shadow: 0 8px 24px rgba(20, 30, 36, .25); display: flex; align-items: center; justify-content: center; pointer-events: none}
.cab-drag-helper img {display: block; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply}
.cab-drag-helper.is-png img {mix-blend-mode: normal}

/* Phones: the panel fills the left drawer from mobile.js */
.cab-added {display: none}
@media only screen and (max-width: 768px) {
	#clip-art-browser .cab {height: 100vh; height: 100dvh; min-height: 0; max-height: none}
	#clip-art-browser .cab-titlebar {padding-right: 30px}
	#clip-art-browser .cab-expand {display: none}
	#clip-art-browser .cab-search input {font-size: 16px} /* no zoom on focus in iOS */
	#clip-art-browser .cab-tile:hover,
	#clip-art-browser .cab-sub:hover .cab-thumb {box-shadow: none}

	/* After adding: the drawer closes and this bar sits above the price bar */
	.cab-added {position: fixed; left: 12px; right: 12px; bottom: calc(58px + env(safe-area-inset-bottom, 0px) + 10px); z-index: 1998; display: flex; align-items: center; gap: 6px; padding: 8px 8px 8px 14px; border-radius: 12px; background: #24323A; box-shadow: 0 8px 24px rgba(20, 30, 36, .25); font: 15px/1.3 'museosans', Arial, sans-serif; color: #FFFFFF}
	.cab-added[hidden] {display: none}
	.cab-added-check {flex: none; display: flex; color: #7FD3F7}
	.cab-added-text {flex: 1; min-width: 0}
	.cab-added button {height: 40px; margin: 0; border: 0; border-radius: 10px; font: inherit; font-weight: 700; cursor: pointer}
	.cab-added-undo {padding: 0 10px; background: transparent; color: #7FD3F7}
	.cab-added-more {padding: 0 14px; background: #0077B6; color: #FFFFFF}
}

/* Small phones (iPhone SE): the 8 inks and "+24" fit on one row without the label */
@media only screen and (max-width: 360px) {
	#clip-art-browser .cab-inks {padding-left: 12px; padding-right: 12px}
	#clip-art-browser .cab-inks-label {display: none}
	#clip-art-browser .cab-swatches {gap: 2px}
	#clip-art-browser .cab-swatch {width: 24px; height: 24px}
	#clip-art-browser .cab-more-inks {height: 24px; padding: 0 6px}
	#clip-art-browser .cab-ink-note {padding-left: 0}
}
