@font-face { font-family:JewlzArtworkSerif; src:url('fonts/artwork-serif.ttf') format('truetype'); font-weight:400; font-display:swap; }
@font-face { font-family:JewlzArtworkSans; src:url('fonts/artwork-sans.ttf') format('truetype'); font-weight:400 500; font-display:swap; }
@font-face { font-family:JewlzArtworkSans; src:url('fonts/artwork-sans-bold.ttf') format('truetype'); font-weight:600 900; font-display:swap; }
.jewlz-artwork-host { position:relative; }
.jewlz-artwork-layer { display:block; position:absolute; max-width:none; max-height:none; pointer-events:none; z-index:3; overflow:visible; }
.jewlz-artwork-hit { fill:transparent; stroke:transparent; stroke-width:2; pointer-events:none; }
.jewlz-artwork-layer.is-editing .jewlz-artwork-hit { pointer-events:all; cursor:text; }
.jewlz-artwork-layer.is-editing .jewlz-artwork-hit:hover { fill:#547cbb16; stroke:#3977b3; }
.jewlz-visual-editing [data-text-key]:not([data-text-admin] *, [data-menu-open], [data-menu-open] *, [data-menu-panel], [data-menu-panel] *) { cursor:text; }
.jewlz-visual-editing [data-text-key]:not([data-text-admin] *, [data-menu-open], [data-menu-open] *, [data-menu-panel], [data-menu-panel] *):hover { outline:1px dashed #3977b3; outline-offset:3px; }
.jewlz-visual-editing .jewlz-text-selected { outline:2px solid #3977b3; outline-offset:3px; }
.jewlz-artwork-hit.jewlz-text-selected { outline:none; stroke:#3977b3; fill:#547cbb16; }
.jewlz-visual-editing body { padding-bottom:100px; }
.jewlz-visual-editing [data-menu-panel] { z-index:10004; }
.jewlz-editor-ui { color:#2b2019; font:400 14px/1.5 'DM Sans',sans-serif; position:relative; z-index:10000; }
.jewlz-editor-ui [hidden],.jewlz-admin [hidden] { display:none!important; }
.jewlz-editor-bar { position:fixed; bottom:16px; left:16px; right:16px; display:flex; align-items:center; gap:16px; padding:12px 18px; background:#fffaf4; border:1px solid #d7c7b8; box-shadow:0 6px 32px #2d201926; border-radius:10px; z-index:10002; }
.jewlz-editor-brand { font-family:var(--serif); font-size:19px; white-space:nowrap; }
.jewlz-editor-brand small { font:600 11px 'DM Sans',sans-serif; margin-left:8px; }
.jewlz-editor-instruction { flex:1; font-size:13px; }
.jewlz-editor-ui button { font:500 13px 'DM Sans',sans-serif; border:1px solid #cbb8a5; background:#fffaf4; color:#3f2c20; padding:10px 14px; border-radius:6px; cursor:pointer; }
.jewlz-editor-ui button:hover { background:#f1e7db; }
.jewlz-editor-ui button:disabled { opacity:.5; cursor:default; }
.jewlz-editor-sheet { position:fixed; top:112px; right:18px; width:min(380px,calc(100vw - 36px)); max-height:calc(100dvh - 214px); overflow:auto; background:#fffaf4; border:1px solid #d7c7b8; box-shadow:0 10px 60px #2d201938; border-radius:12px; padding:24px; z-index:10003; }
.jewlz-editor-sheet-head { display:flex; align-items:start; justify-content:space-between; gap:12px; margin-bottom:20px; }
.jewlz-editor-sheet-head p { font-size:11px; text-transform:uppercase; letter-spacing:.12em; margin:0 0 8px; color:#846b58; }
.jewlz-editor-sheet h2 { font:400 24px/1.25 var(--serif); margin:0; overflow-wrap:anywhere; }
.jewlz-editor-ui .jewlz-editor-close { padding:0; border:0; font-size:25px; line-height:1; background:transparent; }
.jewlz-editor-sheet label { display:block; font-size:12px; font-weight:600; margin:16px 0 6px; }
.jewlz-editor-sheet select,.jewlz-editor-sheet textarea { box-sizing:border-box; width:100%; color:#2b2019; background:#fff; border:1px solid #cbb8a5; border-radius:5px; padding:10px; font:400 15px/1.5 'DM Sans',sans-serif; }
.jewlz-editor-sheet textarea { resize:vertical; min-height:100px; }
.jewlz-editor-count { font-size:11px; color:#846b58; text-align:right; margin:6px 0 14px; }
.jewlz-editor-hint { font-size:12px; line-height:1.6; margin:0 0 15px; color:#846b58; }
.jewlz-editor-status { font-size:13px; line-height:1.6; margin:0 0 16px; }
.jewlz-editor-status:empty { display:none; }
.jewlz-editor-status.is-error { color:#903e2b; }
.jewlz-editor-buttons { display:flex; flex-wrap:wrap; gap:10px; }
.jewlz-editor-ui .jewlz-editor-save { background:#3f2c20; border-color:#3f2c20; color:#fffaf4; }
.jewlz-admin { max-width:540px; }
.jewlz-admin h1 { font-size:clamp(38px,6vw,60px); line-height:1.15; }
.jewlz-admin .admin-login { display:grid; gap:10px; margin:24px 0 0; }
.jewlz-admin .admin-login label { font-size:13px; }
.jewlz-admin input { width:100%; padding:13px; border:1px solid var(--line); background:#fffaf4; color:var(--ink); font:inherit; }
.jewlz-admin .admin-status { font-size:14px; padding:16px; border:1px solid var(--line); background:#f8f1e8; }
.jewlz-admin .admin-status.is-error { color:#903e2b; }
.jewlz-admin .admin-confirm { display:grid; gap:10px; }
.jewlz-admin .admin-ready { display:grid; gap:18px; margin-top:24px; }
.jewlz-admin .admin-ready .text-link { justify-self:start; }
@media(max-width:760px) {
  .jewlz-editor-bar { gap:8px; padding:10px; left:8px; right:8px; bottom:8px; flex-wrap:wrap; }
  .jewlz-editor-brand { flex:1; font-size:17px; }
  .jewlz-editor-instruction { flex-basis:100%; order:5; font-size:11px; }
  .jewlz-editor-ui button { font-size:11px; padding:8px 10px; }
  .jewlz-editor-bar [data-editor-refresh] { display:none; }
  .jewlz-editor-sheet { top:auto; bottom:108px; right:8px; width:calc(100vw - 16px); max-height:calc(100dvh - 170px); padding:18px; }
  .jewlz-editor-sheet h2 { font-size:21px; }
  .jewlz-editor-sheet textarea { min-height:88px; max-height:150px; }
}

@media(min-width:761px) { .jewlz-editor-sheet.is-on-left { left:18px; right:auto; } }
.jewlz-visual-editing [data-text-key], .jewlz-artwork-hit { scroll-margin-top:110px; }

.jewlz-editor-ui .jewlz-editor-save:hover { background:#3f2c20; }
