/* Color Confetti drawing board */
.ccd{--ccd-b:52px;--ccd-bg:#f3f9f8;--ccd-line:#d7e7e4;--ccd-ink:#1d1d1d;--ccd-acc:#fb8c2f;--ccd-acc-soft:#fff1e2;--ccd-teal:#418680;--ccd-cur:#1e7be0;--ccd-cur-ink:#1e7be0;
  position:relative;display:block;width:100%;height:min(80vh,820px);min-height:min(540px,calc(100vh - 24px));background:var(--ccd-bg);border:1px solid var(--ccd-line);border-radius:20px;overflow:hidden;
  font:14px/1.35 Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ccd-ink);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;box-sizing:border-box;text-align:left}
.ccd *,.ccd *::before,.ccd *::after{box-sizing:border-box}
.ccd [hidden]{display:none!important}
.ccd button{font:inherit;color:inherit;cursor:pointer;margin:0;touch-action:manipulation}
.ccd,.ccd-canvas{-webkit-touch-callout:none}
.ccd svg{display:block;width:100%;height:100%}
.ccd.is-compact{--ccd-b:44px}
.ccd.is-full{position:fixed;inset:0;width:100%;height:100%;height:100dvh;min-height:0;border:0;border-radius:0;z-index:2147483600;margin:0}
html.ccd-lock,html.ccd-lock body{overflow:hidden!important;overscroll-behavior:none}
.ccd-placeholder{width:100%}

.ccd-shell{display:grid;width:100%;height:100%}
.ccd[data-layout=wide] .ccd-shell{grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"top top top" "tools stage side"}
.ccd[data-layout=tall] .ccd-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-areas:"top" "stage" "side" "tools"}

