:root{font-family:system-ui,"Microsoft YaHei","PingFang SC",sans-serif;color:#203b33;background:#f0f3ed;font-synthesis:none;--green:#215a47;--deep:#19463a;--line:#dce5da;--muted:#4f665c;--soft:#eef5ed;--warn:#87531b}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0}
h1,h2,h3,p{margin:0}
button,input,select{font:inherit}
button,select,input[type=checkbox],summary,.file{cursor:pointer}
button,.file,select,input:not([type=checkbox]){min-height:44px}
button,.file{border:1px solid transparent;border-radius:9px;font-weight:650}
button:disabled{opacity:.55;cursor:default}
:focus-visible{outline:3px solid #2c7457;outline-offset:2px}
.wrap{max-width:920px;width:100%;padding-inline:20px;margin-inline:auto}
.mast{background:var(--deep);color:#fff}
.mast-inner{min-height:73px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.brand{display:flex;align-items:center;gap:11px}
.eyebrow{display:block;font-size:11px;line-height:1.2;color:#d6e5d9;letter-spacing:.055em}
h1{font-size:23px;font-weight:720;line-height:1.35}
.storage{font-size:12px;white-space:nowrap;color:#e6efdf;display:flex;align-items:center;gap:6px}
.storage::before{content:"";width:7px;height:7px;border-radius:50%;background:#d9ec9d}
.storage.error::before{background:#ffb797}
main{padding-block:12px 95px}
.tabs{display:grid;grid-template-columns:1fr 1fr;background:#e5ece2;padding:3px;border-radius:11px;margin-bottom:12px;gap:4px}
.tabs button{background:transparent;color:#3e584d}
.tabs button[aria-current]{background:#fff;color:var(--deep);box-shadow:0 1px 3px #203b3315}
.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:12px}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:7px;margin-bottom:12px}
h2{font-size:17px;display:flex;align-items:center;gap:8px}
.step{font-size:11px;font-weight:750;letter-spacing:.03em;color:#466448;background:#eaf0df;border-radius:6px;padding:4px 6px}
.batch-grid,.settings-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.settings-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:10px}
.batch-grid label,.settings-grid label{font-size:12px;font-weight:650;display:grid;gap:5px;min-width:0}
select,input:not([type=checkbox],[type=file]){width:100%;min-width:0;border:1px solid #bdcec1;border-radius:8px;color:#203b33;background:#fff;padding:6px 9px;font-size:16px}
input[type=date]{display:block;appearance:none}
input[type=date]::-webkit-date-and-time-value{text-align:left;min-height:1.25em}
.count{color:var(--muted);font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}
.selectors{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;row-gap:6px}
.choice{display:flex;gap:8px;align-items:center}
.choice>span{font-size:12px;color:var(--muted);min-width:26px}
.choice>div{display:flex;gap:4px;flex:1}
.choice button{flex:1;white-space:nowrap;padding-inline:5px;border-color:#dce6da;background:#f6f8f4;color:#304d41;font-size:14px}
.choice button[aria-pressed=true]{background:#dfeddf;border-color:#7ba78a;color:#1d543f}
.mapping{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:11px;padding:10px 11px;background:#edf4ed;border-radius:8px}
.mapping strong{font-size:14px}
.mapping span,.hint{font-size:12px;color:var(--muted)}
.hint{margin-block:8px 9px;line-height:1.55}
.depth-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.depth-card{min-width:0;border:1px solid var(--line);border-radius:9px;padding:7px;background:#fbfcfa}
.depth-card:focus-within{border-color:#6b9b81}
.depth-card>label{display:block;font-size:12px;font-weight:700;margin:0 0 4px 1px}
.depth-controls{display:flex;gap:4px}
.depth-controls input{font-variant-numeric:tabular-nums}
.depth-controls input[aria-invalid=true]{border-color:#a73c30;background:#fff2ed}
.depth-controls input:disabled{background:#edf1ed;color:#566c61}
.mic{display:grid;place-items:center;min-width:44px;width:44px;flex:0 0 44px;background:#e8efe8;color:#215a47}
.mic svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.mic[aria-pressed=true]{background:var(--green);color:#fff}
.cell-note{font-size:11px;line-height:1.35;margin-top:4px;color:var(--warn);overflow-wrap:anywhere}
.speech-choice{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.speech-choice button{flex:1;font-size:12px;min-width:43px}
.merge{display:flex;align-items:center;gap:9px;min-height:46px;margin-top:8px;font-size:13px}
.merge input{flex:none;width:19px;height:19px;accent-color:var(--green)}
.merge small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.action-wrap{position:fixed;z-index:3;inset:auto 0 0;background:#fffffffa;border-top:1px solid var(--line);padding:8px 0 max(8px,env(safe-area-inset-bottom));box-shadow:0 -5px 18px #2942350a}
.actions{display:grid;grid-template-columns:minmax(85px,1fr) minmax(0,2fr);gap:8px}
.actions button,.export-actions button{min-height:48px}
.primary{color:#fff;background:var(--green);padding:8px 15px}
.subtle,.file{background:#edf4ed;color:#234e3d;padding:8px 11px}
.notice{padding:8px 10px;margin-top:8px;border-radius:8px;background:#eef4ec;color:#37584a;font-size:12px;line-height:1.55;overflow-wrap:anywhere}
.notice.error{background:#fff1e0;color:#77451a}
#review-list{display:grid;gap:8px}
.review-item{padding:10px;border:1px solid var(--line);border-radius:9px;background:#fbfcfa}
.review-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.review-head h3{font-size:14px}
.review-head button{font-size:12px}
.review-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:4px}
.review-values span{font-size:12px;color:#4d6559;padding:5px 6px;background:#eef3ed;border-radius:5px;overflow-wrap:anywhere}
.review-values b{display:block;color:#203b33;font-size:15px;font-variant-numeric:tabular-nums}
.export-actions{margin-top:12px}
.export-actions button{width:100%}
.download{display:inline-flex;align-items:center;min-height:44px;border-radius:8px;margin-top:8px;font-size:13px;font-weight:650}
.review-values small{display:block;margin-top:2px;color:var(--green);font-size:11px}
.settings summary{min-height:32px;display:list-item;font-size:14px;font-weight:650}
.backup-actions{display:flex;gap:8px;margin-top:10px}
.file{display:inline-flex;align-items:center;position:relative;overflow:hidden}
.file:focus-within{outline:3px solid #2c7457}
.file input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}
@media(max-width:650px){
  .wrap{padding-inline:12px}
  .mast-inner{min-height:64px}
  h1{font-size:21px}
  .panel{padding:11px;margin-bottom:9px}
  .tabs{margin-bottom:9px}
  main{padding-top:8px}
  .batch-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 8px}
  .section-head{margin-bottom:8px}
  .selectors{grid-template-columns:1fr;gap:4px}
  .depth-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:360px){.wrap{padding-inline:8px}.panel{padding:9px}.mapping{padding-inline:6px}.mapping strong{font-size:13px}.depth-grid{gap:5px}.depth-card{padding-inline:4px}}
