*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0d0d;--surface: #151515;--border: #2a2a2a;--border-active: #c8a96e;--text: #e8e0d0;--muted: #5a5550;--accent: #c8a96e;--accent-dim: rgba(200, 169, 110, .08);--danger: #c06060;--success: #6a9e7f;--radius: 4px}body{background:var(--bg);color:var(--text);font-family:DM Mono,monospace;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(200,169,110,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(200,169,110,.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none}.container{width:100%;max-width:620px;position:relative;z-index:1}header{margin-bottom:40px}.label-tag{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}h1{font-family:Playfair Display,Georgia,serif;font-size:clamp(28px,5vw,42px);font-weight:600;line-height:1.15;color:var(--text)}h1 span{color:var(--accent)}.subtitle{margin-top:10px;font-size:12px;color:var(--muted);letter-spacing:.05em}.drop-zone{position:relative;border:1px solid var(--border);border-radius:var(--radius);padding:56px 32px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:var(--surface);overflow:hidden}.drop-zone:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent-dim);opacity:0;transition:opacity .2s}.drop-zone:hover:before,.drop-zone.dragover:before{opacity:1}.drop-zone:hover,.drop-zone.dragover{border-color:var(--accent)}.drop-zone.dragover{border-style:dashed}.drop-icon{width:52px;height:52px;margin:0 auto 20px;border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:border-color .2s,transform .2s;background:var(--bg)}.drop-zone:hover .drop-icon,.drop-zone.dragover .drop-icon{border-color:var(--accent);transform:translateY(-3px)}.drop-icon svg{width:22px;height:22px;stroke:var(--muted);transition:stroke .2s;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.drop-zone:hover .drop-icon svg,.drop-zone.dragover .drop-icon svg{stroke:var(--accent)}.drop-text{font-size:13px;color:var(--muted);line-height:1.7}.drop-text strong{color:var(--text);font-weight:400}.drop-text .browse{color:var(--accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer}input[type=file]{display:none}.divider{display:flex;align-items:center;gap:12px;margin:24px 0;color:var(--muted);font-size:10px;letter-spacing:.15em;text-transform:uppercase}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.file-list{display:flex;flex-direction:column;gap:8px}.file-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);animation:slideIn .2s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.file-ext{width:36px;height:36px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:9px;letter-spacing:.08em;color:var(--accent);text-transform:uppercase;flex-shrink:0}.file-info{flex:1;min-width:0}.file-name{font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:10px;color:var(--muted);margin-top:2px}.file-remove{background:none;border:none;cursor:pointer;color:var(--muted);padding:4px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s;flex-shrink:0}.file-remove:hover{color:var(--danger);background:#c060601a}.file-remove svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}.actions{margin-top:28px;display:flex;gap:12px;align-items:center}.btn-upload{flex:1;padding:14px 24px;background:var(--accent);color:#0d0d0d;border:none;border-radius:var(--radius);font-family:DM Mono,monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:opacity .15s,transform .15s;font-weight:400}.btn-upload:hover{opacity:.88;transform:translateY(-1px)}.btn-upload:active{transform:translateY(0)}.btn-upload:disabled{opacity:.35;cursor:not-allowed;transform:none}.btn-clear{padding:14px 18px;background:none;color:var(--muted);border:1px solid var(--border);border-radius:var(--radius);font-family:DM Mono,monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:color .15s,border-color .15s}.btn-clear:hover{color:var(--danger);border-color:var(--danger)}.status-bar{margin-top:16px;font-size:10px;color:var(--muted);display:flex;justify-content:space-between;letter-spacing:.08em}.status-bar .count{color:var(--accent)}.progress-wrap{display:none;margin-top:20px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.progress-wrap.visible{display:block}.progress-bar{height:3px;background:var(--accent);width:0%;transition:width .3s ease}.progress-label{padding:10px 14px;font-size:10px;color:var(--muted);letter-spacing:.1em;background:var(--surface)}#spreadsheet{width:100%;max-width:2000px;margin:0 auto}#info{width:100%;max-width:2000px;margin:0}hr{border:none;border-top:1px solid var(--border);margin:40px 0}.toggle-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);font-family:DM Mono,monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;padding:8px 14px;cursor:pointer;margin-bottom:12px;transition:color .15s,border-color .15s}.toggle-btn:hover{color:var(--accent);border-color:var(--accent)}.container.collapsed{display:none}
