:root{--bg:#f3f5f8;--panel:#fff;--ink:#1c2430;--muted:#667085;--line:#e4e7ec;--brand:#1f4e79;--brand-2:#2b6cb0;--ok:#027a48;--warn:#b54708;--danger:#b42318;--shadow:0 8px 24px #1018280f;color:var(--ink);background:var(--bg);font-family:Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:var(--brand-2);text-decoration:none}button,input,select,textarea{font:inherit}.btn{cursor:pointer;background:var(--brand);color:#fff;border:1px solid #0000;border-radius:8px;padding:8px 14px}.btn:hover{filter:brightness(1.05)}.btn.secondary{color:var(--ink);border-color:var(--line);background:#fff}.btn.danger{background:var(--danger)}.btn.ghost{color:var(--brand);background:0 0;border-color:#0000}.btn:disabled{opacity:.55;cursor:not-allowed}.input,.select,.textarea{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;padding:9px 12px}.textarea{min-height:220px;font-family:ui-monospace,Consolas,monospace;font-size:13px}.card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:18px}.table{border-collapse:collapse;width:100%}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 8px;font-size:14px}.table th{color:var(--muted);font-size:12px;font-weight:600}.badge{border-radius:999px;align-items:center;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge.pending{color:var(--warn);background:#fffaeb}.badge.signed{color:var(--ok);background:#ecfdf3}.badge.void,.badge.draft{color:var(--muted);background:#f2f4f7}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid .full{grid-column:1/-1}.label{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.actions{flex-wrap:wrap;gap:8px;display:flex}.muted{color:var(--muted)}.error{color:var(--danger);font-size:13px}@media (width<=860px){.form-grid{grid-template-columns:1fr}}
