.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--primary);color:#fff;border:1px solid var(--primary);border-radius:12px;padding:13px 19px;font-weight:750;box-shadow:0 8px 18px rgba(91,75,219,.16);transition:transform .18s,background .18s}.button:hover{background:var(--primary-dark);transform:translateY(-1px)}.button-small{padding:9px 14px;font-size:.88rem}.button-outline{background:#fff;color:var(--ink);border-color:var(--line);box-shadow:none}.button-outline:hover{background:var(--surface-soft);color:var(--primary)}.button-light{background:#fff;color:var(--primary);border-color:#fff}.button-full{width:100%}.panel,.feature-card,.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:25px;box-shadow:0 8px 28px rgba(27,43,79,.035)}.panel h2{font-size:1.35rem}.panel>p{margin:12px 0 20px}.alert{padding:12px 14px;border-radius:10px;margin:10px 0 16px;font-size:.9rem}.alert-error{background:#fff0ef;color:var(--red);border:1px solid #ffd4d0}.alert-success{background:#ecfdf3;color:#067647;border:1px solid #abefc6}.form-stack{display:grid;gap:17px}.form-stack label{display:grid;gap:7px;font-size:.88rem;font-weight:700;color:#344054}.form-stack input,.form-stack select{width:100%;border:1px solid #d7dce6;background:#fff;border-radius:10px;padding:12px 13px;min-height:46px;color:var(--ink);outline:none}.form-stack input:focus,.form-stack select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(91,75,219,.12)}.form-stack small{font-size:.77rem;font-weight:400;color:var(--muted)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em}td:last-child,th:last-child{text-align:right}.table-sub{display:block;color:var(--muted);font-size:.76rem}.empty-state{text-align:center;padding:36px 12px}.empty-state>span{font-size:2rem;color:var(--primary)}.empty-state h3{margin:10px 0}.pill{display:inline-flex;padding:6px 10px;border-radius:999px;background:#f0efff;color:var(--primary);font-size:.75rem;font-weight:800}
