@import"https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Ma+Shan+Zheng&display=swap";@import"https://fonts.googleapis.com/css2?family=ZCOOL+XiaoWei&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;line-height:1.5}#root{min-height:100vh}:root{--ink-dark: #1a1a1a;--ink: #2d2d2d;--ink-medium: #4a4a4a;--ink-light: #6b6b6b;--ink-faint: #9a9a9a;--ink-wash: #c5c5c5;--paper: #f8f5ed;--paper-warm: #f3efe4;--paper-aged: #ebe6d9;--paper-dark: #e0dace;--vermillion: #b5544d;--vermillion-light: #c9706a;--vermillion-dark: #8f3d37;--vermillion-wash: rgba(181, 84, 77, .1);--bamboo: #5a7a6a;--bamboo-light: #7a9a8a;--stone: #8a8a7a;--stone-light: #a5a595;--border: rgba(45, 45, 45, .12);--border-dark: rgba(45, 45, 45, .2);--shadow-ink: rgba(26, 26, 26, .08);--shadow-ink-strong: rgba(26, 26, 26, .15);--font-display: "ZCOOL XiaoWei", "Ma Shan Zheng", cursive;--font-serif: "Noto Serif SC", "SimSun", serif;--font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif;--container-width: 1100px;--section-gap: 20px;--radius: 8px;--radius-lg: 12px}*{box-sizing:border-box}body{margin:0;background:var(--paper-warm);color:var(--ink);font-family:var(--font-serif);line-height:1.6;-webkit-font-smoothing:antialiased;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E")}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:linear-gradient(180deg,var(--ink-dark) 0%,var(--ink) 100%);padding:0 24px;position:sticky;top:0;z-index:100;box-shadow:0 1px #ffffff0d inset,0 4px 20px -4px var(--shadow-ink-strong)}.header-inner{max-width:var(--container-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;height:56px}.logo-section{display:flex;align-items:center;gap:14px}.logo-stamp{width:42px;height:42px;background:var(--vermillion);color:var(--paper);font-family:var(--font-display);font-size:24px;display:flex;align-items:center;justify-content:center;border-radius:3px;box-shadow:0 2px 8px #b5544d66,inset 0 1px #ffffff26,inset 0 -1px #0000001a;transform:rotate(-1deg);position:relative}.logo-stamp:after{content:"";position:absolute;inset:2px;border:1px solid rgba(255,255,255,.1);border-radius:2px}.logo-text h1{margin:0;font-family:var(--font-display);font-size:20px;font-weight:400;color:var(--paper);letter-spacing:3px}.logo-text .subtitle{font-size:10px;color:#fff6;font-family:var(--font-sans);letter-spacing:.5px}.header-meta{display:flex;align-items:center;justify-content:flex-end;min-width:0}.version-badge{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff14;color:#ffffffc7;font-family:var(--font-sans);font-size:11px;line-height:1;letter-spacing:.3px;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.floating-action-bar{padding:0 24px 16px;background:var(--paper-warm);border-top:1px solid var(--border)}.action-bar-inner{max-width:var(--container-width);margin:0 auto;display:flex;align-items:center;justify-content:flex-end;gap:16px;min-height:56px}.action-bar-info{font-size:13px;color:var(--ink-light);font-family:var(--font-serif)}.action-bar-info strong{color:var(--vermillion);font-weight:600}.floating-action-bar .print-btn{font-family:var(--font-display);font-size:16px;height:48px;padding:0 32px;border-radius:var(--radius-lg);background:var(--vermillion);border-color:var(--vermillion);box-shadow:0 4px 16px #b5544d66,0 2px 4px #0000001a;transition:all .3s ease;letter-spacing:2px}.floating-action-bar .print-btn:hover:not(:disabled){background:var(--vermillion-dark)!important;border-color:var(--vermillion-dark)!important;transform:translateY(-2px);box-shadow:0 6px 20px #b5544d80,0 4px 8px #00000026}.floating-action-bar .print-btn:disabled{background:var(--ink-wash)!important;border-color:var(--ink-wash)!important;box-shadow:none;opacity:.7}.app-main{max-width:var(--container-width);width:100%;margin:0 auto;padding:24px 24px 16px}.mode-section{margin-bottom:var(--section-gap)}.mode-tabs{display:flex;gap:0;background:transparent;justify-content:center}.mode-tab{background:var(--paper-aged);border:1px solid var(--border-dark);border-bottom:none;border-radius:var(--radius) var(--radius) 0 0;padding:12px 28px;cursor:pointer;transition:all .2s ease;text-align:center;margin:0 -1px;position:relative}.mode-tab:hover{background:var(--paper)}.mode-tab.active{background:var(--paper);border-color:var(--border-dark);z-index:1;box-shadow:0 -2px 0 var(--vermillion) inset}.mode-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--paper)}.mode-tab-zh{display:block;font-family:var(--font-display);font-size:18px;color:var(--ink);margin-bottom:2px}.mode-tab.active .mode-tab-zh{color:var(--vermillion)}.mode-tab-desc{display:block;font-size:11px;color:var(--ink-faint);font-family:var(--font-sans)}.controls-section{display:flex;gap:16px;margin-bottom:var(--section-gap);background:var(--paper);border:1px solid var(--border-dark);border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:16px 20px;box-shadow:0 2px 12px var(--shadow-ink)}@media(max-width:900px){.controls-section{flex-direction:column}}.panel{background:transparent;border-radius:0;padding:0;border:none;box-shadow:none}.panel-header{display:flex;align-items:center;gap:6px;font-family:var(--font-serif);font-size:13px;font-weight:600;color:var(--ink-medium);margin-bottom:12px;padding-bottom:8px;border-bottom:1px dashed var(--border)}.panel-header .anticon{color:var(--vermillion);font-size:12px}.input-panel{flex:1;min-width:0}.input-panel .char-input{font-family:var(--font-sans)!important;font-size:14px;line-height:1.6;padding:10px 12px;border-radius:var(--radius);border-color:var(--border-dark);background:var(--paper-warm);resize:none;min-height:60px!important}.input-panel .char-input:focus{border-color:var(--vermillion-light);box-shadow:0 0 0 2px var(--vermillion-wash);background:#fff}.input-panel .char-input::placeholder{font-family:var(--font-sans)!important;font-size:13px;color:var(--ink-faint)}.input-status{margin-top:8px;font-size:12px;color:var(--ink-light)}.input-status strong{color:var(--vermillion)}.loading-dot{margin-left:6px;color:var(--ink-faint)}.inline-options{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px 12px}.option-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-light);cursor:pointer;padding:4px 8px;background:var(--paper-aged);border-radius:4px;transition:background .2s}.option-toggle:hover{background:var(--paper-dark)}.option-toggle.nested{margin-left:4px;background:var(--vermillion-wash);border-left:2px solid var(--vermillion-light)}.option-toggle.nested.level2{margin-left:8px}.option-toggle .ant-switch-checked{background:var(--vermillion)!important}.option-toggle .ant-switch{min-width:32px;height:18px}.settings-panel{flex:0 0 320px;border-left:1px dashed var(--border);padding-left:16px}@media(max-width:900px){.settings-panel{flex:none;border-left:none;border-top:1px dashed var(--border);padding-left:0;padding-top:16px}}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.setting-item{display:flex;flex-direction:column;gap:4px}.setting-item.full-width{grid-column:1 / -1}.setting-item label{font-size:11px;font-weight:500;color:var(--ink-light);text-transform:uppercase;letter-spacing:.5px}.setting-item label strong{color:var(--vermillion);font-weight:600}.grid-preview-small{margin-top:4px;display:flex;justify-content:flex-start}.grid-preview-small svg{width:36px;height:36px;border:1px solid var(--border);border-radius:4px;background:#fff}.color-options{display:flex;gap:6px}.color-btn{width:24px;height:24px;border-radius:50%;border:2px solid var(--border);background:var(--color);cursor:pointer;transition:all .2s;position:relative}.color-btn:hover{transform:scale(1.15)}.color-btn.active{border-color:var(--ink);box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--ink-light)}.title-input{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border)}.title-input label{display:block;font-size:11px;font-weight:500;color:var(--ink-light);margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.title-input .ant-input{font-family:var(--font-serif);font-size:13px;border-radius:var(--radius);border-color:var(--border-dark);background:var(--paper-warm);padding:6px 10px}.title-input .ant-input:focus{border-color:var(--vermillion-light);box-shadow:0 0 0 2px var(--vermillion-wash)}.preview-section{flex:1;background:var(--paper-aged);padding:24px;overflow-x:hidden;border-top:1px solid var(--border-dark);background-image:linear-gradient(180deg,var(--paper-dark) 0%,var(--paper-aged) 20%,var(--paper-aged) 80%,var(--paper-dark) 100%),url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.6' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E")}.preview-container{max-width:var(--container-width);width:100%;margin:0 auto;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}.empty-state{text-align:center;padding:60px 40px;background:var(--paper);border-radius:var(--radius-lg);border:1px dashed var(--border-dark);position:relative;overflow:hidden}.empty-state:before{content:"";position:absolute;top:-50px;right:-30px;width:150px;height:150px;background:radial-gradient(ellipse at center,var(--ink-wash) 0%,transparent 70%);opacity:.3;transform:rotate(-15deg)}.empty-brush{font-family:var(--font-display);font-size:64px;color:var(--ink-wash);margin-bottom:12px;position:relative;z-index:1}.empty-state h3{font-family:var(--font-display);font-size:18px;font-weight:400;color:var(--ink);margin:0 0 6px;letter-spacing:2px}.empty-state p{font-size:13px;color:var(--ink-faint);margin:0}.worksheet{display:block;background:#fff;width:100%;padding:24px;border-radius:var(--radius);box-shadow:0 1px 3px var(--shadow-ink),0 8px 24px -8px var(--shadow-ink-strong);border:1px solid var(--border)}.worksheet-page{width:100%;margin-bottom:24px;min-height:calc(var(--page-content-height, 0px) * var(--screen-scale, 1));page-break-after:always;overflow:visible;display:flex;justify-content:center}.worksheet-row{overflow:visible;display:flex;flex-direction:column;align-items:center}.worksheet-page:last-child{margin-bottom:0;page-break-after:auto}.worksheet-title{font-family:var(--font-serif);font-size:20px;font-weight:500;text-align:center;color:var(--ink);margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--border-dark);width:100%}.worksheet-page-content{width:max-content;max-width:none;transform:scale(var(--screen-scale, 1));transform-origin:top center}.worksheet-grid{display:block;width:max-content;margin:0 auto}.worksheet-grid-shell{width:100%}.ant-select-selector{border-color:var(--border-dark)!important;border-radius:var(--radius)!important;background:var(--paper-warm)!important;font-size:13px!important;height:32px!important}.ant-select-focused .ant-select-selector{border-color:var(--vermillion-light)!important;box-shadow:0 0 0 2px var(--vermillion-wash)!important}.ant-slider{margin:6px 0}.ant-slider-track{background:var(--vermillion)!important;height:3px}.ant-slider-rail{background:var(--border-dark)!important;height:3px}.ant-slider-handle:after{box-shadow:0 0 0 2px var(--vermillion)!important;width:10px!important;height:10px!important}.ant-slider-dot-active{border-color:var(--vermillion)!important}.ant-slider-mark-text{font-size:10px;color:var(--ink-faint)}.ant-radio-button-wrapper{font-size:12px;padding:0 10px;height:28px;line-height:26px}.ant-radio-button-wrapper-checked{background:var(--vermillion)!important;border-color:var(--vermillion)!important;color:#fff!important}.ant-radio-button-wrapper-checked:before{background:var(--vermillion)!important}@media print{@page{size:letter portrait;margin:0}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body{background:#fff!important;margin:0!important;padding:0!important}.no-print{display:none!important}.app{min-height:auto}.preview-section{padding:0;background:#fff;border:none}.preview-container{max-width:none}.worksheet{padding:0;box-shadow:none;border-radius:0;border:none}.worksheet-page{padding:.25in .2in;min-height:auto;display:block;page-break-after:always;page-break-inside:avoid;box-sizing:border-box}.worksheet-page-content{width:auto;transform:none}.worksheet-grid-shell{width:var(--print-scaled-width, auto);max-width:100%;margin:0 auto}.worksheet-grid{width:var(--print-grid-width, auto);margin:0;overflow:visible;zoom:var(--print-scale, 1)}.worksheet-row{overflow:visible}.worksheet-title{text-align:center;font-size:14px;padding-bottom:8px;margin-bottom:12px;width:100%}.worksheet-page:last-child{page-break-after:auto}.worksheet-row{break-inside:avoid;page-break-inside:avoid}.worksheet-title{break-after:avoid;page-break-after:avoid}}@media(max-width:600px){.app-main{padding:16px 12px 12px}.mode-tabs{flex-wrap:wrap}.mode-tab{flex:1;min-width:100px}.header-inner{flex-direction:column;height:auto;padding:12px 0;gap:12px}.header-meta{width:100%;justify-content:center}.logo-text .subtitle{display:none}.version-badge{font-size:10px;padding:5px 9px}.settings-grid{grid-template-columns:1fr}.controls-section{padding:12px 16px}.preview-section{padding:16px 12px 100px}.worksheet{padding:16px}.worksheet-page{margin-bottom:16px}.floating-action-bar{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(180deg,rgba(248,245,237,0) 0%,var(--paper-warm) 20%);padding:12px 12px 16px;z-index:100;pointer-events:none;border-top:none}.action-bar-inner{justify-content:space-between;pointer-events:auto;min-height:auto}.floating-action-bar .print-btn{flex:1;min-width:0;padding:0 18px}}.ink-splash{position:fixed;pointer-events:none;opacity:.03;z-index:-1}.ink-splash-1{top:10%;left:-5%;width:300px;height:300px;background:radial-gradient(ellipse 70% 100% at 30% 50%,var(--ink) 0%,transparent 70%);transform:rotate(-20deg)}.ink-splash-2{bottom:5%;right:-8%;width:400px;height:200px;background:radial-gradient(ellipse 100% 70% at 70% 50%,var(--ink-medium) 0%,transparent 60%);transform:rotate(15deg)}
