:root {
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --accent:#f5a9b8; --accent-rgb:245,169,184;
  --bg:#f7f5f9; --surface:#fff; --surface2:#fbf9fc;
  --text:#292432; --muted:#77717f; --border:#e8e1ea;
  --shadow:0 14px 44px rgba(50,31,59,.07);
}
html[data-mode="dark"] {
  color-scheme:dark; --bg:#141319; --surface:#201e27; --surface2:#282630;
  --text:#f5f0f6; --muted:#aaa3b3; --border:#393440;
  --shadow:0 18px 50px rgba(0,0,0,.24);
}
html[data-mode="light"] {color-scheme:light}
html[data-theme="sakura"] {--accent:#e4adc8; --accent-rgb:228,173,200}
html[data-theme="gameboy"] {--accent:#a6c46c; --accent-rgb:166,196,108}
html[data-theme="chrome"] {--accent:#8cb6e8; --accent-rgb:140,182,232}
html[data-theme="vignette"] {--accent:#c99ed9; --accent-rgb:201,158,217}
*,*::before,*::after {box-sizing:border-box}
[hidden] {display:none!important}
body {margin:0;min-height:100vh;color:var(--text);background:var(--bg);
  background-image:radial-gradient(ellipse 65% 35% at 50% -12%,rgba(var(--accent-rgb),.14),transparent);
  line-height:1.5}
a {color:inherit;text-decoration:none}
button,input,textarea,select {font:inherit}
button,select {cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:2px solid var(--accent);outline-offset:3px}
button:disabled {cursor:not-allowed;opacity:.53}
.shell {width:min(100% - 36px,1160px);margin:0 auto}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar {border-bottom:1px solid var(--border);background:var(--surface)}
.topbar-inner {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;min-height:78px}
.brand {display:inline-flex;align-items:center;gap:11px;font-size:1.07rem;font-weight:800;letter-spacing:-.035em}
.logo {display:grid;place-items:center;width:39px;height:39px;font-size:1.35rem;border:1px solid rgba(var(--accent-rgb),.58);border-radius:12px;background:rgba(var(--accent-rgb),.17)}
.brand-accent {color:var(--accent)}
.top-actions {display:flex;align-items:center;gap:9px}
.select-wrap {position:relative}
.select-wrap::before {content:'◈';position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--accent);pointer-events:none}
.theme-select,.theme-button,.button,.small-button {border:1px solid var(--border);border-radius:11px;background:var(--surface2);color:var(--text)}
.theme-select {max-width:160px;padding:8px 28px 8px 33px}
.theme-button {min-height:40px;padding:8px 12px}
.theme-button:hover,.button:hover:not(:disabled),.small-button:hover,.theme-select:hover {border-color:var(--accent)}
.main {padding-top:46px;padding-bottom:65px}
.eyebrow {display:flex;align-items:center;gap:7px;color:var(--accent);font-weight:800;letter-spacing:.13em;text-transform:uppercase;font-size:.7rem}
h1 {font-size:clamp(2rem,4vw,2.85rem);line-height:1.15;letter-spacing:-.045em;margin:12px 0 8px}
h2 {font-size:1.11rem;margin:3px 0 0;line-height:1.3;letter-spacing:-.025em}
.subtitle {margin:0;color:var(--muted)}
.heading {display:flex;justify-content:space-between;gap:16px;align-items:end;flex-wrap:wrap;margin-bottom:27px}
.count-chip {background:rgba(var(--accent-rgb),.11);color:var(--text);border:1px solid rgba(var(--accent-rgb),.35);border-radius:100px;font-size:.8rem;padding:7px 12px;white-space:nowrap}
.workspace {display:grid;grid-template-columns:minmax(0,1.3fr) minmax(330px,1fr);gap:20px;align-items:start}
.editor,.preview-column {display:flex;flex-direction:column;gap:20px;min-width:0}
.preview-column {position:sticky;top:22px}
.panel {background:var(--surface);border:1px solid var(--border);border-radius:17px;overflow:hidden;box-shadow:var(--shadow)}
.panel-top {display:flex;align-items:center;flex-wrap:wrap;gap:14px;justify-content:space-between;padding:19px 21px;border-bottom:1px solid var(--border)}
.panel-overline {font-size:.68rem;font-weight:800;letter-spacing:.13em;color:var(--accent)}
.panel-body {padding:22px}
.segmented {display:inline-flex;gap:3px;padding:4px;border:1px solid var(--border);background:var(--surface2);border-radius:12px}
.segmented button {border:0;border-radius:8px;background:transparent;color:var(--muted);padding:7px 11px;font-size:.81rem;font-weight:750}
.segmented button.segmented-active {background:rgba(var(--accent-rgb),.23);color:var(--text)}
.type-selector {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:23px}
.type-selector button {border:1px solid var(--border);border-radius:11px;background:var(--surface2);color:var(--text);padding:10px 7px;min-width:0;font-size:.84rem;font-weight:700}
.type-selector button span {display:block;font-size:1.26rem;line-height:1.2;margin-bottom:3px;color:var(--muted)}
.type-selector button:hover {border-color:var(--accent)}
.type-selector button.type-active {background:rgba(var(--accent-rgb),.13);border-color:var(--accent)}
.type-selector button.type-active span {color:var(--accent)}
.field {margin-bottom:17px;min-width:0}
.field:last-child {margin-bottom:0}
.type-fields > label:first-child {margin-top:0}
label:not(.select-wrap):not(.checkline) {display:block;font-size:.83rem;font-weight:760;margin-bottom:7px}
input:not([type="checkbox"]):not([type="color"]):not([type="range"]),textarea,select:not(.theme-select) {width:100%;min-width:0;border:1px solid var(--border);border-radius:11px;background:var(--surface2);color:var(--text);padding:11px 13px;outline:0}
input:focus:not([type="range"]):not([type="checkbox"]),select:focus,textarea:focus {border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15)}
textarea {resize:vertical;line-height:1.5}
::placeholder {color:var(--muted);opacity:.73}
.field-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.field-grid .field {margin-bottom:17px}
.helper {font-size:.79rem;color:var(--muted);margin:7px 0 0}
.helper code {color:var(--text)}
.password-row {display:flex;gap:8px}
.password-row input {flex:1}
.small-button {padding:8px 12px;font-weight:700;font-size:.79rem;white-space:nowrap}
.checkline {display:flex;align-items:flex-start;gap:9px;cursor:pointer;font-size:.86rem;margin:10px 0 15px;color:var(--text)}
.checkline input {margin-top:4px;accent-color:var(--accent);flex:0 0 auto}
.color-entry {display:flex;align-items:center;gap:8px}
.color-entry input[type="color"] {flex:0 0 44px;width:44px;height:44px;padding:4px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);cursor:pointer}
.color-entry input:not([type="color"]) {font-family:ui-monospace,SFMono-Regular,Consolas,monospace;min-width:0;font-size:.86rem}
input[type="range"] {display:block;width:100%;accent-color:var(--accent);cursor:pointer;margin:9px 0}
.label-value {float:right;color:var(--muted);font-size:.78rem;font-weight:500}
.preview-body {padding:20px}
.preview-stage {display:grid;place-items:center;border-radius:14px;min-height:360px;padding:27px;background:
  linear-gradient(45deg,rgba(130,130,130,.065) 25%,transparent 25%),
  linear-gradient(-45deg,rgba(130,130,130,.065) 25%,transparent 25%),
  linear-gradient(45deg,transparent 75%,rgba(130,130,130,.065) 75%),
  linear-gradient(-45deg,transparent 75%,rgba(130,130,130,.065) 75%),var(--surface2);
  background-size:22px 22px;background-position:0 0,0 11px,11px -11px,-11px 0;border:1px solid var(--border)}
.qr-frame {display:grid;place-items:center;min-height:220px;min-width:220px;max-width:100%;border-radius:7px;background:white;box-shadow:0 12px 35px rgba(0,0,0,.13);overflow:hidden}
.qr-frame img {display:block;width:min(100%,300px);max-height:300px;aspect-ratio:1/1;object-fit:contain}
.status-dot {font-size:.78rem;color:var(--muted);white-space:nowrap}
.status-dot::before {content:'●';font-size:.59rem;color:#7cb99a;margin-right:6px}
.status-dot.loading::before {color:#ebc47c}
.status-dot.failed::before {color:#ee8599}
.preview-hint {font-size:.85rem;color:var(--muted);text-align:center;margin:14px 0 18px}
.download-actions {display:grid;grid-template-columns:1fr auto;gap:9px}
.button {display:inline-flex;justify-content:center;align-items:center;gap:7px;padding:11px 15px;font-weight:750;font-size:.86rem;white-space:nowrap}
.button-primary {background:var(--accent);border-color:var(--accent);color:#221820}
.button-primary:hover:not(:disabled) {filter:brightness(1.05)}
.download-note {text-align:center;margin-top:13px}
.metadata-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:7px 20px}
.metadata-grid > div {padding:13px 8px;border-bottom:1px solid var(--border);min-width:0}
.metadata-grid span {display:block;color:var(--muted);font-size:.73rem}
.metadata-grid strong {font-size:.96rem;display:block;margin-top:2px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.metadata-extra {padding:17px 22px 22px}
.metadata-extra textarea {font: .76rem/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre;min-height:90px}
.warnings-panel {border-color:#cc9770}
.warnings-panel strong {font-size:.9rem;color:var(--text)}
.warnings-panel p {font-size:.83rem;color:var(--muted);margin:9px 0 0}
.error-message {margin-top:13px;border:1px solid #df8795;background:rgba(236,107,128,.1);padding:11px 13px;border-radius:10px;font-size:.87rem;overflow-wrap:anywhere}
.footer {text-align:center;margin:35px 0 0;color:var(--muted);font-size:.8rem}
@media(max-width:940px) {
  .workspace {grid-template-columns:minmax(0,1fr)}
  .preview-column {position:static}
  .preview-stage {min-height:315px}
}
@media(max-width:650px) {
  .shell {width:min(100% - 22px,1160px)}
  .topbar-inner {padding:12px 0}
  .main {padding-top:27px}
  .panel-top {padding:15px}
  .panel-body,.preview-body {padding:15px}
  .type-selector {grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
  .type-selector button {font-size:.76rem;padding:8px 3px}
  .field-grid {gap:10px}
  .preview-stage {min-height:300px;padding:17px}
  .qr-frame {min-width:190px;min-height:190px}
  .heading {margin-bottom:18px}
  .color-entry {gap:5px}
  .color-entry input[type="color"] {flex-basis:38px;width:38px}
}
@media(max-width:370px) {
  .field-grid {grid-template-columns:1fr;gap:0}
  .type-selector button {font-size:.71rem}
  .download-actions {grid-template-columns:1fr}
}
