*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{font-family:Roboto Condensed,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;color:#0f172a;background:#f1f5f9}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}ul{list-style:none;margin:0;padding:0}:root{--border: #e2e8f0;--panel: #ffffff;--muted: #64748b;--primary: #2563eb;--primary-hover: #1d4ed8;--danger: #dc2626;--bg-subtle: #f8fafc}.lp-shell{--lp-max: 1180px;--lp-pad-x: 24px;--lp-section-y: 88px;--lp-radius: 12px;--lp-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .04);display:flex;flex-direction:column;min-height:100%;height:auto;background:var(--panel);color:#0f172a;overflow:auto;scroll-behavior:smooth}.lp-container{width:100%;max-width:var(--lp-max);margin:0 auto;padding:0 var(--lp-pad-x);box-sizing:border-box}.lp-header{position:sticky;top:0;z-index:20;background:#ffffffeb;-webkit-backdrop-filter:saturate(140%) blur(8px);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--border)}.lp-header-inner{width:100%;max-width:var(--lp-max);margin:0 auto;padding:12px var(--lp-pad-x);display:flex;align-items:center;gap:24px;box-sizing:border-box}.lp-brand{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:16px;color:#0f172a;text-decoration:none;letter-spacing:-.01em}.lp-brand-logo{display:block}.lp-brand-name{white-space:nowrap}.lp-header-nav{display:flex;align-items:center;gap:24px;margin-left:auto}.lp-header-nav a{color:var(--muted);text-decoration:none;font-size:14px;font-weight:500;transition:color .15s ease}.lp-header-nav a:hover{color:#0f172a}.lp-header-cta{flex-shrink:0}.lp-locale-switch{display:inline-flex;border:1px solid var(--border);border-radius:8px;padding:2px;background:var(--bg-subtle);flex-shrink:0}.lp-locale-btn{padding:6px 10px;font-family:inherit;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--muted);background:transparent;border:0;border-radius:6px;cursor:pointer;transition:background .15s ease,color .15s ease}.lp-locale-btn:hover{color:#0f172a}.lp-locale-btn.is-active{background:var(--panel);color:#0f172a;box-shadow:0 1px 2px #0f172a0f}.lp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:8px;font-size:15px;font-weight:600;font-family:inherit;line-height:1.2;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .05s ease;white-space:nowrap}.lp-btn:active{transform:translateY(1px)}.lp-btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.lp-btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.lp-btn-secondary{background:#fff;color:#0f172a;border-color:var(--border)}.lp-btn-secondary:hover{background:var(--bg-subtle);border-color:#cbd5e1}.lp-tertiary-link{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:500;color:var(--primary);text-decoration:none;padding:12px 8px;white-space:nowrap}.lp-tertiary-link:hover{text-decoration:underline}.lp-cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:28px}.lp-cta-row-center{justify-content:center}.lp-section{padding:var(--lp-section-y) 0}.lp-section-alt{background:var(--bg-subtle)}.lp-section-cta{background:linear-gradient(180deg,#f8fafc,#eff6ff);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.lp-section-head{text-align:center;max-width:720px;margin:0 auto 48px}.lp-section-sub{margin:12px 0 0;color:var(--muted);font-size:17px;line-height:1.55}.lp-h1{margin:12px 0 0;font-size:44px;line-height:1.1;letter-spacing:-.02em;font-weight:700;color:#0f172a}.lp-h2{margin:0;font-size:32px;line-height:1.2;letter-spacing:-.015em;font-weight:700;color:#0f172a}.lp-eyebrow{display:inline-block;padding:6px 12px;background:#eff6ff;color:var(--primary-hover);border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.02em}.lp-lead{margin:20px 0 0;font-size:18px;line-height:1.55;color:#334155;max-width:540px}.lp-hero{padding-top:64px;padding-bottom:96px}.lp-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}.lp-hero-art{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--lp-radius);padding:24px;box-shadow:var(--lp-shadow)}.lp-hero-illustration{display:block;width:100%;height:auto}.lp-continue{display:flex;align-items:center;gap:14px;width:100%;margin-top:28px;padding:14px 18px;background:#fef9c3;border:1px solid #fde68a;border-radius:10px;text-align:left;cursor:pointer;font:inherit;color:#0f172a;transition:background .15s ease,border-color .15s ease}.lp-continue:hover{background:#fef3c7;border-color:#fcd34d}.lp-continue-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#fcd34d;color:#78350f}.lp-continue-body{flex:1;min-width:0}.lp-continue-title{font-size:14px;font-weight:600;color:#0f172a}.lp-continue-meta{margin-top:2px;font-size:12px;color:#78350f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lp-continue-cta{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;font-size:13px;font-weight:600;color:#78350f}.lp-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;counter-reset:lp-step}.lp-step{background:var(--panel);border:1px solid var(--border);border-radius:var(--lp-radius);padding:28px;display:flex;flex-direction:column;gap:14px}.lp-step-number{width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px}.lp-step-title{margin:0;font-size:18px;font-weight:600;color:#0f172a;line-height:1.3}.lp-step-text{margin:0;color:var(--muted);font-size:15px;line-height:1.55}.lp-usecases-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.lp-usecase{background:var(--panel);border:1px solid var(--border);border-radius:var(--lp-radius);padding:24px;display:flex;flex-direction:column;gap:14px;transition:border-color .15s ease,box-shadow .15s ease}.lp-usecase:hover{border-color:#cbd5e1;box-shadow:var(--lp-shadow)}.lp-usecase-title{margin:0;font-size:17px;font-weight:600;color:#0f172a;line-height:1.3}.lp-usecase-body{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.lp-usecase-meta{display:flex;flex-direction:column;gap:10px;margin:4px 0 0;padding:14px 0 0;border-top:1px solid var(--border)}.lp-usecase-meta>div{display:flex;flex-direction:column;gap:2px}.lp-usecase-meta dt{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.lp-usecase-meta dd{margin:0;font-size:13px;color:#1e293b;line-height:1.4}.lp-why-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 32px;max-width:880px;margin:0 auto}.lp-why-item{display:flex;align-items:flex-start;gap:12px;font-size:15px;line-height:1.5;color:#1e293b}.lp-why-icon{flex-shrink:0;color:#16a34a;margin-top:2px}.lp-embedded-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:920px;margin:0 auto}.lp-embedded-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--lp-radius);padding:28px;display:flex;flex-direction:column;gap:14px}.lp-embedded-mark{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.lp-embedded-title{margin:0;font-size:22px;font-weight:600;color:#0f172a}.lp-embedded-body{margin:0;color:#334155;font-size:15px;line-height:1.55}.lp-embedded-note{margin:4px 0 0;padding:12px 14px;background:var(--bg-subtle);border-left:3px solid #cbd5e1;border-radius:4px;font-size:13px;color:var(--muted);line-height:1.5}.lp-embedded-cta{align-self:flex-start;margin-top:auto}.lp-final{text-align:center;max-width:720px}.lp-footer{background:#0f172a;color:#cbd5e1;padding:48px 0}.lp-footer-inner{display:grid;grid-template-columns:2fr 1fr auto;gap:48px;align-items:start}.lp-footer-name{font-size:16px;font-weight:600;color:#fff}.lp-footer-tagline{margin-top:6px;font-size:13px;color:#94a3b8;max-width:360px;line-height:1.5}.lp-footer-links{display:flex;flex-direction:column;gap:8px}.lp-footer-links-title{font-size:11px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.lp-footer-links a{color:#cbd5e1;text-decoration:none;font-size:14px;transition:color .15s ease}.lp-footer-links a:hover{color:#fff}.lp-footer-copy{font-size:13px;color:#94a3b8;align-self:end;text-align:right}.lp-footer-notice{grid-column:1 / -1;margin-top:8px;padding-top:16px;border-top:1px solid #1e293b;font-size:12px;color:#94a3b8;font-style:italic}@media (max-width: 960px){.lp-shell{--lp-section-y: 64px}.lp-hero-grid{grid-template-columns:1fr;gap:40px}.lp-hero{padding-top:40px;padding-bottom:56px}.lp-h1{font-size:36px}.lp-h2{font-size:26px}.lp-lead{font-size:16px}.lp-steps,.lp-usecases-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-why-list,.lp-embedded-grid{grid-template-columns:1fr}.lp-footer-inner{grid-template-columns:1fr;gap:28px}.lp-footer-copy{text-align:left;align-self:stretch}}@media (max-width: 640px){.lp-shell{--lp-pad-x: 20px;--lp-section-y: 56px}.lp-header-nav{display:none}.lp-header-inner{padding:10px var(--lp-pad-x);gap:12px}.lp-section{padding:48px 0}.lp-section-head{margin-bottom:32px}.lp-section-sub{font-size:15px}.lp-h1{font-size:30px}.lp-h2{font-size:22px}.lp-hero{padding-top:32px;padding-bottom:48px}.lp-hero-grid{gap:28px}.lp-hero-art{padding:16px}.lp-hero-illustration{max-height:320px}.lp-cta-row{flex-direction:column;align-items:stretch;gap:10px;margin-top:24px}.lp-cta-row .lp-btn{width:100%}.lp-tertiary-link{justify-content:center;padding:10px 8px}.lp-continue{flex-wrap:wrap;padding:14px;gap:12px}.lp-continue-meta{white-space:normal;text-overflow:clip;line-height:1.45}.lp-continue-cta{flex-basis:100%;margin-left:48px}.lp-steps,.lp-usecases-grid{grid-template-columns:1fr;gap:16px}.lp-step{padding:22px}.lp-usecase{padding:20px}.lp-embedded-grid{gap:16px}.lp-embedded-card{padding:22px}.lp-footer{padding:36px 0}.lp-footer-inner{gap:24px}}@media (max-width: 480px){.lp-shell{--lp-pad-x: 16px}.lp-h1{font-size:26px}.lp-h2{font-size:20px}.lp-eyebrow{font-size:11px;padding:5px 10px}.lp-lead,.lp-brand-name{font-size:15px}.lp-header-cta{padding:8px 10px;gap:4px}.lp-header-cta .lp-cta-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.lp-section{padding:40px 0}.lp-section-head{margin-bottom:24px}.lp-step{padding:18px;gap:12px}.lp-step-number{width:32px;height:32px;font-size:14px}.lp-step-title{font-size:17px}.lp-usecase{padding:18px}.lp-embedded-card{padding:20px}.lp-embedded-title{font-size:19px}.lp-footer{padding:32px 0}}@media (prefers-reduced-motion: reduce){.lp-shell{scroll-behavior:auto}.lp-btn,.lp-continue,.lp-usecase,.lp-header-nav a,.lp-footer-links a{transition:none}}.hub-shell{display:flex;flex-direction:column;height:100%;background:var(--bg-subtle);overflow:auto}.hub-header{min-height:64px;padding:12px 32px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px}.hub-brand{font-weight:600;font-size:20px;letter-spacing:-.01em}.hub-header-left{display:flex;align-items:center;gap:12px}.hub-header-link{color:var(--muted);font-size:13px;display:inline-flex;align-items:center;gap:6px;text-decoration:none;padding:6px 10px;border-radius:6px}.hub-header-link:hover{background:var(--bg-subtle);color:var(--primary)}.hub-main{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:32px;display:flex;flex-direction:column;gap:28px}.hub-section{display:flex;flex-direction:column;gap:12px}.hub-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.hub-section-title{margin:0;font-size:14px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.hub-section-link{color:var(--muted);font-size:12px;display:inline-flex;align-items:center;gap:4px;text-decoration:none}.hub-section-link:hover{color:var(--primary)}.hub-primary{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 720px){.hub-primary{grid-template-columns:1fr}}.hub-card{text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:24px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s;font:inherit;color:inherit}.hub-card:hover{border-color:var(--primary);box-shadow:0 6px 20px #2563eb1a;transform:translateY(-1px)}.hub-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.hub-card-icon{width:56px;height:56px;border-radius:12px;background:#eff6ff;color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.hub-card-body{min-width:0}.hub-card-title{font-size:16px;font-weight:600;margin-bottom:4px}.hub-card-desc{font-size:13px;color:var(--muted);line-height:1.4}.hub-card-arrow{color:var(--muted);flex-shrink:0;transition:color .15s,transform .15s}.hub-card:hover .hub-card-arrow{color:var(--primary);transform:translate(2px)}.hub-continue{text-align:left;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:14px 18px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;cursor:pointer;font:inherit;color:inherit;transition:border-color .15s,background .15s}.hub-continue:hover{border-color:#f59e0b;background:#fef3c7}.hub-continue:focus-visible{outline:2px solid #f59e0b;outline-offset:2px}.hub-continue-icon{width:36px;height:36px;border-radius:8px;background:#f59e0b2e;color:#92400e;display:flex;align-items:center;justify-content:center;flex-shrink:0}.hub-continue-body{min-width:0}.hub-continue-title{font-size:14px;font-weight:600;color:#92400e;margin-bottom:2px}.hub-continue-meta{font-size:12px;color:#92400e;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-empty{padding:36px 24px;text-align:center;color:var(--muted);background:var(--panel);border:1px dashed var(--border);border-radius:8px;font-size:14px}.hub-empty a{color:var(--primary);text-decoration:none}.hub-empty a:hover{text-decoration:underline}.hub-recent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.hub-recent{background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s}.hub-recent:hover{box-shadow:0 4px 12px #0f172a14;transform:translateY(-1px)}.hub-recent-thumb{background:#f1f5f9;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;height:160px;padding:10px}.hub-recent-preview{background:#fff;border:1px solid var(--border);box-shadow:0 1px 3px #0f172a14;max-width:95%;max-height:100%;overflow:hidden}.hub-recent-body{padding:10px 12px 6px;flex:1;min-width:0}.hub-recent-name{font-weight:500;font-size:14px;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-recent-meta{font-size:11px;color:var(--muted)}.hub-recent-actions{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border-top:1px solid var(--border)}.hub-recent-btn{padding:8px;border:none;background:var(--panel);font-size:12px;cursor:pointer;color:var(--fg, #111);display:inline-flex;align-items:center;justify-content:center;gap:4px}.hub-recent-btn:hover{background:#eff6ff;color:var(--primary)}.hub-recent-btn-print{color:var(--primary);font-weight:500}.hub-footer{margin-top:12px;padding:18px 0 4px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.hub-footer-title{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.hub-footer-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted)}.hub-footer-tags li{display:inline-flex;align-items:center}.hub-footer-tags li:before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.4;margin-right:8px;flex-shrink:0}.library-shell{display:flex;flex-direction:column;height:100%;background:var(--bg-subtle)}.library-header{min-height:64px;padding:12px 32px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px}.library-header-title{display:flex;align-items:center;gap:12px}.library-header h1{margin:0;font-size:20px;font-weight:600}.library-toolbar{display:flex;gap:8px;align-items:center}.search-wrap{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:10px;color:var(--muted);pointer-events:none}.library-toolbar input[type=search]{padding:6px 12px 6px 30px;border:1px solid var(--border);border-radius:6px;min-width:240px}.library-toolbar button{padding:6px 14px;border:1px solid var(--border);border-radius:6px;background:var(--panel);display:inline-flex;align-items:center;gap:6px}.library-toolbar button.primary{background:var(--primary);border-color:var(--primary);color:#fff}.library-toolbar button.primary:hover:not(:disabled){background:var(--primary-hover)}.library-main{flex:1;overflow:auto;padding:24px 32px}.library-empty{padding:60px;text-align:center;color:var(--muted)}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.tpl-card{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s,border-color .15s}.tpl-card:hover{box-shadow:0 4px 12px #0f172a14;transform:translateY(-1px);border-color:#cbd5e1}.tpl-card-thumb{padding:10px;background:#f1f5f9;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center;height:200px;cursor:pointer}.tpl-card-thumb:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.tpl-card-preview{background:#fff;border:1px solid var(--border);box-shadow:0 1px 3px #0f172a14;max-width:95%;max-height:100%;overflow:hidden}.tpl-thumbnail-mount,.tpl-thumbnail-mount>svg{display:block;width:100%;height:100%}.tpl-card-body{padding:10px 12px;flex:1;cursor:pointer;min-width:0}.tpl-card-name{font-weight:500;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tpl-card-meta{font-size:12px;color:var(--muted)}.tpl-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border-top:1px solid var(--border)}.tpl-card-action{padding:9px 8px;border:none;background:var(--panel);font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:5px;font-weight:500}.tpl-card-action:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.tpl-card-action-edit{color:var(--fg, #111)}.tpl-card-action-edit:hover{background:var(--bg-subtle);color:var(--primary)}.tpl-card-action-print{color:var(--primary)}.tpl-card-action-print:hover{background:#eff6ff}.tpl-card-utils{position:absolute;top:6px;right:6px;display:flex;gap:2px;opacity:0;transition:opacity .15s}.tpl-card:hover .tpl-card-utils,.tpl-card:focus-within .tpl-card-utils{opacity:1}.tpl-card-util{width:26px;height:26px;padding:0;border:1px solid var(--border);background:#fffffff2;border-radius:4px;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.tpl-card-util:hover{background:#fff;border-color:var(--primary);color:var(--primary)}.tpl-card-util-danger:hover{border-color:var(--danger);color:var(--danger)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--panel);border-radius:8px;padding:20px 24px;width:420px;max-width:90vw;display:flex;flex-direction:column;gap:12px;box-shadow:0 10px 30px #0f172a33}.modal-title{font-size:16px;font-weight:600;margin-bottom:4px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.modal-actions button{padding:6px 14px;border-radius:6px;border:1px solid var(--border);background:var(--panel)}.modal-actions button.primary{background:var(--primary);border-color:var(--primary);color:#fff}.modal-actions button.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.modal-actions button.danger{background:var(--danger);border-color:var(--danger);color:#fff}.modal-actions button.danger:hover{background:#b91c1c;border-color:#b91c1c}.modal-actions button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.modal-actions button.danger:focus-visible{outline-color:var(--danger)}.modal-confirm{width:380px}.modal-message{font-size:14px;line-height:1.45;color:var(--fg, #111);margin:4px 0 8px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field span{font-size:12px;color:var(--muted)}.field input{padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:#fff;width:100%;min-width:0;box-sizing:border-box}.field textarea{padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:#fff;width:100%;min-width:0;box-sizing:border-box;resize:vertical;min-height:56px}.field-row{display:flex;gap:8px;min-width:0}.field-row .field{flex:1 1 0;min-width:0}.presets{display:flex;flex-wrap:wrap;gap:6px}.preset-chip{padding:4px 10px;border:1px solid var(--border);background:var(--bg-subtle);border-radius:999px;font-size:12px}.editor-shell{display:flex;flex-direction:column;height:100%;background:var(--bg-subtle)}.editor-loading,.editor-error{padding:40px;text-align:center;color:var(--muted)}.topbar{height:48px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:16px}.topbar-back{color:var(--muted);font-size:13px;display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;text-decoration:none}.topbar-back:hover{color:var(--fg, #111)}.topbar-name{font-weight:600;display:flex;align-items:center;gap:6px}.topbar-dirty{color:var(--primary);font-size:10px}.topbar-size{color:var(--muted);font-size:13px}.topbar-zoom{display:flex;align-items:center;gap:6px;margin-left:auto}.topbar-zoom button{width:24px;height:24px;border-radius:4px;border:1px solid var(--border);background:var(--panel);display:inline-flex;align-items:center;justify-content:center;padding:0}.topbar-zoom span{min-width:44px;text-align:center;font-size:12px;color:var(--muted)}.topbar-save{padding:6px 14px;border-radius:6px;background:var(--primary);border:1px solid var(--primary);color:#fff;display:inline-flex;align-items:center;gap:6px}.topbar-apply{background:#1d4ed8;border-color:#1d4ed8;box-shadow:0 1px #0f172a0a,0 0 0 3px #2563eb1f}.topbar-apply:hover:not(:disabled){background:#1e40af;border-color:#1e40af}.topbar-print{padding:6px 14px;border-radius:6px;background:#059669;border:1px solid #059669;color:#fff;display:inline-flex;align-items:center;gap:6px;font-weight:500}.topbar-print:hover:not(:disabled){background:#047857;border-color:#047857}.topbar-print:focus-visible{outline:2px solid #059669;outline-offset:2px}.topbar-secondary{padding:6px 12px;border-radius:6px;background:var(--panel);border:1px solid var(--border);color:var(--muted);display:inline-flex;align-items:center;gap:6px}.topbar-secondary:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.editor-body{flex:1;display:grid;grid-template-columns:240px 1fr 280px;overflow:hidden}.left-panel,.right-panel{background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;overflow-x:hidden;padding:12px;display:flex;flex-direction:column;gap:16px;min-width:0}.right-panel{border-right:none;border-left:1px solid var(--border)}.panel-section{display:flex;flex-direction:column;gap:8px}.panel-title{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.panel-empty{padding:8px 0;color:var(--muted);font-size:12px}.panel-hint{font-size:11px;color:var(--muted);line-height:1.35;margin:2px 0 8px;padding:6px 8px;background:#2563eb0d;border-left:2px solid var(--primary);border-radius:2px}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tool-grid button{padding:10px 6px;border:1px solid var(--border);border-radius:6px;background:var(--panel);font-size:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted)}.tool-grid button:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:#eff6ff}.layer-list{display:flex;flex-direction:column;gap:2px}.pages-list{display:flex;flex-direction:column;gap:4px;margin-bottom:6px;padding:0;list-style:none}.page-item{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:4px 6px;border-radius:4px;cursor:pointer;min-width:0}.page-item:hover{background:var(--bg-subtle)}.page-item.active{background:#dbeafe;color:var(--primary)}.page-thumb{width:28px;min-width:28px;max-height:28px;border:1px solid var(--border);border-radius:2px;box-sizing:border-box}.page-item.active .page-thumb{border-color:var(--primary)}.page-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.page-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:text}.page-name-input{font-size:13px;padding:2px 4px;border:1px solid var(--primary);border-radius:3px;width:100%;min-width:0;box-sizing:border-box}.page-role{font-size:11px;color:var(--muted);padding:1px 4px;border:1px solid transparent;background:transparent;border-radius:3px;cursor:pointer;max-width:100%}.page-role:hover{border-color:var(--border);background:#fff}.page-actions{display:flex;gap:1px}.page-actions .layer-btn{opacity:1}.layer-item{padding:5px 6px;border-radius:4px;display:flex;gap:6px;align-items:center;cursor:pointer;font-size:13px;min-width:0}.layer-item:hover{background:var(--bg-subtle)}.layer-item.selected{background:#dbeafe;color:var(--primary)}.layer-item.entered{box-shadow:inset 3px 0 0 var(--primary);font-style:italic}.layer-icon{flex-shrink:0;color:var(--muted)}.layer-item.selected .layer-icon{color:var(--primary)}.layer-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-btn{flex-shrink:0;width:22px;height:22px;padding:0;border:none;background:transparent;color:var(--muted);border-radius:3px;display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:opacity .1s}.layer-item:hover .layer-btn,.layer-item.selected .layer-btn{opacity:1}.layer-item:hover .layer-btn:disabled,.layer-item.selected .layer-btn:disabled{opacity:.35}.layer-btn:disabled{cursor:not-allowed}.layer-btn:hover:not(:disabled){background:#2563eb1a;color:var(--primary)}.panel-button-danger{margin-top:6px;padding:6px 8px;border:1px solid var(--danger);border-radius:4px;background:var(--panel);color:var(--danger);font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.panel-button{margin-top:6px;padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:var(--panel);color:var(--muted);font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.panel-button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.canvas-wrap{overflow:auto;background:#e2e8f0;display:flex;align-items:flex-start;justify-content:center;padding:32px;min-width:0;user-select:none;-webkit-user-select:none}.canvas-wrap.with-rulers{display:grid;grid-template-columns:20px auto;grid-template-rows:20px auto;align-items:start;justify-content:start;padding:0}.canvas-wrap.hand-tool,.canvas-wrap.hand-tool *{cursor:grab!important}.canvas-wrap.hand-tool-panning,.canvas-wrap.hand-tool-panning *{cursor:grabbing!important}.canvas-viewport{background:#fff;box-shadow:0 4px 12px #0f172a14}.canvas-wrap.with-rulers .canvas-viewport{grid-column:2;grid-row:2;margin:0}.canvas-svg{display:block}.canvas-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--muted)}.ruler{background:#f8fafc;display:block}.ruler-corner{grid-column:1;grid-row:1;width:20px;height:20px;position:sticky;top:0;left:0;z-index:3;background:#f1f5f9;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.ruler-top{grid-column:2;grid-row:1;position:sticky;top:0;z-index:2;border-bottom:1px solid var(--border)}.ruler-left{grid-column:1;grid-row:2;position:sticky;left:0;z-index:2;border-right:1px solid var(--border)}.field-inline{display:flex;align-items:center;gap:6px;font-size:13px}.field-inline input[type=checkbox]{margin:0}.field input[type=color]{padding:2px;height:30px;width:100%}.editor-banner-error{background:#fef2f2;border-bottom:1px solid #fecaca;color:var(--danger);padding:6px 16px;display:flex;align-items:center;justify-content:space-between;font-size:13px}.editor-banner-error .banner-close{background:none;border:none;color:var(--danger);font-size:18px;cursor:pointer;padding:0;line-height:1}.editor-banner-warning{background:#fffbeb;border-bottom:1px solid #fde68a;color:#92400e;padding:8px 16px;display:flex;align-items:flex-start;justify-content:space-between;font-size:13px;gap:16px}.editor-banner-warning ul{list-style:disc;margin:4px 0 0 20px;padding:0}.editor-banner-warning code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#92400e1a;padding:0 4px;border-radius:3px}.editor-banner-warning .banner-close{background:none;border:none;color:#92400e;font-size:18px;cursor:pointer;padding:0;line-height:1}.editor-banner-success{background:#ecfdf5;border-bottom:1px solid #a7f3d0;color:#065f46;padding:6px 16px;display:flex;align-items:center;justify-content:space-between;font-size:13px}.editor-banner-success .banner-close{background:none;border:none;color:#065f46;font-size:18px;cursor:pointer;padding:0;line-height:1}.panel-notice{background:#fffbeb;border:1px solid #fde68a;color:#92400e;padding:6px 8px;border-radius:4px;font-size:12px}.align-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.icon-button{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--panel);color:var(--muted)}.icon-button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.icon-button:disabled{opacity:.4;cursor:not-allowed}.icon-button.active{background:var(--primary);border-color:var(--primary);color:#fff}.icon-button.active:hover:not(:disabled){color:#fff}.text-style-toggles{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.text-align-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.file-input-label{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px dashed var(--border);border-radius:6px;background:var(--bg-subtle);font-size:13px;cursor:pointer;color:var(--muted);justify-content:center}.file-input-label:hover{border-color:var(--primary);color:var(--primary);background:#eff6ff}.file-input-label-large{padding:28px 20px;font-size:14px}.import-modal{width:520px;max-width:94vw;max-height:88vh;overflow:auto}.import-result{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:8px;border:1px solid var(--border);background:var(--bg-subtle);font-size:13px}.import-result-ok{border-color:#bbf7d0;background:#f0fdf4}.import-result-error{border-color:#fecaca;background:#fef2f2}.import-result-row{display:inline-flex;align-items:center;gap:8px}.import-summary{display:grid;grid-template-columns:110px 1fr;gap:4px 12px;margin:0}.import-summary dt{color:var(--muted)}.import-summary dd{margin:0;font-weight:500}.import-diag-title{color:var(--muted);font-size:12px;margin-top:4px}.import-diag-list{list-style:disc;margin:0 0 0 20px;padding:0;font-size:12px}.import-diag-list code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#0f172a0f;padding:0 4px;border-radius:3px}.import-note{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border-radius:6px;background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-size:12px}.import-note svg{flex-shrink:0;margin-top:2px}.field select{padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:#fff;width:100%}.error-fallback{padding:40px;text-align:center}.error-fallback-title{font-weight:600;margin-bottom:12px}.error-fallback-msg{background:var(--bg-subtle);border:1px solid var(--border);border-radius:6px;padding:10px;text-align:left;white-space:pre-wrap;margin:0 auto 12px;max-width:720px;font-size:12px}.job-shell{display:flex;flex-direction:column;height:100%;background:var(--bg-subtle)}.job-topbar{min-height:64px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:12px 24px;gap:16px}.job-body{flex:1;display:flex;justify-content:center;align-items:flex-start;gap:24px;padding:24px;overflow:auto;width:100%;box-sizing:border-box}.job-steps{display:flex;flex-direction:column;gap:16px;width:100%;max-width:560px;flex-shrink:0}.job-step{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px}.job-step-done{border-color:#a7f3d0}.job-step-current{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.job-step-pending{opacity:.6}.job-step-pending .job-step-head{color:var(--muted)}.job-step-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.job-step-number{width:24px;height:24px;border-radius:50%;background:var(--bg-subtle);color:var(--fg);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.job-step-current .job-step-number{background:var(--primary);color:#fff}.job-step-done .job-step-number{background:#10b981;color:#fff}.job-step-transitions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.job-step-transition{padding:5px 10px;border:1px solid var(--border);border-radius:6px;background:var(--panel);font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:5px;cursor:pointer}.job-step-transition:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:#eff6ff}.job-step-transition:disabled{opacity:.5;cursor:not-allowed}.job-stepper{display:flex;align-items:center;justify-content:center;gap:0;padding:14px 24px;background:var(--panel);border-bottom:1px solid var(--border);list-style:none;margin:0;overflow-x:auto}.job-stepper-item{display:flex;align-items:center;flex-shrink:0}.job-stepper-button{display:inline-flex;align-items:center;gap:8px;padding:4px 8px;border:none;background:transparent;border-radius:6px;font-size:13px;color:var(--muted);cursor:pointer}.job-stepper-button:disabled{cursor:default}.job-stepper-button:not(:disabled):hover{background:var(--bg-subtle)}.job-stepper-number{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;background:var(--bg-subtle);color:var(--muted);border:1px solid var(--border);flex-shrink:0;transition:background .15s,color .15s,border-color .15s}.job-stepper-pending .job-stepper-number{background:var(--bg-subtle);color:var(--muted)}.job-stepper-current .job-stepper-button{color:var(--fg, #111);font-weight:600}.job-stepper-current .job-stepper-number{background:var(--primary);color:#fff;border-color:var(--primary)}.job-stepper-done .job-stepper-button{color:#065f46}.job-stepper-done .job-stepper-number{background:#10b981;color:#fff;border-color:#10b981}.job-stepper-line{display:inline-block;width:32px;height:1px;background:var(--border);margin:0 8px}.job-stepper-done+.job-stepper-item .job-stepper-line,.job-stepper-done .job-stepper-line{background:#10b981}@media (max-width: 720px){.job-stepper{padding:10px 12px;gap:0}.job-stepper-label{display:none}.job-stepper-line{width:16px;margin:0 4px}}.job-step-title{font-weight:600;font-size:14px}.job-step-body{display:flex;flex-direction:column;gap:12px}.job-step-summary{display:flex;flex-direction:column;gap:8px}.job-step-meta{font-size:12px;color:var(--fg-muted, #64748b);margin-top:4px}.job-step-pending{font-size:13px;color:var(--fg-muted, #64748b);font-style:italic}.job-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;border:2px dashed var(--border);border-radius:6px;cursor:pointer;transition:border-color .1s,background .1s;font-size:13px;color:var(--fg-muted, #64748b);text-align:center}.job-dropzone-hover{border-color:var(--accent);background:var(--bg-subtle)}.job-dropzone-disabled{cursor:not-allowed;opacity:.5}.job-preview{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px;align-items:flex-start;align-self:flex-start;flex:1;max-width:800px;min-width:0}.job-preview-stage{background:#fff;padding:16px;border:1px solid var(--border);border-radius:4px}.job-mapping{display:flex;flex-direction:column;gap:12px}.job-mapping-toolbar{display:flex;gap:8px}.job-mapping-table{width:100%;border-collapse:collapse;font-size:13px}.job-mapping-table th,.job-mapping-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:top}.job-mapping-table th{font-weight:600;color:var(--fg-muted, #64748b);font-size:12px;text-transform:uppercase;letter-spacing:.4px}.job-mapping-table select{width:100%;min-width:180px}.job-mapping-binding-key{font-size:11px;color:var(--fg-muted, #64748b);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:2px}.job-rows-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;width:100%}.job-row-card{background:#fff;border:1px solid var(--border);border-radius:4px;padding:8px;display:flex;flex-direction:column;gap:6px;align-items:center}.job-row-card-index{font-size:11px;color:var(--fg-muted, #64748b);align-self:flex-start}.job-row-card-svg{display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:100%}.job-row-card-svg svg{max-width:100%;height:auto}.job-rows-more{grid-column:1 / -1;font-size:12px;color:var(--fg-muted, #64748b);font-style:italic;text-align:center;padding:8px}.job-print-panel{display:flex;flex-direction:column;gap:12px}.job-copies{display:grid;grid-template-columns:1fr 1fr;gap:12px}.job-copies select,.job-copies input{width:100%}.job-print-summary{font-size:13px;color:var(--fg-muted, #64748b);background:var(--bg-subtle);padding:8px 12px;border-radius:4px}.job-print-summary strong{color:var(--fg);font-weight:600}.job-print-warning{font-size:12px;background:#fffbeb;border:1px solid #fde68a;color:#92400e;padding:6px 10px;border-radius:4px;line-height:1.4}.job-print-buttons{display:flex;gap:8px;flex-wrap:wrap}.ec-banner{display:flex;align-items:center;gap:10px;padding:8px 16px;border-bottom:1px solid;font-size:13px;line-height:1.3}.ec-banner-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;flex-shrink:0}.ec-banner-text{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;min-width:0}.ec-banner-title{font-weight:600}.ec-banner-meta{opacity:.85;font-size:12px}.ec-banner-active{background:#eff6ff;border-color:#2563eb40;color:#1e3a8a}.ec-banner-active .ec-banner-icon{background:#2563eb2e;color:var(--primary)}.ec-banner-progress{background:#f5f3ff;border-color:#7c3aed40;color:#4c1d95}.ec-banner-progress .ec-banner-icon{background:#7c3aed2e;color:#6d28d9}.ec-banner-success{background:#ecfdf5;border-color:#10b9814d;color:#065f46}.ec-banner-success .ec-banner-icon{background:#10b98133;color:#047857}.ec-banner-warning{background:#fffbeb;border-color:#f59e0b4d;color:#92400e}.ec-banner-warning .ec-banner-icon{background:#f59e0b38;color:#b45309}.ec-banner-error{background:#fef2f2;border-color:#dc26264d;color:#991b1b}.ec-banner-error .ec-banner-icon{background:#dc26262e;color:var(--danger)}.ec-banner-spin{animation:ec-banner-spin 1s linear infinite}@keyframes ec-banner-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.launch-shell{display:flex;align-items:center;justify-content:center;height:100%;background:var(--bg-subtle)}.launch-message{max-width:480px;padding:32px;background:var(--panel);border:1px solid var(--border);border-radius:8px;text-align:center;color:var(--fg)}.launch-message h1{margin:0 0 8px;font-size:18px}.launch-message p{margin:0;color:var(--fg-muted, #64748b)}.launch-message-error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.preview-shell{display:flex;flex-direction:column;height:100%;background:var(--bg-subtle)}.preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-subtle);display:flex;flex-direction:column;z-index:100}.preview-close{margin-left:auto;padding:6px;background:transparent;border:none;border-radius:4px;cursor:pointer;color:var(--fg);display:flex;align-items:center;justify-content:center}.preview-close:hover{background:var(--bg-subtle)}.preview-topbar{height:48px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:16px}.topbar-test-link{text-decoration:none}.preview-body{flex:1;display:grid;grid-template-columns:320px 1fr;overflow:hidden}.test-values-panel{background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;overflow-x:hidden;padding:14px;display:flex;flex-direction:column;gap:16px;min-width:0}.panel-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.required-mark{color:var(--danger)}.field-hint{color:var(--muted);font-size:11px}.field-hint code{background:var(--bg-subtle);padding:1px 4px;border-radius:3px;font-size:10.5px}.binding-list{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.binding-row{display:flex;flex-direction:column;gap:8px;padding:10px 10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-subtle);min-width:0}.binding-row-head{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:6px;min-width:0}.binding-drag-handle{width:18px;height:22px;display:inline-flex;align-items:center;justify-content:center;cursor:grab;color:var(--muted);border-radius:3px;-webkit-user-select:none;user-select:none}.binding-drag-handle:hover{background:#2563eb14;color:var(--primary)}.binding-drag-handle:active{cursor:grabbing}.binding-key{padding:5px 8px;border:1px solid var(--border);border-radius:4px;background:#fff;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12.5px;min-width:0;width:100%;box-sizing:border-box}.binding-key:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #2563eb26}.binding-usage{font-size:11px;color:var(--muted);padding:1px 6px;border-radius:10px;background:#fff;border:1px solid var(--border);white-space:nowrap;cursor:pointer;font-family:inherit}.binding-usage:hover{border-color:var(--primary);color:var(--primary)}.binding-delete{width:24px;height:24px;padding:0;border:none;background:transparent;color:var(--muted);border-radius:4px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.binding-delete:hover{background:#fef2f2;color:var(--danger)}.binding-err{font-size:11px;color:var(--danger);line-height:1.3;margin-top:-4px}.binding-required{padding:2px 0}.binding-row .field span{font-size:11px;text-transform:uppercase;letter-spacing:.02em}.field-hint-error{color:var(--danger);font-size:11px;line-height:1.3}.binding-select-field{display:flex;flex-direction:column;gap:4px}.binding-select-field>span{font-size:11px;text-transform:uppercase;letter-spacing:.02em;color:var(--muted)}.binding-select-row{display:flex;gap:4px;align-items:stretch}.binding-select-row select{flex:1;min-width:0}.binding-select-add,.binding-select-edit{width:28px;border:1px solid var(--border);border-radius:4px;background:var(--panel);color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.binding-select-add:hover:not(:disabled),.binding-select-edit:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:#2563eb0d}.binding-select-add:disabled,.binding-select-edit:disabled{opacity:.5;cursor:default}.modal-form{width:460px}.modal-form-body{display:flex;flex-direction:column;gap:10px}.modal-picker{width:720px;max-width:92vw;max-height:90vh}.modal-picker-body{overflow-y:auto;max-height:65vh}.template-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.template-picker-card{border:1px solid var(--border);border-radius:6px;background:var(--panel);padding:0;cursor:pointer;overflow:hidden;display:flex;flex-direction:column;text-align:left;font:inherit;color:inherit;transition:box-shadow .15s,transform .15s,border-color .15s}.template-picker-card:hover{box-shadow:0 4px 12px #0f172a14;transform:translateY(-1px);border-color:#cbd5e1}.template-picker-thumb{background:#f1f5f9;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center;height:130px;padding:8px}.template-picker-preview{background:#fff;border:1px solid var(--border);box-shadow:0 1px 3px #0f172a14;max-width:95%;max-height:100%;overflow:hidden}.template-picker-preview svg,.template-picker-preview .tpl-thumbnail-mount,.template-picker-preview .tpl-thumbnail-mount>svg{display:block;width:100%;height:100%}.template-picker-name{padding:8px 10px 2px;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-picker-meta{padding:0 10px 8px;font-size:11px;color:var(--muted)}.job-template-pick{display:flex;flex-direction:column;gap:10px;align-items:stretch}.job-template-or{text-align:center;font-size:12px;color:var(--muted)}.job-template-from-library{align-self:center}.field-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer}.field-checkbox input[type=checkbox]{margin:0;padding:0;width:auto;flex-shrink:0}.field-checkbox span{font-size:13px;color:var(--fg, #111);text-transform:none;letter-spacing:normal}.binding-format-examples{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.binding-format-example{padding:5px 8px;border:1px solid var(--border);border-radius:4px;background:var(--panel);cursor:pointer;display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.2}.binding-format-example:hover{border-color:var(--primary);background:#2563eb0a}.binding-format-example code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;color:var(--fg, #111)}.binding-format-example-desc{font-size:10px;color:var(--muted)}.canvas-wrap.binding-drop-hover{outline:2px dashed var(--primary);outline-offset:-2px;background-color:#2563eb0a}.field-hint-warning{color:#92400e;font-size:11px;line-height:1.3}.home-logo{display:inline-flex;align-items:center;flex-shrink:0;border-radius:4px;transition:opacity .15s}.home-logo:hover{opacity:.8}.home-logo:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.home-logo img{display:block;width:auto}.combobox{position:relative;display:flex;width:100%}.combobox-input{flex:1;padding-right:28px!important}.combobox-toggle{position:absolute;right:0;top:0;bottom:0;width:26px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--muted);cursor:pointer;padding:0}.combobox-toggle:hover:not(:disabled){color:var(--primary)}.combobox-toggle:disabled{opacity:.4;cursor:not-allowed}.combobox-list{position:absolute;top:calc(100% + 2px);left:0;right:0;margin:0;padding:4px 0;list-style:none;background:#fff;border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #00000014;z-index:50;max-height:220px;overflow-y:auto}.combobox-option{padding:6px 10px;cursor:pointer;font-size:13px;color:inherit}.combobox-option.active{background:var(--bg-subtle)}.combobox-option.current{font-weight:600}.combobox-option.current:before{content:"✓ ";color:var(--primary)}.field-invalid input{border-color:var(--danger);background:#fef2f2}.menu-button{position:relative;display:inline-flex}.menu-button-trigger{gap:4px}.menu-button-list{position:absolute;top:calc(100% + 4px);right:0;min-width:200px;margin:0;padding:4px 0;list-style:none;background:#fff;border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 16px #0000001a;z-index:50}.menu-button-option{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;font-size:13px;color:inherit}.menu-button-option:hover{background:var(--bg-subtle)}.menu-button-option-text{display:flex;flex-direction:column;gap:2px;min-width:0}.menu-button-option-title{font-weight:500}.menu-button-option-hint{font-size:11px;color:var(--muted)}.field-invalid input:focus{outline:none;box-shadow:0 0 0 2px #dc262633}.field-invalid>span{color:var(--danger)}.issues-list{list-style:disc;margin:0 0 0 18px;padding:0;font-size:12px}.issues-list-error{color:var(--danger)}.issues-list-warning{color:#92400e}.preview-stage{overflow:auto;background:#e2e8f0;padding:32px;display:flex;align-items:flex-start;justify-content:center}.preview-canvas-scale{position:relative;background:#fff;box-shadow:0 4px 12px #0f172a14}.preview-canvas-inner{position:absolute;top:0;left:0;transform-origin:top left}.preview-svg{display:block}.preview-page-nav{display:flex;align-items:center;gap:4px;margin:0 4px}.preview-page-nav button{width:26px;height:26px;padding:0;border:1px solid var(--border);background:var(--panel);border-radius:4px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.preview-page-nav button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.preview-page-nav button:disabled{opacity:.4;cursor:not-allowed}.preview-page-nav select{padding:3px 6px;border:1px solid var(--border);border-radius:4px;background:var(--panel);font-size:13px;max-width:220px}.preview-print-pages{display:none}.preview-print-page{background:#fff}.preview-print-page.break-after{break-after:page;page-break-after:always}@media print{html,body{background:#fff;margin:0;padding:0}.editor-shell>*:not(.preview-overlay){display:none!important}.preview-overlay{position:static!important;inset:auto!important;background:transparent!important;z-index:auto!important;display:block!important}.print-hidden,.screen-only{display:none!important}.preview-shell{height:auto;background:#fff;display:block}.preview-body{display:none}.preview-print-pages{display:block}.preview-print-page{display:block;background:#fff}.preview-canvas-scale{transform:none!important;box-shadow:none;background:transparent}}.statusbar{height:28px;background:var(--panel);border-top:1px solid var(--border);display:flex;align-items:center;gap:18px;padding:0 16px;font-size:12px;color:var(--muted)}.statusbar-transient{color:var(--fg, #111);animation:statusbar-fade-in .14s ease-out}@keyframes statusbar-fade-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}
