@import"https://fonts.googleapis.com/css2?family=Klee+One:wght@400;600&family=Noto+Serif+TC:wght@400;600&display=swap";@font-face{font-family:ChenYuluoyan;src:url(https://raw.githubusercontent.com/Chenyu-otf/chenyuluoyan_thin/main/ChenYuluoyan-2.0-Thin.ttf) format("truetype");font-display:swap}:root{font-family:Klee One,"Noto Serif TC",Segoe UI,PingFang TC,sans-serif;line-height:1.5;font-weight:400;color:#1e1a17;background-color:#f5f0e7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink-900: #1f1811;--ink-600: #4f4438;--ink-500: #6b5a48;--accent-600: #c07a28;--accent-500: #f0b040;--alert-600: #c43c3c}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top,#fdf7eb,#f0e3cf);color:var(--ink-900)}#root{min-height:100vh}input,textarea,button,select{font-family:inherit}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#392f2359;border-radius:999px}.app-shell{display:flex;flex-direction:column;gap:1.5rem;padding:2.5rem}.app-hero{background:linear-gradient(135deg,#f8f4ec,#f2ead3);border:1px solid rgba(57,47,35,.15);border-radius:18px;padding:.5rem 2rem 1rem;box-shadow:0 25px 60px #1a161214}.app-hero h1{font-size:2.4rem;margin:0;color:var(--ink-900)}.hero-copy{margin:.5rem 0 0;color:var(--ink-600)}.workspace{display:grid;grid-template-columns:minmax(320px,420px) 1fr;gap:1.5rem;align-items:flex-start}.control-panel{background:#fffdf6;border:1px solid rgba(57,47,35,.1);border-radius:18px;padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem;max-height:calc(100vh - 4rem);overflow-y:auto;scroll-behavior:smooth}.panel-section{display:flex;flex-direction:column;gap:.75rem}.panel-section header{display:flex;flex-direction:column;gap:.2rem}.section-title{font-weight:600;margin:0;color:var(--ink-900)}.section-desc{margin:0;color:var(--ink-500);font-size:.9rem}.template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.65rem}.template-card{border:1px solid rgba(91,96,69,.3);border-radius:14px;padding:.75rem;background:transparent;display:flex;flex-direction:column;justify-content:space-between;min-height:96px;cursor:pointer;transition:border-color .2s,background .2s,transform .2s;text-align:left}.template-card.is-active{border-color:var(--accent-500);background:#fae9c499;transform:translateY(-2px)}.template-label{margin:0;font-weight:600}.template-desc{margin:.2rem 0 0;font-size:.85rem;color:var(--ink-500)}.template-meta{font-size:.85rem;color:var(--ink-600);margin-top:.4rem}.text-input{width:100%;border-radius:14px;border:1px solid rgba(57,47,35,.2);padding:.9rem 1rem;resize:vertical;font-size:1rem;font-family:inherit;background:#fff}.text-meta{display:flex;justify-content:space-between;font-size:.85rem;color:var(--ink-600)}.text-warning{color:var(--alert-600)}.field-label{font-size:.85rem;font-weight:600;color:var(--ink-600)}select,input[type=color],input[type=range],button{font-family:inherit}select{width:100%;border-radius:12px;border:1px solid rgba(57,47,35,.2);padding:.65rem .75rem;background:#ffffffe6}.option-note{font-size:.85rem;color:var(--ink-500);margin:.25rem 0 0}.swatch-group{margin-bottom:.5rem}.swatch-row{display:flex;gap:.5rem;align-items:center}.swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer}.swatch.is-active{border-color:#000}.grid-type-row{display:flex;gap:.5rem;flex-wrap:wrap}.grid-chip{border-radius:999px;border:1px solid rgba(57,47,35,.2);padding:.35rem .9rem;display:inline-flex;align-items:center;gap:.4rem;cursor:pointer}.grid-chip input{display:none}.grid-chip.is-active{border-color:var(--accent-600);background:#fae9c4cc}.checkbox{display:flex;align-items:center;gap:.4rem;font-size:.9rem}.preset-actions{display:flex;gap:.5rem}.preset-actions button{flex:1;border-radius:999px;border:1px solid rgba(57,47,35,.2);background:#fffc;padding:.5rem .75rem;cursor:pointer}.preset-actions button:disabled{opacity:.5;cursor:not-allowed}.preset-list{display:flex;flex-wrap:wrap;gap:.5rem}.preset-chip{border-radius:999px;border:1px solid rgba(57,47,35,.15);background:transparent;padding:.35rem .9rem;cursor:pointer}.preview-panel{background:#fff;border:1px solid rgba(31,31,36,.08);border-radius:20px;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;min-height:0}.preview-toolbar{display:flex;justify-content:space-between;gap:1rem;align-items:center}.zoom-control{display:flex;flex-direction:column;gap:.25rem}.primary-btn{border:none;border-radius:999px;padding:.75rem 1.4rem;background:var(--ink-900);color:#fff;font-size:1rem;cursor:pointer;transition:opacity .2s,transform .2s}.primary-btn:disabled{opacity:.6;cursor:not-allowed}.primary-btn.is-loading{transform:translateY(1px)}.preview-shell{position:relative;background:#f7f1e6;border-radius:16px;padding:1rem;min-height:300px;overflow:auto}.preview-canvas{transform-origin:top left;width:fit-content}.worksheet-svg{box-shadow:0 30px 60px #16120c2e;border-radius:12px}.preview-messages{margin-top:.75rem;color:var(--ink-600);font-size:.9rem}.preview-warning{color:var(--alert-600);margin:0}.preview-hint{margin:.15rem 0 0}.preview-status{display:flex;justify-content:space-between;color:var(--ink-600);font-size:.9rem;flex-wrap:wrap;gap:.5rem}.status-badge{border-radius:999px;padding:.35rem .9rem}.status-badge.done{background:#12583226;color:#125832}.status-badge.error{background:#ba203a26;color:#b02032}.status-badge.busy{background:#213e7626;color:#213e76}@media(max-width:1100px){.workspace{grid-template-columns:1fr}.control-panel{max-height:unset}}@media(max-width:640px){.app-shell{padding:1.5rem}.preview-toolbar{flex-direction:column;align-items:flex-start}}
