: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)}.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)}.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}
