:root{--bg-base:#0a0e27;--bg-mid:#111638;--bg-card:#141b3d;--accent:#ffe500;--accent-dim:#ffe50033;--accent-glow:#ffe50066;--danger:#e74c3c;--danger-dim:#e74c3c33;--text:#fff;--text-muted:#fff9;--text-faint:#fff3;--text-dim:#ffffff20;--font-display:"Bebas Neue", sans-serif;--font-body:"Outfit", sans-serif;--clip-btn:polygon(12px 0%, 100% 0%, calc(100% - 12px) 100%, 0% 100%);--clip-card:polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 16px 100%, 0 calc(100% - 16px));--clip-icon:polygon(8px 0%, 100% 0%, calc(100% - 8px) 100%, 0% 100%);--ease:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{touch-action:none;width:100%;height:100%;font-family:var(--font-body);background:var(--bg-base);color:var(--text);overflow:hidden}@keyframes glowPulse{0%,to{box-shadow:0 0 16px var(--accent-dim), inset 0 0 16px transparent}50%{box-shadow:0 0 28px var(--accent-glow), inset 0 0 8px var(--accent-dim)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes gridScroll{0%{background-position:0 0}to{background-position:40px 40px}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes logoGlow{0%{filter:drop-shadow(0 0 4px var(--accent-dim)) drop-shadow(0 0 14px #ffe50015)}to{filter:drop-shadow(0 0 8px var(--accent-glow)) drop-shadow(0 0 24px var(--accent-dim))}}.app-layout{background:linear-gradient(var(--text-dim) 1px, transparent 1px), linear-gradient(90deg, var(--text-dim) 1px, transparent 1px), linear-gradient(180deg, var(--bg-base) 0%, var(--bg-mid) 100%);background-size:40px 40px,40px 40px,100% 100%;flex-direction:column;width:100%;height:100%;animation:8s linear infinite gridScroll;display:flex}.headline-bar{background:var(--bg-base);border-bottom:1px solid var(--text-faint);height:36px;min-height:36px;color:var(--text);z-index:11;-webkit-user-select:none;user-select:none;align-items:center;padding:0 12px;display:flex}.headline-text{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);cursor:text;transition:background .15s var(--ease);padding:2px 6px;font-size:18px;font-weight:400}.headline-text:hover{background:var(--accent-dim)}.headline-input{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--bg-mid);border:1px solid var(--accent);outline:none;min-width:200px;padding:2px 6px;font-size:18px;font-weight:400}.headline-input:focus{box-shadow:0 0 8px var(--accent-dim)}.headline-spacer{flex:1}.headline-debug-btn{font-family:var(--font-body);letter-spacing:1px;border:1px solid var(--text-faint);color:var(--text-faint);cursor:pointer;transition:all .15s var(--ease);clip-path:var(--clip-icon);background:0 0;padding:3px 10px;font-size:9px;font-weight:700}.headline-debug-btn:hover{color:var(--text-muted);border-color:var(--text-muted)}.headline-debug-btn.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.layer-bar{background:var(--bg-mid);border-bottom:1px solid var(--text-faint);color:var(--text);z-index:10;-webkit-user-select:none;user-select:none;align-items:center;gap:2px;padding:4px 8px;display:flex}.layer-back-btn{width:32px;height:32px;color:var(--text-muted);cursor:pointer;transition:all .15s var(--ease);clip-path:var(--clip-icon);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.layer-back-btn:hover:not(:disabled){background:var(--accent-dim);color:var(--accent)}.layer-back-btn:disabled{opacity:.3;cursor:default}.layer-btn{border:1px solid var(--text-faint);height:32px;color:var(--text-muted);font-family:var(--font-body);letter-spacing:.04em;cursor:pointer;transition:all .15s var(--ease);white-space:nowrap;clip-path:var(--clip-btn);background:0 0;flex:1;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;display:flex}.layer-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:700}.layer-btn:hover:not(.active){background:var(--text-dim);color:var(--text)}.layer-dot{clip-path:polygon(2px 0%,100% 0%,calc(100% - 2px) 100%,0% 100%);flex-shrink:0;width:8px;height:8px}.layer-area{font-family:var(--font-display);letter-spacing:.04em;opacity:.9;margin-left:2px;font-size:13px}.toolbar{background:var(--bg-base);border-bottom:1px solid var(--text-faint);height:40px;min-height:40px;color:var(--text);z-index:10;-webkit-user-select:none;user-select:none;align-items:center;gap:2px;padding:0 8px;display:flex}.toolbar-btn{width:36px;height:32px;color:var(--text-muted);cursor:pointer;transition:all .15s var(--ease);clip-path:var(--clip-icon);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.toolbar-btn:hover:not(:disabled){background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.toolbar-btn:active:not(:disabled){background:var(--accent);color:var(--bg-base)}.toolbar-btn:disabled{opacity:.25;cursor:default}.toolbar-btn-danger{color:var(--danger)}.toolbar-btn-danger:hover:not(:disabled){background:var(--danger-dim);color:var(--danger);border-color:var(--danger)}.toolbar-btn-danger:active:not(:disabled){background:var(--danger);color:var(--bg-base)}.toolbar-sep{background:var(--text-faint);width:1px;height:20px;margin:0 4px}.status-bar{background:var(--bg-base);border-top:1px solid var(--text-faint);height:32px;min-height:32px;color:var(--text-muted);font-family:var(--font-body);z-index:9;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:0;padding:0 12px;font-size:12px;display:flex;overflow:hidden}.status-section{white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;padding:0 8px;display:flex}.status-spacer{flex:1;min-width:0}.status-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.status-value{color:var(--accent);font-family:var(--font-display);letter-spacing:.04em;font-size:16px}.status-detail{color:var(--text-faint);font-size:11px}.status-red{color:var(--danger)}.status-bold{color:var(--accent);font-weight:700;font-family:var(--font-display);letter-spacing:.1em;font-size:13px}.status-sep{background:var(--text-faint);flex-shrink:0;width:1px;height:16px}.status-muted{color:var(--text-faint);font-size:11px}.status-ix-cross{color:#f87171}.status-ix-sub{color:#e74c3cb3}.status-debug-scroll{scrollbar-width:thin;scrollbar-color:var(--text-faint) transparent;gap:8px;max-width:50vw;display:flex;overflow-x:auto}.status-debug-shape{white-space:nowrap;align-items:center;gap:2px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:10px;display:flex}.status-debug-id{color:var(--accent);margin-right:3px;font-weight:600}.status-debug-coord{color:var(--text-faint)}.modal-backdrop{z-index:100;animation:fadeUp .25s var(--ease);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg-card);clip-path:var(--clip-card);width:300px;max-width:calc(100vw - 32px);box-shadow:0 20px 60px #00000080, 0 0 40px var(--accent-dim);padding:20px}.modal-card h2{font-family:var(--font-display);letter-spacing:.08em;color:var(--accent);text-transform:uppercase;margin:0 0 16px;font-size:24px}.modal-location{background:var(--bg-mid);color:var(--text-muted);align-items:center;gap:6px;margin-bottom:16px;padding:10px 12px;font-size:13px;display:flex}.modal-location-icon{flex-shrink:0;font-size:16px}.modal-actions{flex-direction:column;gap:8px;display:flex}.modal-btn{height:48px;font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:all .15s var(--ease);border:none;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.modal-btn-primary{background:var(--accent);color:var(--bg-base);clip-path:var(--clip-btn);animation:2s ease-in-out infinite glowPulse}.modal-btn-primary:hover{filter:brightness(1.1);transform:translateY(-2px)}.modal-btn-primary:disabled{opacity:.5;cursor:default;animation:none}.modal-btn-secondary{color:var(--text-muted);border:1px solid var(--text-faint);clip-path:var(--clip-btn);background:0 0}.modal-btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.modal-btn-cancel{color:var(--text-faint);background:0 0;border:none;height:40px;font-size:13px}.modal-btn-cancel:hover{color:var(--text-muted)}.modal-status{text-align:center;padding:4px 0;font-size:13px}.modal-status-success{color:#22c55e}.modal-status-error{color:var(--danger)}.shape-modal-card{background:var(--bg-card);clip-path:var(--clip-card);width:340px;max-width:calc(100vw - 32px);box-shadow:0 20px 60px #00000080, 0 0 40px var(--accent-dim);padding:20px}.shape-modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.shape-modal-header h2{font-family:var(--font-display);letter-spacing:.08em;color:var(--accent);text-transform:uppercase;margin:0;font-size:24px}.shape-modal-close{border:1px solid var(--text-faint);width:32px;height:32px;color:var(--text-muted);cursor:pointer;transition:all .15s var(--ease);clip-path:var(--clip-icon);background:0 0;justify-content:center;align-items:center;display:flex}.shape-modal-close:hover{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.shape-modal-section{margin-bottom:16px}.shape-modal-label{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.25em;color:var(--accent);margin-bottom:6px;font-size:.8rem;font-weight:600;display:block}.shape-modal-area-row{background:var(--bg-mid);align-items:center;gap:8px;padding:6px 14px;display:flex}.shape-modal-area-input{border:1px solid var(--text-faint);font-family:var(--font-display);color:var(--accent);background:var(--bg-base);text-align:center;transition:border-color .15s var(--ease);-moz-appearance:textfield;outline:none;flex:1;padding:8px 10px;font-size:24px}.shape-modal-area-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.shape-modal-area-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.shape-modal-area-input:focus{border-color:var(--accent);box-shadow:0 0 8px var(--accent-dim)}.shape-modal-area-unit{font-family:var(--font-display);color:var(--text-muted);flex-shrink:0;font-size:18px}.shape-modal-dims{gap:10px;display:flex}.shape-modal-dim{background:var(--bg-mid);flex:1;align-items:center;gap:6px;padding:6px 10px;display:flex}.shape-modal-dim-label{color:var(--text-muted);min-width:14px;font-size:12px;font-weight:700}.shape-modal-dim-input{border:1px solid var(--text-faint);width:0;min-width:50px;font-family:var(--font-body);color:var(--text);background:var(--bg-base);text-align:center;transition:border-color .15s var(--ease);-moz-appearance:textfield;outline:none;flex:1;padding:6px 8px;font-size:14px;font-weight:500}.shape-modal-dim-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.shape-modal-dim-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.shape-modal-dim-input:focus{border-color:var(--accent);box-shadow:0 0 8px var(--accent-dim)}.shape-modal-dim-unit{color:var(--text-muted);font-size:13px;font-weight:500}.shape-modal-chips{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.shape-modal-chip{border:1px solid var(--text-faint);color:var(--text-muted);font-family:var(--font-body);cursor:pointer;transition:all .15s var(--ease);-webkit-user-select:none;user-select:none;clip-path:var(--clip-icon);background:0 0;padding:6px 12px;font-size:13px;font-weight:500}.shape-modal-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.shape-modal-chip.active{background:var(--accent);border-color:var(--accent);color:var(--bg-base);font-weight:700}.shape-modal-custom-row{gap:6px;display:flex}.shape-modal-custom-input{border:1px solid var(--text-faint);font-family:var(--font-body);color:var(--text);background:var(--bg-base);transition:border-color .15s var(--ease);outline:none;flex:1;padding:8px 12px;font-size:13px}.shape-modal-custom-input:focus{border-color:var(--accent);box-shadow:0 0 8px var(--accent-dim)}.shape-modal-custom-input::placeholder{color:var(--text-faint)}.shape-modal-custom-btn{border:1px solid var(--text-faint);width:38px;height:38px;color:var(--accent);cursor:pointer;transition:all .15s var(--ease);clip-path:var(--clip-icon);background:0 0;justify-content:center;align-items:center;font-size:20px;font-weight:600;display:flex}.shape-modal-custom-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--bg-base)}.shape-modal-custom-btn:disabled{opacity:.25;cursor:default}.shape-modal-current-label{background:var(--accent-dim);align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;display:flex}.shape-modal-current-tag{color:var(--accent);flex:1;font-size:13px;font-weight:600}.shape-modal-current-clear{color:var(--text-muted);cursor:pointer;transition:color .15s var(--ease);background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.shape-modal-current-clear:hover{color:var(--accent)}.export-info-bar{background:var(--bg-mid);align-items:center;gap:10px;margin-bottom:4px;padding:10px 12px;display:flex}.export-info-text{flex-direction:column;gap:1px;min-width:0;display:flex}.export-info-name{font-family:var(--font-display);letter-spacing:.06em;color:var(--accent);white-space:nowrap;text-overflow:ellipsis;font-size:16px;overflow:hidden}.export-info-loc{color:var(--text-faint);font-size:11px}.export-btn-hero{border:2px solid var(--accent);background:var(--accent);cursor:pointer;width:100%;transition:all .2s var(--ease);text-align:left;color:var(--bg-base);clip-path:var(--clip-btn);align-items:center;gap:14px;padding:14px 16px;animation:2s ease-in-out infinite glowPulse;display:flex}.export-btn-hero:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px)}.export-btn-hero:disabled{opacity:.7;cursor:default;animation:none}.export-btn-hero--done{background:#22c55e;border-color:#22c55e;animation:none}.export-btn-hero--error{border-color:var(--danger);background:var(--danger);cursor:pointer;animation:none}.export-spinner{border:2.5px solid var(--bg-mid);border-top-color:var(--accent);flex-shrink:0;width:22px;height:22px;animation:.7s linear infinite spin}.export-btn-hero-text{flex-direction:column;gap:2px;display:flex}.export-btn-hero-title{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--bg-base);font-size:15px;font-weight:700}.export-btn-hero-sub{color:var(--bg-mid);font-size:11px;font-weight:400}.export-format-row{gap:8px;display:flex}.export-format-btn{border:1px solid var(--text-faint);color:var(--text-muted);font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all .15s var(--ease);clip-path:var(--clip-icon);background:0 0;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 8px;font-size:12px;font-weight:500;display:flex}.export-format-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.export-format-btn:active{background:var(--accent);color:var(--bg-base)}.export-crm-toggle{width:100%;color:var(--text-faint);font-family:var(--font-body);cursor:pointer;transition:color .15s var(--ease);background:0 0;border:none;align-items:center;gap:8px;padding:8px 4px;font-size:13px;font-weight:500;display:flex}.export-crm-toggle:hover{color:var(--accent)}.export-crm-panel{align-items:center;gap:10px;padding:8px 0 0;display:flex}.export-crm-btn{border:1px solid var(--text-faint);color:var(--text-muted);font-family:var(--font-body);cursor:pointer;transition:all .15s var(--ease);clip-path:var(--clip-btn);background:0 0;flex:1;padding:10px 16px;font-size:13px;font-weight:500}.export-crm-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.export-crm-btn:disabled{opacity:.5;cursor:default}.export-crm-error{color:var(--danger);font-size:12px}.debug-log{background:var(--bg-base);border:1px solid var(--accent-dim);width:280px;max-height:200px;color:var(--text-muted);z-index:20;pointer-events:auto;-webkit-user-select:text;user-select:text;clip-path:var(--clip-card);flex-direction:column;font-family:SF Mono,Menlo,Consolas,monospace;font-size:10px;display:flex;position:fixed;bottom:12px;left:12px;overflow:hidden}.debug-log-header{letter-spacing:1px;color:var(--accent);background:var(--accent-dim);border-bottom:1px solid var(--accent-dim);flex-shrink:0;padding:4px 8px;font-size:9px;font-weight:700}.debug-log-list{scrollbar-width:thin;scrollbar-color:var(--accent-dim) transparent;flex:1;overflow-y:auto}.debug-log-entry{border-bottom:1px solid var(--text-dim);gap:6px;padding:2px 8px;display:flex}.debug-log-entry:hover{background:var(--accent-dim)}.debug-log-ts{color:var(--text-faint);flex-shrink:0}.debug-log-keys{color:var(--accent);word-break:break-all}.watermark-wrapper{bottom:calc(8px + env(safe-area-inset-bottom,0px));pointer-events:none;z-index:10;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;align-items:center;display:flex;position:fixed;right:10px}.watermark-logo{opacity:.8;width:auto;height:100px;animation:3s ease-in-out infinite alternate logoGlow}.watermark-version{font-family:var(--font-display);color:var(--accent);letter-spacing:.15em;font-size:12px}.edge-editor{z-index:10;pointer-events:auto;align-items:center;gap:2px;display:flex;position:absolute;transform:translate(-50%,-50%)}.edge-editor-input{width:64px;font-family:var(--font-display);border:2px solid var(--accent);background:var(--bg-card);color:var(--accent);text-align:center;box-shadow:0 0 12px var(--accent-dim);-moz-appearance:textfield;outline:none;padding:2px 4px;font-size:14px}.edge-editor-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.edge-editor-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.edge-editor-unit{color:var(--accent);background:var(--bg-card);box-shadow:0 0 8px var(--accent-dim);padding:1px 3px;font-size:11px;font-weight:600}.create-shape-presets{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.create-shape-preset{border:1px solid var(--text-faint);cursor:pointer;transition:all .2s var(--ease);-webkit-user-select:none;user-select:none;background:0 0;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;display:flex;position:relative}.create-shape-preset:before{content:"";background:var(--accent);width:4px;height:0;transition:height .25s var(--ease);position:absolute;top:0;left:0}.create-shape-preset:hover{border-color:var(--accent);background:var(--accent-dim);transform:translateY(-2px)}.create-shape-preset:hover:before{height:100%}.create-shape-preset:active{background:var(--accent);color:var(--bg-base)}.create-shape-preset-icon{color:var(--text-muted);transition:color .15s var(--ease);display:flex}.create-shape-preset:hover .create-shape-preset-icon{color:var(--accent)}.create-shape-preset:active .create-shape-preset-icon{color:var(--bg-base)}.create-shape-preset-label{font-family:var(--font-display);letter-spacing:.06em;color:var(--text-muted);font-size:14px}.create-shape-preset:hover .create-shape-preset-label{color:var(--accent)}.create-shape-preset:active .create-shape-preset-label{color:var(--bg-base)}.create-shape-custom{align-items:center;gap:6px;display:flex}.create-shape-x{color:var(--text-faint);flex-shrink:0;font-size:16px;font-weight:500}.create-shape-go{background:var(--accent);width:38px;height:38px;color:var(--bg-base);cursor:pointer;transition:all .15s var(--ease);clip-path:var(--clip-icon);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.create-shape-go:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px)}.create-shape-go:disabled{opacity:.25;cursor:default}.create-shape-layer-picker{gap:8px;display:flex}.create-shape-layer-btn{border:1px solid var(--text-faint);color:var(--text-muted);font-family:var(--font-body);cursor:pointer;transition:all .15s var(--ease);clip-path:var(--clip-btn);background:0 0;flex:1;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;display:flex}.create-shape-layer-btn:hover{border-color:var(--text-muted);background:var(--text-dim)}.create-shape-layer-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:700}.create-shape-layer-btn.sub.active{background:var(--danger-dim);border-color:var(--danger);color:var(--danger)}.create-shape-layer-dot{clip-path:polygon(2px 0%,100% 0%,calc(100% - 2px) 100%,0% 100%);flex-shrink:0;width:8px;height:8px}
