@import url('https://fonts.googleapis.com/css2?family=Luckiest+Guy&family=Fredoka:wght@400;700&display=swap');

/* Wonderkid Drawing App styles · v4.3 (Final Draw Fix)
   ============================ */
:root {
  --wk-purple: #6B45FF;
  --wk-yellow: #FFD84D;
  --wk-orange: #FF6B00;
  --wk-light-blue: #7ee8fa;
  --wk-text: #3d3d3d;
}

/* Add general body padding for small screens to ensure content doesn't touch edges */
@media (max-width: 768px) {
    body {
        padding-left: 8px;
        padding-right: 8px;
        box-sizing: border-box;
    }
}

/* === Canvas area === */
#wonderkid-canvas-container { text-align:center; margin:20px auto; }
#wk-top-toolbar-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
}
#wk-canvas-wrapper {
    position: relative;
    width: 1080px;
    max-width: 100%;
    margin: 0 auto;
    border: 4px dashed var(--wk-purple);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}
#wk-canvas-wrapper::before {
    content: "";
    display: block;
    padding-top: 66.66%;
}
#wonderkid-canvas, #wk-background-canvas {
  position: absolute;
  touch-action: none;
}
#wonderkid-canvas { z-index: 2; background: transparent; }
#wk-background-canvas { z-index: 1; background: #fff; }


/* === UNIFIED BUTTON STYLE === */
.wk-pill, .wk-q-btn, .wk-tool-btn, .wk-size, .wk-shape, .wk-sticker-btn, .wk-pattern-btn, .wk-btn {
    -webkit-appearance: none;
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 24px;
    font-family: 'Fredoka One', sans-serif;
    font-size: 16px;
    font-weight: 400;
    text-transform: none;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: all .15s ease-in-out;
    background-color: var(--wk-yellow);
    color: var(--wk-purple);
    border-radius: 12px;
    border: 1px solid var(--wk-yellow);
    box-shadow:
        inset 0 0 0 1px #FFFFFF,
        0 5px 0 0 var(--wk-orange),
        0 4px 10px -8px rgba(0,0,0,0.2);
}

.wk-pill:hover, .wk-q-btn:hover, .wk-tool-btn:hover, .wk-size:hover, .wk-shape:hover, .wk-sticker-btn:hover, .wk-pattern-btn:hover, .wk-btn:hover {
    background-color: var(--wk-purple);
    color: white;
    border-color: var(--wk-light-blue);
}

.wk-pill:active, .wk-q-btn:active, .wk-tool-btn:active, .wk-size:active, .wk-shape:active, .wk-sticker-btn:active, .wk-pattern-btn:active, .wk-btn:active {
    transform: translateY(2px);
    box-shadow:
        inset 0 0 0 1px #FFFFFF,
        0 3px 0 0 var(--wk-orange),
        0 2px 5px -4px rgba(0,0,0,0.2);
}

/* === SELECTED / ACTIVE STATE === */
.wk-selected:not(.wk-dot),
.wk-tool-btn.wk-selected,
.wk-pattern-btn.wk-selected,
.wk-q-btn.wk-selected,
.wk-shape.wk-selected,
.wk-size.wk-selected,
.wk-sticker-btn.wk-selected,
#wk-gradient-direction-btns .wk-btn.wk-selected {
    background-color: var(--wk-purple) !important;
    color: white !important;
    border-color: var(--wk-light-blue) !important;
    box-shadow:
        inset 0 2px 4px rgba(0,0,0,0.25),
        0 3px 0 0 var(--wk-orange) !important;
    transform: translateY(2px) !important;
}