/* top bar */
.ccd-top{grid-area:top;display:flex;align-items:center;gap:3px;padding:6px 8px;background:#fff;border-bottom:1px solid var(--ccd-line);min-width:0;padding-top:calc(6px + env(safe-area-inset-top,0px))}
.ccd:not(.is-full) .ccd-top{padding-top:6px}
.ccd-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:9px;border:0;border-radius:12px;background:transparent;transition:background .15s}
.ccd-btn:hover{background:#eef5f4}
.ccd-btn:disabled{opacity:.3;cursor:default;background:transparent}
.ccd-btn:focus-visible,.ccd-tool:focus-visible,.ccd-sw:focus-visible,.ccd-slider:focus-visible{outline:3px solid #3a86ff;outline-offset:2px}
.ccd-accent{background:var(--ccd-acc);color:#fff}
.ccd-accent:hover{background:#f07a17}
.ccd-chip{flex:1 1 auto;min-width:0;margin:0 6px;padding:7px 12px;border-radius:999px;background:#f2f8f7;font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none}
.ccd-chip.is-empty{visibility:hidden}
.ccd-chip-link{background:transparent;text-align:center}
.ccd-chip-link a{color:var(--ccd-teal);text-decoration:none}
.ccd[data-layout=tall] .ccd-chip-link{visibility:hidden}
.ccd-chip-link a:hover{text-decoration:underline}
.ccd[data-layout=tall] .ccd-wide-only{display:none}
.ccd[data-layout=wide] .ccd-narrow-only{display:none}
.ccd:not(.is-full) .ccd-full-only{display:none}
.ccd.is-full .ccd-inline-only{display:none}
.ccd.has-sym .ccd-mirror{background:#ece6ff;color:#5b3fe0}

/* tools */
.ccd-tools{grid-area:tools;background:#fff;scrollbar-width:thin}
.ccd[data-layout=wide] .ccd-tools{display:grid;grid-template-columns:repeat(var(--ccd-tcols,2),var(--ccd-b));grid-auto-rows:var(--ccd-b);gap:6px;padding:8px;align-content:start;overflow-y:auto;border-right:1px solid var(--ccd-line)}
.ccd[data-layout=tall] .ccd-tools{display:flex;gap:6px;overflow-x:auto;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--ccd-line)}
.ccd-tool{flex:none;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:var(--ccd-b);height:var(--ccd-b);padding:4px 2px 3px;border:0;border-radius:14px;background:#f5f9f8;transition:transform .12s,background .12s}
.ccd-tool:hover{background:#eaf3f1}
.ccd-tool.is-on{background:var(--ccd-acc-soft);box-shadow:inset 0 0 0 2.5px var(--ccd-acc);transform:translateY(-1px)}
.ccd-ic{display:block;width:62%;height:62%}
.ccd .tip{fill:var(--ccd-cur)}
.ccd-tl{font-size:9.5px;font-weight:600;line-height:1;color:#4a5856;max-width:100%;overflow:hidden;white-space:nowrap}
.ccd.is-compact .ccd-tl{display:none}
.ccd.is-compact .ccd-ic{width:70%;height:70%}

/* side: colors + size */
.ccd-side{grid-area:side;background:#fff;display:flex;min-height:0}
.ccd[data-layout=wide] .ccd-side{flex-direction:column;gap:10px;padding:8px;border-left:1px solid var(--ccd-line)}
.ccd[data-layout=tall] .ccd-side{flex-direction:column;gap:4px;padding:6px 8px 4px;border-top:1px solid var(--ccd-line)}
.ccd-swatches{display:grid;gap:6px}
.ccd[data-layout=wide] .ccd-swatches{grid-template-columns:repeat(2,30px);grid-auto-rows:30px;overflow-y:auto;flex:1 1 auto;min-height:0;align-content:start;padding:3px}
.ccd[data-layout=tall] .ccd-swatches{grid-auto-flow:column;grid-auto-columns:32px;grid-template-rows:32px;overflow-x:auto;padding:4px 3px}
.ccd-sw{width:100%;height:100%;padding:0;border-radius:50%;border:2px solid rgba(0,0,0,.14);background:var(--c);transition:transform .12s}
.ccd-sw[data-color="#ffffff"]{border-color:#c9d4d2}
.ccd-sw:hover{transform:scale(1.08)}
.ccd-sw.is-on{box-shadow:0 0 0 2.5px #fff,0 0 0 5px var(--ccd-ink);transform:scale(1.04)}
.ccd-sw-any{background:conic-gradient(#ff4d4d,#ffb84d,#fff44d,#5ce65c,#4dd2ff,#6b6bff,#e04dff,#ff4d4d);border-color:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.ccd-size{display:flex;align-items:center;justify-content:center;gap:8px}
.ccd[data-layout=wide] .ccd-size{flex-direction:column-reverse;flex:none}
.ccd-dotbox{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:#f5f9f8}
.ccd-dot{display:block;border-radius:50%;background:var(--ccd-cur-ink)}
.ccd-slider{position:relative;flex:none;touch-action:none;cursor:pointer;border-radius:8px}
.ccd[data-layout=wide] .ccd-slider{width:30px;height:150px}
.ccd[data-layout=wide].is-compact .ccd-slider{height:110px}
.ccd[data-layout=tall] .ccd-slider{flex:1 1 auto;height:30px;max-width:420px}
.ccd-track{position:absolute;inset:0;background:#dfe9e7}
.ccd[data-layout=wide] .ccd-track{clip-path:polygon(38% 100%,62% 100%,100% 0,0 0);border-radius:6px}
.ccd[data-layout=tall] .ccd-track{clip-path:polygon(0 38%,0 62%,100% 100%,100% 0)}
.ccd-thumb{position:absolute;width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid var(--ccd-ink);box-shadow:0 2px 6px rgba(0,0,0,.2)}
.ccd[data-layout=wide] .ccd-thumb{left:3px;bottom:calc(var(--v,.3)*(100% - 24px))}
.ccd[data-layout=tall] .ccd-thumb{top:3px;left:calc(var(--v,.3)*(100% - 24px))}
.ccd-slider.is-off{opacity:.3;pointer-events:none}

/* stage */
.ccd-stage{grid-area:stage;position:relative;overflow:hidden;min-width:0;min-height:0;background:#e4f0ee}
.ccd-canvas{position:absolute;left:0;top:0;display:block;touch-action:none;cursor:crosshair}
.ccd-canvas[data-tool=fill]{cursor:cell}
.ccd-canvas[data-tool=picker]{cursor:copy}
.ccd-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max-content;padding:10px 18px;border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 4px 16px rgba(0,0,0,.08);font-weight:600;font-size:15px;color:#3b4a48;pointer-events:none;opacity:0;transition:opacity .3s;text-align:center;max-width:86%}
.ccd-hint.is-on{opacity:1}
.ccd-toast{position:absolute;left:50%;bottom:14px;transform:translate(-50%,8px);width:max-content;max-width:min(calc(100% - 24px),460px);padding:9px 16px;border-radius:14px;background:#1d2b2a;color:#fff;font-weight:600;font-size:14px;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:6}
.ccd-toast.is-on{opacity:1;transform:translate(-50%,0)}
.ccd-zoom{position:absolute;right:10px;bottom:10px;display:flex;gap:2px;padding:3px;border-radius:14px;background:rgba(255,255,255,.95);box-shadow:0 3px 12px rgba(0,0,0,.1);z-index:3}
.ccd-zoom .ccd-btn{width:36px;height:36px;padding:8px}
.ccd[data-layout=tall] .ccd-zoom{right:8px;bottom:8px}
.ccd[data-layout=tall] .ccd-toast{bottom:58px}
.ccd-start{display:none}
.ccd.is-preview{height:64vh;min-height:380px;max-height:640px}
.ccd.is-preview .ccd-top,.ccd.is-preview .ccd-tools,.ccd.is-preview .ccd-side,.ccd.is-preview .ccd-zoom,.ccd.is-preview .ccd-hint{display:none}
.ccd.is-preview .ccd-start{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border:0;background:rgba(243,249,248,.35);font-size:19px;font-weight:800;color:var(--ccd-ink)}
.ccd-start>span:last-child{padding:14px 26px;border-radius:999px;background:var(--ccd-acc);color:#fff;box-shadow:0 8px 24px rgba(251,140,47,.4)}
.ccd-start-ic{width:64px;height:64px;padding:10px;border-radius:50%;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.12)}

/* magic suggestions */
.ccd-suggest{position:absolute;left:50%;top:10px;transform:translateX(-50%);width:min(700px,calc(100% - 20px));padding:10px 12px;border-radius:18px;background:#fff;box-shadow:0 10px 30px rgba(40,30,90,.18);z-index:5}
.ccd-suggest.is-bottom{top:auto;bottom:58px}
.ccd-sg-h{display:flex;align-items:center;gap:6px;font-weight:600;font-size:14.5px;margin-bottom:8px}
.ccd-sg-h b{color:#5b3fe0}
.ccd-sg-ic{width:18px;height:18px;color:#7b5cff}
.ccd-sg-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ccd-sg-pics{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;margin-bottom:8px}
.ccd-sg-pic{flex:none;width:86px;padding:4px;border:2px solid #ebe6ff;border-radius:14px;background:#fff;display:flex;flex-direction:column;align-items:center;gap:3px}
.ccd-sg-pic:hover{border-color:#7b5cff}
.ccd-sg-pic img{width:74px;height:74px;object-fit:contain}
.ccd-sg-pic span{font-size:11px;font-weight:600;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ccd-sg-link{margin-left:auto;font-weight:600;font-size:13px;color:var(--ccd-teal);text-decoration:none}
.ccd-sg-link:hover{text-decoration:underline}
.ccd-spin{width:16px;height:16px;border-radius:50%;border:3px solid #e1dbff;border-top-color:#7b5cff;animation:ccdspin .8s linear infinite}
@keyframes ccdspin{to{transform:rotate(360deg)}}

/* idea card */
.ccd-ref{position:absolute;right:10px;top:10px;width:250px;max-width:calc(100% - 20px);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.14);z-index:4;overflow:hidden}
.ccd-ref-b{display:flex;gap:10px;padding:10px}
.ccd-ref-b img{flex:none;width:76px;height:96px;object-fit:contain;border-radius:8px;background:#f7f7f7}
.ccd-ref-b p{margin:0 0 8px;font-size:13px;line-height:1.35}
.ccd-ref-tab{display:none;width:100%;padding:8px 12px;border:0;background:#fff;font-weight:700}
.ccd-ref.is-min{width:auto}
.ccd-ref.is-min .ccd-ref-b{display:none}
.ccd-ref.is-min .ccd-ref-tab{display:block}
.ccd[data-layout=tall] .ccd-ref{top:auto;bottom:56px;right:8px;width:230px}

/* buttons, popovers, modals */
.ccd-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ccd-b1,.ccd-b2{border:0;border-radius:999px;padding:9px 16px;font-weight:700;font-size:14px;line-height:1.1}
.ccd-b1{background:var(--ccd-acc);color:#fff}
.ccd-b1:hover{background:#f07a17}
.ccd-b2{background:#edf4f3;color:var(--ccd-ink)}
.ccd-b2:hover{background:#e1ecea}
.ccd-pop{position:absolute;z-index:20;padding:12px;border-radius:18px;background:#fff;box-shadow:0 12px 36px rgba(0,0,0,.2);max-width:min(360px,calc(100% - 12px));max-height:calc(100% - 12px);overflow:auto}
.ccd-pt{font-weight:700;font-size:13px;margin:0 2px 8px;color:#3b4a48}
.ccd-grid{display:grid;grid-template-columns:repeat(auto-fill,58px);gap:6px;width:268px;max-width:calc(100vw - 48px)}
.ccd-opt{width:58px;height:58px;padding:5px;border:2px solid transparent;border-radius:14px;background:#f4f8f7;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ccd-opt canvas{width:44px;height:44px}
.ccd-opt.is-on{border-color:var(--ccd-acc);background:var(--ccd-acc-soft)}
.ccd-papers{grid-template-columns:repeat(auto-fill,80px)}
.ccd-papers .ccd-opt{width:80px;height:auto;gap:4px}
.ccd-papers .ccd-opt canvas{width:66px;height:50px;border-radius:6px;box-shadow:0 0 0 1px rgba(0,0,0,.1)}
.ccd-papers .ccd-opt span{font-size:11px;font-weight:600;white-space:nowrap}
.ccd-seg{display:flex;gap:4px;margin-top:10px;padding:3px;border-radius:12px;background:#edf4f3}
.ccd-seg button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:0;border-radius:10px;background:transparent;font-weight:600;font-size:13px}
.ccd-seg button svg{width:16px;height:16px}
.ccd-seg button.is-on{background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.ccd-list{display:flex;flex-direction:column;min-width:230px}
.ccd-mi{display:flex;align-items:center;gap:12px;padding:10px 12px;border:0;border-radius:12px;background:transparent;text-align:left;font-size:15px;color:var(--ccd-ink);text-decoration:none;font-weight:500}
.ccd-mi:hover{background:#f1f7f6}
.ccd-mi.is-on{background:var(--ccd-acc-soft);font-weight:700}
.ccd-mi-ic{flex:none;width:24px;height:24px}
.ccd-modal{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:14px;background:rgba(18,32,31,.45)}
.ccd-panel{display:flex;flex-direction:column;width:min(420px,100%);max-height:100%;border-radius:20px;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:hidden}
.ccd-panel.is-wide{width:min(900px,100%);height:min(720px,100%)}
.ccd-ph{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 8px 8px 18px;border-bottom:1px solid var(--ccd-line);font-size:16px}
.ccd-pb{padding:16px 18px;overflow:auto;-webkit-user-select:text;user-select:text}
.ccd-confirm p{margin:0 0 16px;color:#46524f}
.ccd-confirm .ccd-row{justify-content:flex-end}
.ccd-note{margin:0 0 12px;color:#5d6b69;font-size:13.5px}
.ccd-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.ccd-gi{position:relative;display:flex;flex-direction:column;gap:6px;padding:6px;border-radius:16px;background:#f4f8f7;border:2px solid transparent}
.ccd-gi.is-on{border-color:var(--ccd-acc)}
.ccd-gopen{display:block;width:100%;aspect-ratio:4/3;padding:0;border:0;border-radius:10px;background:#fff;overflow:hidden}
.ccd-gopen img{width:100%;height:100%;object-fit:contain}
.ccd-gmeta{font-size:12px;font-weight:600;color:#5d6b69;padding:0 4px 2px}
.ccd-gdel{position:absolute;right:10px;top:10px;width:32px;height:32px;padding:7px;border:0;border-radius:10px;background:rgba(255,255,255,.92);color:#b42318}
.ccd-gi-new{align-items:center;justify-content:center;min-height:150px;border:2px dashed #b9d1cd;background:#fff;font-weight:700}
.ccd-gi-new span:first-child{width:34px;height:34px}
.ccd-search{width:100%;margin:0 0 14px;padding:11px 14px;border:2px solid var(--ccd-line);border-radius:12px;font:inherit;font-size:16px;-webkit-user-select:text;user-select:text}
.ccd-search:focus{outline:none;border-color:var(--ccd-acc)}
.ccd-pics{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.ccd-pic{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border:2px solid transparent;border-radius:14px;background:#f4f8f7}
.ccd-pic:hover{border-color:var(--ccd-acc)}
.ccd-pic img{width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;background:#fff;border-radius:8px}
.ccd-pic span{font-size:12px;font-weight:600}
.ccd-colorinput{position:absolute;left:50%;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0}

/* print */
.ccd-print{display:none}
@media print{
  html.ccd-printing body>*:not(.ccd-print){display:none!important}
  html.ccd-printing body{margin:0!important;padding:0!important;background:#fff!important}
  html.ccd-printing .ccd-print{display:flex!important;align-items:center;justify-content:center;width:100%;height:96vh}
  html.ccd-printing .ccd-print img{max-width:100%;max-height:96vh;object-fit:contain}
}
@media (prefers-reduced-motion:reduce){.ccd *{transition:none!important;animation:none!important}}
