.ui-button{margin:.5rem .5rem .5rem 0}.ui-button--secondary{background:#e8eee9;color:var(--ink)}.ui-button--danger{background:#a12b2b}.ui-button:disabled{background:#e2e6e3;color:#566762;cursor:not-allowed}:where(input,textarea,select,[tabindex]):focus-visible{outline:3px solid #ba6934;outline-offset:3px}.ui-field{margin-block:1rem}.ui-field label{display:block;font-weight:600}.ui-field :where(input:not([type=checkbox]),textarea,select){width:100%;padding:.65rem;border:1px solid #677b71;border-radius:.35rem;color:var(--ink);background:white;font:inherit}.ui-field input[type=checkbox]{width:1.25rem;height:1.25rem}.ui-field textarea{resize:vertical;min-height:7rem}.ui-field :disabled{background:#edf0ed;color:var(--muted);cursor:not-allowed}.ui-field [aria-invalid=true]{border-color:#a12b2b}.ui-field :where(.ui-field-hint,.ui-field-error){margin:.25rem 0;font-size:.9rem}.ui-field .ui-field-error{color:#a12b2b}.ui-dialog{color:var(--ink);background:white;border:1px solid var(--line);border-radius:.75rem;padding:1.5rem;width:min(36rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;overflow-wrap:anywhere}.ui-dialog::backdrop{background:rgb(15 30 25/55%)}.ui-state{overflow-wrap:anywhere}.ui-table-scroll{max-width:100%;overflow:auto}.ui-table{width:100%;border-collapse:collapse}.ui-table caption{text-align:left;font-weight:600;padding-block:.5rem}.ui-table :where(th,td){text-align:start;border-bottom:1px solid var(--line);padding:.75rem;overflow-wrap:anywhere;max-width:30rem}.ui-status{display:inline-block;padding:.15rem .65rem;border-radius:1rem;background:#edf0ed;color:#3e5047}.ui-status--success{background:#e1f1e6;color:#205632}.ui-status--warning{background:#fff0d8;color:#774600}.ui-status--danger{background:#ffe9e9;color:#a12b2b}.ui-progress progress{display:block;width:100%;accent-color:var(--accent)}.ui-safe-text{white-space:pre-wrap;overflow-wrap:anywhere;unicode-bidi:plaintext}.ui-inline-tag{display:inline;padding:.1rem .35rem;margin-inline:.15rem;border:1px solid #677b71;border-radius:.25rem;background:#edf0ed;font-size:.85em}:root{color-scheme:light;--ink:#172f2c;--muted:#566762;--accent:#236956;--line:#dce3dc;--paper:#fafbf7}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,Microsoft YaHei,sans-serif;line-height:1.65}a{color:var(--accent);text-underline-offset:.25em}a:focus-visible,button:focus-visible{outline:3px solid #ba6934;outline-offset:5px}.app-shell{max-width:1280px;margin:auto;padding:0 5vw}.app-header{display:flex;align-items:center;gap:4rem;min-height:100px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:.8rem;font-size:2rem;font-weight:750;text-decoration:none;color:var(--ink)}.brand span{font-size:.9rem;font-weight:500}nav{display:flex;gap:1.6rem;flex-wrap:wrap}nav a{font-size:.9rem}.stage{margin-left:auto;font-size:.75rem;color:var(--muted);border:1px solid var(--line);border-radius:2rem;padding:.3rem .8rem}main{padding:2.5rem 0 4rem;min-height:70vh}.eyebrow,.workspace-label{font-size:.8rem;color:var(--muted);letter-spacing:.08em}.panel{background:#fff;padding:clamp(1.5rem,4vw,3.5rem);border:1px solid var(--line);border-radius:1rem}.hero{background:#eff4eb}h1{font-size:clamp(1.7rem,3vw,2.8rem);letter-spacing:-.04em;line-height:1.3;margin:.5rem 0 1.3rem}h2{font-size:1.05rem;font-weight:600}p{max-width:48rem;color:var(--muted)}.button,button{display:inline-block;margin-top:1.2rem;padding:.8rem 1.3rem;border:0;border-radius:.45rem;background:var(--accent);color:white;font:inherit;text-decoration:none;cursor:pointer}.empty-state{padding:2rem 0}.trace{overflow-wrap:anywhere}.trace,footer{font-size:.8rem}footer{padding:1.5rem 0;border-top:1px solid var(--line);color:var(--muted)}.auth-shell{max-width:620px;margin:4rem auto;padding:0 1.5rem}.auth-shell fieldset{border:0;padding:0;min-width:0}.auth-shell nav{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.5rem}.skip-link{position:absolute;top:-5rem;left:1rem;padding:.7rem;background:#fff;z-index:10}.skip-link:focus{top:.5rem}@media (max-width:620px){.app-header{gap:1.5rem;flex-wrap:wrap;padding:1rem 0}.brand span,.stage{display:none}main{padding-top:1.5rem}}