/* === Toolbar Specific Tweaks === */
#wk-tabbar {
  display:flex; gap:12px; justify-content:center;
  flex-wrap: wrap; padding: 0 16px;
}
.wk-pill-wrap { position:relative; }
.wk-drop {
  position:absolute;
  left: 50%;
  transform: translateX(-50%) scale(.95) translateY(-10px);
  transform-origin: top center;
  max-width: calc(100vw - 20px);
  min-width: 150px;
  overflow-x: auto;
  opacity:0; visibility:hidden;
  background:#7EE8FA; border:3px dashed var(--wk-purple);
  border-radius:16px; padding:14px;
  box-shadow:0 6px 18px rgba(0,0,0,.15);
  transition:all .18s ease;
  z-index:20;
}
.wk-pill-wrap.wk-open .wk-drop {
  opacity:1; visibility:visible; transform: translateX(-50%) scale(1) translateY(0);
}

.wk-drop.wk-drop--align-left {
    left: 0;
    transform-origin: top left;
}
.wk-pill-wrap.wk-open .wk-drop.wk-drop--align-left {
    transform: translateX(0) scale(1) translateY(0);
}
.wk-drop.wk-drop--align-right {
    left: auto;
    right: 0;
    transform-origin: top right;
}
.wk-pill-wrap.wk-open .wk-drop.wk-drop--align-right {
    transform: translateX(0) scale(1) translateY(0);
}

#palette-swatch {
    display: inline-block !important;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: #000;
    border: 2px solid rgba(0,0,0, 0.2);
    flex-shrink: 0;
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.2);
}
.wk-pill[data-panel="colours"] {
    gap: 8px;
}

/* === Quick Toolbar === */
#wk-quick-toolbar {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  align-items: flex-start;
  padding: 8px 16px;
  background: #fdfdfd;
  border-radius: 24px;
  border: 2px solid #efefef;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.wk-q-group {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 8px;
    border-right: 1px solid #ddd;
}
.wk-q-group:last-child { border-right: none; }
.wk-q-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.wk-q-label {
    font-size: 0.6rem;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.wk-q-btn { min-width: 48px; padding: 8px; }
.wk-q-btn img, .wk-q-btn svg { width: 24px; height: 24px; }
.icon-sound-on, .icon-sound-off { stroke: currentColor; }

/* === Grid contents inside dropdowns === */
.wk-colour-grid {
  display:grid; gap:8px;
  grid-template-columns: repeat(3, 1fr);
}
#wk-sizes, #wk-shapes, #wk-patterns, #wk-stickers, #wk-tools {
    display:grid; gap:8px;
    grid-template-columns: repeat(2, 1fr);
}
#panel-actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    width: 180px !important;
}
#panel-actions .wk-btn {
    padding: 10px 16px !important;
    justify-content: center !important;
    width: 100%;
    box-sizing: border-box;
}

.wk-symmetry-buttons {
    display:grid; gap:8px;
    grid-template-columns: repeat(2, 1fr);
}
#wk-templates {
    display:grid; gap:8px;
    grid-template-columns: repeat(2, 1fr);
}
#panel-coloring {
    width: 280px;
    max-width: calc(100vw - 20px);
    overflow-x: hidden;
}

.wk-drop .wk-tool-hr {
    border: none !important;
    height: 3px !important;
    background-image: linear-gradient(to right, var(--wk-purple) 5px, transparent 5px, transparent 10px) !important;
    background-size: 10px 3px !important;
    background-color: transparent !important;
    margin: 16px 4px !important;
}

.wk-symmetry-label {
    font-family: 'Fredoka One', sans-serif;
    color: var(--wk-purple);
    font-size: 1.2rem;
    font-weight: 400;
    text-align: center;
    display: block;
    width: 100%;
    margin-bottom: 12px;
}
#wk-symmetry-segments-container label {
    font-family: 'Fredoka One', sans-serif;
    color: var(--wk-purple);
    font-size: 0.9rem;
}

.wk-dot {
    width: 42px; height: 42px; padding: 0;
    border-radius: 50%; border: 3px solid rgba(0,0,0,0.1);
    cursor:pointer; outline:none;
    display: flex; align-items: center; justify-content: center;
}
.wk-dot[data-colour="rainbow"] { background:conic-gradient(red,orange,yellow,green,cyan,blue,purple,red); }
.wk-dot[data-colour="rainbow"] img { display: none; }
.wk-dot img { width: 28px; height: 28px; }
.wk-dot.wk-selected { border-color: var(--wk-orange) !important; }

