*,:before,:after{box-sizing:border-box;margin:0;padding:0}textarea{resize:none}:root{--bg:oklch(93% .01 72);--surface:oklch(99.5% .004 72);--surface-2:oklch(92% .01 72);--border:oklch(83% .012 72);--border-2:oklch(74% .012 72);--text:oklch(18% .012 60);--text-muted:oklch(46% .012 60);--text-dim:oklch(64% .01 60);--accent:#d97757;--accent-dim:#d9775712;--accent-btn:#e09070;--radius:5px;--radius-lg:10px}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:IBM Plex Sans,sans-serif;font-size:14px;line-height:1.5}input[type=text],input[type=url],input[type=email],input[type=tel],input[type=password],select,textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);appearance:none;outline:none;width:100%;padding:8px 11px;font-family:IBM Plex Mono,monospace;font-size:12.5px;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}input::placeholder,textarea::placeholder{color:var(--text-dim)}select{cursor:pointer}select option{background:var(--surface)}button{cursor:pointer;border:none;outline:none;font-family:inherit}.app-shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}header{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:flex-start;min-height:auto;padding:5.5px 32px;display:flex}.feedback-btn{background:var(--accent-btn);border-radius:var(--radius);color:#fff;cursor:pointer;white-space:nowrap;letter-spacing:.01em;border:none;padding:8px 16px;font-family:IBM Plex Sans,sans-serif;font-size:12px;font-weight:500;transition:opacity .15s,transform .1s}.feedback-btn:hover{opacity:.86}.feedback-btn:active{transform:scale(.98)}.header-left{flex-direction:column;gap:3px;display:flex}.header-top{align-items:center;gap:9px;display:flex}.header-logo{color:var(--accent);flex-shrink:0;width:32px;height:32px}.wordmark{letter-spacing:-.02em;color:var(--text);-webkit-user-select:none;user-select:none;font-family:IBM Plex Mono,monospace;font-size:28px;font-weight:700;line-height:1}.wordmark-qr{color:var(--accent)}.tagline{color:var(--text-muted);letter-spacing:.02em;white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:14px;line-height:1}.page-body{flex:1;grid-template-rows:auto auto;grid-template-columns:160px 1fr 160px;gap:16px;padding:24px 16px;display:grid;overflow-y:auto}.page-body-center{flex-direction:column;grid-area:1/2;display:flex}.page-body-faq{grid-area:2/2}.side-ad{flex-shrink:0;width:160px;min-width:160px}.side-ad:first-of-type{grid-area:1/1/3}.side-ad:last-of-type{grid-area:1/3/3}.side-ad-slot{background:var(--surface);border:1px dashed var(--border-2);width:160px;height:600px;color:var(--text-dim);letter-spacing:.08em;border-radius:4px;justify-content:center;align-items:center;font-family:IBM Plex Mono,monospace;font-size:9px;display:flex}@media (width<=1100px){.side-ad{display:none}.page-body{grid-template-columns:1fr}.page-body-center,.page-body-faq{grid-column:1}}.tool-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:70% 30%;width:100%;min-height:500px;display:grid;box-shadow:0 2px 16px oklch(0% 0 0/.06)}.left-panel{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;gap:16px;height:100%;padding:20px 18px 28px;display:flex;overflow-y:auto}.right-panel{background:var(--surface-2);flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:500px;padding:24px 20px;display:flex}.panel-block{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.panel-block-header{letter-spacing:.1em;text-transform:uppercase;color:var(--text);border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:10px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500}.type-tabs{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);align-items:stretch;gap:4px;padding:3px;display:flex;overflow-x:visible}.type-tabs::-webkit-scrollbar{height:6px}.type-tabs::-webkit-scrollbar-track{background:var(--surface-2)}.type-tabs::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.type-tabs::-webkit-scrollbar-thumb:hover{background:var(--border-2)}.type-tab{color:var(--text-muted);cursor:pointer;white-space:nowrap;text-align:center;background:0 0;border:none;border-radius:3px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-width:56px;max-width:140px;height:100%;padding:7px 8px;font-family:IBM Plex Sans,sans-serif;font-size:12px;line-height:1;transition:background .12s,color .12s;display:flex}.type-tab:hover{color:var(--text)}.type-tab.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px oklch(0% 0 0/.12)}.type-tab svg{opacity:.6}.type-tab.active svg{opacity:1}.fields{flex-direction:column;gap:9px;display:flex}.field-group{flex-direction:column;gap:4px;display:flex}.field-label{color:var(--text-muted);letter-spacing:.04em;font-family:IBM Plex Mono,monospace;font-size:11px}.field-row{grid-template-columns:1fr 1fr;gap:9px;display:grid}.style-tabs{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);align-items:stretch;gap:4px;margin-bottom:16px;padding:3px;display:flex;overflow-x:visible}.style-tabs::-webkit-scrollbar{height:6px}.style-tabs::-webkit-scrollbar-track{background:var(--surface-2)}.style-tabs::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.style-tabs::-webkit-scrollbar-thumb:hover{background:var(--border-2)}.style-tab{color:var(--text-muted);cursor:pointer;white-space:nowrap;text-align:center;background:0 0;border:none;border-radius:3px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-width:56px;max-width:140px;height:100%;padding:7px 8px;font-family:IBM Plex Sans,sans-serif;font-size:12px;line-height:1;transition:background .12s,color .12s;display:flex}.style-tab:hover{color:var(--text)}.style-tab.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px oklch(0% 0 0/.12)}.style-tab svg{opacity:.6}.style-tab.active svg{opacity:1}.dot-styles{gap:7px;display:flex}.dot-btn{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;flex-direction:column;flex:1;align-items:center;gap:6px;padding:9px 6px;transition:border-color .15s;display:flex}.dot-btn:hover{border-color:var(--border-2)}.dot-btn.active{border-color:var(--accent);background:var(--accent-dim)}.dot-btn-label{color:var(--text-muted);letter-spacing:.06em;font-family:IBM Plex Mono,monospace;font-size:10px}.dot-btn.active .dot-btn-label{color:var(--accent)}.color-group{flex-direction:column;gap:4px;display:flex}.color-inputs-row{gap:8px;display:flex}.color-input-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;flex:1;align-items:center;gap:8px;min-width:0;padding:7px 10px;transition:border-color .15s;display:flex}.color-input-wrap:focus-within{border-color:var(--accent)}.color-swatch{border:1px solid oklch(0% 0 0/.15);border-radius:3px;flex-shrink:0;width:16px;height:16px}.color-hex{color:var(--text);background:0 0;border:none;outline:none;flex:1;width:auto;min-width:0;padding:0;font-family:IBM Plex Mono,monospace;font-size:12px}input[type=color]{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.logo-drop{border:1px dashed var(--border-2);border-radius:var(--radius);text-align:center;cursor:pointer;padding:14px;transition:border-color .15s,background .15s;position:relative}.logo-drop:hover{border-color:var(--accent);background:var(--accent-dim)}.logo-drop input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;box-shadow:none;border:none;padding:0;font-size:0;position:absolute;inset:0}.logo-drop-text{color:var(--text-muted);pointer-events:none;font-family:IBM Plex Mono,monospace;font-size:11.5px}.logo-preview-wrap{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:10px;padding:7px 11px;display:flex}.logo-preview-wrap img{object-fit:contain;border-radius:3px;width:28px;height:28px}.logo-filename{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:IBM Plex Mono,monospace;font-size:11px;overflow:hidden}.logo-remove{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:14px;line-height:1;transition:color .15s}.logo-remove:hover{color:var(--text)}.qr-stage-wrap{flex-direction:column;align-items:center;max-width:100%;display:inline-flex}.qr-stage{border-radius:var(--radius-lg);background:#fdfcf8;width:100%;max-width:100%;height:auto;padding:12px;position:relative;box-shadow:0 2px 8px oklch(0% 0 0/.1),0 8px 32px oklch(0% 0 0/.1)}.qr-stage canvas{width:100%;height:auto;display:block}.download-panel{flex-direction:column;align-items:stretch;gap:8px;width:100%;display:flex}.size-options{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);justify-content:center;gap:3px;padding:3px;display:flex}.size-opt{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:5px 9px;font-family:IBM Plex Mono,monospace;font-size:11.5px;transition:background .12s,color .12s}.size-opt:hover{color:var(--text)}.size-opt.active{background:var(--surface-2);color:var(--text)}.format-toggle{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);justify-content:center;gap:3px;padding:3px;display:flex}.fmt-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:5px 9px;font-family:IBM Plex Mono,monospace;font-size:11.5px;transition:background .12s,color .12s}.fmt-btn:hover{color:var(--text)}.fmt-btn.active{background:var(--surface-2);color:var(--text)}.download-btn{background:var(--accent-btn);border-radius:var(--radius);color:#fff;cursor:pointer;letter-spacing:.01em;border:none;width:100%;padding:10px 20px;font-family:IBM Plex Sans,sans-serif;font-size:13px;font-weight:500;transition:opacity .15s,transform .1s}.download-btn:hover{opacity:.86}.download-btn:active{transform:scale(.98)}.download-btn:disabled{opacity:.32;cursor:not-allowed}.mobile-ad-slot{width:100%;height:80px;margin:5px 0;display:none}.mobile-ad-content{background:var(--surface);border:1px dashed var(--border-2);width:100%;height:100%;color:var(--text-dim);letter-spacing:.08em;border-radius:4px;justify-content:center;align-items:center;font-family:IBM Plex Mono,monospace;font-size:9px;display:flex}.feedback-modal{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.feedback-modal.active{display:flex}.feedback-modal-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:90%;max-width:500px;max-height:90vh;animation:.2s ease-out slideIn;overflow-y:auto;box-shadow:0 8px 32px #0003}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.feedback-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px;display:flex}.feedback-modal-header h2{color:var(--text);margin:0;font-family:IBM Plex Sans,sans-serif;font-size:18px}.feedback-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:20px;transition:color .15s}.feedback-close:hover{color:var(--text)}.feedback-form{flex-direction:column;gap:12px;padding:16px;display:flex}.feedback-field{flex-direction:column;gap:4px;display:flex}.feedback-field label{color:var(--text);font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500}.feedback-field textarea,.feedback-field input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:10px;font-family:IBM Plex Sans,sans-serif;font-size:13px;transition:border-color .15s}.feedback-field textarea{resize:vertical;min-height:120px;font-family:IBM Plex Sans,sans-serif}.feedback-field textarea::placeholder,.feedback-field input::placeholder{color:var(--text-muted)}.feedback-field textarea:focus,.feedback-field input:focus{border-color:var(--accent);outline:none}.feedback-message{color:var(--accent);background:var(--accent-dim);border-radius:var(--radius);text-align:center;padding:8px;font-size:12px}.feedback-submit{background:var(--accent-btn);border-radius:var(--radius);color:#fff;cursor:pointer;letter-spacing:.01em;border:none;margin-top:8px;padding:10px 20px;font-family:IBM Plex Sans,sans-serif;font-size:13px;font-weight:500;transition:opacity .15s,transform .1s}.feedback-submit:hover:not(:disabled){opacity:.86}.feedback-submit:active:not(:disabled){transform:scale(.98)}.feedback-submit:disabled{opacity:.5;cursor:not-allowed}@media (width<=760px){.tool-card{grid-template-columns:1fr}.left-panel{border-right:none;border-bottom:1px solid var(--border);width:100%;height:auto;max-height:none;padding:16px;overflow:hidden visible}.mobile-ad-slot{display:block}.right-panel{height:auto;padding:20px 16px}.tagline{text-overflow:ellipsis;max-width:calc(100vw - 100px);overflow:hidden}header{padding:8px 16px}.page-body{flex-direction:column;padding:12px;overflow:hidden auto}.page-body-center{height:auto;overflow:visible}.color-inputs-row{width:100%}.color-group{min-width:0!important}.color-input-wrap{padding:5px 8px}.color-hex{font-size:11px}.type-tabs{scrollbar-gutter:stable;overflow-x:auto}.dot-styles{flex-wrap:wrap}.dot-btn{flex:0 0 calc(33.333% - 5px)}.feedback-btn{padding:6px 12px;font-size:11px}.feedback-modal-content{width:95%;max-height:80vh}}
