:root{--green:#116650;--green-dark:#0b4437;--coral:#f5a68c;--ink:#101513;--paper:#f6f3ec;--white:#fff;--muted:#66706c;--line:rgba(16,21,19,.15);--danger:#a12f32;--shadow:0 18px 50px rgba(11,68,55,.12);--sidebar:282px;--props:290px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:Avenir,"Avenir Next",Inter,system-ui,sans-serif;font-size:16px;line-height:1.42}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}.hidden{display:none!important}.eyebrow{margin:0 0 8px;color:var(--green);font-size:.73rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.vg-topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:68px;padding:10px clamp(14px,3vw,42px);background:rgba(246,243,236,.95);backdrop-filter:blur(15px);border-bottom:1px solid var(--line)}.vg-brand{display:flex;align-items:center;gap:11px;font-weight:850;letter-spacing:-.025em}.vg-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--green);color:#fff;font-size:13px;letter-spacing:.04em;box-shadow:inset 0 0 0 2px rgba(255,255,255,.32)}.top-actions,.inline-actions,.zoom-controls,.float-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:9px 14px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);font-weight:780;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s}.btn:hover,.btn:focus-visible{transform:translateY(-1px);border-color:var(--green);box-shadow:0 9px 22px rgba(11,68,55,.12);outline:none}.btn-primary{background:var(--green);border-color:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark)}.btn-coral{background:var(--coral);border-color:var(--coral)}.btn-danger{color:var(--danger);border-color:rgba(161,47,50,.3)}.btn-ghost{background:transparent}.btn-small{min-height:34px;padding:6px 10px;font-size:.82rem}.btn-icon{width:36px;padding:6px}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.page{max-width:1500px;margin:0 auto;padding:clamp(28px,5vw,68px) clamp(16px,4vw,58px) 100px}.intro-row{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:38px}.intro-row h1,.setup-head h1{margin-bottom:10px;font-size:clamp(2.7rem,6vw,5.8rem);line-height:.91;letter-spacing:-.065em}.local-note{color:var(--muted);font-size:.9rem}.local-note:before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--green)}.template-head{display:flex;align-items:end;justify-content:space-between;margin:36px 0 15px}.template-head h2{margin:0;font-size:clamp(1.8rem,3vw,2.7rem);letter-spacing:-.04em}.template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.template-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);box-shadow:0 8px 28px rgba(11,68,55,.05);overflow:hidden}.template-preview{height:210px;display:grid;place-items:center;background:#e8e4dc}.template-preview img{width:100%;height:100%;object-fit:contain}.template-preview span{color:var(--muted)}.template-body{display:flex;flex:1;flex-direction:column;padding:20px}.template-body h3{margin:0 0 6px;font-size:1.35rem}.template-meta{color:var(--muted);font-size:.82rem}.template-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;padding-top:17px}.empty{padding:65px 24px;text-align:center;border:1px dashed rgba(17,102,80,.4);background:rgba(255,255,255,.5)}.setup{max-width:1260px;margin:0 auto}.back{display:inline-flex;margin-bottom:25px;border:0;background:none;color:var(--green);font-weight:850}.setup-panel{padding:clamp(20px,4vw,42px);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.preset-section{margin-top:32px}.preset-section h2{margin-bottom:13px}.preset-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.preset-card{display:grid;grid-template-columns:54px 1fr;gap:12px;align-items:center;min-height:92px;padding:13px;border:1px solid var(--line);background:#fff;text-align:left;transition:.18s}.preset-card:hover,.preset-card.active{border-color:var(--green);background:rgba(17,102,80,.055);transform:translateY(-2px)}.format-shape{display:grid;place-items:center;width:50px;height:50px}.format-shape span{display:block;max-width:46px;max-height:46px;border:2px solid var(--green);background:rgba(17,102,80,.08)}.preset-card strong,.preset-card small{display:block}.preset-card small{margin-top:3px;color:var(--muted);font-size:.72rem}.size-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-top:26px;padding-top:25px;border-top:1px solid var(--line)}.field{display:grid;gap:6px}.field span{font-size:.78rem;font-weight:800}.input,.select{width:100%;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);outline:none}.input:focus,.select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(17,102,80,.1)}.ratio-badge{padding:10px 13px;background:var(--paper);font-weight:800}.error{min-height:20px;color:var(--danger);font-size:.84rem;font-weight:750}.editor{height:calc(100vh - 68px);display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr) var(--props);overflow:hidden}.editor.left-closed{grid-template-columns:0 minmax(0,1fr) var(--props)}.editor.right-closed{grid-template-columns:var(--sidebar) minmax(0,1fr) 0}.editor.left-closed.right-closed{grid-template-columns:0 minmax(0,1fr) 0}.side{overflow:auto;background:#fff;transition:.2s}.side.left{border-right:1px solid var(--line)}.side.right{border-left:1px solid var(--line)}.editor.left-closed .side.left,.editor.right-closed .side.right{visibility:hidden;overflow:hidden}.side-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:15px;background:#fff;border-bottom:1px solid var(--line)}.side-head h2{margin:0;font-size:1rem}.tool-section{padding:17px 15px;border-bottom:1px solid var(--line)}.tool-section h3{margin:0 0 12px;font-size:.83rem;text-transform:uppercase;letter-spacing:.08em;color:var(--green)}.upload-zone{padding:18px 12px;text-align:center;border:1px dashed rgba(17,102,80,.45);background:var(--paper);cursor:pointer}.asset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}.asset-item{position:relative;aspect-ratio:1;background:var(--paper);border:1px solid var(--line);overflow:hidden}.asset-item img{width:100%;height:100%;object-fit:contain}.asset-item button{position:absolute;inset:0;border:0;background:transparent;color:transparent}.asset-item:hover button{background:rgba(17,102,80,.1);color:var(--green);font-weight:850}.layer-list{display:grid;gap:5px}.layer-row{display:grid;grid-template-columns:26px 26px 1fr 26px;gap:4px;align-items:center;padding:7px;border:1px solid var(--line);background:var(--paper);cursor:grab}.layer-row.active{border-color:var(--green);background:rgba(17,102,80,.08)}.layer-row.dragging{opacity:.45}.layer-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.79rem;font-weight:750}.mini{display:grid;place-items:center;width:25px;height:25px;padding:0;border:0;background:transparent}.mini:hover{color:var(--green)}.stack-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}.color-line{display:grid;grid-template-columns:45px 1fr;gap:8px}.color-line input[type=color]{width:45px;height:42px;padding:2px;border:1px solid var(--line);background:#fff}.range-line{display:grid;grid-template-columns:1fr 54px;gap:8px;align-items:center}.range-line output{text-align:right;font-size:.78rem}.property-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.property-grid .wide{grid-column:1/-1}.checkline{display:flex;align-items:center;gap:8px;font-size:.82rem}.checkline input{accent-color:var(--green)}.effect-grid{display:grid;gap:10px}.reset-link{border:0;background:none;padding:0;color:var(--green);font-weight:800;text-align:left}.align-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.stage{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;background:#d8d6d0}.stage-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:55px;padding:8px 12px;background:#efede7;border-bottom:1px solid var(--line)}.stage-info{font-size:.8rem;font-weight:800}.stage-scroller{position:relative;overflow:auto;padding:45px;overscroll-behavior:contain}.canvas-wrap{position:relative;margin:auto;transform-origin:top left;box-shadow:0 20px 50px rgba(16,21,19,.22);background-image:linear-gradient(45deg,#ddd 25%,transparent 25%),linear-gradient(-45deg,#ddd 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ddd 75%),linear-gradient(-45deg,transparent 75%,#ddd 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}.canvas-wrap canvas{display:block;touch-action:none}.guide{position:absolute;z-index:5;display:none;pointer-events:none;background:#ee4d8b}.guide.v{top:0;bottom:0;width:1px}.guide.h{left:0;right:0;height:1px}.guide.show{display:block}.mobile-panels{display:none}.float-actions{position:fixed;right:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:50;padding:8px;background:rgba(246,243,236,.92);backdrop-filter:blur(10px);border:1px solid var(--line);box-shadow:var(--shadow)}.save-status{font-size:.74rem;color:var(--muted)}.toast{position:fixed;left:50%;bottom:25px;z-index:90;transform:translate(-50%,18px);padding:10px 15px;border-radius:4px;background:var(--ink);color:#fff;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.lock-screen{min-height:100vh;display:grid;place-items:center;padding:22px;background:var(--green-dark)}.lock-card{width:min(100%,480px);padding:clamp(26px,6vw,46px);background:var(--paper);box-shadow:0 30px 80px rgba(0,0,0,.25)}.lock-card .vg-mark{width:58px;height:58px;margin-bottom:26px}.lock-card h1{font-size:clamp(2.6rem,9vw,4.7rem);line-height:.92;letter-spacing:-.06em}.lock-card form{display:grid;gap:12px;margin-top:25px}.dialog-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:18px;background:rgba(16,21,19,.65)}.dialog{width:min(100%,520px);max-height:90vh;overflow:auto;padding:27px;background:#fff;box-shadow:0 25px 70px rgba(0,0,0,.28)}.dialog h2{margin-bottom:9px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:22px}.export-options{display:grid;gap:15px;margin-top:20px}.export-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.warning{padding:10px 12px;border-left:3px solid var(--coral);background:var(--paper);font-size:.8rem;color:var(--muted)}
@media(max-width:1200px){:root{--sidebar:250px;--props:260px}.preset-grid{grid-template-columns:repeat(3,1fr)}.template-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.editor{display:block;height:calc(100vh - 68px)}.side{position:fixed;z-index:60;top:68px;bottom:0;width:min(88vw,340px);box-shadow:var(--shadow)}.side.left{left:0;transform:translateX(-105%)}.side.right{right:0;transform:translateX(105%)}.editor.mobile-left .side.left,.editor.mobile-right .side.right{transform:none;visibility:visible}.stage{height:100%}.mobile-panels{display:flex}.float-actions{right:10px}.preset-grid{grid-template-columns:repeat(2,1fr)}.size-row{grid-template-columns:1fr 1fr}.size-row .ratio-badge,.size-row .btn{grid-column:1/-1}.stage-scroller{padding:30px}}
@media(max-width:620px){.vg-topbar{padding:8px 10px}.vg-brand>span:last-child{display:none}.top-actions .btn span{display:none}.page{padding:28px 14px 90px}.intro-row{display:grid}.intro-row .btn{width:100%}.template-grid,.preset-grid{grid-template-columns:1fr}.template-preview{height:180px}.setup-panel{padding:18px}.size-row{grid-template-columns:1fr}.stage-toolbar{align-items:flex-start}.stage-toolbar .zoom-controls{justify-content:flex-end}.float-actions{left:10px;right:10px;justify-content:center}.float-actions .save-status{width:100%;text-align:center}.export-buttons{grid-template-columns:1fr}.stage-scroller{padding:22px}.property-grid{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.mobile-panels{display:flex;gap:6px}
