:root{--color-pastel-blue: #AEE2FF;--color-pastel-green: #C8F4DE;--color-pastel-coral: #FFD1C7;--color-pastel-yellow: #FFF3B0;--color-primary: #3B82C4;--color-primary-hover: #2E6FA8;--color-primary-light: var(--color-pastel-blue);--color-secondary: #2F9E65;--color-secondary-hover: #25824F;--color-secondary-light: var(--color-pastel-green);--color-accent: #E2603E;--color-accent-hover: #C94E2F;--color-accent-light: var(--color-pastel-coral);--color-highlight: #E8B400;--color-highlight-light: var(--color-pastel-yellow);--color-surface: #ffffff;--color-surface-muted: #f5f8fb;--color-text: #2d3436;--color-text-muted: #5b6b73;--color-border: #dce6ee;--color-bg-gradient: linear-gradient( 135deg, var(--color-pastel-blue) 0%, var(--color-pastel-green) 50%, var(--color-pastel-yellow) 100% )}@media(prefers-color-scheme:dark){:root{--color-surface: #242424;--color-surface-muted: #1f1f1f;--color-text: #e8eef2;--color-text-muted: #a8b4ba;--color-border: #3a4752}}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:var(--color-primary);text-decoration:inherit}a:hover{color:var(--color-primary-hover)}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--color-primary)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.app-container{min-height:100vh;background:var(--color-bg-gradient);padding:20px;display:flex;flex-direction:column;align-items:center}.app-header{text-align:center;color:var(--color-text);margin-bottom:30px;width:100%}.app-header h1{display:flex;align-items:center;justify-content:center;gap:12px;font-size:2.5em;margin:0 0 10px;text-shadow:1px 1px 2px rgba(255,255,255,.5)}.app-logo{width:1.1em;height:1.1em;object-fit:contain;border-radius:8px}.app-header p{font-size:1.2em;margin:0;opacity:.85}.app-content{display:flex;gap:20px;align-items:flex-start;justify-content:center;width:100%;max-width:fit-content;margin:0 auto}.config-panel{flex-shrink:0;position:sticky;top:20px;width:400px}.preview-panel{flex:1;min-width:0}.action-buttons{display:flex;gap:12px;margin-bottom:20px;justify-content:center}.action-btn{padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #0000001a}.action-btn:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.action-btn:active{transform:translateY(0)}.action-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.print-btn{background:var(--color-secondary);color:#fff}.print-btn:hover{background:var(--color-secondary-hover)}.pdf-btn{background:var(--color-primary);color:#fff}.pdf-btn:hover{background:var(--color-primary-hover)}@media(max-width:768px){.app-content{flex-direction:column;align-items:center}.config-panel{position:static;width:100%;max-width:400px}.app-header h1{font-size:2em}.app-header p{font-size:1em}.action-buttons{flex-direction:column}.action-btn{width:100%}}@media print{.app-container{background:#fff;padding:0}.app-header,.config-panel,.action-buttons{display:none!important}.preview-panel{width:100%}}.worksheet-config{background:var(--color-surface);border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;border:1px solid var(--color-border);max-width:400px;min-height:730px;display:flex;flex-direction:column}.worksheet-config h2{margin:0 0 24px;color:#333;font-size:24px}.worksheet-config h3{margin:16px 0 12px;color:#555;font-size:16px;font-weight:600}.config-section{margin-bottom:24px}.config-section>label{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-weight:600;color:var(--color-text);font-size:14px}.help-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--color-text-muted);cursor:help;transition:color .15s ease}.help-icon:hover,.help-icon:focus{color:var(--color-primary);outline:none}.config-section select,.config-section input[type=number],.config-section input[type=text]{width:100%;padding:10px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;font-family:inherit;transition:border-color .2s;box-sizing:border-box}.config-section select:focus,.config-section input[type=number]:focus,.config-section input[type=text]:focus{outline:none;border-color:var(--color-primary)}.checkbox-group{display:flex;flex-direction:column;gap:12px}.checkbox-row{display:flex;align-items:center;gap:8px}.checkbox-label{display:flex;align-items:center;cursor:pointer;font-size:14px;color:#333;font-weight:400}.checkbox-label input[type=checkbox]{width:18px;height:18px;margin-right:10px;cursor:pointer}.checkbox-label span{-webkit-user-select:none;user-select:none}.input-group{margin-bottom:24px}.input-group label{display:block;margin-bottom:6px;font-size:13px;color:#555;font-weight:500}.input-group input[type=number]{width:100%;padding:10px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;box-sizing:border-box}.generate-btn{width:100%;padding:14px 24px;background:var(--color-secondary);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s;margin-bottom:24px}.generate-btn:hover{background:var(--color-secondary-hover)}.generate-btn:active{transform:translateY(1px)}.support-email-link{display:inline-block;width:100%;text-align:center;color:var(--color-text-muted);font-size:14px;font-weight:500;text-decoration:none;margin-top:-12px;margin-bottom:24px}.support-email-link span{color:var(--color-primary);text-decoration:underline;font-weight:600}.support-email-link:hover span,.support-email-link:focus span{color:var(--color-primary-dark, var(--color-primary))}.advanced-settings-btn{width:100%;padding:12px 24px;background:var(--color-surface-muted);color:var(--color-text-muted);border:2px solid var(--color-border);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;margin-bottom:12px}.advanced-settings-btn:hover{background:var(--color-pastel-blue);border-color:var(--color-primary-light);color:var(--color-text)}.advanced-settings-btn:active{transform:translateY(1px)}@media(prefers-color-scheme:dark){.worksheet-config{background:#242424}.worksheet-config h2{color:#e0e0e0}.worksheet-config h3{color:silver}.config-section>label,.checkbox-label{color:#e0e0e0}.input-group label{color:silver}.config-section select,.config-section input[type=number],.config-section input[type=text],.input-group input[type=number]{background:#1a1a1a;border-color:#404040;color:#e0e0e0}.config-section select:focus,.config-section input[type=number]:focus,.config-section input[type=text]:focus,.input-group input[type=number]:focus{border-color:var(--color-primary)}.advanced-settings-btn{background:#2a2a2a;border-color:#404040;color:silver}.advanced-settings-btn:hover{background:#333;border-color:#505050}}.modal-backdrop{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;max-width:620px;width:100%;max-height:85vh;display:flex;flex-direction:column;animation:scaleIn .2s ease-out}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:var(--color-pastel-blue);border-bottom:1px solid var(--color-border);border-radius:12px 12px 0 0}.modal-header h2{margin:0;color:#333;font-size:20px;font-weight:600}.modal-close-btn{background:transparent;border:none;font-size:24px;color:#666;cursor:pointer;padding:4px 8px;line-height:1;border-radius:4px;transition:all .2s}.modal-close-btn:hover{background:#f5f5f5;color:#333}.modal-body{padding:24px;overflow-y:auto;overflow-x:hidden;flex:1}.modal-section{margin-bottom:24px}.modal-section:last-child{margin-bottom:0}.modal-intro{margin:0 0 16px;padding:8px 12px;background:var(--color-surface-muted);border-left:3px solid var(--color-primary-light);border-radius:6px;font-size:13px;line-height:1.4;color:var(--color-text-muted)}.modal-section h3{margin:0 0 8px;color:#555;font-size:16px;font-weight:600}.modal-section-hint{margin:0 0 16px;font-size:12px;color:#888}.modal-input-group{margin-bottom:16px}.modal-input-group:last-child{margin-bottom:0}.modal-input-group label{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:13px;color:#555;font-weight:500}.modal-input-group input[type=number],.modal-input-group select{width:100%;padding:10px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;font-family:inherit;transition:border-color .2s;box-sizing:border-box;background:#fff;color:#333}.modal-input-group input[type=number]:focus,.modal-input-group select:focus{outline:none;border-color:var(--color-primary)}.modal-input-hint{display:block;margin-top:4px;font-size:12px;color:#888;font-style:italic}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e0e0e0}.modal-btn{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.modal-btn-cancel{background:#f5f5f5;color:#555}.modal-btn-cancel:hover{background:#e8e8e8}.modal-btn-apply{background:var(--color-primary);color:#fff}.modal-btn-apply:hover{background:var(--color-primary-hover)}.modal-btn:active{transform:translateY(1px)}@media(prefers-color-scheme:dark){.modal-content{background:#242424}.modal-header{background:#1e3a4f;border-bottom-color:#404040}.modal-header h2{color:#e0e0e0}.modal-close-btn{color:#999}.modal-close-btn:hover{background:#333;color:#e0e0e0}.modal-section h3{color:silver}.modal-section-hint{color:#999}.modal-input-group label{color:silver}.modal-input-group input[type=number],.modal-input-group select{background:#1a1a1a;border-color:#404040;color:#e0e0e0}.modal-input-group input[type=number]:focus,.modal-input-group select:focus{border-color:var(--color-primary)}.modal-input-hint{color:#999}.modal-footer{border-top-color:#404040}.modal-btn-cancel{background:#2a2a2a;color:silver}.modal-btn-cancel:hover{background:#333}}@media(max-width:600px){.modal-backdrop{padding:10px}.modal-content{max-height:90vh}.modal-header,.modal-body,.modal-footer{padding:16px}}.tooltip-wrapper{position:relative;display:inline-flex;align-items:center}.tooltip-wrapper.tooltip-block{display:flex;width:100%}.tooltip-wrapper:focus{outline:none}.tooltip-bubble{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);background:var(--color-text);color:var(--color-surface);font-size:12px;font-weight:500;line-height:1.4;padding:8px 12px;border-radius:8px;white-space:normal;width:max-content;max-width:220px;text-align:left;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .15s ease,transform .15s ease;z-index:10;box-shadow:0 4px 12px #0003}.tooltip-bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--color-text)}.tooltip-wrapper:hover .tooltip-bubble,.tooltip-wrapper:focus-within .tooltip-bubble,.tooltip-wrapper:focus .tooltip-bubble{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.tooltip-bubble-wide{left:0;transform:translateY(4px);max-width:260px}.tooltip-bubble-wide:after{left:10px;transform:none}.tooltip-wrapper:hover .tooltip-bubble-wide,.tooltip-wrapper:focus-within .tooltip-bubble-wide,.tooltip-wrapper:focus .tooltip-bubble-wide{transform:translateY(0)}.term-diagram{display:flex;flex-direction:column;gap:8px}.term-diagram-equation{display:flex;align-items:center;gap:6px;font-size:18px;font-weight:700}.term-diagram-num{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:2px 6px;border-radius:6px;color:var(--color-surface);background:#ffffff26}.term-diagram-highlight{background:var(--color-highlight);color:var(--color-text)}.term-diagram-op{opacity:.7}.term-diagram-caption{margin:0;font-size:12px;font-weight:500;line-height:1.4}.term-diagram-caption strong{color:var(--color-highlight-light)}.worksheet-preview{background:#525659;padding:40px 20px;display:flex;justify-content:center;align-items:flex-start}.worksheet-preview.empty{min-height:698px;height:auto;display:flex;align-items:center;justify-content:center;border-radius:12px}.empty-state{text-align:center;padding:60px 20px;color:#ccc;font-size:18px}#worksheet-content{display:flex;gap:30px;justify-content:center;flex-wrap:wrap;max-width:100%}.worksheet-page{width:210mm;height:297mm;min-height:297mm;max-height:297mm;padding:15mm 15mm 10mm;background:#fff;box-shadow:0 4px 20px #0000004d;box-sizing:border-box;position:relative;display:flex;flex-direction:column}.worksheet-header{margin-bottom:20px;border-bottom:2px solid #333;padding-bottom:10px}.worksheet-content{flex:1;min-height:0;overflow:hidden}.worksheet-header h1{margin:0 0 8px;font-size:28px;color:#333;font-weight:700}.worksheet-meta-line{display:flex;align-items:baseline;gap:20px;margin-bottom:0;font-size:14px;color:#666}.meta-field{display:flex;align-items:baseline;gap:6px;min-width:0}.meta-field-name{flex:3 1 0}.meta-field-class{flex:1 1 0}.meta-field-date{flex:2 1 0}.meta-label{flex-shrink:0;color:#666}.meta-blank{flex:1 1 auto;min-width:16px;height:1em;border-bottom:1px solid #999}.student-info label{font-size:18px;color:#333;font-weight:500}.section-title{margin:15px 0 10px;font-size:18px;color:#333;font-weight:700;border-bottom:2px solid #ddd;padding-bottom:6px}.problems-grid{display:flex;flex-direction:column;gap:24px}.math-problems-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-flow:column;gap:18px 25px;column-gap:25px}.word-problems-grid{display:flex;flex-direction:column;gap:16px}.problem-item{display:flex;gap:8px;align-items:flex-start}.problem-number{font-size:18px;font-weight:700;color:#333;min-width:28px}.problem-content{flex:1}.math-problem{font-size:22px;font-weight:600;color:#333;margin:0;letter-spacing:.5px}.word-problem{font-size:18px;line-height:1.6;color:#333;margin:0;max-width:600px}.answer-page{background:#fafafa}.answer-header{margin-bottom:20px;border-bottom:2px solid #666;padding-bottom:10px}.answer-header h2{margin:0 0 8px;font-size:20px;color:#333}.answer-meta{display:flex;gap:8px;font-size:12px;color:#666}.answers-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 20px}.answer-item{display:flex;gap:8px;font-size:12px;color:#333}.answer-number{font-weight:700}.answer-value{font-weight:500}@media print{.worksheet-preview{background:#fff;padding:0}.worksheet-page{width:100%;min-height:auto;margin:0;padding:15mm;box-shadow:none;page-break-after:always}.answer-page{background:#fff}.problem-item{page-break-inside:avoid}}@media screen and (max-width:768px){.worksheet-page{width:100%;min-height:auto;padding:15mm}.math-problem{font-size:20px}.word-problem{font-size:16px}.answers-grid{grid-template-columns:repeat(2,1fr)}}.worksheet-footer{margin-top:auto;padding-top:8px;border-top:1px solid #ddd;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.worksheet-footer span{margin:0;font-size:10px;color:#666;font-style:italic}