.wk-drop .wk-size,
.wk-drop .wk-shape,
.wk-drop .wk-sticker-btn,
.wk-drop .wk-pattern-btn {
    width: 60px; height: 60px; padding: 8px; flex-direction: column;
}
.wk-drop .wk-size .wk-stroke{ display:block; width: 80%; border-radius:20px; background: currentColor; }
.wk-drop .wk-sticker-btn img, .wk-drop .wk-shape img { width: 100%; height: 100%; object-fit: contain; padding: 4px; box-sizing: border-box; }
.wk-drop .wk-template-btn { width: 100%; height: 120px; padding: 0; }
.wk-drop .wk-template-btn img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; }
.wk-drop .wk-pattern-btn { background-size: cover; background-position: center; }

/* === Slider Styles === */
.wk-q-item--slider { width: auto; }
.wk-slider-wrapper { display: flex; align-items: center; gap: 6px; }
#quick-size-slider {
    -webkit-appearance: none;
    width: 80px; height: 12px;
    background: #ddd; border-radius: 6px; outline: none;
    border: 2px solid white;
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.2);
}
#quick-size-slider::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none;
    width: 24px; height: 24px;
    border-radius: 50%; background: var(--wk-purple);
    cursor: pointer; border: 3px solid #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,.3);
}

/* === Modal === */
#wk-modal, #wk-gradient-modal, #wk-confirm-modal, #wk-text-prompt-modal { position:fixed; inset:0; z-index:9999; }
#wk-modal[hidden], #wk-gradient-modal[hidden], #wk-confirm-modal[hidden], #wk-text-prompt-modal[hidden] { display:none; }
#wk-modal-backdrop, #wk-gradient-backdrop, #wk-confirm-backdrop, #wk-text-prompt-backdrop {
  position:absolute; inset:0;
  background:rgba(0,0,0,.55); backdrop-filter:blur(2px);
}
#wk-modal-body, #wk-gradient-body, #wk-confirm-body, #wk-text-prompt-body {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  background:#7EE8FA; border:4px solid var(--wk-purple);
  border-radius:24px; padding:24px 28px; max-width:90vw;
  box-shadow:0 8px 20px rgba(0,0,0,.25); text-align:center;
}
#wk-modal-body h3, #wk-gradient-body h3, #wk-confirm-body h3, #wk-text-prompt-body h3 {
  margin:0 0 18px; font-family:"Fredoka",sans-serif; font-size:1.35rem;
  color:var(--wk-purple);
}
#wk-rgb-preview{
  width:80px; height:80px; border-radius:50%;
  margin:0 auto 18px; border:4px solid var(--wk-purple);
}
.wk-rgb-row{ display:flex; align-items:center; gap:12px; margin:10px 0; }
.wk-rgb-row label{ width:22px; font-family:"Fredoka",sans-serif; font-weight:700; color:var(--wk-purple); }
.wk-rgb-row input[type=range]{ flex:1; }
#wk-shade-row{ display:flex; justify-content:center; gap:10px; margin-bottom:18px; }
.shade-dot{
  width:38px; height:38px; border-radius:50%;
  border:2px solid #fff; box-shadow:0 0 0 2px var(--wk-purple); cursor:pointer;
}

