*,:before,:after{box-sizing:border-box}body{color:#111827;background:#f3f4f6;margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app{max-width:960px;margin:0 auto;padding:24px 16px 40px}.app-header{text-align:center;margin-bottom:24px}.app-header h1{margin:0 0 8px;font-size:28px}.app-header p{color:#6b7280;margin:0;font-size:14px}.card{background:#fff;border-radius:12px;margin-bottom:16px;padding:16px 16px 20px;box-shadow:0 10px 25px #0f172a0f}.card h2{margin-top:0;margin-bottom:12px;font-size:18px}.form-row{flex-direction:column;margin-bottom:10px;display:flex}.form-row label{color:#374151;margin-bottom:4px;font-size:13px}.form-row input,.form-row select{border:1px solid #d1d5db;border-radius:8px;outline:none;padding:8px 10px;font-size:14px;transition:border-color .15s,box-shadow .15s}.form-row input:focus,.form-row select:focus{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f633}.form-actions{gap:8px;margin-top:10px;display:flex}.btn{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:999px;justify-content:center;align-items:center;padding:8px 14px;font-size:14px;transition:background .15s,box-shadow .15s,transform 50ms;display:inline-flex}.btn:hover{background:#f3f4f6}.btn:active{box-shadow:none;transform:translateY(1px)}.btn.primary{color:#fff;background:#2563eb;border-color:#2563eb}.btn.primary:hover{background:#1d4ed8}.toolbar{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.toolbar input[type=search],.toolbar select{border:1px solid #d1d5db;border-radius:999px;outline:none;flex:180px;padding:8px 10px;font-size:14px}.toolbar input[type=search]:focus,.toolbar select:focus{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f633}.table-wrapper{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}thead{background:#f9fafb}th,td{text-align:left;border-bottom:1px solid #e5e7eb;padding:8px 6px}th{color:#4b5563;font-size:13px;font-weight:600}tr:last-child td{border-bottom:none}.status-badge{border-radius:999px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.status-active{color:#166534;background:#ecfdf3}.status-soon{color:#92400e;background:#fffbeb}.status-expired{color:#b91c1c;background:#fef2f2}tr.row-soon td{background:#fffbeb}tr.row-expired td{background:#fef2f2}.app-footer{text-align:center;color:#9ca3af;margin-top:8px;font-size:12px}@media (min-width:640px){.form-row-group{gap:8px;display:flex}}
