.kco-app{
  --kco-sky:#EAF6FF; --kco-ink:#23303E; --kco-sun:#FFD23F;
  --kco-coral:#FF7A85; --kco-mint:#7FDBB6; --kco-card:#FFFFFF; --kco-line:#DCE9F5;
  font-family:'Nunito',sans-serif; color:var(--kco-ink); line-height:1.35;
  width:100%; margin:0 auto 24px; position:relative;
}
/* Container queries ka "container" andar wale wrapper par — taake fixed popups sahi jagah dikhein */
.kco-app .kco-wrap{container-type:inline-size;width:100%}
.kco-app, .kco-app *{box-sizing:border-box}
.kco-app *{margin:0;padding:0;-webkit-tap-highlight-color:transparent}
.kco-app button{font-family:'Nunito',sans-serif;text-transform:none;letter-spacing:normal;white-space:normal;line-height:1.2}

.kco-app .kco-brand{text-align:center;margin:0 0 14px}
.kco-app .kco-brand-title{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(1.4rem,4vw,2.1rem);letter-spacing:.5px;line-height:1.2;color:var(--kco-ink)}
.kco-app .kco-brand-sub{font-weight:700;color:#5B6B7C;font-size:.95rem;margin-top:4px}
.kco-app .kco-layout{display:flex;gap:16px;align-items:flex-start}
/* Column ki chaurai ke hisaab se layout */
@container (max-width:760px){
  .kco-layout{gap:10px !important}
  .kco-panel{width:240px !important;padding:12px !important}
  .chips{gap:6px !important}
  .mode-btn{font-size:.7rem !important}
}
@container (max-width:560px){
  .kco-layout{flex-direction:column !important}
  .kco-panel{order:0 !important;width:100% !important;max-height:440px !important}
  .chips{grid-template-columns:repeat(auto-fill,minmax(38px,1fr)) !important}
}
@supports not (container-type:inline-size){
  @media(max-width:820px){ .kco-app .kco-layout{flex-direction:column} .kco-app .kco-panel{order:0;width:100%;max-height:440px} }
}

.kco-app:fullscreen{background:var(--kco-sky);padding:12px;overflow:auto;margin:0}
.kco-app:-webkit-full-screen{background:var(--kco-sky);padding:12px;overflow:auto;width:100%;height:100%;margin:0}
.kco-app.fs-fallback{position:fixed;inset:0;z-index:99999;background:var(--kco-sky);padding:12px;overflow:auto;margin:0}

.kco-app .kco-card{flex:1;background:var(--kco-card);border-radius:20px;box-shadow:0 8px 24px rgba(35,48,62,.10);overflow:hidden;min-width:0;width:100%}
.kco-app .awning-strip{display:flex;height:30px;overflow:hidden}
.kco-app .awning-strip span{flex:1;position:relative}
.kco-app .awning-strip span:nth-child(odd){background:var(--kco-coral)}
.kco-app .awning-strip span:nth-child(even){background:#fff;border-bottom:3px solid var(--kco-coral)}
.kco-app .awning-strip span::after{content:"";position:absolute;left:0;right:0;bottom:-11px;height:22px;border-radius:50%;background:inherit;border-bottom:3px solid var(--kco-coral)}

.kco-app .page-nav{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 14px 0}
.kco-app .page-nav .btn{padding:8px 14px}
.kco-app .page-label{font-family:'Fredoka',sans-serif;font-weight:600;font-size:1rem;min-width:150px;text-align:center}

.kco-app .canvas-scroll{padding:12px;background:#fff}
.kco-app .zoom-stage{position:relative;overflow:hidden;width:100%;max-width:640px;margin:0 auto;border-radius:10px;touch-action:none;background:#fff}
.kco-app #kco-cv{display:block;width:100%;max-width:none;height:auto;cursor:crosshair;touch-action:none;transform-origin:0 0;will-change:transform}

.kco-app .gallery{display:flex;gap:10px;justify-content:center;padding:10px 14px;border-top:2px dashed var(--kco-line);flex-wrap:wrap}
.kco-app .gallery:empty{display:none}
.kco-app .thumb{position:relative;width:70px;height:70px;border-radius:12px;border:3px solid var(--kco-line);cursor:pointer;overflow:hidden;background:#fff;transition:transform .1s ease}
.kco-app .thumb img{width:100%;height:100%;object-fit:cover;max-width:none}
.kco-app .thumb:hover{transform:scale(1.08)}
.kco-app .thumb.active{border-color:var(--kco-coral);box-shadow:0 0 0 2px #FFD9DD}

.kco-app .toolbar{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px 16px;border-top:2px dashed var(--kco-line);justify-content:center}
.kco-app .btn,.kco-app .btn:hover,.kco-app .btn:focus{
  font-weight:800;font-size:.9rem;border:none;border-radius:12px;
  padding:10px 16px;cursor:pointer;color:var(--kco-ink);box-shadow:0 3px 0 rgba(35,48,62,.15);
  transition:transform .08s ease,box-shadow .08s ease;display:inline-flex;align-items:center;gap:6px;
}
.kco-app .btn:active{transform:translateY(2px);box-shadow:0 1px 0 rgba(35,48,62,.15)}
.kco-app .btn:disabled{opacity:.45;cursor:default;transform:none}
.kco-app .btn-undo,.kco-app .btn-undo:hover,.kco-app .btn-undo:focus{background:var(--kco-sun)}
.kco-app .btn-clear,.kco-app .btn-clear:hover,.kco-app .btn-clear:focus{background:#FFC1C7}
.kco-app .btn-download,.kco-app .btn-download:hover,.kco-app .btn-download:focus{background:var(--kco-mint)}
.kco-app .btn-zoom,.kco-app .btn-zoom:hover,.kco-app .btn-zoom:focus{background:#BFE0FF}
.kco-app .btn-nav,.kco-app .btn-nav:hover,.kco-app .btn-nav:focus{background:#D5C6FF}
.kco-app .btn-print,.kco-app .btn-print:hover,.kco-app .btn-print:focus{background:#FFD8A8}
.kco-app .btn-fs,.kco-app .btn-fs:hover,.kco-app .btn-fs:focus{background:#C8F0E0}
.kco-app .status{text-align:center;font-weight:800;font-size:.85rem;color:#3E7A5E;padding:0 12px 12px}

.kco-app .kco-panel{order:-1;width:300px;flex-shrink:0;background:var(--kco-card);border-radius:20px;box-shadow:0 8px 24px rgba(35,48,62,.10);padding:16px;max-height:84vh;overflow:auto}

.kco-app .mode-row{display:flex;gap:6px;margin-bottom:12px}
.kco-app .mode-btn,.kco-app .mode-btn:hover,.kco-app .mode-btn:focus{flex:1;border:2px solid var(--kco-line);background:#fff;border-radius:12px;padding:9px 4px;font-weight:800;font-size:.78rem;cursor:pointer;color:var(--kco-ink)}
.kco-app .mode-btn.active{border-color:var(--kco-ink);background:var(--kco-sun)}

.kco-app .current{display:flex;align-items:center;gap:10px;margin-bottom:12px;background:var(--kco-sky);border-radius:14px;padding:10px 12px}
.kco-app .current .swatch{width:38px;height:38px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 2px var(--kco-line);flex-shrink:0}
.kco-app .current .cur-text{flex:1;min-width:0}
.kco-app .current .label{font-weight:800;font-size:.9rem}
.kco-app .current .hex{font-size:.78rem;color:#5B6B7C;font-weight:700}
.kco-app .speak-btn,.kco-app .speak-btn:hover,.kco-app .speak-btn:focus{border:2px solid var(--kco-line);background:#fff;color:var(--kco-ink);border-radius:10px;padding:5px 8px;font-size:1.05rem;cursor:pointer;line-height:1}
.kco-app .speak-btn.off{opacity:.4}

.kco-app .pattern-box{background:var(--kco-sky);border-radius:14px;padding:10px 12px;margin-bottom:12px}
.kco-app .pb-title{font-family:'Fredoka',sans-serif;font-weight:600;font-size:.95rem;margin-bottom:8px}
.kco-app .pattern-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.kco-app .pat-btn,.kco-app .pat-btn:hover,.kco-app .pat-btn:focus{border:2px solid transparent;background:#fff;border-radius:10px;padding:5px 2px 4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;font-weight:800;font-size:.62rem;color:var(--kco-ink)}
.kco-app .pat-btn canvas{width:34px;height:34px;border-radius:7px;display:block;border:1px solid rgba(35,48,62,.12)}
.kco-app .pat-btn.active{border-color:var(--kco-ink)}

.kco-app .grad-box{display:none;background:linear-gradient(135deg,#FFF6D9,#FFE3E6);border-radius:14px;padding:12px;margin-bottom:12px}
.kco-app .grad-box.show{display:block}
.kco-app .grad-box .title{font-family:'Fredoka',sans-serif;font-weight:600;font-size:.95rem;margin-bottom:8px}
.kco-app .grad-slots{display:flex;align-items:center;gap:8px}
.kco-app .grad-slot{flex:1;display:flex;align-items:center;gap:8px;background:#fff;border:3px solid transparent;border-radius:12px;padding:8px;cursor:pointer}
.kco-app .grad-slot.active{border-color:var(--kco-ink)}
.kco-app .grad-slot .dot{width:26px;height:26px;border-radius:50%;border:2px solid rgba(35,48,62,.15);flex-shrink:0}
.kco-app .grad-slot span{font-weight:800;font-size:.78rem}
.kco-app .grad-arrow{font-size:1.2rem}
.kco-app .grad-preview{height:18px;border-radius:9px;margin-top:10px;border:2px solid rgba(35,48,62,.12)}
.kco-app .grad-dirs{display:flex;gap:6px;margin-top:10px}
.kco-app .grad-dirs button,.kco-app .grad-dirs button:hover,.kco-app .grad-dirs button:focus{flex:1;border:2px solid var(--kco-line);background:#fff;color:var(--kco-ink);border-radius:10px;padding:6px;font-weight:800;font-size:.9rem;cursor:pointer}
.kco-app .grad-dirs button.active{border-color:var(--kco-ink)}

.kco-app .picker-row{display:flex;align-items:center;gap:10px;background:var(--kco-sky);border-radius:14px;padding:10px 12px;margin-bottom:12px}
.kco-app .picker-row label{font-weight:800;font-size:.85rem;flex:1}
.kco-app .picker-row input[type=color]{width:52px;height:40px;border:none;border-radius:10px;cursor:pointer;background:none;padding:0}
.kco-app .picker-row input[type=color]::-webkit-color-swatch{border-radius:10px;border:2px solid rgba(35,48,62,.15)}
.kco-app .picker-row input[type=color]::-webkit-color-swatch-wrapper{padding:0}

.kco-app .palette h3{font-family:'Fredoka',sans-serif;font-weight:600;font-size:1rem;margin:14px 0 8px;display:flex;align-items:center;gap:6px;color:var(--kco-ink)}
.kco-app .chips{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.kco-app .chip{aspect-ratio:1/1;border-radius:10px;cursor:pointer;border:2px solid rgba(35,48,62,.12);transition:transform .08s ease}
.kco-app .chip:hover{transform:scale(1.12)}
.kco-app .chip.selected{outline:3px solid var(--kco-ink);outline-offset:2px}
.kco-app .tip{margin-top:16px;background:#FFF6D9;border-radius:12px;padding:10px 12px;font-size:.8rem;font-weight:700;color:#7A6420;line-height:1.45}

/* ---------- Progress meter ---------- */
.kco-app .kco-progress{display:flex;align-items:center;gap:10px;padding:2px 16px 10px}
.kco-app .kco-pbar{flex:1;height:14px;border-radius:999px;background:#EEF3F8;overflow:hidden;box-shadow:inset 0 1px 2px rgba(35,48,62,.12)}
.kco-app .kco-pbar span{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#FFD23F,#FF9F45,#FF7A85,#C780FA);background-size:200% 100%;transition:width .45s ease}
.kco-app .kco-ptext{min-width:92px;text-align:right;font-weight:800;font-size:.82rem;color:#5B6B7C;white-space:nowrap}
.kco-app .kco-ptext.done{color:#E0559A}

/* ---------- Color it for me + Finished ---------- */
.kco-app .kco-fun{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding:0 14px 12px}
.kco-app .btn-magic,.kco-app .btn-magic:hover,.kco-app .btn-magic:focus{background:linear-gradient(135deg,#C780FA,#7B68EE);color:#fff;box-shadow:0 3px 0 #5B48C8}
.kco-app .btn-finish,.kco-app .btn-finish:hover,.kco-app .btn-finish:focus{background:linear-gradient(135deg,#FFD23F,#FF9F45);color:#3A2600;box-shadow:0 3px 0 #D9822B}
.kco-app .btn-magic.is-working{animation:kco-pulse .8s ease-in-out infinite}
.kco-app .btn-finish.locked,.kco-app .btn-finish.locked:hover,.kco-app .btn-finish.locked:focus{background:#EEF1F5;color:#6B7785;box-shadow:0 3px 0 #CDD5DE}
.kco-app .btn-finish.unlocked{animation:kco-glow 1.4s ease-in-out infinite}
@keyframes kco-glow{0%,100%{box-shadow:0 3px 0 #D9822B,0 0 0 0 rgba(255,159,69,.6)}50%{box-shadow:0 3px 0 #D9822B,0 0 0 10px rgba(255,159,69,0)}}
@keyframes kco-pulse{50%{filter:brightness(1.15)}}

/* ---------- Confetti ---------- */
.kco-app .kco-confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:100001;display:none}

/* ---------- Certificate popup ---------- */
.kco-app .kco-modal{position:fixed;inset:0;z-index:100000;background:rgba(35,48,62,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.kco-app .kco-modal[hidden]{display:none}
.kco-app .kco-modal-box{position:relative;background:#fff;border-radius:22px;max-width:760px;width:100%;max-height:calc(100vh - 32px);overflow:auto;padding:20px 20px 16px;box-shadow:0 20px 50px rgba(0,0,0,.25);text-align:center;animation:kco-pop .3s ease}
@keyframes kco-pop{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}
.kco-app .kco-x,.kco-app .kco-x:hover,.kco-app .kco-x:focus{position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:50%;border:none;background:#F1F4F8;color:var(--kco-ink);font-size:1rem;font-weight:800;cursor:pointer;line-height:1;padding:0}
.kco-app .kco-cert-title{font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.6rem;margin:0 36px 4px}
.kco-app .kco-cert-sub{font-weight:700;color:#5B6B7C;font-size:.92rem;margin-bottom:12px}
.kco-app .kco-name-row{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;font-weight:800;font-size:.95rem}
.kco-app .kco-name-row input{font:inherit;font-weight:700;border:2px solid var(--kco-line);border-radius:12px;padding:9px 12px;width:min(260px,100%);color:var(--kco-ink);background:#fff;outline:none}
.kco-app .kco-name-row input:focus{border-color:#FF9F45}
.kco-app #kco-certCanvas{display:block;width:100%;height:auto;border-radius:12px;box-shadow:0 4px 14px rgba(35,48,62,.12);background:#FFF8EC}
.kco-app .kco-cert-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px}
.kco-app .kco-cert-note{margin-top:10px;font-size:.75rem;font-weight:700;color:#8A97A6}

/* ---------- "Color more canvases" cards ---------- */
.kco-more{margin:28px 0 8px;font-family:'Nunito',sans-serif}
.kco-more h2{text-align:center;font-size:1.35rem;font-weight:800;margin:0 0 16px;color:#1F2937}
.kco-more-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.kco-more a.kco-more-card{display:flex;flex-direction:column;background:#fff;border:1px solid #ECE7DC;border-radius:8px;overflow:hidden;text-decoration:none;color:#374151;transition:transform .12s ease,box-shadow .12s ease}
.kco-more a.kco-more-card:hover{transform:translateY(-3px);box-shadow:0 8px 18px rgba(0,0,0,.08)}
.kco-more a.kco-more-card.is-current{display:none}
.kco-more .kco-more-img{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;padding:10px;background:#fff}
.kco-more .kco-more-img img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.kco-more .kco-more-name{border-top:1px solid #F1EDE4;padding:9px 8px;font-size:.78rem;font-weight:700;text-align:center;line-height:1.3}

@media (prefers-reduced-motion: reduce){
  .kco-app *{animation:none !important;transition:none !important}
}