: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}}:root{--primary: #4f46e5;--primary-hover: #4338ca;--bg-color: #f0f2f5;--surface-color: #ffffff;--text-main: #111827;--text-secondary: #4b5563;--border-color: #e5e7eb;--error: #ef4444;--success: #10b981;--radius-lg: 16px;--radius-md: 12px;--radius-sm: 8px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}*{box-sizing:border-box}body{font-family:Kanit,sans-serif;background-color:var(--bg-color);background-image:radial-gradient(#e0e7ff 1px,transparent 1px);background-size:24px 24px;color:var(--text-main);margin:0;padding:40px 0;min-height:100vh;display:flex;justify-content:center}.container{width:100%;max-width:900px;padding:0 20px;margin:0 auto}.header{text-align:center;margin-bottom:2rem;background:#fff;padding:2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.header h1{font-size:2.5rem;font-weight:700;margin:0;background:linear-gradient(135deg,#4f46e5,#ec4899);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.5rem}.header p{color:var(--text-secondary);font-weight:300;font-size:1.1rem;margin:0}.main-content{display:flex;flex-direction:column;gap:1.5rem}section{background:var(--surface-color);padding:2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--border-color);transition:transform .2s,box-shadow .2s}section:hover{box-shadow:var(--shadow-lg)}.input-group label{display:flex;align-items:center;gap:.5rem;font-weight:500;margin-bottom:.5rem;color:var(--text-secondary)}.input-group input{width:100%;padding:.875rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-family:inherit;font-size:1rem;transition:all .2s;background:#f9fafb}.input-group input:focus{outline:none;border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px #4f46e51a}.input-group small{display:block;margin-top:.5rem;color:var(--text-secondary);font-size:.85rem}.dropzone input[type=file]{position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;cursor:pointer;z-index:10}.dropzone{border:2px dashed transparent;border-radius:var(--radius-lg);padding:4rem 2rem;text-align:center;background:linear-gradient(135deg,#f0f4ff,#fdf2f8,#f0fdf4);cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;min-height:280px;display:flex;align-items:center;justify-content:center}.dropzone:before{content:"";position:absolute;inset:0;border-radius:var(--radius-lg);padding:2px;background:linear-gradient(135deg,#818cf8,#e879f9,#34d399);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;transition:opacity .3s ease}.dropzone:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:conic-gradient(from 0deg,transparent,rgba(129,140,248,.1),transparent,rgba(232,121,249,.1),transparent);animation:rotate 8s linear infinite;opacity:0;transition:opacity .3s ease}@keyframes rotate{to{transform:rotate(360deg)}}.dropzone:hover{transform:translateY(-4px);box-shadow:0 20px 40px -15px #818cf84d,0 10px 20px -10px #e879f933}.dropzone:hover:before{opacity:1}.dropzone:hover:after{opacity:1}.dropzone.has-image{padding:0;border:none;background:transparent;min-height:auto}.dropzone.has-image:before,.dropzone.has-image:after{display:none}.placeholder{display:flex;flex-direction:column;align-items:center;gap:1.5rem;color:var(--text-secondary);pointer-events:none;position:relative;z-index:1}.placeholder svg{width:64px;height:64px;color:#818cf8;filter:drop-shadow(0 4px 6px rgba(129,140,248,.3));animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.placeholder span{font-weight:600;font-size:1.1rem;background:linear-gradient(135deg,#4f46e5,#ec4899);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.placeholder:after{content:"รองรับไฟล์ PNG, JPG, WEBP";font-size:.85rem;color:#9ca3af;font-weight:400}.preview-container{position:relative;width:100%;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.preview-image{width:100%;height:auto;max-height:500px;object-fit:contain;background:#000;display:block}.remove-btn{position:absolute;top:1rem;right:1rem;width:36px;height:36px;border-radius:50%;border:none;background:#ffffffe6;color:var(--error);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000001a;transition:all .2s}.remove-btn:hover{background:#fff;transform:scale(1.1)}.process-btn{margin-top:1.5rem;width:100%;padding:1rem;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-hover) 100%);color:#fff;border:none;border-radius:var(--radius-md);font-family:inherit;font-weight:600;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.75rem;box-shadow:0 4px 6px -1px #4f46e54d;transition:all .2s}.process-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 12px -1px #4f46e54d}.process-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.results-header h2{font-size:1.5rem;margin:0;color:var(--text-main)}.download-btn{background-color:var(--success);color:#fff;border:none;padding:.6rem 1.2rem;border-radius:var(--radius-sm);font-family:inherit;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s}.download-btn:hover{background-color:#059669;transform:translateY(-1px)}.table-wrapper{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:separate;border-spacing:0;font-size:.95rem}th{background:#f8fafc;color:var(--text-secondary);font-weight:600;text-transform:uppercase;font-size:.8rem;letter-spacing:.05em;padding:1rem;border-bottom:1px solid var(--border-color);text-align:left}td{padding:1rem;border-bottom:1px solid var(--border-color);color:var(--text-main);background:#fff}tr:last-child td{border-bottom:none}tr:hover td{background:#fdfdfd}.raw-csv-preview{margin-top:2rem;padding-top:2rem;border-top:1px dashed var(--border-color)}.raw-csv-preview h3{font-size:1rem;color:var(--text-secondary);margin-bottom:1rem}textarea{width:100%;padding:1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-family:Menlo,Monaco,Courier New,monospace;font-size:.85rem;line-height:1.5;color:var(--text-secondary);background:#f1f5f9;resize:vertical}.error-msg{background:#fef2f2;border:1px solid #fee2e2;color:var(--error);padding:1rem;border-radius:var(--radius-md);margin-top:1rem;display:flex;align-items:center;gap:.5rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@media(max-width:640px){body{padding-top:20px;padding-bottom:20px}.container{padding:0 16px}.header{padding:1.5rem;margin-bottom:1.5rem}.header h1{font-size:1.75rem}.header p{font-size:1rem}section{padding:1.25rem;gap:1rem}.dropzone{padding:2rem 1rem;min-height:150px}th,td{padding:.75rem .5rem;font-size:.85rem}.results-header{flex-direction:column;align-items:stretch;gap:1rem}.results-header h2{font-size:1.25rem;text-align:center}.download-btn{width:100%;justify-content:center;padding:.75rem}.process-btn{padding:.875rem}}.legal-page{width:100%;max-width:860px;padding:0 20px 60px;margin:0 auto}.legal-hero{text-align:center;margin-bottom:2.5rem;padding:3rem 2.5rem;border-radius:20px;background:linear-gradient(135deg,#eef2ff,#fdf4ff,#f0fdf4);position:relative;overflow:hidden;border:1px solid rgba(79,70,229,.08)}.legal-hero:before{content:"";position:absolute;inset:0;border-radius:20px;padding:2px;background:linear-gradient(135deg,#818cf8,#e879f9,#34d399);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.35}.legal-hero-icon{font-size:3rem;margin-bottom:.75rem;display:block;filter:drop-shadow(0 4px 8px rgba(79,70,229,.2));animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.legal-hero h1{font-size:2.25rem;font-weight:700;margin:0 0 .5rem;background:linear-gradient(135deg,#4f46e5,#ec4899);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1.3}.legal-hero .legal-subtitle{color:#6b7280;font-weight:300;font-size:1rem;margin:0}.legal-hero .legal-effective-date{display:inline-flex;align-items:center;gap:6px;margin-top:1rem;padding:6px 16px;background:#4f46e514;border-radius:20px;font-size:.85rem;color:#4f46e5;font-weight:500}.legal-back-link{display:inline-flex;align-items:center;gap:8px;color:#4f46e5;text-decoration:none;font-weight:500;font-size:.95rem;margin-bottom:1.5rem;padding:10px 18px;border-radius:12px;background:#4f46e50f;transition:all .25s ease}.legal-back-link:hover{background:#4f46e51f;transform:translate(-4px);color:#4338ca}.legal-back-link svg{transition:transform .25s ease}.legal-back-link:hover svg{transform:translate(-3px)}.legal-content{display:flex;flex-direction:column;gap:1.25rem}.legal-section{background:#fff;border-radius:16px;padding:2rem 2.25rem;border:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000a,0 4px 12px #00000005;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.legal-section:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,#4f46e5,#7c3aed,#ec4899);border-radius:4px 0 0 4px;opacity:0;transition:opacity .3s ease}.legal-section:hover{border-color:#4f46e526;box-shadow:0 4px 16px #4f46e514,0 1px 3px #0000000a;transform:translateY(-2px)}.legal-section:hover:before{opacity:1}.legal-section-header{display:flex;align-items:center;gap:12px;margin-bottom:1.25rem}.legal-section-number{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-weight:700;font-size:.9rem;flex-shrink:0;box-shadow:0 2px 8px #4f46e54d}.legal-section h2{font-size:1.3rem;font-weight:600;color:#1f2937;margin:0;line-height:1.4}.legal-section p,.legal-section li{color:#4b5563;line-height:1.8;font-size:.95rem;font-weight:300}.legal-section p{margin:0 0 .75rem}.legal-section p:last-child{margin-bottom:0}.legal-section ul,.legal-section ol{margin:.75rem 0;padding-left:0;list-style:none}.legal-section li{position:relative;padding-left:1.75rem;margin-bottom:.6rem}.legal-section li:before{content:"";position:absolute;left:0;top:10px;width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,#818cf8,#e879f9);box-shadow:0 1px 4px #818cf866}.legal-section li:last-child{margin-bottom:0}.legal-section strong{color:#1f2937;font-weight:600}.legal-highlight{background:linear-gradient(135deg,#eef2ff,#fdf4ff);border:1px solid rgba(79,70,229,.12);border-radius:12px;padding:1.25rem 1.5rem;margin:1rem 0}.legal-highlight p{color:#374151;font-weight:400}.legal-contact-card{background:linear-gradient(135deg,#f0f4ff,#fdf2f8,#f0fdf4);border-radius:16px;padding:2rem 2.25rem;border:1px solid rgba(79,70,229,.1);text-align:center;margin-top:.5rem}.legal-contact-card h3{font-size:1.2rem;font-weight:600;color:#1f2937;margin:0 0 .75rem}.legal-contact-card p{color:#4b5563;font-weight:300;margin:0 0 1rem;font-size:.95rem;line-height:1.7}.legal-contact-link{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;text-decoration:none;border-radius:12px;font-weight:600;font-size:.95rem;transition:all .25s ease;box-shadow:0 4px 12px #4f46e540}.legal-contact-link:hover{transform:translateY(-2px);box-shadow:0 8px 20px #4f46e559}.legal-footer-links{display:flex;justify-content:center;gap:2rem;margin-top:2rem;padding-top:1.5rem;border-top:1px dashed #e5e7eb}.legal-footer-links a{color:#6b7280;text-decoration:none;font-size:.9rem;font-weight:400;transition:color .2s ease}.legal-footer-links a:hover{color:#4f46e5}.legal-footer-links a.active{color:#4f46e5;font-weight:600}@media(max-width:640px){.legal-page{padding:0 16px 40px}.legal-hero{padding:2rem 1.5rem;margin-bottom:1.5rem}.legal-hero h1{font-size:1.6rem}.legal-hero-icon{font-size:2.5rem}.legal-section{padding:1.5rem 1.25rem}.legal-section h2{font-size:1.1rem}.legal-section-number{width:30px;height:30px;font-size:.8rem}.legal-footer-links{flex-direction:column;align-items:center;gap:1rem}}
