:root{--bg: #ffffff;--panel: #ffffff;--ink: #1c1917;--muted: #78716c;--line: #e5e7eb;--accent: rgb(57, 100, 254);--accent-ink: #ffffff;--danger: #b91c1c;--ok: #166534;--shadow: 0 1px 0 rgba(28, 25, 23, .04);font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:var(--ink);background:#fff}*{box-sizing:border-box}body{margin:0;min-height:100vh}#root{min-height:100vh}.app{max-width:720px;margin:0 auto;padding:12px 14px 28px}.nav{display:flex;gap:8px;margin-bottom:14px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:12px}.nav a{flex:1;text-align:center;text-decoration:none;color:var(--muted);padding:8px 10px;border-radius:8px;font-weight:600}.nav a.active{background:var(--accent);color:var(--accent-ink)}.page-header h1{margin:0 0 6px;font-size:1.35rem;letter-spacing:.02em}.page-header p{margin:0 0 14px;color:var(--muted);font-size:.9rem;line-height:1.45}.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.btn{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;padding:8px 12px;cursor:pointer;font:inherit;box-shadow:var(--shadow)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:#3964fe;color:var(--accent-ink)}.btn.danger{color:var(--danger)}.form{display:grid;gap:10px;margin-bottom:14px}.form label{display:grid;gap:4px}.form label>span{font-size:.82rem;color:var(--muted)}.form select,.form input[type=text],.form input:not([type=checkbox]){width:100%;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:8px 10px;font:inherit}.form label.check{display:flex;align-items:center;gap:8px;grid-template-columns:none}.hint{margin-bottom:12px;padding:8px 10px;border-radius:8px;background:#3964fe1a;color:#2846c8;font-size:.88rem}.alert{margin-top:10px;padding:10px 12px;border-radius:8px;font-size:.9rem}.alert.error{background:#fef2f2;color:var(--danger)}.alert.ok{background:#f0fdf4;color:var(--ok)}.alert.warn{background:#fffbeb;color:#92400e;border:1px solid #fcd34d}.alert-desc{margin:8px 0 0;font-size:.85rem;opacity:.9}.toolbar.compact{margin-top:10px;gap:8px}.muted,.empty{color:var(--muted);font-size:.9rem}.tpl-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.tpl-item{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.tpl-name{font-weight:600;margin-bottom:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tpl-badge{font-size:.72rem;font-weight:600;padding:2px 7px;border-radius:999px;background:#eef2ff;color:#3730a3}.tpl-badge.usage-clearance{background:#ecfdf5;color:#047857}.tpl-badge.usage-declaration{background:#fff7ed;color:#c2410c}.tpl-usage-select{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:6px 8px;font:inherit;font-size:.85rem}.inline-field{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted)}.inline-field select{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:6px 8px;font:inherit;color:var(--ink)}.tpl-meta{font-size:.8rem;color:var(--muted)}.tpl-actions{display:flex;gap:6px;flex-shrink:0}@media(max-width:560px){.tpl-item{flex-direction:column;align-items:stretch}}.ds-view{display:grid;gap:10px;margin-top:12px}.ds-section{border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden}.ds-section>summary{cursor:pointer;padding:10px 12px;font-weight:600;list-style:none;display:flex;align-items:center;gap:8px;-webkit-user-select:none;user-select:none}.ds-section>summary::-webkit-details-marker{display:none}.ds-section>summary:before{content:"▸";color:var(--muted);font-size:.85rem}.ds-section[open]>summary:before{content:"▾"}.ds-count{margin-left:auto;font-size:.78rem;font-weight:500;color:var(--muted);background:#f3f4f6;padding:2px 8px;border-radius:999px}.ds-body{padding:10px 12px 12px;border-top:1px solid var(--line)}.ds-table{width:100%;border-collapse:collapse;font-size:.85rem}.ds-table th,.ds-table td{text-align:left;vertical-align:top;padding:5px 6px;border-bottom:1px solid #f3f4f6;word-break:break-all}.ds-table th{width:42%;color:var(--muted);font-weight:500}.ds-json{margin:8px 0 0;padding:10px;border-radius:8px;background:#f8fafc;border:1px solid var(--line);font-size:.72rem;line-height:1.4;overflow:auto;max-height:320px;white-space:pre}.ds-json-full{margin-top:12px;max-height:min(70vh,640px)}.jv-wrap{margin-top:8px}.jv-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.jv-hint{color:var(--muted);font-size:.78rem}.jv-tree{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:normal}.jv-details{margin:0}.jv-summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px;line-height:1.45;-webkit-user-select:none;user-select:none}.jv-summary::-webkit-details-marker{display:none}.jv-summary:before{content:"▶";display:inline-block;width:1em;color:var(--muted);font-size:.7rem;transform:translateY(-1px)}.jv-details[open]>.jv-summary:before{content:"▼"}.jv-line{line-height:1.45;word-break:break-word}.jv-children{margin:0}.jv-key{color:#0369a1}.jv-colon,.jv-bracket{color:var(--muted)}.jv-muted{color:var(--muted);font-size:.92em}.jv-str{color:#166534}.jv-num{color:#b45309}.jv-bool{color:#7c3aed}.jv-null{color:#a8a29e}.jv-unk{color:var(--ink)}.jv-details[open]>.jv-summary .jv-muted,.jv-details[open]>.jv-summary .jv-close-preview{display:none}.result-block{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.plain-list{margin:8px 0 0;padding-left:1.2em;color:var(--ink);font-size:.88rem;line-height:1.5}.error{color:var(--danger);font-size:.9rem}.success{color:var(--ok);font-size:.9rem;margin:0}.skip-block{margin:10px 0 12px;padding:10px 12px;border:1px solid #fecaca;border-radius:8px;background:#fef2f2}.mode-tabs{display:flex;gap:8px;margin-bottom:12px}.ds-lines{display:grid;gap:8px}.ds-line{border:1px solid var(--line);border-radius:8px;padding:6px 8px}.ds-line>summary{cursor:pointer;font-size:.88rem;font-weight:600}
