:root{color-scheme:light dark;--paper:#f6f7f9;--surface:#fff;--ink:#111827;--text:#374151;--muted:#6b7280;--accent:#111827;--accent-hover:#1f2937;--on-accent:#fff;--line:#e5e7eb;--rule:#f1f3f5;--line-input:#6b7280;--soft:#f3f4f6;--error:#b91c1c;--focus:#111827;--s1:.5rem;--s2:.75rem;--s3:1rem;--s4:1.5rem;--s5:2rem;--s6:3rem;--radius:.5625rem;--card-radius:1rem;--body:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--small:.875rem;--title:clamp(2rem,4vw,2.7rem);--logo-width:8rem}
*{box-sizing:border-box}
body{margin:0;background:var(--surface);color:var(--ink);font:1rem/1.5 var(--body);-webkit-font-smoothing:antialiased}
header,main,footer{width:min(calc(100% - 40px),960px);margin:auto}
header{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);min-height:72px;border-bottom:1px solid var(--rule)}
main{padding-block:var(--s6);min-height:calc(100svh - 220px)}
footer{padding-block:var(--s4) var(--s5)}
a{color:var(--ink);text-underline-offset:.24em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
.brand{display:flex;align-items:center;gap:var(--s3);min-height:44px;color:var(--ink);font-weight:800;letter-spacing:-.02em;text-decoration:none}
.brand-logo{display:block;width:var(--logo-width);height:auto}
.brand-tool{padding-left:var(--s3);border-left:1px solid var(--line);color:var(--text);font-weight:600}
nav{display:flex;gap:var(--s4)}
nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--text);font-size:var(--small);text-decoration:none}
nav a:hover{color:var(--ink);text-decoration:underline}
h1,h2,h3{margin:0 0 var(--s3);font-weight:700;letter-spacing:-.03em;line-height:1.15;text-wrap:balance}
h1{font-size:var(--title);letter-spacing:-.04em}
h2{font-size:1.5rem}
h3{font-size:1rem;letter-spacing:-.015em}
p{max-width:72ch;margin:0 0 var(--s3)}
.page-heading{display:flex;align-items:start;flex-direction:column;gap:var(--s4);margin:var(--s5) 0 var(--s6)}
.page-heading h1{margin-bottom:var(--s1)}
.page-heading p{margin:0;color:var(--text)}
.balance{font-size:var(--small)}
.balance p{display:inline;color:var(--muted);font-weight:400;margin-right:var(--s2)}
.workspace{overflow:hidden;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--surface);box-shadow:0 12px 28px rgba(17,24,39,.07)}
.document-bar,.import-bar,.export-bar{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4)}
.document-bar{border-bottom:1px solid var(--line)}
.document-bar label{font-size:var(--small);font-weight:700}
.document-bar label span{display:block;font-weight:400}
.document-bar input{width:20rem;max-width:100%}
.local-note{margin-left:auto;color:var(--muted);font-size:var(--small)}
input,textarea{min-height:44px;padding:var(--s1) var(--s2);border:1px solid var(--line-input);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit;caret-color:var(--focus)}
input::placeholder,textarea::placeholder{color:var(--muted)}
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);min-height:44px;padding:var(--s2) var(--s3);border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:var(--on-accent);font:750 var(--small)/1.4 var(--body);text-decoration:none;cursor:pointer}
button:hover,.button:hover{border-color:var(--accent-hover);background:var(--accent-hover)}
button.secondary{border-color:var(--line-input);background:var(--surface);color:var(--text)}
button.secondary:hover{background:var(--soft);color:var(--ink)}
button:disabled{border-color:var(--line);background:var(--soft);color:var(--muted);cursor:default}
button:active:not(:disabled){transform:translateY(1px)}
.file-button{position:relative;flex-shrink:0}
.file-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.file-button:focus-within{outline:2px solid var(--focus);outline-offset:3px}
.import-bar{flex-wrap:wrap}
.import-bar>span{color:var(--muted);font-size:var(--small)}
.import-bar>button{margin-left:auto}
.empty{min-height:260px;padding:var(--s6) var(--s3);color:var(--muted);text-align:center}
.empty svg{display:block;margin:0 auto var(--s3)}
.empty h2{margin-bottom:var(--s1);color:var(--ink);font-size:1rem}
.empty p{margin:0 auto var(--s3);font-size:var(--small)}
.empty a{font-size:var(--small)}
.drag{background:var(--soft);outline:2px solid var(--accent);outline-offset:-2px}
.table-scroll{position:relative;overflow:auto;scrollbar-color:var(--line) var(--surface)}
table{width:100%;border-collapse:collapse;text-align:left;font-size:var(--small);font-variant-numeric:tabular-nums}
th,td{padding:var(--s2);border-bottom:1px solid var(--line);vertical-align:middle}
th{background:var(--paper);color:var(--muted);font-weight:600;white-space:nowrap}
th:first-child,td:first-child{padding-left:var(--s4)}
#photoList img{display:block;width:auto;height:auto;max-width:88px;max-height:72px;object-fit:contain}
#photoList td:nth-child(3){min-width:9rem;max-width:14rem;overflow-wrap:anywhere}
#photoList td:nth-child(4){min-width:10rem}
#photoList td:nth-child(5){min-width:11rem;color:var(--muted)}
#photoList textarea{width:12rem;max-width:100%;resize:vertical;font-size:var(--small)}
.remove-button{font-weight:600}
.export-bar{justify-content:space-between;border-top:1px solid var(--line)}
.export-bar p{margin:0;font-size:var(--small)}
.export-bar>button{flex-shrink:0}
.workspace-foot{max-width:none;margin:0;padding:0 var(--s4) var(--s3);color:var(--muted);font-size:var(--small)}
.result-count{margin:0;padding:var(--s2) var(--s4);font-size:var(--small)}
.error-box{padding:var(--s3) var(--s4);background:var(--paper);color:var(--error)}
#errors{padding-left:var(--s4);overflow-wrap:anywhere}
.error{color:var(--error)}
.muted,small{color:var(--muted)}
.guide{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--s6);padding:var(--s6) 0}
.guide ol{padding-left:var(--s4)}
.guide li{margin-bottom:var(--s2)}
.guide p{color:var(--muted);font-size:var(--small)}
.example{display:flex;align-items:center;gap:var(--s4);margin:0}
.example img{width:120px;height:160px;border-radius:var(--radius);object-fit:cover}
.example p{margin:var(--s1) 0}
.example small{display:block;margin-top:var(--s2)}
.details-section{padding:var(--s5) 0;border-top:1px solid var(--line)}
.offer-row{display:grid;grid-template-columns:1fr 2fr auto;align-items:center;gap:var(--s4);padding:var(--s4) 0;border-bottom:1px solid var(--line)}
.offer-row h3{margin-bottom:var(--s1)}
.offer-row p{margin:0;color:var(--muted);font-size:var(--small)}
.price{font-size:1.25rem;font-weight:700;white-space:nowrap}
.offer-row>div:last-child{text-align:right}
.offer-row button{margin-top:var(--s2)}
.offer-note{margin-top:var(--s3);color:var(--muted);font-size:var(--small)}
details{padding:var(--s2) 0}
summary{min-height:44px;font-weight:650;align-content:center;cursor:pointer}
details p{margin-top:var(--s2)}
.recover{display:flex;align-items:end;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s3)}
.recover label{display:grid;flex:1;gap:var(--s1);max-width:32rem;color:var(--text);font-size:.86rem;font-weight:700}
.consent{display:flex;justify-content:space-between;gap:var(--s4);margin-top:var(--s3);padding:var(--s4);border:1px solid var(--line);border-radius:var(--card-radius);background:var(--surface);font-size:var(--small)}
.consent p{margin:var(--s1) 0 0}
.consent-actions{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.checkbox{display:flex;align-items:center;gap:var(--s2);min-height:44px}
.checkbox input{min-width:20px;min-height:20px;accent-color:var(--accent)}
.skip{position:absolute;top:-5rem;left:var(--s3);z-index:5;padding:var(--s3);border-radius:var(--radius);background:var(--surface)}
.skip:focus{top:var(--s3)}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
::selection{background:var(--ink);color:var(--surface)}
footer{display:flex;justify-content:space-between;gap:var(--s3);border-top:1px solid var(--rule);color:var(--muted);font-size:var(--small)}
footer p{margin:0}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden]{display:none!important}
.language-nav{display:flex;flex-wrap:wrap;gap:var(--s3);margin-block-start:var(--s3)}
.language-nav a{display:inline-flex;align-items:center;min-height:44px}
.language-nav [aria-current=page]{font-weight:700;text-decoration-thickness:2px}
.currency-label{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3);margin-bottom:var(--s4)}
select{min-height:44px;padding:var(--s1) var(--s5) var(--s1) var(--s2);border:1px solid var(--line-input);border-radius:var(--radius);appearance:none;background-color:var(--surface);background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px;background-repeat:no-repeat;color:var(--ink);font:inherit}
.sort-bar{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;padding:var(--s2) var(--s4);border-top:1px solid var(--line);font-size:var(--small)}
.sort-bar select{max-width:100%}
#results{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;padding:var(--s2) var(--s4)}
#results .result-count{margin-right:auto;padding:0}
.account-actions{display:flex;gap:var(--s2);flex-wrap:wrap}
#googleStart,#googleButton{margin-top:var(--s3)}
#loginStatus,#accountEmail{overflow-wrap:anywhere}
.reading{max-width:56rem}
.reading figure{margin:var(--s5) 0}
.reading figure img{width:100%;height:auto;border:1px solid var(--line);border-radius:var(--card-radius)}
.reading figcaption{margin-top:var(--s2);color:var(--muted);font-size:var(--small)}
.reading ol{padding-left:var(--s4)}
.reading li{padding-left:var(--s1);margin-bottom:var(--s4)}
:root{--body:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--title:clamp(2rem,5vw,3.075rem)}
nav a[aria-current=page]{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:.45em}
.workspace:not(:has(#photoList tr)) .document-bar,.workspace:not(:has(#photoList tr)) .sort-bar,.workspace:not(:has(#photoList tr)) .table-scroll{display:none}
.workspace:not(:has(#photoList tr)) #clearBtn:disabled{display:none}
.workspace:not(:has(#photoList tr)):has(#errorBox[hidden]):not(:has([aria-busy=true])) .export-bar,.workspace:not(:has(#photoList tr)) .workspace-foot{display:none}
.workspace:not(:has(#photoList tr)) .import-bar{justify-content:center;padding-top:var(--s5)}
.workspace:not(:has(#photoList tr)) .import-bar>span{flex-basis:100%;text-align:center}
.empty{min-height:210px;padding-top:var(--s4)}
.details-section{border-top:0}
#account{max-width:560px;margin:var(--s5) auto;padding:var(--s5);border:1px solid var(--line);border-radius:var(--card-radius);box-shadow:0 12px 36px #11182714}
#account .recover{align-items:stretch;flex-direction:column}
#account .recover label{max-width:none}
#account .recover button{align-self:stretch}
#purchaseStatus:not(:empty){padding:var(--s3);margin-top:var(--s4);border:1px solid var(--line);border-radius:var(--radius)}
@media(max-width:760px){header,main,footer{width:min(calc(100% - 28px),1120px)}header{flex-wrap:wrap;gap:0;padding-block:var(--s2)}nav{width:100%;justify-content:space-between;gap:var(--s2)}nav a{font-size:.82rem}.brand-tool{padding-left:var(--s2)}main{padding-top:var(--s4)}.page-heading{align-items:start;flex-direction:column;gap:var(--s3)}.balance{min-width:0;text-align:left}.document-bar{flex-wrap:wrap}.document-bar input{flex:1;min-width:10rem}.local-note{margin:0}.document-bar,.import-bar,.export-bar{padding:var(--s3)}.import-bar>button{margin-left:0}.import-bar>span{order:3;width:100%}.table-scroll table{min-width:850px}.export-bar{align-items:stretch;flex-direction:column}.export-bar button{width:100%}.workspace-foot{padding-inline:var(--s3)}.guide{grid-template-columns:1fr;gap:var(--s4)}.example img{width:88px;height:120px}.offer-row{grid-template-columns:1fr auto;gap:var(--s2)}.offer-row>div:nth-child(2){grid-row:2;grid-column:1/-1}.offer-row>div:last-child{grid-row:1;grid-column:2}.consent{flex-direction:column;gap:var(--s3)}footer{flex-direction:column}.empty{min-height:240px;padding-block:var(--s5)}.sort-bar,#results{padding-inline:var(--s3)}.sort-bar select{width:100%}}
@media(max-width:480px){.offer-row{grid-template-columns:1fr}.offer-row>div:nth-child(2),.offer-row>div:last-child{grid-column:1;grid-row:auto}.offer-row>div:last-child{text-align:left}.offer-row button{width:100%}}
@media(prefers-color-scheme:dark){:root{--paper:#171a20;--surface:#111318;--ink:#f3f4f6;--text:#d1d5db;--muted:#9ca3af;--accent:#f3f4f6;--accent-hover:#fff;--on-accent:#111827;--line:#374151;--rule:#262b33;--line-input:#6b7280;--soft:#1f2937;--error:#fca5a5;--focus:#f3f4f6}.brand-logo{padding:3px;border-radius:7px;background:#fff}.workspace{box-shadow:0 12px 28px rgba(0,0,0,.18)}}
@media(prefers-reduced-motion:no-preference){button,.button,a{transition:background-color .18s ease-out,color .18s ease-out,border-color .18s ease-out}}
