.kes-root{font-family:Arial,sans-serif}.kes-editor{display:grid;grid-template-columns:340px 1fr;gap:20px;background:var(--kes-page-bg);padding:20px;border-radius:22px;color:var(--kes-panel-text)}.kes-panel,.kes-stage-wrap{background:var(--kes-panel-bg);border-radius:22px;border:1px solid rgb(0 0 0 / .08);box-shadow:0 10px 30px rgb(0 0 0 / .06)}.kes-panel{padding:18px}.kes-logo{max-width:140px;max-height:60px;display:block;margin:0 0 12px}.kes-title{font-size:26px;font-weight:700;margin:0 0 14px}.kes-field{margin-bottom:14px}.kes-field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.kes-field input[type=text],.kes-field select,.kes-field input[type=file]{width:100%;box-sizing:border-box;padding:12px;border:1px solid #d8d8d8;border-radius:12px;background:#fff}.kes-field input[type=color]{width:100%;height:46px;border:none;background:#fff0;padding:0}.kes-buttons,.kes-view-tabs,.kes-action-grid{display:grid;gap:10px}.kes-view-tabs,.kes-action-grid{grid-template-columns:1fr 1fr}.kes-btn{padding:12px 14px;border:none;border-radius:14px;background:var(--kes-button-bg);color:var(--kes-button-text);cursor:pointer;font-weight:700}.kes-btn.secondary{background:#ececec;color:#111}.kes-btn.active{outline:2px solid var(--kes-accent)}.kes-color-list{display:flex;gap:8px;flex-wrap:wrap}.kes-color-pill{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #ddd;border-radius:999px;background:#fff;cursor:pointer}.kes-color-pill.active{outline:2px solid var(--kes-accent)}.kes-swatch{width:18px;height:18px;border-radius:50%;border:1px solid #bbb}.kes-help{font-size:12px;color:#666;margin-top:4px}.kes-stage-wrap{padding:16px;background:var(--kes-canvas-bg)}.kes-stage{position:relative;min-height:720px;border-radius:18px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--kes-canvas-bg)}.kes-canvas{position:relative;width:min(100%,900px);height:min(78vh,760px);--kes-base-scale:1.16}.kes-base{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.kes-base img{width:100%;height:100%;object-fit:contain;display:block;user-select:none;pointer-events:none;transform:scale(var(--kes-base-scale));transform-origin:center center}.kes-overlay{position:absolute;inset:0}.kes-item{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center;cursor:move;touch-action:none;z-index:2}.kes-item.selected{outline:2px dashed var(--kes-accent);outline-offset:3px}.kes-item img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}.kes-item-text{display:inline-block;white-space:nowrap;font-weight:700;line-height:1;padding:2px 4px;pointer-events:none}.kes-handle-resize,.kes-handle-rotate{position:absolute;width:22px;height:22px;border-radius:50%;background:var(--kes-accent);border:2px solid #fff;box-shadow:0 2px 8px rgb(0 0 0 / .2);pointer-events:auto}.kes-handle-resize{right:-14px;bottom:-14px;cursor:nwse-resize}.kes-handle-rotate{left:50%;top:-32px;transform:translateX(-50%);cursor:grab}.kes-modal{position:fixed;inset:0;background:rgb(0 0 0 / .45);display:none;align-items:center;justify-content:center;z-index:99999;padding:18px}.kes-modal.open{display:flex}.kes-modal-box{background:#fff;border-radius:18px;max-width:960px;width:100%;max-height:85vh;overflow:auto;padding:18px}.kes-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px}.kes-gallery-grid img{width:100%;height:140px;object-fit:contain;background:#f5f5f5;border-radius:12px;border:1px solid #ddd;cursor:pointer}.kes-empty{padding:28px;text-align:center;color:#666}@media (max-width:980px){.kes-editor{grid-template-columns:1fr}.kes-stage{min-height:560px}.kes-canvas{height:min(70vh,540px)}}.kes-text-color-box{display:flex;align-items:center;gap:12px;border:1px solid #d8d8d8;border-radius:12px;padding:10px 12px;background:#fff}.kes-text-color-box .kes-text-color{width:72px!important;min-width:72px;height:42px;border:1px solid #ccc!important;border-radius:8px;padding:0;background:#fff;cursor:pointer}.kes-text-color-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.kes-text-color-meta strong{font-size:13px;line-height:1.2;color:var(--kes-panel-text)}.kes-text-color-value{font-size:12px;color:#666;font-family:monospace}.kes-rotate-range{width:100%}.kes-handle-resize,.kes-handle-rotate{display:flex;align-items:center;justify-content:center;color:var(--kes-button-text);font-size:12px;font-weight:700;line-height:1;z-index:3;user-select:none}.kes-handle-resize span,.kes-handle-rotate span{transform:translateY(-.5px)}.kes-exporting .kes-item{outline:none!important;box-shadow:none!important}.kes-exporting .kes-handle-resize,.kes-exporting .kes-handle-rotate{display:none!important}.kes-upload-row{display:flex;align-items:center;gap:10px;border:1px solid #d8d8d8;border-radius:12px;padding:10px 12px;background:#fff}.kes-upload-status{font-size:13px;color:#666;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kes-btn:hover,.kes-color-pill:hover{box-shadow:0 8px 18px rgb(0 0 0 / .10)}.kes-delete-btn,.kes-download-all{background:var(--kes-button-bg)!important;color:var(--kes-button-text)!important}.kes-btn:hover,.kes-btn:active,.kes-btn:focus-visible,.kes-color-pill:hover,.kes-color-pill:active,.kes-color-pill:focus-visible{box-shadow:0 10px 22px rgb(220 20 60 / .28);transform:translateY(-1px)}.kes-delete-btn:hover,.kes-delete-btn:active,.kes-delete-btn:focus-visible,.kes-download-all:hover,.kes-download-all:active,.kes-download-all:focus-visible,.kes-add-text-btn:hover,.kes-add-text-btn:active,.kes-add-text-btn:focus-visible{box-shadow:0 12px 24px rgb(220 20 60 / .32)}.kes-close-gallery{min-width:140px}.kes-btn{transition:box-shadow .2s ease,transform .2s ease,filter .2s ease}.kes-delete-btn,.kes-download-all{background:var(--kes-button-bg)!important;color:var(--kes-button-text)!important;box-shadow:0 0 0 #fff0}.kes-delete-btn:hover,.kes-delete-btn:active,.kes-delete-btn:focus-visible,.kes-download-all:hover,.kes-download-all:active,.kes-download-all:focus-visible{box-shadow:0 0 0 3px rgb(220 20 60 / .18),0 14px 28px rgb(220 20 60 / .36)!important;transform:translateY(-1px)}.kes-delete-btn,.kes-download-all{background:var(--kes-button-bg)!important;color:var(--kes-button-text)!important}.kes-delete-btn:hover,.kes-delete-btn:active,.kes-delete-btn:focus-visible,.kes-download-all:hover,.kes-download-all:active,.kes-download-all:focus-visible,.kes-add-text-btn:hover,.kes-add-text-btn:active,.kes-add-text-btn:focus-visible{box-shadow:0 0 0 4px rgb(220 20 60 / .24),0 16px 30px rgb(220 20 60 / .42)!important;filter:brightness(1.02);transform:translateY(-1px)}