:root{--ct-accent:#58bae4;--ct-accent-strong:#3f89a9;--ct-accent-tint:#e4e8f6;--ct-ink:#212529;--ct-ink-2:#44475a;--ct-ink-3:#6c757d;--ct-surface:#ffffff;--ct-surface-2:#f9f9f9;--ct-surface-3:#f3f2f1;--ct-border:#d3d3d4;--ct-border-strong:#b6b4b4;--ct-ok-bg:#e8f6ee;--ct-ok-fg:#1b6b45;--ct-ok-bd:#b7e0c9;--ct-warn-bg:#fdf4e3;--ct-warn-fg:#8a5a12;--ct-warn-bd:#f0d9a8;--ct-bad-bg:#fbeceb;--ct-bad-fg:#98241d;--ct-bad-bd:#f0c2be;--ct-shadow:0 10px 29px 0 rgba(68, 88, 144, .10)}.theme-dark{--ct-accent-tint:#22333c;--ct-ink:#ffffff;--ct-ink-2:#e9e9ea;--ct-ink-3:#b1b1b1;--ct-surface:#282424;--ct-surface-2:#1e1c1c;--ct-surface-3:#201e1e;--ct-border:#4a4646;--ct-border-strong:#6f6a6a;--ct-ok-bg:#14301f;--ct-ok-fg:#7ee2a8;--ct-ok-bd:#2c6244;--ct-warn-bg:#33260f;--ct-warn-fg:#f5c975;--ct-warn-bd:#6b4f1c;--ct-bad-bg:#341715;--ct-bad-fg:#f5a29b;--ct-bad-bd:#6d2f2a;--ct-shadow:0 10px 29px 0 rgba(0, 0, 0, .45)}.ct-wrap{max-width:900px;margin:0 auto 28px}.ct-notice{max-width:900px;margin:0 auto 20px;padding:14px 18px;border:1px solid var(--ct-warn-bd);background:var(--ct-warn-bg);color:var(--ct-warn-fg);border-radius:15px;font-size:14px;line-height:1.6}.ct-notice code{background:rgba(0,0,0,.07);padding:1px 5px;border-radius:4px;color:inherit}.ct-panel{background:var(--ct-surface);border:1px solid var(--ct-border-strong);border-radius:15px;padding:22px;margin-bottom:18px;box-shadow:var(--ct-shadow);color:var(--ct-ink)}.ct-section{font-size:17px;font-weight:700;color:var(--ct-ink);margin:0 0 14px}.ct-section-head{display:flex;align-items:baseline;justify-content:space-between}.ct-count{font-size:13px;color:var(--ct-ink-3)}.ct-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.ct-field{margin-bottom:14px}.ct-field label{display:block;font-size:13.5px;font-weight:600;color:var(--ct-ink-2);margin-bottom:6px}.ct-optional{font-weight:400;color:var(--ct-ink-3);font-size:12.5px}.ct-clause input,.ct-clause textarea,.ct-field input[type=date],.ct-field input[type=text],.ct-field select,.ct-field textarea{width:100%;padding:11px 13px;font-size:15px;font-family:inherit;color:var(--ct-ink);background:var(--ct-surface);border:1px solid var(--ct-border-strong);border-radius:10px}.ct-field textarea{margin-top:8px;resize:vertical;line-height:1.6}.ct-clause input:focus,.ct-clause textarea:focus,.ct-field input:focus,.ct-field select:focus,.ct-field textarea:focus{outline:3px solid var(--ct-accent);outline-offset:1px;border-color:var(--ct-accent)}.ct-hint{font-size:12.5px;color:var(--ct-ink-3);margin-top:6px;line-height:1.5}.ct-clause{border:1px solid var(--ct-border);border-radius:12px;padding:14px;margin-bottom:12px;background:var(--ct-surface-2)}.ct-clause-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.ct-clause-number{font-weight:700;color:var(--ct-ink-3);min-width:22px;font-variant-numeric:tabular-nums}.ct-clause-head input{flex:1;font-weight:600}.ct-clause-tools{display:flex;gap:4px}.ct-icon{border:1px solid var(--ct-border-strong);background:var(--ct-surface);color:var(--ct-ink-2);border-radius:8px;width:34px;height:34px;font-size:15px;line-height:1;cursor:pointer}.ct-icon:hover{border-color:var(--ct-accent);color:var(--ct-ink)}.ct-remove:hover{border-color:var(--ct-bad-fg);color:var(--ct-bad-fg)}.ct-clause textarea{line-height:1.65}.ct-btn{border:1px solid var(--ct-border-strong);background:var(--ct-surface);color:var(--ct-ink-2);border-radius:10px;padding:11px 20px;font-size:14.5px;font-weight:600;cursor:pointer}.ct-btn:hover{border-color:var(--ct-accent);color:var(--ct-ink)}.ct-btn:disabled{opacity:.55;cursor:default}.ct-btn-primary{background:var(--ct-accent);border-color:var(--ct-accent);color:#fff}.ct-btn-primary:hover{background:var(--ct-accent-strong);border-color:var(--ct-accent-strong)}.ct-btn-primary:disabled{background:var(--ct-accent)}.ct-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.ct-download{text-align:left}.ct-status{padding:11px 14px;border-radius:10px;font-size:14px;margin-bottom:14px;border:1px solid transparent}.ct-status-error{background:var(--ct-bad-bg);color:var(--ct-bad-fg);border-color:var(--ct-bad-bd)}.ct-status-ok{background:var(--ct-ok-bg);color:var(--ct-ok-fg);border-color:var(--ct-ok-bd)}.ct-status-info{background:var(--ct-surface-3);color:var(--ct-ink-2);border-color:var(--ct-border)}@media (max-width:575px){.ct-panel{padding:16px}.ct-clause{padding:12px}}