:root{--purple-500: #8b5cf6;--purple-400: #9b68f2;--purple-300: #ae7af6;--purple-200: #c4a1fa;--purple-100: #ede5ff;--purple-50: #f5f0ff;--purple-hover: #7c3aed;--color-text: #1a1a2e;--color-text-muted: #6b7280;--color-text-secondary: #9ca3af;--color-text-on-purple: #ffffff;--color-bg: #ffffff;--color-bg-page: #fafafa;--color-border: #e5e7eb;--color-border-light: #f0f0f3;--color-error: #dc2626;--color-error-bg: #fef2f2;--color-error-text: #991b1b;--radius: 8px;--radius-lg: 12px;--shadow-card: 0 1px 4px rgba(0, 0, 0, .06), 0 0 0 1px rgba(0, 0, 0, .03);--shadow-card-hover: 0 6px 20px rgba(139, 92, 246, .12), 0 0 0 1px rgba(139, 92, 246, .08);--font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--max-width: 900px}*{box-sizing:border-box}body{margin:0;background:var(--color-bg-page);color:var(--color-text);font-family:var(--font-stack);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--purple-500);text-decoration:none}a:hover{color:var(--purple-hover)}h1,h2,h3{margin:0;line-height:1.2}p{margin:0}button,input,select,textarea{font:inherit}code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.app-nav{background:var(--purple-400);box-shadow:0 2px 12px #643cb42e}.nav-bar{width:100%;max-width:var(--max-width);margin:0 auto;padding:1.1rem 1.5rem;display:flex;align-items:center;gap:.25rem}.nav-brand{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-text-on-purple);text-decoration:none;margin-right:2rem}.nav-brand:hover{opacity:.9;color:var(--color-text-on-purple)}.nav-brand svg{flex-shrink:0}.nav-brand-text{font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ffffffe6}.nav-link{padding:.35rem .7rem;border-radius:var(--radius);color:#ffffffe0;font-size:.92rem;font-weight:600;text-decoration:none;white-space:nowrap;transition:background .1s ease,color .1s ease}.nav-link:hover{color:#fff;background:#ffffff26}.nav-link--push{margin-left:auto}.nav-dropdown{position:relative}.nav-dropdown-toggle{background:none;border:none;color:#ffffffd9;font:inherit;font-size:.92rem;font-weight:500;padding:.35rem .65rem;border-radius:6px;cursor:pointer;transition:background .12s ease,color .12s ease}.nav-dropdown-toggle:hover{color:#fff;background:#ffffff1f}.nav-dropdown-menu{display:none;position:absolute;top:100%;left:0;margin-top:.25rem;min-width:160px;background:#fff;border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:.35rem 0;z-index:100}.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu{display:block}.nav-dropdown-item{display:block;padding:.5rem 1rem;color:var(--color-text);text-decoration:none;font-size:.88rem;font-weight:500;transition:background .1s ease}.nav-dropdown-item:hover{background:var(--purple-50);color:var(--purple-500)}.page-hero{background:linear-gradient(135deg,var(--purple-400) 0%,var(--purple-300) 100%);padding:3rem 1.5rem 2.5rem}.page-hero-inner{max-width:var(--max-width);margin:0 auto}.page-hero h1{font-size:2.6rem;font-weight:800;letter-spacing:-.02em;color:var(--color-text-on-purple)}.page-hero .page-subtitle{font-size:1.1rem;color:#fffc;margin-top:.5rem;line-height:1.5}.page-container{width:100%;max-width:var(--max-width);margin:0 auto;padding:2.5rem 1.5rem 4rem}.page-section{display:grid;gap:1.75rem}.page-header{display:grid;gap:.5rem}.page-header h1{font-size:2rem;font-weight:800;letter-spacing:-.01em;color:var(--color-text)}.page-subtitle{font-size:1rem;color:var(--color-text-muted)}.page-meta{color:var(--color-text-muted);font-size:.92rem}.search-panel{display:grid;gap:.6rem;background:var(--color-bg);padding:1.25rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.search-input,.filter-select,.form-input{width:100%;padding:.65rem .85rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);font-size:.95rem}.search-input::placeholder{color:var(--color-text-secondary)}.search-input:focus,.filter-select:focus,.form-input:focus{border-color:var(--purple-500);outline:2px solid rgba(139,92,246,.18);outline-offset:0}.filter-row{display:grid;gap:.6rem;grid-template-columns:repeat(4,minmax(0,1fr))}.tool-list{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}.tool-card{position:relative;display:grid;gap:.5rem;padding:1.4rem 1.5rem;border-radius:var(--radius-lg);background:var(--color-bg);box-shadow:var(--shadow-card);color:inherit;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}.tool-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.tool-card:hover .tool-card-title{color:var(--purple-500)}.tool-card-link{display:grid;gap:.5rem;text-decoration:none;color:inherit}.tool-card-link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-lg)}.tool-card-title{font-size:1.2rem;font-weight:700;color:var(--color-text);margin:0;transition:color .12s ease}.tool-card-description{color:var(--color-text-muted);font-size:.95rem;line-height:1.55;margin:0}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1}.app-footer{border-top:1px solid var(--color-border);background:#ffffffe6}.app-footer-inner{max-width:var(--max-width);margin:0 auto;padding:1rem 1.5rem 1.5rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.footer-link{color:var(--color-text-muted);font-size:.92rem;font-weight:600}.app-footer-version{margin-left:auto;color:var(--color-text-secondary);font-size:.8rem;line-height:1.2}.detail-card,.history-panel,.audit-table,.success-banner{background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.detail-card{padding:1.25rem;display:grid;gap:1rem}.owner-pill-list{display:flex;flex-wrap:wrap;gap:.5rem}.owner-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .7rem;border-radius:999px;background:var(--purple-50);color:var(--purple-hover);font-size:.9rem;font-weight:600}.owner-pill--interactive{background:#eef2ff}.owner-pill-remove{border:0;background:transparent;color:var(--color-error);font-weight:700;cursor:pointer}.inline-form{display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr) auto auto}.history-panel{padding:1rem 1.25rem}.history-panel summary{cursor:pointer;font-weight:700}.history-list{display:grid;gap:.75rem;margin-top:1rem}.history-item{border:1px solid var(--color-border-light);border-radius:var(--radius);padding:.9rem;background:#fbfbfd}.history-item-top{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.history-item-meta{color:var(--color-text-muted);margin-top:.35rem}.history-item-details{white-space:pre-wrap;word-break:break-word;margin:.75rem 0 0;color:var(--color-text-muted);font-size:.88rem}.audit-table{overflow:hidden}.audit-table-head,.audit-table-row{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1.5fr;gap:.75rem;padding:.95rem 1rem;align-items:start}.audit-table-head{background:var(--purple-50);font-size:.84rem;font-weight:700;text-transform:uppercase;color:var(--color-text-muted)}.audit-table-row{border-top:1px solid var(--color-border-light);font-size:.94rem}.audit-table--tokens .audit-table-head,.audit-table--tokens .audit-table-row{grid-template-columns:1.2fr .7fr 1.2fr 1.2fr .6fr .7fr}.audit-table-details{color:var(--color-text-muted);word-break:break-word}.filter-row--audit{grid-template-columns:repeat(5,minmax(0,1fr))}.pagination-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.75rem}.success-banner{padding:1rem 1.25rem;display:grid;gap:.5rem;background:#ecfdf5;border:1px solid #a7f3d0}.success-banner code{padding:.6rem .75rem;border-radius:var(--radius);background:#fffc;overflow-wrap:anywhere}@media(max-width:900px){.inline-form,.filter-row--audit,.audit-table-head,.audit-table-row{grid-template-columns:1fr}.pagination-row{flex-direction:column;align-items:stretch}}.tool-card-tags{display:flex;flex-wrap:wrap;gap:.35rem}.tag-pill{display:inline-block;padding:.15rem .55rem;border-radius:999px;background:var(--purple-100);color:var(--purple-hover);font-size:.78rem;font-weight:600;line-height:1.4}.tag-pill--clickable{cursor:pointer;transition:background .1s ease}.tag-pill--clickable:hover{background:var(--purple-200)}.tool-card-footer{display:flex;align-items:center;gap:.6rem;margin-top:.3rem}.tool-card-avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--purple-400);color:var(--color-text-on-purple);font-size:.78rem;font-weight:700;flex-shrink:0}.tool-card-byline{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.tool-card-author{font-size:.88rem;font-weight:600;color:var(--color-text)}.tool-card-version{font-size:.8rem;color:var(--color-text-secondary)}.tool-card-metric{font-size:.8rem;color:var(--color-text-muted);font-weight:600}.tool-card-download{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;margin-left:auto;border:1px solid var(--color-border);border-radius:50%;color:var(--color-text-muted);text-decoration:none;flex-shrink:0;transition:border-color .1s ease,color .1s ease,background .1s ease}.tool-card-download:hover{border-color:var(--purple-500);color:var(--purple-500);background:var(--purple-50)}.tool-card-download svg{width:1rem;height:1rem}.loading-text,.empty-state{color:var(--color-text-muted);padding:2rem 0}.error-text{color:var(--color-error-text)}.back-link{display:inline-flex;align-items:center;font-size:.9rem;font-weight:600}.detail-table{width:100%;border-collapse:collapse;background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.detail-th,.detail-td{padding:.85rem 1.1rem;border-bottom:1px solid var(--color-border-light);text-align:left;vertical-align:top}.detail-th{width:170px;background:var(--purple-50);color:var(--color-text-muted);font-size:.82rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.detail-td{background:var(--color-bg)}.detail-table tr:last-child .detail-th,.detail-table tr:last-child .detail-td{border-bottom:none}.detail-actions{display:grid;gap:1rem}.detail-action-group{display:grid;gap:.55rem}.detail-action-label{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary)}.detail-icon-actions{display:flex;align-items:center;gap:.65rem}.btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1.3rem;border:none;border-radius:var(--radius);background:var(--purple-500);color:var(--color-text-on-purple);font-size:.92rem;font-weight:600;text-decoration:none;cursor:pointer;box-shadow:0 2px 8px #8b5cf640;transition:background .1s ease,box-shadow .1s ease}.btn-primary:hover{background:var(--purple-hover);box-shadow:0 4px 14px #8b5cf64d}.btn-primary:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.icon-action-button{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;padding:.4rem .75rem;border:1px solid var(--purple-500);border-radius:999px;background:var(--color-bg);color:var(--purple-500);font-size:.85rem;font-weight:500;text-decoration:none;cursor:pointer;transition:background .1s ease,border-color .1s ease,color .1s ease}.icon-action-button:hover{background:var(--purple-50);border-color:var(--purple-hover);color:var(--purple-hover)}.icon-action-button svg{width:1.15rem;height:1.15rem}.icon-action-button--danger{border-color:#dc262647;background:#dc26260a;color:var(--color-error-text)}.icon-action-button--danger:hover{background:#dc262614;border-color:#dc262666;color:var(--color-error)}.icon-action-button:disabled{cursor:not-allowed;opacity:.55}@media(min-width:720px){.detail-actions{grid-template-columns:minmax(0,max-content) minmax(0,max-content);align-items:start;justify-content:space-between}}.docs-section{display:grid;gap:.9rem}.docs-box{display:grid;gap:.85rem;padding:1.5rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);line-height:1.7}.docs-box>*:first-child{margin-top:0}.docs-box>*:last-child{margin-bottom:0}.docs-box p,.docs-box ul,.docs-box ol,.docs-box pre{margin:0}.docs-box hr{width:100%;border:0;border-top:1px solid var(--color-border);margin:.2rem 0}.docs-box pre,.docs-box code{background:var(--purple-50);border-radius:4px}.docs-box pre{padding:.85rem;overflow-x:auto}.docs-box code{padding:.1rem .3rem}.docs-box table{width:100%;border-collapse:collapse;font-size:.92rem}.docs-box th,.docs-box td{padding:.5rem .75rem;border:1px solid var(--color-border);text-align:left}.docs-box th{background:var(--purple-50);font-weight:600;white-space:nowrap}.docs-box tr:nth-child(2n){background:#00000004}.publish-form{display:grid;gap:1.1rem}.form-label{display:grid;gap:.3rem;font-size:.9rem;font-weight:600;color:var(--color-text)}.form-choice{display:flex;align-items:center;gap:.55rem;font-size:.92rem;font-weight:500;color:var(--color-text)}.docs-mode-toggle{display:flex;flex-wrap:wrap;gap:1rem}.docs-editor{display:grid;gap:.75rem}.docs-preview-toggle{display:inline-flex;gap:.5rem}.docs-preview-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);cursor:pointer;font:inherit;font-size:.85rem;font-weight:600;padding:.35rem .8rem;transition:border-color .12s ease,background .12s ease,color .12s ease}.docs-preview-button:hover:not(:disabled){border-color:var(--purple-300)}.docs-preview-button[aria-pressed=true]{background:var(--purple-50);border-color:var(--purple-300);color:var(--purple-500)}.docs-preview-button:disabled{cursor:not-allowed;opacity:.6}.form-help{font-size:.9rem;color:var(--color-text-muted)}.form-help code{background:var(--purple-50);border-radius:4px;padding:.1rem .3rem}.form-help--warning{color:var(--color-error-text)}.form-label textarea.form-input{min-height:280px;resize:vertical}.form-input--error{border-color:var(--color-error);background:var(--color-error-bg)}.form-input--error:focus{outline-color:#dc262626}.form-input::file-selector-button{margin-right:.8rem;padding:.5rem .75rem;border:none;border-radius:4px;background:var(--purple-100);color:var(--purple-hover);font:inherit;font-size:.88rem;font-weight:600;cursor:pointer}.error-banner{padding:.75rem 1rem;border:1px solid var(--color-error);border-radius:var(--radius);background:var(--color-error-bg);color:var(--color-error-text);font-size:.92rem}.admin-badge{display:inline-block;margin-left:.5rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#b45309;background:#fef3c7;border:1px solid #f59e0b;border-radius:4px;vertical-align:middle}.admin-override-banner{padding:.6rem 1rem;margin-bottom:.75rem;font-size:.88rem;font-weight:500;color:#92400e;background:#fef3c7;border:1px solid #f59e0b;border-radius:var(--radius)}.form-actions{display:flex;align-items:center;gap:.75rem;padding-top:.5rem}.form-link{font-weight:600}.landing{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--purple-400) 0%,var(--purple-300) 60%,var(--purple-200) 100%)}.landing-hero{text-align:center;max-width:480px;padding:2rem}.landing-logo{height:32px;color:var(--color-text-on-purple);margin-bottom:2rem}.landing-title{font-size:2.8rem;font-weight:800;letter-spacing:-.02em;color:var(--color-text-on-purple);margin-bottom:.6rem}.landing-subtitle{font-size:1.15rem;color:#fffc;line-height:1.5;margin-bottom:2.5rem}.landing-cta{display:inline-flex;align-items:center;justify-content:center;padding:.85rem 2rem;border-radius:var(--radius);background:var(--color-bg);color:var(--purple-500);font-size:1rem;font-weight:700;text-decoration:none;box-shadow:0 4px 14px #00000026;transition:transform .1s ease,box-shadow .1s ease}.landing-cta:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0003;color:var(--purple-hover)}@media(max-width:768px){.page-container{padding:1.5rem 1rem}.nav-bar{padding:.9rem 1rem}.page-hero{padding:2rem 1rem 1.75rem}.page-hero h1{font-size:1.8rem}.filter-row,.tool-list{grid-template-columns:1fr}.tool-card-byline{flex-direction:column;gap:0}.detail-th,.detail-td{display:block;width:100%}.detail-th{padding-bottom:.2rem;border-bottom:none}.detail-td{padding-top:0}}
