:root{--font:"Segoe UI", "IBM Plex Sans", sans-serif;--radius:14px;--control:36px;--ease:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;font-family:var(--font);margin:0;overflow:hidden}button,input{font:inherit}.app{--ink:#17191d;--muted:#6b7280;--panel:#fffffff0;--line:#17191d1a;--accent:#3b5bdb;--accent-soft:#3b5bdb1a;--danger:#e03131;--shadow:0 12px 32px #1018281a;width:100%;height:100%;color:var(--ink);background:#eef1f5;position:relative}.app.ui-dark{--ink:#f1f3f5;--muted:#adb5bd;--panel:#181c24f0;--line:#ffffff1a;--accent:#91a7ff;--accent-soft:#91a7ff24;--danger:#ff8787;--shadow:0 12px 32px #00000059;background:#0f131a}.board{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.topbar,.toolbar,.stylebar,.settings-panel,.canvas-actions,.modal{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.topbar{z-index:4;border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex;position:absolute;top:12px;left:12px;right:12px}.brand{align-items:center;gap:10px;min-width:0;display:flex}.mark{color:#fff;background:#4263eb;border-radius:10px;place-items:center;width:32px;height:32px;display:grid}.brand-copy{flex-direction:column;min-width:0;display:flex}.logo{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.68rem;font-weight:700}.title{color:var(--ink);background:0 0;border:0;outline:none;min-width:120px;max-width:220px;padding:0;font-size:.95rem;font-weight:650}.top-actions,.canvas-actions{align-items:center;gap:4px;display:flex}.icon-btn,.tool,.ghost-btn,.segmented button,.zoom-label{color:var(--ink);cursor:pointer;transition:background .14s var(--ease), color .14s var(--ease);background:0 0;border:1px solid #0000;border-radius:10px}.icon-btn{width:var(--control);height:var(--control);place-items:center;display:grid}.icon-btn:hover,.tool:hover,.ghost-btn:hover,.segmented button:hover,.zoom-label:hover{background:var(--accent-soft)}.icon-btn.is-active,.tool.is-active,.segmented button.is-active{background:var(--accent-soft);color:var(--accent)}.icon-btn.is-danger:hover{color:var(--danger);background:#e031311f}.divider{background:var(--line);width:1px;height:18px;margin:0 2px}.toolbar{z-index:4;border-radius:var(--radius);flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.tool{place-items:center;width:40px;height:40px;display:grid}.stylebar,.settings-panel{z-index:4;border-radius:var(--radius);padding:12px;position:absolute}.stylebar{flex-direction:column;gap:12px;width:176px;display:flex;top:84px;right:12px}.style-group,.field,.slider-field{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);flex-direction:column;gap:7px;font-size:.72rem;font-weight:650;display:flex}.swatches,.theme-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.swatch,.theme-swatch{aspect-ratio:1;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;border:2px solid #0000;border-radius:8px}.swatch.is-active,.theme-swatch.is-active{border-color:var(--accent)}.slider-field input[type=range]{width:100%;accent-color:var(--accent)}.ghost-btn{border:1px solid var(--line);text-transform:none;letter-spacing:0;padding:8px 10px;font-size:.82rem;font-weight:600}.settings-panel{flex-direction:column;gap:14px;width:236px;display:flex;top:84px;left:72px}.panel-title{color:var(--ink);text-transform:none;letter-spacing:0;justify-content:space-between;align-items:center;gap:8px;font-size:.95rem;font-weight:700;display:flex}.panel-title-left{align-items:center;gap:8px;display:flex}.segmented{background:color-mix(in srgb, var(--ink) 6%, transparent);border-radius:10px;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;display:grid}.segmented button{text-transform:capitalize;padding:7px 4px;font-size:.78rem;font-weight:600}.segmented button.is-active{background:var(--panel);color:var(--accent);box-shadow:0 1px 4px #00000014}.toggle{color:var(--ink);align-items:flex-start;gap:10px;display:flex}.toggle input{margin-top:3px}.toggle-copy{flex-direction:column;gap:2px;display:flex}.toggle-copy strong{font-size:.88rem;font-weight:650}.toggle-copy small{color:var(--muted);text-transform:none;letter-spacing:0;font-size:.78rem;font-weight:500;line-height:1.35}.canvas-actions{z-index:4;border-radius:999px;padding:6px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.zoom-label{font-variant-numeric:tabular-nums;min-width:54px;height:32px;font-weight:700}.modal-backdrop{z-index:10;background:#0a0c1066;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.modal{border-radius:16px;width:min(400px,100%);padding:18px}.modal-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.modal h2{margin:0;font-size:1.1rem}.shortcut-list{color:var(--muted);margin:0;padding-left:18px;line-height:1.7}.shortcut-list kbd{border:1px solid var(--line);background:color-mix(in srgb, var(--ink) 6%, transparent);color:var(--ink);border-radius:5px;padding:1px 5px;font-size:.75rem;display:inline-block}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-editor{z-index:6;resize:both;border:1.5px solid #4263eb;border-radius:6px;outline:none;margin:0;padding:6px 8px;font-family:Segoe UI,system-ui,sans-serif;line-height:1.35;position:absolute;overflow:auto;box-shadow:0 8px 24px #0f172a2e}.text-editor.is-note{border-radius:10px}.crop-hint{z-index:5;border:1px solid var(--line);box-shadow:var(--shadow);color:var(--muted);pointer-events:none;background:#fffffff0;border-radius:999px;padding:8px 14px;font-size:.82rem;position:absolute;top:78px;left:50%;transform:translate(-50%)}.app.ui-dark .crop-hint{background:#181c24f0}@media (width<=900px){.toolbar{flex-direction:row;max-width:calc(100% - 20px);top:auto;bottom:78px;left:50%;overflow-x:auto;transform:translate(-50%)}.stylebar{display:none}.settings-panel{width:auto;left:12px;right:12px}}html,body,#root{width:100%;height:100%;margin:0}
