@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--base-color-brand-red:#e60023;--base-color-text-primary:#211922;--base-color-text-secondary:#62625b;--base-color-text-muted:#91918c;--base-color-text-white:#fff;--base-color-surface-white:#fff;--base-color-surface-fog:#f6f6f3;--base-color-surface-sand:#e5e5e0;--base-color-surface-warm:#e0e0d9;--base-color-surface-dark:#33332e;--base-color-border:#91918c;--base-color-border-disabled:#c8c8c1;--base-color-border-hover:#bcbcb3;--base-color-focus:#435ee5;--base-color-link:#2b48d4;--sema-bg-page:var(--base-color-surface-white);--sema-bg-surface:var(--base-color-surface-fog);--sema-bg-card:var(--base-color-surface-white);--sema-bg-dark:var(--base-color-surface-dark);--sema-text-default:var(--base-color-text-primary);--sema-text-secondary:var(--base-color-text-secondary);--sema-text-muted:var(--base-color-text-muted);--sema-border:var(--base-color-border);--sema-accent:var(--base-color-brand-red);--sema-focus-ring:var(--base-color-focus);--radius-sm:12px;--radius-btn:16px;--radius-card:20px;--radius-lg:28px;--radius-section:32px;--radius-hero:40px;--radius-circle:50%;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--font-primary:"Inter", -apple-system, system-ui, "Segoe UI", Roboto, Helvetica Neue, Arial, sans-serif;--font-mono:"JetBrains Mono", "Fira Mono", "Consolas", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-primary);background:var(--sema-bg-page);color:var(--sema-text-default);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.4}#root{flex-direction:column;display:flex}.pg-header{background:var(--sema-bg-page);border-bottom:1px solid var(--base-color-surface-sand);height:64px;padding:0 var(--sp-6);z-index:100;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.pg-header__logo{align-items:center;gap:var(--sp-2);text-decoration:none;display:flex}.pg-header__logo-icon{background:var(--sema-accent);border-radius:var(--radius-circle);color:#fff;letter-spacing:-.5px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;font-weight:700;display:flex}.pg-header__logo-text{color:var(--sema-text-default);letter-spacing:-.5px;font-size:20px;font-weight:700}.pg-header__actions{align-items:center;gap:var(--sp-3);display:flex}.pg-main{flex:1;grid-template-columns:1fr 1fr;height:calc(100vh - 64px);display:grid;overflow:hidden}.pg-pane{flex-direction:column;display:flex;overflow:hidden}.pg-pane--left{border-right:1px solid var(--base-color-surface-sand);background:var(--sema-bg-page)}.pg-pane--right{background:var(--sema-bg-surface)}.pane-bar{height:48px;padding:0 var(--sp-5);border-bottom:1px solid var(--base-color-surface-sand);background:var(--sema-bg-page);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.pane-bar__label{color:var(--sema-text-muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:var(--sp-2);font-size:12px;font-weight:600;display:flex}.pane-bar__badge{color:var(--sema-text-muted);background:var(--base-color-surface-sand);border-radius:var(--radius-btn);padding:2px 8px;font-size:11px;font-weight:500}.editor-textarea{resize:none;width:100%;padding:var(--sp-5);font-family:var(--font-mono);color:var(--sema-text-default);caret-color:var(--sema-accent);background:0 0;border:none;outline:none;flex:1;font-size:13px;line-height:1.65}.editor-textarea::placeholder{color:var(--base-color-border-disabled)}.preview-scroll{padding:var(--sp-6);align-items:center;gap:var(--sp-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.diagram-card{background:var(--sema-bg-card);border-radius:var(--radius-card);padding:var(--sp-6);border:1px solid var(--base-color-surface-sand);width:100%;max-width:700px;transition:box-shadow .2s,transform .2s;position:relative}.diagram-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #21192214}.diagram-card__type-badge{color:var(--sema-text-muted);background:var(--base-color-surface-sand);border-radius:var(--radius-btn);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--sp-4);align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.diagram-card__svg-wrap{justify-content:center;display:flex;overflow-x:auto}.diagram-card__svg-wrap svg{max-width:100%;height:auto}.diagram-controls{top:var(--sp-4);right:var(--sp-4);gap:var(--sp-2);display:flex;position:absolute}.empty-state{justify-content:center;align-items:center;gap:var(--sp-4);color:var(--sema-text-muted);text-align:center;padding:var(--sp-8);flex-direction:column;flex:1;display:flex}.empty-state__icon{border-radius:var(--radius-circle);background:var(--base-color-surface-warm);width:64px;height:64px;color:var(--sema-text-muted);justify-content:center;align-items:center;display:flex}.empty-state__title{color:var(--sema-text-default);font-size:16px;font-weight:700}.empty-state__sub{color:var(--sema-text-secondary);max-width:280px;font-size:14px;line-height:1.5}.empty-state__hint{font-family:var(--font-mono);background:var(--base-color-surface-sand);border-radius:var(--radius-sm);color:var(--sema-text-secondary);padding:4px 12px;font-size:12px}.error-card{border-radius:var(--radius-card);padding:var(--sp-5);color:#9e0a0a;font-size:13px;font-family:var(--font-mono);background:#fff5f5;border:1px solid #fca5a5;width:100%;max-width:700px}.btn-primary{background:var(--sema-accent);color:#fff;font-family:var(--font-primary);border-radius:var(--radius-btn);cursor:pointer;white-space:nowrap;border:2px solid #0000;align-items:center;gap:6px;padding:8px 18px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,transform .1s;display:inline-flex}.btn-primary:hover{background:#c60020;transform:translateY(-1px)}.btn-primary:active{background:#ad001c;transform:translateY(0)}.btn-primary:focus-visible{outline:3px solid var(--sema-focus-ring);outline-offset:2px}.btn-secondary{background:var(--base-color-surface-sand);color:var(--sema-text-default);font-family:var(--font-primary);border-radius:var(--radius-btn);cursor:pointer;white-space:nowrap;border:2px solid #0000;align-items:center;gap:6px;padding:8px 18px;font-size:14px;font-weight:600;transition:background .15s,transform .1s;display:inline-flex}.btn-secondary:hover{background:var(--base-color-border-hover);transform:translateY(-1px)}.btn-secondary:active{transform:translateY(0)}.btn-secondary:focus-visible{outline:3px solid var(--sema-focus-ring);outline-offset:2px}.btn-circle{border-radius:var(--radius-circle);background:var(--base-color-surface-warm);width:36px;height:36px;color:var(--sema-text-default);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,transform .1s;display:flex}.btn-circle:hover{background:var(--base-color-border-disabled);transform:scale(1.08)}.btn-circle:active{transform:scale(.96)}.btn-circle:focus-visible{outline:3px solid var(--sema-focus-ring);outline-offset:2px}.btn-download{background:var(--sema-accent);color:#fff;border-radius:var(--radius-btn);font-size:12px;font-weight:600;font-family:var(--font-primary);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:5px;padding:6px 14px;transition:background .15s,transform .1s;display:inline-flex}.btn-download:hover{background:#c60020;transform:translateY(-1px)}.btn-download:active{transform:translateY(0)}.btn-download+.btn-download{margin-left:var(--sp-2)}.file-input-hidden{display:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--base-color-surface-sand);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--base-color-border-disabled)}.pg-footer{background:var(--sema-bg-dark);height:40px;color:var(--sema-text-muted);padding:0 var(--sp-6);flex-shrink:0;justify-content:space-between;align-items:center;font-size:11px;display:flex}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.anim-fade-in{animation:.35s ease-out forwards fadeSlideIn}@media (width<=768px){.pg-main{grid-template-rows:40vh 1fr;grid-template-columns:1fr}.pg-pane--left{border-right:none;border-bottom:1px solid var(--base-color-surface-sand)}}
