:root { --border:#e5e7eb; --muted:#6b7280; }
*{box-sizing:border-box} body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,sans-serif;margin:0;color:#111}
a{color:#111;text-decoration:none;padding:.5rem .75rem;border-radius:.5rem}
a:hover{background:#f3f4f6}
.container{max-width:1100px;margin:0 auto;padding:1rem}
.header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-bottom:1px solid var(--border)}
.header h1{margin:.2rem 0}
.muted{color:var(--muted)}
nav{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.secondary{background:#f3f4f6}
.inline{display:inline}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border:1px solid var(--border);border-radius:.5rem;cursor:pointer}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:.5rem;border-bottom:1px solid var(--border);text-align:left}
.badge{display:inline-block;padding:.2rem .4rem;border-radius:.4rem;font-size:.8rem;border:1px solid var(--border)}
.badge.ok{background:#dcfce7}
.badge.warn{background:#fef9c3}
.badge.danger{background:#fee2e2}
.grid{display:grid;gap:1rem}
.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{border:1px solid var(--border);border-radius:.75rem;padding:1rem}
.form-row{display:grid;gap:.5rem}
label{font-size:.9rem;color:#374151}
input,select,textarea{width:100%;padding:.5rem;border:1px solid var(--border);border-radius:.5rem}
.actions{display:flex;gap:.5rem;flex-wrap:wrap}
.alert{padding:.6rem .8rem;border-radius:.5rem;margin:.5rem 0}
.alert.success{background:#dcfce7}
.alert.error{background:#fee2e2}
.footer{border-top:1px solid var(--border);margin-top:2rem}
.small{font-size:.85rem;color:#6b7280}