*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5f5f5;color:#111;-webkit-font-smoothing:antialiased}a{color:#111;text-decoration:none;font-weight:500}a:hover{text-decoration:underline}input,select,textarea{width:100%;padding:11px 14px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:14px;font-family:inherit;color:#111;background:#fafafa;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}input:focus,select:focus,textarea:focus{border-color:#111;background:#fff;box-shadow:0 0 0 3px #00000014}input::placeholder{color:#9ca3af}label{display:block;font-size:13px;font-weight:500;color:#374151;margin-bottom:7px}button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:none;border-radius:10px;padding:11px 18px;font-weight:600;font-size:14px;font-family:inherit;background:#111;color:#fff;transition:background .15s,opacity .15s;letter-spacing:.01em}button:hover:not(:disabled){background:#333}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:#fff;color:#111;border:1.5px solid #e5e7eb}button.secondary:hover:not(:disabled){background:#f5f5f5;border-color:#ccc}button.danger{background:#dc2626}button.danger:hover:not(:disabled){background:#b91c1c}button.ghost{background:transparent;color:#555;border:none;padding:8px 12px}button.ghost:hover:not(:disabled){background:#f0f0f0;color:#111}.card{background:#fff;border-radius:12px;padding:20px;border:1px solid #ebebeb;box-shadow:0 1px 4px #0000000d;animation:fadeIn .2s ease}.container{max-width:1100px;margin:0 auto;padding:28px 24px}.row{display:flex;gap:12px;align-items:center}.field{margin-bottom:18px}.badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:600;letter-spacing:.02em}.badge-ok{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.badge-err{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.badge-warn{background:#fefce8;color:#ca8a04;border:1px solid #fde68a}.badge-gray{background:#f5f5f5;color:#555;border:1px solid #e5e5e5}.error{display:flex;align-items:center;gap:8px;background:#fef2f2;color:#dc2626;border:1px solid #fecaca;padding:11px 14px;border-radius:10px;font-size:13px;margin:12px 0}.success{display:flex;align-items:center;gap:8px;background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0;padding:11px 14px;border-radius:10px;font-size:13px;margin:12px 0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:50;animation:fadeIn .15s ease}.modal{background:#fff;border-radius:16px;padding:28px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;border:1px solid #ebebeb;box-shadow:0 20px 60px #00000026;animation:fadeIn .2s ease}.modal h2{font-size:18px;font-weight:700;color:#111;margin-bottom:20px}.divider{height:1px;background:#ebebeb;margin:20px 0}.spinner{width:18px;height:18px;border:2px solid #e5e7eb;border-top-color:#111;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.spinner-white{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.table-wrap{overflow-x:auto;border-radius:10px;border:1px solid #ebebeb}table{width:100%;border-collapse:collapse;font-size:14px}thead tr{background:#fafafa;border-bottom:1px solid #ebebeb}thead th{padding:12px 16px;text-align:left;font-weight:600;font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}tbody tr{border-bottom:1px solid #f5f5f5;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#fafafa}tbody td{padding:12px 16px;color:#374151}.empty{text-align:center;padding:60px 24px;color:#9ca3af}.empty p{font-size:14px;margin-top:8px}
