:root{color:#183138;font-synthesis:none;--green:#176b61;--green-dark:#10564e;--green-soft:#e9f5f1;--gold:#c88a36;--ink-soft:#6d8085;--line:#dce7e4;--danger:#ae433a;--danger-soft:#fff2ef;--warning:#956316;background:#f2f6f5;font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 50% 0,#fff 0,#f5f8f7 34rem,#edf3f1 100%);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}.app{min-height:100vh}.app-header{color:#fff;background:#123f3b;align-items:center;gap:12px;min-height:68px;padding:12px clamp(18px,4vw,42px);display:flex;box-shadow:0 3px 18px #153a351f}.logo{color:#143f3b;background:#e4b76f;border-radius:13px;flex:none;place-items:center;width:42px;height:42px;font-size:19px;font-weight:900;display:grid}.app-header h1{letter-spacing:.3px;margin:0;font-size:18px}.app-header p{color:#bcd3cf;margin:3px 0 0;font-size:11px}.app-header .link-button{color:#d9ebe7;margin-left:auto}.workspace{width:min(880px,100% - 32px);margin:clamp(22px,5vh,48px) auto 50px}.card,.result-card{border:1px solid var(--line);background:#fff;border-radius:18px;box-shadow:0 12px 34px #21494110}.tag{color:var(--green);background:var(--green-soft);letter-spacing:.4px;border-radius:999px;align-items:center;padding:5px 9px;font-size:11px;font-weight:800;display:inline-flex}.welcome{text-align:center}.welcome-copy{max-width:650px;margin:0 auto 26px}.welcome h2{color:#153f3a;margin:13px 0 10px;font-size:clamp(25px,5vw,38px);line-height:1.25}.welcome p{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.75}.welcome .browser-help{margin:18px auto 0;font-size:12px}.drop-area{width:100%;min-height:250px;color:var(--green);background:#fff;border:2px dashed #8ebbb2;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:34px 20px;transition:all .18s;display:flex;box-shadow:0 14px 40px #21494110}.drop-area:hover{border-color:var(--gold);background:#fffdfa;transform:translateY(-2px)}.drop-icon{color:#fff;background:var(--green);border-radius:18px;place-items:center;width:58px;height:58px;font-size:34px;font-weight:300;display:grid;box-shadow:0 8px 20px #176b6133}.drop-area strong{margin-top:5px;font-size:18px}.drop-area small{color:#7c8f93}.assurances{flex-wrap:wrap;justify-content:center;gap:9px;margin-top:18px;display:flex}.assurances span{color:#58716f;background:#e9f0ee;border-radius:8px;padding:7px 10px;font-size:11px}.processing{text-align:center;padding:clamp(36px,8vw,72px) 24px}.processing h2{margin:16px 0 7px;font-size:23px}.processing p{min-height:20px;color:var(--ink-soft);overflow-wrap:anywhere;margin:0}.spinner{border:5px solid #e1ece9;border-top-color:var(--green);border-radius:50%;width:62px;height:62px;margin:0 auto 20px;animation:.85s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.progress{background:#e3ecea;border-radius:999px;width:min(520px,90%);height:8px;margin:26px auto 8px;overflow:hidden}.progress i{border-radius:inherit;background:linear-gradient(90deg, var(--green), #44a68f, #d3a353);height:100%;transition:width .2s;display:block}.processing>b{color:var(--green);font-size:12px}.processing .secondary{margin:26px auto 0;display:block}.result-card{grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:22px;display:grid}.result-card.ready{background:linear-gradient(120deg,#fff,#f1faf7);border-color:#c4dfd7}.result-card.attention{background:linear-gradient(120deg,#fff,#fff9ed);border-color:#ead8b6}.result-icon{color:#fff;background:var(--green);border-radius:15px;place-items:center;width:48px;height:48px;font-size:23px;font-weight:900;display:grid}.attention .result-icon{background:var(--gold)}.result-copy h2{margin:7px 0 5px;font-size:clamp(19px,3vw,24px)}.result-copy p{color:var(--ink-soft);margin:0;font-size:12px;line-height:1.6}.link-button{color:var(--green);white-space:nowrap;background:0 0;border:0;padding:8px;font-size:12px;font-weight:700}.attention-panel,.generate-card,.details{margin-top:14px}.attention-panel{padding:20px}.section-title{justify-content:space-between;align-items:center;display:flex}.section-title h3{margin:0 0 4px;font-size:16px}.section-title p{color:var(--ink-soft);margin:0;font-size:11px}.section-title>strong{min-width:31px;height:31px;color:var(--danger);background:var(--danger-soft);border-radius:10px;place-items:center;display:grid}.company-list{gap:10px;margin-top:14px;display:grid}.company-issue{background:#fffbfa;border:1px solid #eadedb;border-radius:13px;padding:15px}.company-heading{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.company-heading strong,.company-heading span{display:block}.company-heading strong{font-size:14px}.company-heading span{color:var(--ink-soft);margin-top:4px;font-family:Consolas,monospace;font-size:11px}.status{white-space:nowrap;border-radius:999px;padding:5px 8px;font-size:10px;font-style:normal;font-weight:800}.status.invalid,.status.missing{color:var(--danger);background:#ffe9e5}.status.conflict{color:var(--warning);background:#fff0d4}.status.valid,.status.valid-with-warnings{color:var(--green);background:var(--green-soft)}.company-issue ul{color:var(--danger);margin:12px 0 0;padding-left:18px}.company-issue li+li{margin-top:7px}.company-issue li span,.company-issue li small{display:block}.company-issue li span{font-size:12px}.company-issue li small{color:#8b7773;margin-top:3px;font-size:10px;line-height:1.5}.candidate-group{gap:7px;margin-top:13px;display:grid}.candidate-group>label{color:#586d71;font-size:11px;font-weight:800}.candidate{text-align:left;color:#24413f;background:#fff;border:1px solid #d9e4e1;border-radius:10px;padding:10px 12px}.candidate.selected{border-color:var(--green);box-shadow:0 0 0 3px #176b6114}.candidate span,.candidate small{overflow-wrap:anywhere;display:block}.candidate span{font-size:12px}.candidate small{color:var(--ink-soft);margin-top:3px;font-size:10px}.partial-confirm{color:#6c531c;cursor:pointer;background:#fff5df;border-radius:10px;align-items:flex-start;gap:9px;margin-top:15px;padding:12px;font-size:11px;line-height:1.55;display:flex}.partial-confirm input{accent-color:var(--gold);margin-top:2px}.no-export-notice{color:var(--danger);background:var(--danger-soft);border:1px solid #efccc6;border-radius:10px;gap:5px;margin-top:15px;padding:12px 14px;font-size:11px;line-height:1.55;display:grid}.no-export-notice strong{font-size:12px}.no-export-notice span{color:#7e5b56}.generate-card{grid-template-columns:1fr auto;align-items:end;gap:14px 18px;padding:20px;display:grid}.filename-row{min-width:0}.filename-row>label{margin-bottom:7px;font-size:12px;font-weight:800;display:block}.filename-row>label span{color:#93a09e;font-size:10px;font-weight:400}.filename-input{grid-template-columns:minmax(130px,230px) 1fr;align-items:center;gap:10px;display:grid}.filename-input input{color:#203f3b;border:1px solid #cfdedb;border-radius:9px;outline:0;min-width:0;padding:11px 12px}.filename-input input:focus{border-color:var(--green);box-shadow:0 0 0 3px #176b6116}.filename-input small{color:var(--ink-soft);overflow-wrap:anywhere}.primary,.secondary{border:0;border-radius:10px;font-weight:800}.primary{color:#fff;background:var(--green);min-width:155px;padding:13px 23px;box-shadow:0 7px 17px #176b612d}.primary:hover{background:var(--green-dark)}.secondary{color:var(--green);background:#e8f1ef;padding:9px 14px}.success-message,.error-message{overflow-wrap:anywhere;border-radius:9px;grid-column:1/-1;padding:10px 12px;font-size:11px}.export-hint{color:#8a5c1c;text-align:right;grid-column:1/-1;font-size:11px}.success-message{color:#176248;background:#e6f5ed}.error-message{color:var(--danger);background:var(--danger-soft)}.error-message.standalone{border:1px solid #efccc6;margin-top:15px}.details{overflow:hidden}.details-toggle{color:#355551;background:#fff;border:0;justify-content:space-between;width:100%;padding:17px 20px;font-size:12px;display:flex}.details-toggle b{color:var(--green)}.details-content{border-top:1px solid #edf2f0;padding:0 20px 20px}.details-content h4{margin:20px 0 9px;font-size:13px}.mini-stats{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px;display:grid}.mini-stats span{color:var(--ink-soft);text-align:center;background:#f1f5f4;border-radius:10px;padding:11px;font-size:10px}.mini-stats b{color:var(--green);margin-bottom:2px;font-size:20px;display:block}.preview-table{border:1px solid var(--line);border-radius:10px;max-width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:11px}th,td{text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #edf2f0;min-width:140px;padding:9px 10px}th{color:#45615d;white-space:nowrap;background:#eef5f3}td:first-child{min-width:200px}.notice-list{gap:6px;margin-bottom:11px;display:grid}.notice-list p{color:#62736f;background:#f5f7f6;border-radius:8px;margin:0;padding:9px 10px;font-size:10px;line-height:1.5}.notice-list b{color:var(--warning);margin-right:7px}@media (max-width:650px){.workspace{width:min(100% - 20px,880px);margin-top:20px}.app-header{padding-inline:14px}.app-header p{display:none}.result-card{grid-template-columns:auto 1fr}.result-card>.link-button{grid-column:2;justify-self:start;padding-left:0}.generate-card{grid-template-columns:1fr}.generate-card .primary{width:100%}.filename-input{grid-template-columns:1fr}.mini-stats{grid-template-columns:repeat(2,1fr)}.drop-area{min-height:220px}}
