:root{--ink:#17212b;--muted:#71808d;--line:#dfe5e9;--paper:#f7f8fa;--card:#fff;--blue:#2369f3;--blue-dark:#1354d0;--mint:#2ca886;--coral:#d96558;--shadow:0 12px 35px rgba(28,48,65,.07)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px;letter-spacing:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}
.app-shell{width:min(1180px,calc(100% - 56px));margin:0 auto;padding:28px 0 24px}.topbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:22px}.brand-lockup{display:flex;gap:12px;align-items:center}.brand-mark{width:30px;height:30px;display:grid;grid-template-columns:repeat(2,1fr);gap:3px;padding:3px;border:2px solid var(--ink);transform:rotate(45deg)}.brand-mark span{background:var(--ink)}.brand-mark span:nth-child(2){background:var(--blue)}.brand-mark span:nth-child(3){background:var(--mint)}.brand-name{font-size:15px;font-weight:800;line-height:1.1}.brand-subtitle{font-family:"DM Mono",monospace;font-size:9px;color:var(--muted);margin-top:4px;letter-spacing:.6px}.privacy-note{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px rgba(44,168,134,.12)}
.intro-row{display:flex;align-items:flex-end;justify-content:space-between;padding:64px 0 46px;gap:32px}.eyebrow{font-family:"DM Mono",monospace;text-transform:uppercase;font-size:10px;letter-spacing:1.5px;color:var(--blue);margin:0 0 15px}.eyebrow span{color:#9ca7af;margin-left:8px}h1{font-size:clamp(38px,5vw,66px);line-height:1.08;letter-spacing:-1px;margin:0;font-weight:800}h1 em{color:var(--blue);font-style:normal}.intro-copy{max-width:360px;color:var(--muted);line-height:1.8;margin:0 3px 5px 0}
.workflow{display:flex;align-items:center;margin-bottom:24px}.step{display:flex;align-items:center;gap:11px;min-width:180px}.step>span{font-family:"DM Mono",monospace;font-size:11px;color:#fff;background:var(--ink);width:27px;height:27px;display:grid;place-items:center;border-radius:50%}.step:not(.active)>span{background:#dfe5e9;color:#6a7780}.step strong{display:block;font-size:12px}.step small{display:block;font-size:11px;color:#9aa5ad;margin-top:3px}.step-line{height:1px;background:var(--line);flex:1;margin:0 18px}
.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.upload-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);padding:24px}.card-heading{display:flex;align-items:center;gap:12px;margin-bottom:20px}.card-index{width:28px;height:28px;border:1px solid var(--line);display:grid;place-items:center;font-family:"DM Mono",monospace;color:var(--blue);font-size:12px}.card-heading h2{font-size:18px;margin:0;font-weight:800}.card-heading p{font-size:12px;color:var(--muted);margin:4px 0 0}.badge{margin-left:auto;color:var(--blue);background:#eaf0ff;font-size:10px;padding:5px 9px;font-family:"DM Mono",monospace}.badge-muted{background:#edf8f4;color:var(--mint)}.drop-zone{min-height:194px;border:1px dashed #bdc8d0;background:#fbfcfd;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;transition:.2s;border-radius:2px}.drop-zone:hover,.drop-zone:focus-within,.drop-zone.dragging{border-color:var(--blue);background:#f5f8ff}.drop-zone input{display:none}.drop-icon{width:39px;height:39px;border-radius:50%;background:#eaf0ff;display:grid;place-items:center;color:var(--blue);margin-bottom:2px}.drop-icon svg{width:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.drop-zone strong{font-size:13px}.drop-zone>span{color:#9aa5ad;font-size:11px}.text-button{border:0;background:none;color:var(--blue);font-size:12px;margin-top:3px;padding:4px}.text-button span{font-size:15px;margin-left:4px}.file-summary{height:32px;margin-top:13px;display:flex;align-items:center;gap:8px;color:#9aa5ad;font-size:11px}.file-summary.has-files{color:var(--ink)}.summary-icon{font-size:18px;color:#bac5cd}.file-summary.has-files .summary-icon{color:var(--mint)}
.action-bar{display:flex;align-items:center;justify-content:space-between;margin:20px 0 62px;padding:17px 21px;background:#edf2f5;border:1px solid var(--line)}.engine-note{display:flex;gap:10px;align-items:center}.engine-mark{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#dff4ed;color:var(--mint);font-size:14px}.engine-note strong{font-size:12px;display:block}.engine-note small{font-size:11px;color:var(--muted);display:block;margin-top:3px}.primary-button,.secondary-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;font-size:12px;font-weight:700;transition:.2s}.primary-button{background:var(--blue);color:white;padding:13px 17px;min-width:143px}.primary-button:hover{background:var(--blue-dark)}.primary-button svg,.secondary-button svg{width:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.results{border-top:1px solid var(--line);padding-top:34px;margin-bottom:64px}.results-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px}.results-head h2{font-size:29px;margin:0;font-weight:800}.ghost-button{background:transparent;color:var(--muted);padding:9px 0}.ghost-button span{font-size:17px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:var(--card);margin-bottom:16px}.metric{padding:20px 24px;border-right:1px solid var(--line)}.metric:last-child{border-right:0}.metric span,.metric small{display:block;color:var(--muted);font-size:11px}.metric strong{font-family:"DM Mono",monospace;font-size:36px;line-height:1.2;display:inline-block;margin:8px 6px 1px 0}.metric-duplicate strong{color:var(--coral)}.metric-kept strong{color:var(--mint)}.result-body{display:flex;justify-content:space-between;align-items:center;gap:24px;background:var(--card);border:1px solid var(--line);padding:21px 24px}.result-summary{display:flex;align-items:center;gap:12px}.result-check{display:grid;place-items:center;width:28px;height:28px;background:#dff4ed;border-radius:50%;color:var(--mint);font-weight:800}.result-summary strong{font-size:13px}.result-summary p{font-size:11px;color:var(--muted);margin:5px 0 0}.pack-settings{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.pack-settings label{font-size:11px;color:var(--muted)}.number-control{display:flex;border:1px solid var(--line);background:#fbfcfd;height:36px}.number-control button{border:0;background:transparent;color:var(--muted);width:31px;font-size:18px}.number-control input{border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);background:transparent;text-align:center;width:66px;font-family:"DM Mono",monospace;font-size:13px;color:var(--ink);outline:none}.pack-hint{font-size:11px;color:var(--blue);font-family:"DM Mono",monospace}.download-row{margin-top:16px;background:var(--ink);color:#fff;padding:17px 20px;display:flex;justify-content:space-between;align-items:center}.download-info{display:flex;align-items:center;gap:11px}.zip-icon{font-family:"DM Mono",monospace;border:1px solid #52606b;color:#b9c3ca;padding:6px 5px;font-size:10px}.download-info strong{display:block;font-size:12px}.download-info small{color:#aeb8bf;font-size:10px;display:block;margin-top:3px}.secondary-button{background:#fff;color:var(--ink);padding:11px 15px}.secondary-button:hover{background:#e9eef1}.file-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin-top:16px}.preview-tile{position:relative;border:1px solid var(--line);background:#fff;padding:5px}.preview-tile img{width:100%;aspect-ratio:1;object-fit:contain;display:block;background:#f6f8f9}.preview-name{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:5px}.preview-tag{position:absolute;top:9px;left:9px;background:var(--mint);color:#fff;font-size:9px;padding:3px 5px}.preview-tag.duplicate{background:var(--coral)}
footer{display:flex;justify-content:space-between;color:#a0abb3;font-size:10px;border-top:1px solid var(--line);padding-top:18px;font-family:"DM Mono",monospace}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;background:var(--ink);color:#fff;padding:11px 16px;font-size:12px;transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:760px){.app-shell{width:calc(100% - 30px);padding-top:18px}.privacy-note{font-size:0}.privacy-note .status-dot{font-size:initial}.intro-row{display:block;padding:40px 0 32px}.intro-copy{margin-top:20px;font-size:13px}.workflow{overflow:auto;padding-bottom:4px}.step{min-width:145px}.step-line{margin:0 10px}.upload-grid{grid-template-columns:1fr}.upload-card{padding:18px}.action-bar{align-items:stretch;flex-direction:column;gap:14px;margin-bottom:42px}.primary-button{width:100%}.results-head h2{font-size:25px}.metrics{grid-template-columns:1fr}.metric{border-right:0;border-bottom:1px solid var(--line);padding:15px 18px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px}.metric:last-child{border-bottom:0}.metric strong{margin:0;font-size:28px}.result-body{display:block;padding:18px}.pack-settings{justify-content:flex-start;margin-top:20px}.download-row{display:block}.secondary-button{width:100%;margin-top:14px}.file-preview{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}footer{display:block;line-height:1.8}footer span{display:block}}
/* persistent-library-controls */
.library-actions{display:flex;align-items:center;gap:7px;margin-top:2px;flex-wrap:wrap}.library-actions input{display:none}.outline-button,.clear-button{border:1px solid var(--line);background:#fff;color:var(--ink);font-size:11px;padding:8px 10px;transition:.2s}.outline-button:hover{border-color:var(--blue);color:var(--blue);background:#f7f9ff}.outline-button span{color:var(--blue);font-size:14px}.clear-button{border-color:transparent;color:var(--muted);margin-left:auto}.clear-button:hover{color:var(--coral);background:#fff5f3}
