:root{--font-sans: system-ui, -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-num: var(--font-sans);--font-code: ui-monospace, "SF Mono", Consolas, "Liberation Mono", monospace;--radius: 6px;--radius-sm: 4px;--radius-lg: 12px}:root{color-scheme:light;--bg: #f3f5f8;--panel: #ffffff;--panel2: #f7f9fb;--line: #e2e7ee;--line2: #c9d2dd;--text: #0f1b2d;--mut: #4a5a6e;--dim: #5f6d7e;--acc: #1f4e8c;--accBg: #e8eef7;--accBd: #c3d2e8;--accInk: #ffffff;--pass: #0f6b45;--passBg: #e6f4ec;--passBd: #b9dfc9;--fail: #b42318;--failBg: #fdeeec;--failBd: #f5c8c2;--warn: #8a5a00;--warnBg: #fdf4e1;--warnBd: #efd9a8;--shadow: 0 1px 2px rgba(15, 27, 45, .05), 0 1px 3px rgba(15, 27, 45, .04);--shadow-lg: 0 12px 32px rgba(15, 27, 45, .1)}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%}*,*:before,*:after{box-sizing:border-box}a{color:var(--acc);text-decoration:none;text-underline-offset:3px}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit;color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--acc);outline-offset:2px}.input:focus-visible{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accBg)}::selection{background:var(--accBg)}#root{min-height:100%}.mono{font-family:var(--font-num);font-variant-numeric:tabular-nums lining-nums}.kicker{font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--dim)}.explainer{margin:0;font-size:14.5px;color:var(--mut);line-height:1.6}.btn{border:1px solid var(--line2);border-radius:var(--radius);background:var(--panel);min-height:44px;padding:9px 14px;font-size:14.5px;font-weight:500;cursor:pointer;box-shadow:var(--shadow)}.btn:hover:not(:disabled){border-color:var(--mut);background:var(--panel2)}.btn:disabled{cursor:not-allowed;color:var(--dim);background:var(--panel2);border-color:var(--line2)}.btn-primary{border:0;border-radius:var(--radius);background:var(--acc);color:var(--accInk);min-height:44px;padding:10px 16px;font-size:15px;font-weight:600;cursor:pointer;box-shadow:var(--shadow)}.btn-primary:hover:not(:disabled){filter:brightness(1.12)}.btn-primary:disabled{background:var(--panel2);color:var(--dim);box-shadow:inset 0 0 0 1px var(--line2);cursor:not-allowed}.link-btn{border:0;background:transparent;padding:0;font:inherit;color:var(--acc);cursor:pointer;text-decoration:none}.link-btn,.links a{display:inline-flex;align-items:center;min-height:36px}.link-btn:hover:not(:disabled){text-decoration:underline;text-underline-offset:3px}.link-btn:disabled{color:var(--dim);cursor:not-allowed}.input{width:100%;border:1px solid var(--line2);border-radius:var(--radius);background:var(--panel2);min-height:44px;padding:9px 12px;font-size:16px;transition:border-color .15s ease,box-shadow .15s ease}.input[aria-invalid=true]{border-color:var(--fail)}.input.mono{font-family:var(--font-code);letter-spacing:.18em}.kv{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding-bottom:7px;border-bottom:1px solid var(--line)}.kv>span:first-child{color:var(--mut);flex-shrink:0;white-space:nowrap}.kv>:last-child{text-align:right;min-width:0;overflow-wrap:anywhere}.note-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel2);padding:12px 14px;font-size:13.5px;color:var(--mut);line-height:1.65}.loading{padding:24px 4px;font-size:14.5px;color:var(--mut);display:flex;align-items:center;gap:10px}.loading:before{content:"";width:14px;height:14px;border-radius:999px;border:2px solid var(--line2);border-top-color:var(--acc);flex:none;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{border:1px solid var(--failBd);border-radius:var(--radius);background:var(--failBg);padding:12px 14px;font-size:14px;line-height:1.55;color:var(--text);display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}:root{--ease-out-strong: cubic-bezier(.23, 1, .32, 1)}.btn{transition:transform .14s var(--ease-out-strong),border-color .15s ease,background-color .15s ease}.btn-primary{transition:transform .14s var(--ease-out-strong),background-color .15s ease,color .15s ease,filter .15s ease}.btn:active:not(:disabled),.btn-primary:active:not(:disabled){transform:scale(.97)}@media (prefers-reduced-motion: reduce){.btn:active:not(:disabled),.btn-primary:active:not(:disabled){transform:none}.loading:before{animation:none;border-top-color:var(--line2)}}.portal{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}.portal-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.portal-brand{font-size:16px;font-weight:650;color:var(--text);white-space:nowrap}.portal-brand:hover{text-decoration:none}.portal-spacer{flex:1}.portal-user{order:3;flex:1 0 100%;display:flex;align-items:center;flex-wrap:wrap;gap:0 14px;font-size:14px;min-width:0}.portal-user a{display:inline-flex;align-items:center;min-height:36px}.portal-user-email{color:var(--mut);overflow-wrap:anywhere}.lang-switch{order:2;flex:none;display:flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel2)}.lang-switch button{border:0;border-radius:var(--radius-sm);background:transparent;color:var(--mut);min-height:36px;min-width:44px;padding:3px 10px;font-size:13.5px;font-weight:500;cursor:pointer;white-space:nowrap}.lang-switch button[aria-pressed=true]{background:var(--panel);color:var(--text);font-weight:600;box-shadow:0 0 0 1px var(--line2),var(--shadow)}.portal-main{flex:1;display:flex;justify-content:center;align-items:flex-start;padding:20px 12px 48px}.card{width:100%;max-width:420px;padding:22px 18px;display:flex;flex-direction:column;gap:16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);color:var(--text);box-shadow:var(--shadow-lg)}@media (min-width: 560px){.portal-header{padding:12px 24px}.portal-user{order:1;flex:0 1 auto}.portal-main{padding-top:7vh}.card{padding:28px}}.card-title{margin:0;font-size:21px;font-weight:650;letter-spacing:-.01em;line-height:1.25}.card-subtitle{margin:0;font-size:15px;font-weight:600}.form{display:flex;flex-direction:column;gap:14px}.form>.btn-primary,.form>.btn{width:100%}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:13.5px;font-weight:600;color:var(--text)}.field-note{font-size:12.5px;color:var(--dim);line-height:1.5}.field-error{font-size:13px;color:var(--fail);line-height:1.5}.check{display:flex;align-items:center;gap:9px;min-height:40px;font-size:14.5px;cursor:pointer}.check input{width:20px;height:20px;margin:0;flex:none;accent-color:var(--acc)}.policy{margin:0;padding:10px 12px;list-style:none;display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel2);font-size:13px;color:var(--mut)}.policy-title{font-weight:600;color:var(--text);margin-bottom:2px}.policy li[data-met]:before{content:"○";display:inline-block;width:1.4em;color:var(--dim)}.policy li[data-met=true]{color:var(--pass)}.policy li[data-met=true]:before{content:"✓";color:var(--pass)}.links{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px}.note-links{margin-top:4px}.notice{border:1px solid var(--accBd);border-radius:var(--radius);background:var(--accBg);padding:11px 13px;font-size:14px;line-height:1.55}.notice[data-tone=pass]{border-color:var(--passBd);background:var(--passBg)}.notice[data-tone=warn]{border-color:var(--warnBd);background:var(--warnBg)}.error-meta{display:inline-block;margin-left:8px;font-family:var(--font-code);font-size:11.5px;color:var(--dim);overflow-wrap:anywhere}.supplier-list{margin:0;padding:0;list-style:none;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.supplier-list li{padding:11px 14px;font-size:15px;overflow-wrap:anywhere}.supplier-list li+li{border-top:1px solid var(--line)}.stack{display:flex;flex-direction:column;gap:10px}.code-line{font-family:var(--font-code);font-size:13px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin:0;overflow-x:auto}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
