:root{--c-bg: #f5f6f8;--c-surface: #ffffff;--c-border: #e1e4ea;--c-text: #161a22;--c-muted: #5d6675;--c-accent: #3852d6;--c-accent-soft: #e7ebfb;--c-danger: #b3261e;--c-ok: #1d7a46;--radius: 10px;--shadow: 0 1px 2px rgba(16, 22, 40, .06), 0 8px 24px rgba(16, 22, 40, .05);--maxw: 1100px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}html[data-theme=dark]{--c-bg: #0f1219;--c-surface: #181c25;--c-border: #2a2f3b;--c-text: #eef1f6;--c-muted: #9aa3b2;--c-accent: #7d92f5;--c-accent-soft: #1d2440}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--c-bg);color:var(--c-text);font-family:var(--font);line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--c-accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem 1.5rem;background:var(--c-surface);border-bottom:1px solid var(--c-border)}.brand{font-size:1.2rem;font-weight:700;color:var(--c-text)}.brand:hover{text-decoration:none}.brand-sub{color:var(--c-accent);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.app-nav{display:flex;gap:1.1rem;flex-wrap:wrap;font-weight:500}.app-nav .nav-active{color:var(--c-text);text-decoration:underline;text-underline-offset:4px}.app-main{flex:1;width:100%;max-width:var(--maxw);margin:0 auto;padding:2rem 1.5rem}.app-footer{border-top:1px solid var(--c-border);padding:1rem 1.5rem;color:var(--c-muted);font-size:.8rem}.page h1{margin:0 0 .5rem;font-size:2rem;letter-spacing:-.01em}.lead{font-size:1.05rem;color:var(--c-text);max-width:64ch}.muted{color:var(--c-muted)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:1.5rem}.card{display:block;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem;color:var(--c-text)}.card:hover{text-decoration:none;border-color:var(--c-accent)}.card h3{margin:0 0 .35rem;font-size:1.05rem}.badge{display:inline-block;background:var(--c-accent-soft);color:var(--c-accent);border-radius:999px;padding:.1rem .6rem;font-size:.75rem;font-weight:600}.state{padding:2rem 0;color:var(--c-muted)}.state-error{color:var(--c-danger)}.form{display:grid;gap:.85rem;max-width:520px;margin-top:1.25rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);padding:1.25rem}.field{display:grid;gap:.3rem}.field label{font-size:.85rem;font-weight:600;color:var(--c-muted)}.field input,.field select{font:inherit;padding:.5rem .65rem;border:1px solid var(--c-border);border-radius:8px;background:var(--c-bg);color:var(--c-text)}.field input:focus,.field select:focus{outline:2px solid var(--c-accent);outline-offset:1px}.btn{font:inherit;font-weight:600;cursor:pointer;border:1px solid transparent;border-radius:8px;padding:.5rem .9rem;background:var(--c-accent);color:#fff}.btn:hover{filter:brightness(1.05)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--c-text);border-color:var(--c-border)}.btn-danger{background:transparent;color:var(--c-danger);border-color:var(--c-danger)}.row-actions{display:flex;gap:.5rem;flex-wrap:wrap}.table{width:100%;border-collapse:collapse;margin-top:1.25rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden}.table th,.table td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--c-border);font-size:.92rem;vertical-align:middle}.table th{background:var(--c-accent-soft);color:var(--c-text);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.table tr:last-child td{border-bottom:none}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1rem}.edge-section{margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--c-border)}.edge-section h3{margin:0;font-size:1.15rem}.field code,.muted code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;background:var(--c-accent-soft);padding:.1rem .35rem;border-radius:5px}.dropzone{margin-top:1rem;border:2px dashed var(--c-border);border-radius:var(--radius);padding:1.75rem;text-align:center;color:var(--c-muted);cursor:pointer;background:var(--c-bg)}.dropzone.is-active{border-color:var(--c-accent);background:var(--c-accent-soft);color:var(--c-text)}.upload-field{margin-top:1.25rem}.upload-field h4{margin:0;font-size:.95rem;font-weight:600}
