/* ========== KAOSKITA — DESIGN STUDIO (custom.html) ========== */
.stu-wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:22px;align-items:start}
.stu-left{display:block;min-width:0}
@media (max-width:1024px){.stu-wrap{grid-template-columns:1fr}}
.stu-stage{position:relative;aspect-ratio:1/1;background:var(--bg-2);border-radius:18px;overflow:hidden;touch-action:none}
.stu-stage canvas#stuCanvas{position:absolute;inset:0;width:100%;height:100%;border-radius:18px}
.stu-print{position:absolute;left:26%;top:30%;width:48%;height:44%}
.stu-design{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);cursor:grab;user-select:none;max-width:100%;display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1.15;font-family:var(--font-head);font-weight:800;text-align:center;white-space:pre-line;word-break:break-word}
.stu-design:active{cursor:grabbing}
.stu-design img{width:100%;height:auto;display:block;pointer-events:none}
.stu-hint{position:absolute;top:12px;left:50%;transform:translateX(-50%);font-size:11px;color:var(--mute);background:#ffffffcc;padding:4px 10px;border-radius:999px}
.stu-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;display:grid;gap:14px}
.stu-panel h4{margin:0;font:800 12px/1 var(--font-head);letter-spacing:.6px;text-transform:uppercase;color:var(--mute)}
.stu-swatches{display:flex;flex-wrap:wrap;gap:8px}
.stu-sw{width:30px;height:30px;border-radius:8px;border:2px solid #0000;cursor:pointer;box-shadow:inset 0 0 0 1px #0002}
.stu-sw.on{border-color:var(--ink);transform:scale(1.08)}
.stu-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.stu-colors{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.stu-colors label{display:grid;gap:3px;font-size:11px;color:var(--mute)}
.stu-colors input[type=color]{width:44px;height:32px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:2px;cursor:pointer}
.stu-tabs{display:flex;gap:8px}
.stu-tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;font:600 12px/1 inherit;cursor:pointer}
.stu-tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.stu-panel select,.stu-panel textarea,.stu-panel input[type=file]{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 10px;font:400 14px/1.5 inherit;background:#fff}
.stu-panel input[type=range]{width:100%}
.stu-note{font-size:12px;color:var(--mute);background:var(--bg-2);border-radius:10px;padding:8px 10px}

.stu-sidelabel{position:absolute;top:10px;left:10px;z-index:3;background:#0f2a43dd;color:#fff;font:700 11px/1 inherit;letter-spacing:1px;padding:6px 12px;border-radius:999px}
.stu-zoom{position:absolute;right:10px;top:50%;transform:translateY(-50%);z-index:4;display:flex;flex-direction:column;align-items:center;gap:6px;background:#ffffffe6;backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:16px;padding:10px 7px;box-shadow:0 4px 14px rgba(15,42,67,.12)}
.stu-zoom .zl{display:none}
.stu-zoom #stuZoomIn{order:2}
.stu-zoom input[type=range]{order:3;width:110px;height:26px;transform:rotate(-90deg);margin:42px -42px}
.stu-zoom #stuZoomOut{order:4}
.stu-zoom #stuZoomVal{order:5;min-width:0;text-align:center}
.stu-zoom .zl{font:700 10px/1 inherit;letter-spacing:.6px;text-transform:uppercase;color:var(--mute);white-space:nowrap}
.stu-zoom button{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--bg-2);font:800 16px/1 inherit;cursor:pointer;color:var(--ink)}
.stu-zoom input[type=range]{flex:1}
.stu-zoom #stuZoomVal{font:700 11px/1 inherit;color:var(--ink)}
