: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:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}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:#646cff}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}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--blue: #3b82f6;--blue-d: #2563eb;--green: #22c55e;--red: #ef4444;--bg: #f0f4f8;--surface:#ffffff;--border: #e2e8f0;--text: #1e293b;--muted: #64748b;--radius: 14px;--shadow: 0 4px 24px rgba(0,0,0,.08)}body{font-family:Apple SD Gothic Neo,Noto Sans KR,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}.hero{background:linear-gradient(135deg,#1d4ed8,#6366f1);color:#fff;text-align:center;padding:56px 24px 48px}.hero-icon{font-size:3rem;margin-bottom:12px}.hero h1{font-size:2rem;font-weight:700;letter-spacing:-.5px}.hero p{margin-top:8px;opacity:.85;font-size:.95rem}.container{max-width:760px;margin:0 auto;padding:32px 16px 64px;display:flex;flex-direction:column;gap:24px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px;display:flex;flex-direction:column;gap:28px}.field-group{display:flex;flex-direction:column;gap:10px}.field-label{font-size:.85rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:8px}.field-value{margin-left:auto;font-size:1rem;font-weight:700;color:var(--blue);text-transform:none;letter-spacing:0}.optional{font-weight:400;text-transform:none;letter-spacing:0}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:540px){.row-2{grid-template-columns:1fr}}.type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.type-btn{background:var(--bg);border:2px solid var(--border);border-radius:10px;padding:12px 10px;cursor:pointer;display:flex;flex-direction:column;gap:4px;text-align:left;transition:border-color .18s,background .18s,transform .12s}.type-btn:hover{border-color:var(--blue);transform:translateY(-2px)}.type-btn.active{border-color:var(--blue);background:#eff6ff}.type-label{font-size:.9rem;font-weight:600;color:var(--text)}.type-desc{font-size:.75rem;color:var(--muted)}.slider{-webkit-appearance:none;width:100%;height:6px;border-radius:3px;background:#e2e8f0;outline:none;cursor:pointer}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--blue);box-shadow:0 2px 8px #3b82f666;cursor:pointer;transition:transform .12s}.slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.slider::-webkit-slider-runnable-track{height:6px;border-radius:3px}.slider-marks{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);margin-top:2px}.difficulty-row{display:flex;gap:10px}.diff-btn{flex:1;border:2px solid var(--border);border-radius:10px;padding:10px;font-size:.9rem;font-weight:600;cursor:pointer;background:var(--bg);transition:all .18s}.diff-btn:hover{transform:translateY(-2px)}.diff-easy.active{background:#dcfce7;border-color:var(--green);color:#15803d}.diff-mid.active{background:#fef9c3;border-color:#eab308;color:#854d0e}.diff-hard.active{background:#fee2e2;border-color:var(--red);color:#991b1b}.diff-easy:not(.active):hover{border-color:var(--green)}.diff-mid:not(.active):hover{border-color:#eab308}.diff-hard:not(.active):hover{border-color:var(--red)}.tag-grid{display:flex;flex-wrap:wrap;gap:8px}.tag-btn{border:1.5px solid var(--border);border-radius:999px;padding:6px 14px;font-size:.85rem;cursor:pointer;background:var(--bg);color:var(--text);transition:all .18s}.tag-btn:hover{border-color:var(--blue);color:var(--blue)}.tag-btn.active{background:var(--blue);border-color:var(--blue);color:#fff}.check{font-size:.8rem}.textarea{width:100%;border:1.5px solid var(--border);border-radius:10px;padding:12px 14px;font-size:.9rem;font-family:inherit;color:var(--text);resize:vertical;outline:none;transition:border-color .18s;background:var(--bg)}.textarea:focus{border-color:var(--blue);background:#fff}.gen-btn{width:100%;padding:16px;background:linear-gradient(135deg,var(--blue) 0%,#6366f1 100%);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 16px #3b82f659;transition:opacity .18s,transform .12s}.gen-btn:hover:not(:disabled){opacity:.9;transform:translateY(-2px)}.gen-btn:disabled{opacity:.6;cursor:not-allowed}.spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-box{background:#fee2e2;border:1.5px solid #fca5a5;border-radius:var(--radius);padding:16px 20px;color:#991b1b;font-size:.9rem;display:flex;align-items:center;gap:10px}.report-card{border-top:4px solid var(--blue)}.report-header{display:flex;align-items:center;gap:10px;padding-bottom:20px;border-bottom:1px solid var(--border)}.report-header span{font-size:1.6rem}.report-header h2{font-size:1.25rem;font-weight:700}.report-body{padding-top:20px;line-height:1.75;color:var(--text)}.report-body h1{font-size:1.3rem;font-weight:700;margin:20px 0 8px;color:#1e40af}.report-body h2{font-size:1.15rem;font-weight:700;margin:18px 0 6px;color:#1e40af}.report-body h3{font-size:1rem;font-weight:700;margin:16px 0 6px;color:var(--blue);padding-left:10px;border-left:3px solid var(--blue)}.report-body p{margin-bottom:8px;font-size:.95rem}.report-body ul,.report-body ol{padding-left:20px;margin-bottom:12px}.report-body li{margin-bottom:5px;font-size:.95rem}.report-body strong{font-weight:700;color:#1e40af}
