:root{--ink:#1d2930;--muted:#5d6d73;--paper:#fffdf8;--line:#d9e1dc;--green:#1e6a4c;--green-dark:#155139;--mint:#d9ead3;--warn:#fff0c7}*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,#f2f7f0,#f9f5eb);color:var(--ink);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.shell{width:min(1100px,calc(100% - 32px));margin:0 auto 28px}.hero{padding:54px 0 34px;max-width:700px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--green);font-size:.78rem;font-weight:800;margin:0 0 8px}.hero h1{font-size:clamp(2.15rem,6vw,4.4rem);letter-spacing:-.055em;line-height:1;margin:0}.hero p:not(.eyebrow){font-size:1.1rem;color:var(--muted);margin:16px 0 0}.card{background:color-mix(in srgb,var(--paper) 94%,white);border:1px solid var(--line);border-radius:18px;padding:24px;margin:16px 0;box-shadow:0 12px 32px #263d3020}.section-heading{display:flex;gap:13px;align-items:flex-start}.section-heading h2{font-size:1.1rem;margin:0}.section-heading p{font-size:.9rem;color:var(--muted);margin:3px 0 0}.step{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:var(--mint);color:var(--green-dark);font-weight:800}.dropzone{display:grid;place-items:center;min-height:135px;border:2px dashed #9eb8a7;border-radius:12px;margin:20px 0 14px;color:var(--green-dark);cursor:pointer;text-align:center;transition:.2s background}.dropzone:hover,.dropzone.dragging{background:#edf6e9}.dropzone input{position:absolute;width:1px;height:1px;opacity:0}.dropzone strong{font-size:1.04rem}.dropzone span{font-size:.86rem;color:var(--muted);margin-top:4px}.selected-files{list-style:none;margin:-4px 0 16px;padding:0}.selected-files li{display:flex;align-items:center;gap:8px;width:fit-content;max-width:100%;padding:6px 10px;border-radius:7px;background:#edf4ef;color:var(--green-dark);font-size:.9rem;overflow-wrap:anywhere}.selected-files li::before{content:'✓';font-weight:800}.selected-files .file-placeholder{background:transparent;color:var(--muted);padding:0}.selected-files .file-placeholder::before{content:''}.options,.actions{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.actions{margin-top:20px}.options label,.format-field{display:grid;gap:4px;color:var(--muted);font-size:.83rem}.options input,.format-field select{width:250px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:white;font:inherit;color:var(--ink)}.format-field span{font-weight:700;color:var(--green-dark)}.format-field select{min-width:270px;cursor:pointer}.options input:focus,.format-field select:focus{outline:2px solid #8db99f;border-color:#8db99f}button{border:0;border-radius:8px;padding:10px 14px;font:inherit;font-weight:700;cursor:pointer}.primary{background:var(--green);color:white}.primary:hover{background:var(--green-dark)}.primary:disabled{opacity:.45;cursor:not-allowed}.ghost{background:#edf4ef;color:var(--green-dark)}.compact{margin-left:auto;padding:7px 10px;font-size:.86rem}.table-wrap{overflow:auto;margin-top:20px;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;min-width:760px}th{background:#edf4ef;text-align:left;font-size:.77rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}th,td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}td input{border:1px solid transparent;border-radius:4px;width:100%;background:transparent;font:inherit;color:inherit;padding:4px}td input:focus{outline:2px solid #8db99f;background:white;border-color:#8db99f}.empty td{text-align:center;color:var(--muted);padding:24px}.remove{color:#91444c;background:#fae8e9;padding:4px 7px;font-size:.9rem}.diagnostics{margin-top:12px;color:#704f00;font-size:.9rem}.diagnostic{background:var(--warn);border-radius:7px;padding:8px;margin:6px 0}.action-card{margin-bottom:0}.preview{margin-top:18px;padding:16px;border-radius:10px;background:#f3f8ef}.preview h3{font-size:1rem;margin:0 0 9px}.preview ul{margin:0;padding-left:20px}.message{min-height:1.5em;margin:14px 0;color:var(--green-dark);font-weight:600}footer{text-align:center;padding:20px;color:var(--muted);font-size:.85rem}@media(max-width:600px){.shell{width:min(100% - 22px,1100px)}.hero{padding:38px 0 25px}.card{padding:17px}.compact{margin-left:0}.options input,.format-field,.format-field select{width:100%;min-width:0}.actions .primary{flex:1 1 180px}}