/* === Gradient Modal Styles === */
#wk-gradient-preview { width: 100%; height: 80px; border-radius: 12px; margin: 0 auto 18px; border: 4px solid var(--wk-purple); background: linear-gradient(to right, var(--wk-orange), var(--wk-purple)); }
.wk-gradient-picker-row { display: flex; justify-content: center; gap: 20px; margin-bottom: 18px; }
.wk-gradient-picker { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.wk-gradient-picker label { font-family: "Fredoka",sans-serif; font-weight: 700; color: var(--wk-purple); }
.wk-gradient-swatch { width: 60px; height: 60px; padding: 0; border-radius: 50%; cursor: pointer; border: 4px solid #fff; box-shadow: 0 0 0 2px var(--wk-purple); transition: all .15s ease-in-out; }
.wk-gradient-swatch.picking { border-color: var(--wk-orange); transform: scale(1.1); box-shadow: 0 0 0 4px var(--wk-orange); }
#wk-gradient-direction-btns { display: flex; justify-content: center; gap: 10px; margin-bottom: 16px; }
#wk-gradient-direction-btns .wk-btn { padding: 10px 20px; font-size: 14px; }

/* === Confirmation Modal Styles === */
#wk-confirm-btns { display: flex; gap: 12px; justify-content: center; }
#wk-confirm-btns .wk-btn { min-width: 100px; }
#wk-confirm-yes { background-color: #16a34a; border-color: #16a34a; color: white !important; }
#wk-confirm-yes:hover { background-color: #15803d; }
#wk-confirm-no { background-color: #ff31a8; border-color: #ff31a8; color: white !important; }
#wk-confirm-no:hover { background-color: #cc2886; }

/* === Text Prompt Modal Styles === */
#wk-text-prompt-body { width: 320px; max-width: 90vw; }
#wk-text-prompt-input { width: 100%; padding: 12px; border: 3px solid var(--wk-purple); border-radius: 12px; font-family: 'Fredoka', sans-serif; font-size: 1rem; margin-bottom: 16px; box-sizing: border-box; }
#wk-text-prompt-input:focus { outline: none; border-color: var(--wk-orange); }
#wk-text-prompt-btns { display: flex; gap: 12px; justify-content: center; }
#wk-text-prompt-btns .wk-btn { min-width: 100px; }

/* === Focus Mode & Lock Button === */
#lock-canvas-btn .icon-lock { display: none; }
#lock-canvas-btn .icon-unlock { display: block; }
#lock-canvas-btn.wk-selected .icon-lock { display: block; }
#lock-canvas-btn.wk-selected .icon-unlock { display: none; }

#wonderkid-canvas-container.wk-focus-mode {
    position: fixed; inset: 0; background: #f7faff; z-index: 9990;
    display: flex; flex-direction: column; padding: 16px;
    box-sizing: border-box; gap: 16px; overflow: hidden;
}
#wonderkid-canvas-container.wk-focus-mode #wk-top-toolbar-wrapper {
    margin-bottom: 0;
    flex-shrink: 0;
}
#wonderkid-canvas-container.wk-focus-mode #wk-canvas-wrapper {
    flex-grow: 1; width: 100%; height: 100%; min-height: 0;
    border: 4px dashed var(--wk-purple); /* Restored dashed border */
    background: white; border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}
#wonderkid-canvas-container.wk-focus-mode #wk-canvas-wrapper::before {
    display: none;
}
#wonderkid-canvas-container.wk-focus-mode #wonderkid-canvas,
#wonderkid-canvas-container.wk-focus-mode #wk-background-canvas {
    border-radius: 12px;
    position: absolute;
}

/* === MOBILE RESPONSIVE FOCUS MODE === */
@media (max-width: 768px) {
    #wonderkid-canvas-container.wk-focus-mode {
        padding: 8px;
        gap: 8px;
    }
    #wonderkid-canvas-container.wk-focus-mode #wk-tabbar {
        display: none;
    }
    #wonderkid-canvas-container.wk-focus-mode #wk-quick-toolbar {
        padding: 6px 8px;
    }
    #wonderkid-canvas-container.wk-focus-mode .wk-q-btn {
        min-width: 40px;
        padding: 6px;
    }
    #wonderkid-canvas-container.wk-focus-mode .wk-q-label {
        display: none;
    }
    #wonderkid-canvas-container.wk-focus-mode #wk-top-toolbar-wrapper {
        gap: 8px;
    }
    @media (orientation: landscape) {
        #wonderkid-canvas-container.wk-focus-mode #wk-quick-toolbar {
            flex-wrap: nowrap;
            overflow-x: auto;
            justify-content: flex-start;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
        }
        #wonderkid-canvas-container.wk-focus-mode #wk-quick-toolbar::-webkit-scrollbar {
            display: none;
        }
    }
}
