:root{color-scheme:light;--ln-primary:#007a55;--ln-primary-hover:#009966;--ln-ink:#0a2540;--ln-body:#425466;--ln-muted:#627d98;--ln-canvas:#f3f5f8;--ln-card:#fff;--ln-border:#dce3eb;--ln-control-border:#c7d2dd;--ln-soft:#ecfdf5;--ln-warning:#d97706;--ln-warning-bg:#fef3c7;--ln-error:#ef4444;--ln-error-bg:#fee2e2;--ln-radius:10px;--ln-font:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}
:root[data-theme=dark]{color-scheme:dark;--ln-primary:#34d399;--ln-primary-hover:#6ee7b7;--ln-ink:#e8f0f8;--ln-body:#c0cfdd;--ln-muted:#9aafc3;--ln-canvas:#101923;--ln-card:#192633;--ln-border:#334859;--ln-control-border:#4b6479;--ln-soft:#183e35;--ln-warning:#fbbf24;--ln-warning-bg:#3b321f;--ln-error:#fca5a5;--ln-error-bg:#44292e}
.gateway-portal{margin:0;background:var(--ln-canvas);color:var(--ln-body);font:14px/1.65 var(--ln-font)}
.gateway-portal *{box-sizing:border-box}.gateway-portal button,.gateway-portal input,.gateway-portal select{font:inherit}.gateway-portal button,.gateway-portal a{touch-action:manipulation}.gateway-portal button{cursor:pointer;border-radius:var(--ln-radius);min-height:36px;padding:7px 15px;border:1px solid transparent;font-size:13px;line-height:20px}.gateway-portal button:disabled{cursor:not-allowed;opacity:.5}.gateway-portal :focus-visible{outline:3px solid var(--ln-primary);outline-offset:3px}.gateway-portal a{color:var(--ln-primary);text-decoration:none}.gateway-portal a:hover{text-decoration:underline}.gateway-portal .topbar{height:76px;background:var(--ln-card);border-bottom:1px solid var(--ln-border);padding:0 max(24px,calc((100vw - 1140px)/2));display:flex;align-items:center;justify-content:space-between;gap:16px}.gateway-portal .brand{display:flex;align-items:center;gap:12px}.gateway-portal .brand-mark{width:36px;height:36px;display:grid;place-items:center;background:#007a55;color:#fff;font-size:25px;font-weight:650;border-radius:10px}.gateway-portal .brand strong{display:block;color:var(--ln-ink);font-size:17px;line-height:22px}.gateway-portal .brand-caption{font-size:12px;color:var(--ln-muted)}
.gateway-portal main{max-width:1188px;margin:auto;padding:32px 24px 16px}.gateway-portal h1,.gateway-portal h2,.gateway-portal h3{color:var(--ln-ink);margin:0;font-weight:600}.gateway-portal h1{font-size:25px;line-height:36px}.gateway-portal h2{font-size:17px}.gateway-portal h3{font-size:14px}.gateway-portal p{margin:6px 0 0}.gateway-portal .page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.gateway-portal .eyebrow{margin:0 0 3px;color:var(--ln-primary);font-size:12px}.gateway-portal .intro{color:var(--ln-muted)}.gateway-portal .https-badge{border:1px solid var(--ln-border);background:var(--ln-card);border-radius:6px;padding:5px 10px;white-space:nowrap;font-size:12px;color:var(--ln-muted)}
.gateway-portal .workspace{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:start}.gateway-portal .panel{background:var(--ln-card);border:1px solid var(--ln-border);border-radius:var(--ln-radius);padding:24px;min-width:0}.gateway-portal .panel-heading{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:20px}.gateway-portal .badge{font-size:12px;line-height:20px;padding:2px 8px;border-radius:6px;white-space:nowrap}.gateway-portal .badge.neutral{background:var(--ln-canvas);color:var(--ln-muted)}.gateway-portal .badge.success{background:var(--ln-soft);color:var(--ln-primary)}.gateway-portal .badge.warning{background:var(--ln-warning-bg);color:var(--ln-body)}.gateway-portal .badge.error{background:var(--ln-error-bg);color:var(--ln-body)}
.gateway-portal label{display:block;margin:16px 0 6px;color:var(--ln-ink);font-size:13px}.gateway-portal input,.gateway-portal select{border:1px solid var(--ln-control-border);border-radius:var(--ln-radius);min-height:36px;min-width:0;padding:7px 10px;background:var(--ln-card);color:var(--ln-body);font-size:13px;width:100%}.gateway-portal input::placeholder{color:var(--ln-muted)}.gateway-portal input[aria-invalid=true]{border-color:var(--ln-error)}.gateway-portal input[readonly]{background:var(--ln-canvas);font-family:Consolas,"Cascadia Mono",monospace;font-size:12px}.gateway-portal select:disabled{color:var(--ln-muted);background:var(--ln-canvas)}.gateway-portal .endpoint,.gateway-portal .key-row{display:flex;gap:8px;align-items:stretch}.gateway-portal .endpoint button,.gateway-portal .key-row button{flex-shrink:0}.gateway-portal .field-note{font-size:12px;line-height:20px;color:var(--ln-muted);margin-top:8px}.gateway-portal .form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.gateway-portal .primary{background:var(--ln-primary);color:#fff;min-width:96px}.gateway-portal .primary:hover:enabled{background:var(--ln-primary-hover)}:root[data-theme=dark] .gateway-portal .primary{color:#082c21}.gateway-portal .secondary{border-color:var(--ln-control-border);background:var(--ln-card);color:var(--ln-body)}.gateway-portal .secondary:hover:enabled{border-color:var(--ln-primary);color:var(--ln-primary)}.gateway-portal .text-button{color:var(--ln-muted);background:transparent}.gateway-portal .result{margin-top:20px;padding:12px 14px;border-radius:6px;border-left:3px solid var(--ln-border);background:var(--ln-canvas)}.gateway-portal .result strong{color:var(--ln-ink);font-size:13px}.gateway-portal .result p{font-size:13px;margin-top:3px}.gateway-portal .result.success{background:var(--ln-soft);border-left-color:var(--ln-primary)}.gateway-portal .result.warning{background:var(--ln-warning-bg);border-left-color:var(--ln-warning)}.gateway-portal .result.error{background:var(--ln-error-bg);border-left-color:var(--ln-error)}.gateway-portal .model-section{border-top:1px solid var(--ln-border);margin-top:24px;padding-top:2px}.gateway-portal .model-result{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--ln-canvas);border:1px solid var(--ln-border);border-radius:6px;padding:12px;font-size:13px;max-height:160px;overflow:auto}
.gateway-portal .steps{list-style:none;padding:0;margin:22px 0;display:grid;gap:24px}.gateway-portal .steps li{display:flex;align-items:flex-start;gap:12px}.gateway-portal .step-number{display:grid;place-items:center;flex:0 0 26px;height:26px;border:1px solid var(--ln-border);border-radius:6px;color:var(--ln-primary);font-size:12px}.gateway-portal .steps p{font-size:13px;line-height:22px}.gateway-portal .command{display:block;margin-top:10px;padding:9px 12px;border:1px solid var(--ln-border);background:var(--ln-canvas);border-radius:6px;font:12px/20px Consolas,"Cascadia Mono",monospace;overflow-wrap:anywhere}.gateway-portal .download{display:inline-flex;gap:10px;align-items:center;margin-top:12px;font-size:13px;font-weight:600;min-height:36px}.gateway-portal .notice{background:var(--ln-canvas);border-radius:6px;padding:14px;font-size:12px}.gateway-portal .notice strong{font-weight:600;color:var(--ln-ink)}.gateway-portal .help{margin-top:24px;background:var(--ln-card);border:1px solid var(--ln-border);border-radius:var(--ln-radius);padding:18px 24px}.gateway-portal .help h2{font-size:15px;margin-bottom:8px}.gateway-portal details{padding:10px 0;border-top:1px solid var(--ln-border)}.gateway-portal details:first-of-type{border-top:0}.gateway-portal summary{color:var(--ln-body);cursor:pointer;font-size:13px}.gateway-portal details p{font-size:13px;max-width:850px;padding:3px 0 0 17px}.gateway-portal footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--ln-muted);font-size:12px;padding:20px 0 4px}
@media(max-width:767px){.gateway-portal .topbar{padding:0 20px;height:68px}.gateway-portal main{padding:24px 16px 12px}.gateway-portal .workspace{grid-template-columns:minmax(0,1fr);gap:16px}.gateway-portal .page-heading{align-items:flex-start;margin-bottom:20px}.gateway-portal h1{font-size:22px}.gateway-portal .https-badge{display:none}.gateway-portal .panel{padding:20px}.gateway-portal button,.gateway-portal input,.gateway-portal select{min-height:44px}.gateway-portal .form-actions button{flex-grow:1}.gateway-portal .help{padding:16px 20px}.gateway-portal .intro{font-size:13px}.gateway-portal .endpoint input{font-size:11px}}
@media(prefers-reduced-motion:reduce){.gateway-portal *{scroll-behavior:auto}}
