:root{--bg: var(--tg-theme-bg-color, #ffffff);--bg2: var(--tg-theme-secondary-bg-color, #f1f1f4);--section-bg: var(--tg-theme-section-bg-color, #ffffff);--text: var(--tg-theme-text-color, #0f0f10);--hint: var(--tg-theme-hint-color, #6b6b70);--link: var(--tg-theme-link-color, #2481cc);--button: var(--tg-theme-button-color, #2481cc);--button-text: var(--tg-theme-button-text-color, #ffffff);--accent: var(--tg-theme-accent-text-color, #2481cc);--destructive: var(--tg-theme-destructive-text-color, #df3f40);--border: rgba(127, 127, 127, .18)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;min-height:100vh;-webkit-tap-highlight-color:transparent}#root{min-height:100vh;padding:16px 16px 80px;max-width:720px;margin:0 auto}h1{font-size:22px;margin:0 0 8px;word-break:break-word;overflow-wrap:anywhere;letter-spacing:-.01em}h2{font-size:18px;margin:16px 0 8px;letter-spacing:-.01em}.section-label{text-transform:uppercase;font-size:11px;letter-spacing:.06em;color:var(--hint);font-weight:600;margin:18px 0 8px;padding:0 4px}.task-title{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.hint{color:var(--hint);font-size:13px}.muted{color:var(--hint)}.btn{background:var(--button);color:var(--button-text);border:none;padding:12px 16px;font-size:15px;font-weight:500;border-radius:10px;cursor:pointer;width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.btn{transition:transform .08s ease-out,opacity .12s ease-out,background .12s ease-out}.btn:not(:disabled):active{transform:scale(.98)}.btn.secondary{background:var(--bg2);color:var(--text)}.btn.danger{background:transparent;color:var(--destructive);border:1px solid var(--destructive)}.btn.danger:hover:not(:disabled){background:var(--destructive);color:#fff}.card{background:var(--section-bg);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:10px;transition:transform .12s ease-out,border-color .12s ease-out,box-shadow .12s ease-out}.card-link{display:block;color:inherit;text-decoration:none}.card-link:active .card{transform:scale(.985);border-color:var(--accent)}@media(hover:hover){.card-link:hover .card{border-color:var(--accent)}}.card-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-title{font-weight:600}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500}.badge.queued{background:#7f7f7f2e;color:var(--text)}.badge.processing{background:#d4a01733;color:var(--text)}.badge.done{background:#149e5a33;color:var(--text)}.badge.failed{background:#df3f402e;color:var(--destructive)}.upload-zone{border:2px dashed var(--border);border-radius:12px;padding:32px 16px;text-align:center;cursor:pointer;background:var(--section-bg)}.upload-zone:hover{border-color:var(--accent)}.stepper{display:flex;flex-direction:column;gap:8px;margin:16px 0}.step{display:flex;align-items:center;gap:10px}.step .dot{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.step.done .dot{background:#14693a;color:#fff}.step.active .dot{background:var(--button);color:var(--button-text);animation:pulse 1.5s infinite}.step.pending .dot{background:var(--bg2);color:var(--hint)}.step.error .dot{background:#a02525;color:#fff}.step.active .label{font-weight:500}.step.pending .label{color:var(--hint)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-weight:500;padding:8px 6px;border-bottom:1px solid var(--border);background:var(--bg2)}@media(min-width:720px){.table th{position:sticky;top:0;box-shadow:inset 0 -1px 0 var(--border)}}.table td{padding:8px 6px;border-bottom:1px solid var(--border);vertical-align:top}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .group-row td{background:#d4a0172e;color:var(--text);font-weight:600;padding:10px 6px}.warning{background:#d4a0172e;color:var(--text);border-left:3px solid #d4a017;padding:10px 12px;border-radius:6px;margin:8px 0;font-size:13px;line-height:1.45}.warning b{color:var(--text)}.warning.error{background:#df3f4026;border-left-color:var(--destructive)}.warning.error,.warning.error b{color:var(--text)}.warning.info{background:#2481cc26;border-left-color:var(--accent)}.empty{text-align:center;padding:40px 20px;color:var(--hint)}a{color:var(--link);text-decoration:none}.error-msg{color:var(--destructive);font-size:14px;margin:8px 0}.spacer{height:16px}.loading-bar{position:relative;height:4px;background:var(--bg2);border-radius:2px;overflow:hidden;margin-top:12px}.loading-bar>div{position:absolute;inset:0;background:var(--accent);width:30%;border-radius:2px;animation:loading-slide 1.4s ease-in-out infinite}@keyframes loading-slide{0%{transform:translate(-120%)}to{transform:translate(420%)}}@media(prefers-reduced-motion:reduce){.loading-bar>div{animation:none;width:100%;opacity:.6}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:1000;animation:fade-in .15s ease-out}.modal{background:var(--bg);color:var(--text);border-radius:16px 16px 0 0;padding:16px;width:100%;max-width:720px;max-height:90vh;overflow-y:auto;animation:slide-up .2s ease-out}@media(min-width:720px){.modal-overlay{align-items:center}.modal{border-radius:16px;max-height:80vh}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.modal-close{background:var(--bg2);border:none;border-radius:50%;width:32px;height:32px;font-size:20px;cursor:pointer;color:var(--text)}.textarea{width:100%;background:var(--bg2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:15px;font-family:inherit;resize:vertical;min-height:96px}.textarea:focus{outline:2px solid var(--accent);outline-offset:-2px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{background:var(--bg2);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:12px;cursor:pointer;color:var(--text)}.chip:hover{border-color:var(--accent)}.modal-actions{display:flex;gap:8px;margin-top:16px;padding-top:8px;position:sticky;bottom:0;background:var(--bg)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.modal-overlay,.modal{animation:fade-in .15s ease-out}}.task-card{display:flex;align-items:flex-start;gap:12px;background:var(--section-bg);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:10px;transition:transform .12s ease-out,border-color .12s ease-out}.task-card-link{display:block;color:inherit;text-decoration:none}.task-card-link:active .task-card{transform:scale(.985);border-color:var(--accent)}@media(hover:hover){.task-card-link:hover .task-card{border-color:var(--accent)}}.task-card .icon{flex-shrink:0;width:40px;height:40px;border-radius:10px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:20px}.task-card .body{min-width:0;flex:1}.task-card .title{font-weight:600;font-size:15px;margin-bottom:2px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;overflow-wrap:anywhere}.task-card .meta{color:var(--hint);font-size:12px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}.task-card .badge-wrap{flex-shrink:0;align-self:flex-start}.empty-illustration{text-align:center;padding:48px 20px}.empty-illustration .emoji{font-size:56px;margin-bottom:12px;opacity:.6}.empty-illustration .title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:6px}.empty-illustration .subtitle{color:var(--hint);font-size:13px;margin-bottom:16px}.skeleton{background:linear-gradient(90deg,var(--bg2) 0%,rgba(127,127,127,.08) 50%,var(--bg2) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;border-radius:8px}.skeleton-card{height:78px;margin-bottom:10px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none;opacity:.6}}.fade-in{animation:fade-in .2s ease-out}@media(prefers-reduced-motion:reduce){.fade-in{animation:none}}.action-stack{display:flex;flex-direction:column;gap:8px;margin-top:12px}.action-row{display:flex;gap:8px}.action-row>.btn{flex:1}.btn.icon-only{width:44px;flex:0 0 44px;padding:12px 0}.result-cards{display:none}@media(max-width:640px){.result-table-wrap{display:none}.result-cards{display:block}.result-card{background:var(--section-bg);border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:8px}.result-card .top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:4px}.result-card .name{font-weight:500;font-size:14px;flex:1;word-break:break-word}.result-card .qty{font-weight:600;font-size:16px;flex-shrink:0;font-variant-numeric:tabular-nums}.result-card .mark{color:var(--hint);font-size:12px;margin-bottom:6px}.result-card .sections{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:var(--hint)}.result-card .sections .sec{display:inline-flex;gap:3px}.result-card .sections .sec b{color:var(--text);font-variant-numeric:tabular-nums}.result-card .note{color:var(--hint);font-size:12px;margin-top:4px;font-style:italic}.result-group-title{font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:var(--text);background:#d4a0172e;padding:6px 10px;border-radius:6px;margin:14px 0 6px}.result-group-title:first-child{margin-top:0}}
