@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Thai:wght@400;500;600;700&family=Inter:wght@400;500;600;700;800&display=swap');
:root{--ink:#243b32;--muted:#84918b;--green:#236248;--light:#f3f5f1;--border:#e4e9e2;--accent:#daf0a1;--font:'Inter','IBM Plex Sans Thai',Tahoma,sans-serif}*{box-sizing:border-box}body{margin:0;background:#f6f7f3;color:var(--ink);font:14px var(--font)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button,input,summary{outline-offset:4px}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #4a8d66}button{transition:background .15s,box-shadow .15s}button:hover:not(:disabled){filter:brightness(.97)}[hidden]{display:none!important}.app-header{height:76px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:17px;letter-spacing:-.5px;color:var(--ink);font-weight:800;text-decoration:none;white-space:nowrap}.brand b{font-weight:400;color:#6b8074}.brand-mark{background:var(--green);color:#fff;width:37px;height:37px;display:grid;place-items:center;border-radius:10px;font-size:21px}.beta{font-size:9px;font-weight:600;letter-spacing:1px;background:#edf3e8;padding:5px 7px;border-radius:4px}.header-center{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.status-dot{width:6px;height:6px;background:#84a972;border-radius:100%}.header-actions{display:flex;gap:10px}.button{border:1px solid var(--border);border-radius:7px;padding:10px 15px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px}.primary{background:var(--green);border-color:var(--green);color:#fff}.ghost{background:#fff;color:var(--ink)}.wide{width:100%}.danger{background:#fff5f2;border-color:#edd8d3;color:#a14632;margin-top:10px}.text-button{border:0;background:transparent;color:var(--green);padding:0;font-size:11px}.icon-button{border:0;background:transparent;color:#63786c;width:30px;height:30px;border-radius:5px;font-size:20px}.icon-button:hover{background:#eaf0e6}main{max-width:1920px;margin:auto;padding:30px 32px 0}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.eyebrow{font-size:10px;font-weight:700;color:#7f927e;letter-spacing:2px;margin:0 0 10px}h1{font-size:30px;letter-spacing:-.8px;font-weight:600;line-height:1.4;margin:0 0 5px}h1 span{color:#80a753}.subtitle{font-size:12px;color:#829084;margin:0}.steps{display:flex;list-style:none;gap:22px;font-size:12px;padding:0;color:#a0a99f}.steps li{display:flex;align-items:center;gap:7px}.steps b{width:23px;height:23px;background:#e9eee4;color:#93a18d;display:grid;place-items:center;border-radius:50%;font-size:10px}.steps .active{color:var(--green)}.steps .active b{background:var(--green);color:#fff}.workspace{display:grid;grid-template-columns:246px minmax(340px,1fr) 240px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff;min-height:660px;height:calc(100vh - 258px);max-height:1100px;box-shadow:0 5px 24px #233c2804}.panel{padding:20px 18px;overflow:auto;scrollbar-width:thin;scrollbar-color:#dfe6da transparent;display:flex;flex-direction:column}.left-panel{border-right:1px solid var(--border)}.right-panel{border-left:1px solid var(--border)}.panel-title{font-size:12px;font-weight:600;display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.small-label{font:10px var(--font);color:#a5b0a0}.upload-box{border:1px dashed #c8d4c2;background:#f9fbf6;border-radius:9px;padding:17px 5px;display:flex;align-items:center;flex-direction:column;width:100%;gap:5px;color:var(--ink)}.upload-box:hover,.upload-box.drag-over{background:#edf5e6;border-color:var(--green)}.upload-box strong{font-size:12px;font-weight:500}.upload-box>span:not(.upload-icon){font-size:10px;color:#8c9b86}.upload-box small{font-size:9px;color:#a0ac99;margin-top:5px}.upload-icon{width:30px;height:30px;font-size:26px;background:#edf3e6;border-radius:8px;margin-bottom:5px;line-height:28px}.micro{font-size:10px;color:#93a08e;line-height:1.7;margin:9px 0 0}.source-note{font-size:9px;text-align:center}.divider{border-top:1px solid var(--border);margin:20px 0}.style-card{display:flex;align-items:center;gap:9px;padding:9px;border-radius:8px;border:1px solid #84a77e;background:#f6faf0}.style-card strong{font-size:11px;font-weight:500;display:block}.style-card small{font-size:8px;color:#8e9b86}.radio-check{font-size:10px;background:var(--green);color:#fff;width:15px;height:15px;border-radius:50%;display:grid;place-items:center;margin-left:auto}.style-preview{position:relative;width:47px;height:42px;flex-shrink:0;border-radius:5px;background:#cbd3a7;overflow:hidden}.style-preview span{position:absolute;inset:7px 6px;background:#7d9e42;border-radius:70% 20% 55% 20%;transform:rotate(-20deg)}.style-preview i{position:absolute;width:15px;height:15px;border-radius:50%;background:#b8ce6b;right:8px;top:8px}.style-preview b{position:absolute;width:11px;height:10px;border-radius:65%;background:#f0ddb0;bottom:9px;left:10px}.slider-label{display:flex;justify-content:space-between;font-size:10px;margin:17px 0 8px}.slider-label span{color:#8a9a84;font-size:10px}input[type=range]{width:100%;height:4px;margin:0 0 5px;accent-color:var(--green);cursor:pointer;flex-shrink:0}#generateButton{margin-top:18px;font-size:12px}.layers{max-height:135px;overflow:auto;min-height:28px}.layer-row{display:flex;align-items:center;gap:7px;padding:6px 5px;border-radius:4px;width:100%;border:0;background:transparent;color:#708367;font-size:10px;text-align:left}.layer-row.active{background:#edf4e7;color:var(--green)}.layer-row span:last-child{margin-left:auto;font-size:9px;color:#a1ae9c}.left-bottom{display:flex;gap:9px;margin-top:auto;padding-top:24px;color:#66805c}.left-bottom>span{font-size:23px}.left-bottom strong{display:block;font-size:10px;font-weight:500}.left-bottom small{font-size:9px;color:#99a393}.canvas-panel{display:flex;flex-direction:column;min-width:0;overflow:hidden}.canvas-header{height:56px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 15px;flex-shrink:0}.view-tabs{display:flex;background:#f3f5ef;padding:3px;border-radius:6px;gap:2px}.view-tabs button{border:0;background:transparent;font-size:10px;color:#93a08b;padding:6px 10px;border-radius:4px;white-space:nowrap}.view-tabs .active{background:white;color:var(--green);box-shadow:0 1px 3px #18370f12}.canvas-header-right{display:flex;align-items:center;gap:8px}.draft-badge{font-size:8px;color:#9b8647;background:#faf6e9;border-radius:4px;padding:5px}.stage{position:relative;flex:1;overflow:hidden;background-color:#f4f5f0;background-image:radial-gradient(#cbd2c3 .65px,transparent .65px);background-size:18px 18px;min-height:400px;touch-action:none}.stage.drag-over{box-shadow:inset 0 0 0 3px #55865e}#editorCanvas{display:block;width:100%;height:100%;position:absolute;top:0;left:0;touch-action:none}.empty-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:50px;pointer-events:none}.empty-state button{pointer-events:auto}.empty-state .eyebrow{font-size:8px;margin:15px 0 8px;letter-spacing:1.5px}.empty-state h2{font-size:21px;font-weight:500;margin:0}.empty-state p:not(.eyebrow){font-size:11px;text-align:center;color:#99a48e;line-height:1.8;margin:10px 0 20px}.empty-state .button{font-size:11px;min-height:38px}.empty-state .text-button{margin-top:14px}.empty-state small{font-size:8px;color:#a4ad9d;margin-top:6px}.empty-art{height:130px;width:230px;position:relative}.island{position:absolute;left:15px;top:33px;width:195px;height:88px;transform:rotate(-14deg);background:linear-gradient(135deg,#a0b57d,#8f9f69);border-radius:57% 32% 56% 35%;box-shadow:0 5px 0 #d1c9aa,0 10px 0 #e5dfcd,0 20px 30px #6e814218}.island:after{content:'';position:absolute;inset:16px 23px;background:repeating-linear-gradient(90deg,#a6bb66 0 15px,#9eb55c 15px 30px);border-radius:58% 30%;z-index:0}.empty-green{position:absolute;right:23px;top:20px;width:38px;height:31px;background:#bfce85;border-radius:60%;z-index:1}.empty-bunker{position:absolute;left:90px;bottom:15px;width:24px;height:15px;background:#f5e8bd;border-radius:60% 20%;z-index:1}.empty-tree{position:absolute;width:35px;height:32px;border-radius:45%;background:radial-gradient(circle at 34% 28%,#648952,#3b6441 70%);box-shadow:5px 6px 0 #53683e35;z-index:3}.t1{left:22px;top:8px}.t2{left:46px;top:0;transform:scale(.8)}.t3{left:33px;bottom:-5px;transform:scale(.85)}.empty-flag{position:absolute;right:29px;top:-3px;font-size:35px;color:#c86f46;z-index:4;transform:rotate(14deg)}.toolbar{position:absolute;bottom:21px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:3px;padding:6px;border:1px solid #e2e7dc;border-radius:9px;box-shadow:0 4px 20px #23401510;background:#fffffff5;max-width:calc(100% - 20px);overflow:auto}.toolbar button{border:0;background:transparent;color:#819176;min-width:38px;height:44px;border-radius:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:19px;gap:3px;padding:0 4px}.toolbar button span{font-size:8px;white-space:nowrap}.toolbar button.active{background:#eaf2df;color:#345e39}.toolbar i{width:1px;height:24px;background:var(--border);margin:0 3px}.swatch{display:inline-block;width:13px;height:13px;border-radius:4px;border:1px solid #00000008;flex-shrink:0}.fairway{background:#8ba34d}.green{background:#bfcc76}.sand{background:#e8d6ab}.water{background:#84b3b5}.tree{background:#3c7146}.boundary{background:transparent;border:1px dashed #50744b}.pin{background:#d7744c}.canvas-footer{min-height:42px;padding:4px 12px;display:flex;justify-content:space-between;align-items:center;background:#fff;border-top:1px solid var(--border);gap:8px}.canvas-footer>span{font-size:9px;color:#99a28f;line-height:1.5}.canvas-footer>div{display:flex;align-items:center;gap:1px;flex-shrink:0}.canvas-footer .icon-button{font-size:17px;width:24px;height:27px}#zoomValue{font-size:9px;color:#88957b;width:39px;text-align:center}.footer-separator{height:14px;width:1px;background:var(--border);margin:0 7px}.field-label{font-size:10px;margin-bottom:7px}.text-input{border:1px solid var(--border);background:#fff;border-radius:5px;width:100%;padding:9px 8px;font-size:11px;color:var(--ink);min-width:0}.text-input::placeholder{color:#b0b7a7}.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 5px;margin-top:21px}.spec-grid span{display:block;font-size:9px;color:#96a08d;margin-bottom:6px}.spec-grid strong{font-size:10px;font-weight:500}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:5px}.switch-row strong{display:block;font-size:11px;font-weight:500}.switch-row small{display:block;font-size:9px;color:#9aa48f;margin-top:5px}.switch-row input{appearance:none;width:29px;height:17px;background:#dce3d5;position:relative;border-radius:30px;cursor:pointer;flex-shrink:0}.switch-row input:before{content:'';position:absolute;width:11px;height:11px;background:#fff;border-radius:50%;top:3px;left:3px;transition:transform .15s}.switch-row input:checked{background:var(--green)}.switch-row input:checked:before{transform:translateX(12px)}summary{font-size:11px;cursor:pointer}summary span{font-size:9px;color:#a4ac9b;float:right}.coordinate-pair{display:grid;grid-template-columns:1fr 1fr;gap:5px}.coordinate-pair label{font-size:8px;color:#97a18e}.coordinate-pair input{margin-top:4px;padding:7px 5px;font-size:10px}.corner-label{font-size:9px;color:#73856a;margin:10px 0 3px}.geo-message.invalid{color:#b86d45}.check-row{display:flex;align-items:center;font-size:9px;color:#87967a;gap:5px;margin-top:12px}.check-row input{accent-color:var(--green)}.review-note{display:flex;gap:8px;background:#f5f6ee;border-radius:6px;margin:20px 0;padding:11px;color:#9a9c7b;font-size:10px}.review-note p{margin:0;line-height:1.8;font-size:9px}.right-panel>#saveProject{margin-top:auto;font-size:11px}.centered{text-align:center;font-size:9px}.page-footer{display:flex;justify-content:space-between;color:#a0aa98;font-size:9px;letter-spacing:.5px;padding:18px 1px}.page-footer span:first-child{font-weight:700;letter-spacing:1px}.page-footer span:last-child{font-size:8px;letter-spacing:1.5px}.source-card{display:flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:6px;padding:7px}.source-card img{width:42px;height:40px;object-fit:cover;border-radius:4px}.source-card div{min-width:0}.source-card strong{display:block;font-size:10px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:115px}.source-card span{font-size:9px;color:#9aa790}.source-card button{margin-left:auto;border:0;background:none;color:#859478;font-size:22px}.busy-overlay{position:absolute;inset:0;background:#f6f8f1e8;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;z-index:5}.busy-overlay strong{font-weight:500;font-size:15px}.busy-overlay>span:last-child{font-size:11px;color:#93a189}.spinner{width:29px;height:29px;border:2px solid #d5dec8;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.draw-actions{position:absolute;top:14px;left:50%;transform:translateX(-50%);background:#fff;padding:6px 8px;display:flex;align-items:center;gap:8px;border:1px solid var(--border);box-shadow:0 3px 15px #0001;border-radius:7px;white-space:nowrap}.draw-actions .button{font-size:10px;min-height:30px;padding:5px 8px}.draw-actions span{font-size:10px;color:#87977d}dialog{border:1px solid var(--border);border-radius:14px;padding:32px;width:470px;max-width:calc(100% - 30px);color:var(--ink);box-shadow:0 20px 100px #17382225}dialog::backdrop{background:#223a3066;backdrop-filter:blur(4px)}dialog h2{font-size:24px;font-weight:500;margin:5px 0 10px}dialog p:not(.eyebrow){font-size:12px;color:#89967f;line-height:1.8}.dialog-close{position:absolute;top:12px;right:12px;border:0;background:none;font-size:25px;color:#8a9980}.export-summary{background:#f3f6ed;padding:15px;border-radius:7px;display:flex;justify-content:space-between;font-size:11px;margin:20px 0}.export-warning{color:#9a874c!important;font-size:10px!important}.export-options{display:flex;gap:8px;margin-top:20px}.export-options .button{flex:1;font-size:11px}dialog>small{display:block;font-size:9px;color:#9aa68e;margin-top:15px;text-align:center}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);padding:12px 20px;max-width:90vw;background:#244c3e;color:#fff;box-shadow:0 5px 20px #153c2820;border-radius:8px;font-size:12px;z-index:30;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}#toast.visible{opacity:1;transform:translate(-50%,0)}@media(min-width:1600px){.workspace{grid-template-columns:270px minmax(340px,1fr) 265px}.panel{padding:24px}.toolbar button{min-width:46px}.toolbar button span{font-size:9px}}@media(max-width:1200px){main{padding:20px 16px 0}.app-header{padding:0 20px}.workspace{grid-template-columns:218px minmax(320px,1fr) 205px}.panel{padding:17px 13px}.draft-badge{display:none}.steps{gap:10px;font-size:10px}.toolbar{gap:0;padding:4px}.toolbar button{min-width:33px}.toolbar button span{font-size:7px}.toolbar i{margin:0 1px}.intro h1{font-size:26px}.header-center{display:none}}@media(max-width:960px){.workspace{grid-template-columns:205px minmax(300px,1fr);height:auto;min-height:720px}.right-panel{grid-column:1/-1;border-left:0;border-top:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr;gap:12px 30px;overflow:visible}.right-panel>.divider{display:none}.right-panel .panel-title,.right-panel>.field-label{grid-column:1/-1;margin:0}.right-panel .spec-grid{margin:0}.right-panel>#projectName{grid-column:1/-1}.right-panel .review-note{margin:0}.canvas-panel{height:720px}.steps{display:none}.left-panel{max-height:720px}.page-footer span:nth-child(2){display:none}}@media(max-width:600px){.app-header{height:65px;padding:0 12px;gap:5px}.brand{font-size:13px;gap:7px}.brand-mark{width:30px;height:30px;font-size:17px}.beta{display:none}.header-actions{gap:5px}.header-actions .button{font-size:10px;padding:7px 9px;min-height:34px}main{padding:18px 10px 0}.intro{margin-bottom:18px}.intro h1{font-size:23px}.subtitle{font-size:10px}.workspace{display:flex;flex-direction:column}.left-panel{max-height:none;border-right:0;padding:15px}.left-bottom,.left-panel .source-note{display:none}.left-panel .divider{margin:12px 0}.upload-box{padding:10px}.upload-icon{display:none}.left-panel .style-card{display:none}.left-panel .slider-label{margin:12px 0 5px}.left-panel #generateButton{margin-top:12px}.left-panel .panel-title{margin-bottom:8px}.canvas-panel{height:550px;border-top:1px solid var(--border)}.canvas-header{padding:0 9px}.view-tabs button{font-size:9px}.toolbar button{min-width:30px}.toolbar{bottom:15px;max-width:calc(100% - 12px)}.toolbar button span{font-size:7px}.canvas-footer>span{max-width:55%;font-size:8px}.right-panel{gap:10px 15px;display:grid}.empty-state h2{font-size:19px}.export-options{flex-direction:column}}

@media(min-width:961px) and (max-height:850px){main{padding-top:20px}.intro{margin-bottom:20px}.workspace{min-height:460px;height:calc(100vh - 244px)}.stage{min-height:320px}.page-footer{padding:12px 1px}.panel{padding-top:16px;padding-bottom:16px}}

.download-ready{margin-top:12px;text-decoration:none}
